diff --git a/Mage.Client/pom.xml b/Mage.Client/pom.xml index 3f17fd20503..fcb232ef040 100644 --- a/Mage.Client/pom.xml +++ b/Mage.Client/pom.xml @@ -6,7 +6,7 @@ org.mage mage-root - 1.4.22 + 1.4.23 org.mage diff --git a/Mage.Client/replay_pid4992.log b/Mage.Client/replay_pid4992.log new file mode 100644 index 00000000000..f868e9b81c8 --- /dev/null +++ b/Mage.Client/replay_pid4992.log @@ -0,0 +1,4854 @@ +JvmtiExport can_access_local_variables 0 +JvmtiExport can_hotswap_or_post_breakpoint 0 +JvmtiExport can_post_on_exceptions 0 +# 515 ciObject found +ciMethod java/lang/Object ()V 4097 1 4691130 0 0 +ciMethod java/lang/Object hashCode ()I 2049 1 256 0 -1 +ciMethod java/lang/Object equals (Ljava/lang/Object;)Z 2105 1 21073 0 64 +ciMethod java/lang/Object toString ()Ljava/lang/String; 49 1 333 0 -1 +ciMethod java/lang/String equals (Ljava/lang/Object;)Z 3073 20545 3625 0 -1 +ciMethod java/lang/System arraycopy (Ljava/lang/Object;ILjava/lang/Object;II)V 12289 1 1536 0 -1 +ciMethod java/lang/ref/Reference get ()Ljava/lang/Object; 1025 1 128 0 -1 +ciMethod java/util/Hashtable get (Ljava/lang/Object;)Ljava/lang/Object; 2105 609 5561 0 1184 +ciMethod java/util/Hashtable clear ()V 16465 181105 2228 0 0 +ciMethod java/util/Dictionary get (Ljava/lang/Object;)Ljava/lang/Object; 0 0 1 0 -1 +ciMethod java/lang/StringBuffer setLength (I)V 4097 1 4021 0 0 +ciMethod java/lang/StringBuffer append (Ljava/lang/Object;)Ljava/lang/StringBuffer; 2097 1 1825 0 -1 +ciMethod java/lang/StringBuffer append (Ljava/lang/String;)Ljava/lang/StringBuffer; 1177 1 26195 0 -1 +ciMethod java/lang/StringBuffer append (C)Ljava/lang/StringBuffer; 4097 1 64756 0 -1 +ciMethod java/lang/StringBuffer toString ()Ljava/lang/String; 1009 1 5246 0 -1 +ciMethod java/lang/AbstractStringBuilder ensureCapacityInternal (I)V 4097 1 409393 0 640 +ciMethod java/lang/AbstractStringBuilder newCapacity (I)I 1961 1 5374 0 -1 +ciMethod java/lang/AbstractStringBuilder setLength (I)V 4097 1 4900 0 0 +ciMethod java/lang/StringBuilder ()V 1537 1 200278 0 -1 +ciMethod java/lang/StringBuilder append (Ljava/lang/String;)Ljava/lang/StringBuilder; 2809 1 312009 0 -1 +ciMethod java/lang/StringBuilder append (I)Ljava/lang/StringBuilder; 1 1 33965 0 -1 +ciMethod java/lang/StringBuilder append (F)Ljava/lang/StringBuilder; 0 0 1 0 -1 +ciMethod java/lang/StringBuilder toString ()Ljava/lang/String; 1537 1 201041 0 -1 +ciMethod java/lang/Float isNaN (F)Z 2201 1 8395 0 0 +ciMethod java/lang/Integer toString (I)Ljava/lang/String; 16393 1 22828 0 -1 +ciMethod java/lang/Integer parseInt (Ljava/lang/String;)I 9 1 60537 0 -1 +ciMethod java/util/Collection iterator ()Ljava/util/Iterator; 0 0 1 0 -1 +ciMethod java/util/Vector ()V 2057 1 7156 0 -1 +ciMethod java/util/Vector copyInto ([Ljava/lang/Object;)V 2049 1 5002 0 0 +ciMethod java/util/Vector ensureCapacityHelper (I)V 2049 1 6784 0 0 +ciMethod java/util/Vector grow (I)V 89 1 273 0 0 +ciMethod java/util/Vector hugeCapacity (I)I 0 0 1 0 -1 +ciMethod java/util/Vector size ()I 1041 1 130 0 0 +ciMethod java/util/Vector elementAt (I)Ljava/lang/Object; 1017 1 5311 0 576 +ciMethod java/util/Vector removeElementAt (I)V 841 1 5253 0 960 +ciMethod java/util/Vector addElement (Ljava/lang/Object;)V 2049 1 5390 0 896 +ciMethod java/util/Vector removeAllElements ()V 3113 4553 5585 0 544 +ciMethod java/util/Vector elementData (I)Ljava/lang/Object; 2057 1 15341 0 0 +ciMethod java/util/AbstractCollection ()V 1273 1 480923 0 -1 +ciMethod java/util/Stack push (Ljava/lang/Object;)Ljava/lang/Object; 2049 1 12896 0 0 +ciMethod java/util/Stack pop ()Ljava/lang/Object; 841 1 11280 0 0 +ciMethod java/util/Stack peek ()Ljava/lang/Object; 849 1 15915 0 0 +ciMethod java/util/Stack empty ()Z 857 1 9989 0 448 +ciMethod java/util/Collections enumeration (Ljava/util/Collection;)Ljava/util/Enumeration; 2153 1 8540 0 0 +ciMethod java/util/AbstractSet ()V 145 1 43753 0 32 +ciMethod java/util/AbstractMap ()V 1073 1 80034 0 0 +ciMethod java/util/HashMap hash (Ljava/lang/Object;)I 4097 1 155209 0 160 +ciMethod java/util/HashMap tableSizeFor (I)I 3089 1 5528 0 128 +ciMethod java/util/HashMap (IF)V 1617 1 5328 0 352 +ciMethod java/util/HashMap (I)V 1601 1 8795 0 0 +ciMethod java/util/HashMap getNode (ILjava/lang/Object;)Ljava/util/HashMap$Node; 3145 33 14099 0 512 +ciMethod java/util/HashMap put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 2057 1 57987 0 2784 +ciMethod java/util/HashMap putVal (ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; 2049 161 28294 0 -1 +ciMethod java/util/HashMap$Node getKey ()Ljava/lang/Object; 1329 1 166 0 0 +ciMethod java/lang/Math max (II)I 2049 1 235920 0 -1 +ciMethod java/util/Enumeration hasMoreElements ()Z 0 0 1 0 -1 +ciMethod java/util/Enumeration nextElement ()Ljava/lang/Object; 0 0 1 0 -1 +ciMethod java/util/Iterator hasNext ()Z 0 0 1 0 -1 +ciMethod java/util/Iterator next ()Ljava/lang/Object; 0 0 1 0 -1 +ciMethod java/util/Arrays fill ([CIIC)V 0 0 1 0 -1 +ciMethod java/util/Arrays copyOf ([Ljava/lang/Object;I)[Ljava/lang/Object; 1449 1 45278 0 -1 +ciMethod java/util/Arrays copyOf ([CI)[C 2057 1 241236 0 -1 +ciMethod java/util/LinkedHashMap afterNodeAccess (Ljava/util/HashMap$Node;)V 1 1 31749 0 288 +ciMethod java/util/LinkedHashMap (I)V 2073 1 6735 0 0 +ciMethod java/util/LinkedHashMap get (Ljava/lang/Object;)Ljava/lang/Object; 3073 1 39112 0 1120 +ciMethod java/util/LinkedHashMap keySet ()Ljava/util/Set; 2113 1 8743 0 0 +ciMethodData java/lang/Object ()V 2 4691131 orig 264 72 34 205 106 0 0 0 0 128 4 175 22 0 0 0 0 32 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 217 149 60 2 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0 +ciMethod java/lang/IllegalArgumentException (Ljava/lang/String;)V 1 1 4435 0 -1 +ciMethod java/util/HashMap$TreeNode root ()Ljava/util/HashMap$TreeNode; 0 0 1 0 -1 +ciMethod java/util/HashMap$TreeNode find (ILjava/lang/Object;Ljava/lang/Class;)Ljava/util/HashMap$TreeNode; 2081 1833 5700 0 -1 +ciMethod java/util/HashMap$TreeNode getTreeNode (ILjava/lang/Object;)Ljava/util/HashMap$TreeNode; 3233 1 1074 0 0 +ciMethodData java/util/HashMap hash (Ljava/lang/Object;)I 2 155323 orig 264 72 34 205 106 0 0 0 0 112 98 189 22 0 0 0 0 176 1 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 217 229 18 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 104 0 0 0 255 255 255 255 7 0 1 0 0 0 0 0 data 13 0x10007 0x255f2 0x38 0x6c9 0x50003 0x6c9 0x48 0x90005 0xe56c 0x26eda90 0x12a00 0x26edb20 0x218 oops 2 9 java/lang/String 11 java/lang/Class +ciMethodData java/lang/AbstractStringBuilder ensureCapacityInternal (I)V 2 409393 orig 264 72 34 205 106 0 0 0 0 168 59 182 22 0 0 0 0 144 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 137 233 49 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 11 0 2 0 0 0 64 0 0 0 255 255 255 255 7 0 7 0 0 0 0 0 data 8 0x70007 0x60fa0 0x40 0x2d96 0x110002 0x2d96 0x140002 0x2d96 oops 0 +ciMethodData java/util/HashMap getNode (ILjava/lang/Object;)Ljava/util/HashMap$Node; 2 14099 orig 264 72 34 205 106 0 0 0 0 32 108 189 22 0 0 0 0 8 4 0 0 96 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 1 0 0 81 172 1 0 17 143 0 0 149 26 0 0 30 3 0 0 2 0 0 0 1 0 37 0 2 0 0 0 176 2 0 0 255 255 255 255 7 0 6 0 0 0 0 0 data 86 0x60007 0x278 0x2b0 0x3312 0xe0007 0x0 0x290 0x3312 0x1c0007 0xb48 0x270 0x27ca 0x250007 0x109c 0xb0 0x172e 0x310007 0x5ee 0x90 0x1140 0x350007 0x0 0x70 0x1140 0x3b0005 0xc15 0x174829a0 0xe 0x26eda90 0x51d 0x3ee007 0x406 0x20 0xd3b 0x4c0007 0x584 0x1a0 0xf1e 0x510004 0xfffffffffffff195 0x1fd08db0 0x87 0x1961b650 0xb3 0x54e007 0xe6b 0x80 0xb4 0x590004 0x0 0x1961b650 0xb4 0x0 0x0 0x5e0005 0x1 0x1961b650 0xb3 0x0 0x0 0x680007 0xdb9 0xb0 0x1137 0x740007 0xf5 0x90 0x1042 0x780007 0x0 0x70 0x1042 0x7e0005 0xec3 0x174829a0 0x4 0x26eda90 0x17b 0x810007 0x433 0x20 0xc0f 0x8f0007 0x1085 0xffffffffffffff50 0x167 oops 8 26 java/io/File 28 java/lang/String 40 java/util/HashMap$Node 42 java/util/HashMap$TreeNode 50 java/util/HashMap$TreeNode 56 java/util/HashMap$TreeNode 74 java/io/File 76 java/lang/String +ciMethodData java/util/HashMap put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 2 58302 orig 264 72 34 205 106 0 0 0 0 96 109 189 22 0 0 0 0 152 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 233 21 7 0 1 0 0 0 18 24 0 0 0 0 0 0 2 0 0 0 0 0 7 0 2 0 0 0 64 0 0 0 255 255 255 255 2 0 2 0 0 0 0 0 data 8 0x20002 0xe2bd 0x90005 0x7a27 0x1f1d6780 0x6886 0x21bd51c0 0x10 oops 2 4 java/util/HashMap 6 java/io/ExpiringCache$1 +ciMethodData java/util/Stack empty ()Z 2 9989 orig 264 72 34 205 106 0 0 0 0 16 136 187 22 0 0 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 0 0 0 209 52 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 7 0 2 0 0 0 104 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 13 0x10005 0x0 0x2204bcb0 0x269a 0x0 0x0 0x40007 0x184f 0x38 0xe4b 0x80003 0xe4b 0x18 oops 1 2 java/util/Stack +ciMethodData java/util/Stack pop ()Ljava/lang/Object; 2 11281 orig 264 72 34 205 106 0 0 0 0 192 134 187 22 0 0 0 0 216 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 105 0 0 0 65 93 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 9 0 2 0 0 0 144 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 18 0x10005 0x0 0x2204bcb0 0x2ba8 0x0 0x0 0x60005 0x0 0x2204bcb0 0x2ba8 0x0 0x0 0xe0005 0x0 0x2204bcb0 0x2ba8 0x0 0x0 oops 3 2 java/util/Stack 8 java/util/Stack 14 java/util/Stack +ciMethodData java/util/Stack peek ()Ljava/lang/Object; 2 15915 orig 264 72 34 205 106 0 0 0 0 112 135 187 22 0 0 0 0 216 1 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 0 0 0 9 238 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 144 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 18 0x10005 0x0 0x2204bcb0 0x3dc1 0x0 0x0 0x60007 0x3dc1 0x30 0x0 0xd0002 0x0 0x150005 0x0 0x2204bcb0 0x3dc1 0x0 0x0 oops 2 2 java/util/Stack 14 java/util/Stack +ciMethodData java/util/Vector elementAt (I)Ljava/lang/Object; 2 5311 orig 264 72 34 205 106 0 0 0 0 224 40 187 22 0 0 0 0 128 2 0 0 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0 0 0 1 162 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 5 0 2 0 0 0 48 1 0 0 255 255 255 255 7 0 5 0 0 0 0 0 data 38 0x50007 0x1440 0x100 0x0 0x100002 0x0 0x140005 0x0 0x0 0x0 0x0 0x0 0x190005 0x0 0x0 0x0 0x0 0x0 0x200005 0x0 0x0 0x0 0x0 0x0 0x230005 0x0 0x0 0x0 0x0 0x0 0x260002 0x0 0x2c0005 0x0 0x2204bcb0 0xa89 0x21bc53a0 0x9b7 oops 2 34 java/util/Stack 36 java/util/Vector +ciMethodData java/util/Vector removeElementAt (I)V 2 5253 orig 264 72 34 205 106 0 0 0 0 16 44 187 22 0 0 0 0 224 2 0 0 80 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 105 0 0 0 225 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 10 0 2 0 0 0 144 1 0 0 255 255 255 255 7 0 15 0 0 0 0 0 data 50 0xf0007 0x141c 0x100 0x0 0x1a0002 0x0 0x1e0005 0x0 0x0 0x0 0x0 0x0 0x230005 0x0 0x0 0x0 0x0 0x0 0x2a0005 0x0 0x0 0x0 0x0 0x0 0x2d0005 0x0 0x0 0x0 0x0 0x0 0x300002 0x0 0x350007 0x141c 0x30 0x0 0x3d0002 0x0 0x4b0007 0x1411 0x30 0xb 0x5b0002 0xb 0x710104 0x0 0x0 0x0 0x0 0x0 oops 0 +ciMethodData java/util/AbstractSet ()V 2 43824 orig 264 72 34 205 106 0 0 0 0 112 124 188 22 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 0 0 0 241 88 5 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 2 0x10002 0xab1e oops 0 +ciMethodData java/util/AbstractMap ()V 2 80080 orig 264 72 34 205 106 0 0 0 0 248 176 188 22 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 0 0 0 81 194 9 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 2 0x10002 0x1384a oops 0 +ciMethod java/awt/Image getWidth (Ljava/awt/image/ImageObserver;)I 0 0 1 0 -1 +ciMethod java/awt/Image getHeight (Ljava/awt/image/ImageObserver;)I 0 0 1 0 -1 +ciMethod java/awt/Toolkit getDefaultToolkit ()Ljava/awt/Toolkit; 3321 1 24236 0 -1 +ciMethod java/awt/Toolkit createImage (Ljava/net/URL;)Ljava/awt/Image; 0 0 1 0 -1 +ciMethod java/awt/Toolkit prepareImage (Ljava/awt/Image;IILjava/awt/image/ImageObserver;)Z 0 0 1 0 -1 +ciMethod java/util/LinkedHashMap$LinkedHashIterator hasNext ()Z 3833 1 5743 0 64 +ciMethod java/util/LinkedHashMap$LinkedHashIterator nextNode ()Ljava/util/LinkedHashMap$Entry; 3713 1 34387 0 160 +ciMethodData java/util/LinkedHashMap get (Ljava/lang/Object;)Ljava/lang/Object; 2 39112 orig 264 72 34 205 106 0 0 0 0 168 252 196 22 0 0 0 0 0 2 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 1 0 0 65 186 4 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 12 0 2 0 0 0 176 0 0 0 255 255 255 255 2 0 2 0 0 0 0 0 data 22 0x20002 0x9748 0x60005 0x7467 0x21bd51c0 0x824 0x1f1d5e60 0x1abd 0xb0007 0x92a1 0x20 0x4a7 0x140007 0x1535 0x50 0x7d6c 0x190005 0x0 0x21bd5270 0x7446 0x1f1d5e60 0x926 oops 4 4 java/io/ExpiringCache$1 6 java/util/LinkedHashMap 18 org/h2/util/SmallLRUCache 20 java/util/LinkedHashMap +ciMethodData java/util/LinkedHashMap afterNodeAccess (Ljava/util/HashMap$Node;)V 2 31749 orig 264 72 34 205 106 0 0 0 0 72 247 196 22 0 0 0 0 104 2 0 0 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 224 3 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 17 0 2 0 0 0 24 1 0 0 255 255 255 255 7 0 4 0 0 0 0 0 data 35 0x40007 0x96 0x118 0x7b6f 0xe0007 0x7780 0xf8 0x3ef 0x120004 0x0 0x1fd06c70 0x3ef 0x0 0x0 0x290007 0x3eb 0x38 0x4 0x320003 0x4 0x18 0x3e0007 0x0 0x38 0x3ef 0x480003 0x3ef 0x18 0x4f0007 0x3ef 0x38 0x0 0x570003 0x0 0x18 oops 1 10 java/util/LinkedHashMap$Entry +ciMethodData java/lang/Object equals (Ljava/lang/Object;)Z 2 21073 orig 264 72 34 205 106 0 0 0 0 232 6 175 22 0 0 0 0 136 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 81 138 2 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 56 0 0 0 255 255 255 255 7 0 2 0 0 0 0 0 data 7 0x20007 0x2d5c 0x38 0x23ee 0x60003 0x23ee 0x18 oops 0 +ciMethod java/util/EventObject (Ljava/lang/Object;)V 921 1 11278 0 0 +ciMethodData java/util/Hashtable get (Ljava/lang/Object;)Ljava/lang/Object; 2 5561 orig 264 72 34 205 106 0 0 0 0 64 124 178 22 0 0 0 0 40 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 1 0 0 145 165 0 0 169 36 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 11 0 2 0 0 0 216 0 0 0 255 255 255 255 5 0 6 0 0 0 0 0 data 27 0x60005 0x3be 0x26eda90 0x10db 0x216a1f90 0x19 0x1b0007 0xc28 0xa8 0xd1f 0x240007 0x48f 0x70 0x890 0x2d0005 0x10e 0x26eda90 0x658 0x17482200 0x12a 0x300007 0x6 0x20 0x88a 0x400003 0x495 0xffffffffffffff70 oops 4 2 java/lang/String 4 org/apache/log4j/CategoryKey 16 java/lang/String 18 java/lang/StringBuffer +ciMethod javax/swing/event/EventListenerList getListenerList ()[Ljava/lang/Object; 1065 1 133 0 0 +ciMethod javax/swing/event/EventListenerList ()V 3281 1 8205 0 0 +ciMethodData java/util/Vector elementData (I)Ljava/lang/Object; 2 15341 orig 264 72 34 205 106 0 0 0 0 8 50 187 22 0 0 0 0 40 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 97 215 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0 +ciMethodData java/lang/Float isNaN (F)Z 2 8466 orig 264 72 34 205 106 0 0 0 0 40 194 184 22 0 0 0 0 88 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1 0 0 249 255 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 56 0 0 0 255 255 255 255 7 0 3 0 0 0 0 0 data 7 0x30007 0x1fff 0x38 0x0 0x70003 0x0 0x18 oops 0 +ciMethod javax/swing/text/DefaultStyledDocument$AbstractChangeHandler stateChanged (Ljavax/swing/event/ChangeEvent;)V 1817 1 227 0 0 +ciMethod javax/swing/text/DefaultStyledDocument$AbstractChangeHandler fireStateChanged (Ljavax/swing/text/DefaultStyledDocument;Ljavax/swing/event/ChangeEvent;)V 0 0 1 0 -1 +ciMethodData javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 2 6441 orig 264 72 34 205 106 0 0 0 0 32 150 174 29 0 0 0 0 80 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 1 0 0 1 193 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 5 0 2 0 0 0 48 0 0 0 255 255 255 255 7 0 9 0 0 0 0 0 data 6 0x90007 0x0 0x20 0x1820 0x260002 0x0 oops 0 +ciMethodData javax/swing/text/AbstractDocument$AbstractElement getAttributes ()Ljavax/swing/text/AttributeSet; 2 17825 orig 264 72 34 205 106 0 0 0 0 136 85 174 29 0 0 0 0 32 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 0 0 233 36 2 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0 +ciMethodData javax/swing/text/StyleContext getCompressionThreshold ()I 2 6735 orig 264 72 34 205 106 0 0 0 0 168 38 173 29 0 0 0 0 32 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 0 0 0 113 205 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0 +ciMethodData javax/swing/text/StyleContext getMutableAttributeSet (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/MutableAttributeSet; 1 55 orig 264 72 34 205 106 0 0 0 0 240 41 173 29 0 0 0 0 32 2 0 0 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 55 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 208 0 0 0 255 255 255 255 4 0 1 0 0 0 0 0 data 26 0x10004 0x0 0x0 0x0 0x0 0x0 0x40007 0x0 0x70 0x0 0xb0007 0x0 0x50 0x0 0xf0004 0x0 0x0 0x0 0x0 0x0 0x150005 0x0 0x0 0x0 0x0 0x0 oops 0 +ciMethodData javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2 8746 orig 264 72 34 205 106 0 0 0 0 56 76 174 29 0 0 0 0 88 2 0 0 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 1 0 0 249 4 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 11 0 2 0 0 0 8 1 0 0 255 255 255 255 5 0 5 0 0 0 0 0 data 33 0x50005 0x160 0x20af6f30 0x1e27 0x20af6fe0 0x118 0xc0007 0x1207 0xd8 0xe98 0x130007 0x489 0x68 0xa0f 0x1a0005 0x70 0x200808e0 0x8af 0x20af7090 0xf0 0x1f0003 0xa0f 0x18 0x250007 0x489 0x50 0xa0f 0x2a0005 0x70 0x200808e0 0x8af 0x20af7090 0xf0 oops 6 2 javax/swing/text/html/StyleSheet$SmallConversionSet 4 javax/swing/text/StyleContext$SmallAttributeSet 16 javax/swing/text/html/HTMLDocument$BlockElement 18 javax/swing/text/DefaultStyledDocument$SectionElement 29 javax/swing/text/html/HTMLDocument$BlockElement 31 javax/swing/text/DefaultStyledDocument$SectionElement +ciMethodData javax/swing/text/StyleContext addAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2 5468 orig 264 72 34 205 106 0 0 0 0 64 34 173 29 0 0 0 0 88 3 0 0 112 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 209 162 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 15 0 2 0 0 0 0 2 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 64 0x10005 0x0 0x19920480 0x13e1 0x20af6f30 0x79 0x70005 0x0 0x19833e50 0xb05 0x21bd3140 0x955 0xe0005 0x5 0x21e87a00 0x115 0x1e76f040 0x1340 0x110007 0x0 0x110 0x145a 0x1c0005 0x0 0x19833e50 0x145a 0x0 0x0 0x260005 0x0 0x19833e50 0x145a 0x0 0x0 0x300005 0x0 0x19833e50 0x145a 0x0 0x0 0x370005 0x5 0x21e87a00 0x115 0x1e76f040 0x1340 0x3b0005 0x5 0x21e87a00 0x115 0x1e76f040 0x1340 0x410005 0x0 0x0 0x0 0x0 0x0 0x470005 0x0 0x0 0x0 0x0 0x0 oops 13 2 javax/swing/text/SimpleAttributeSet$EmptyAttributeSet 4 javax/swing/text/html/StyleSheet$SmallConversionSet 8 javax/swing/text/SimpleAttributeSet 10 javax/swing/text/html/StyleSheet$LargeConversionSet 14 javax/swing/text/StyleContext 16 javax/swing/text/html/StyleSheet 24 javax/swing/text/SimpleAttributeSet 30 javax/swing/text/SimpleAttributeSet 36 javax/swing/text/SimpleAttributeSet 42 javax/swing/text/StyleContext 44 javax/swing/text/html/StyleSheet 48 javax/swing/text/StyleContext 50 javax/swing/text/html/StyleSheet +ciMethodData java/util/Vector removeAllElements ()V 2 8530 orig 264 72 34 205 106 0 0 0 0 56 47 187 22 0 0 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 2 0 0 97 162 0 0 201 248 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 6 0 2 0 0 0 104 0 0 0 255 255 255 255 7 0 17 0 0 0 0 0 data 13 0x110007 0x144c 0x68 0x1f19 0x1a0104 0x0 0x0 0x0 0x0 0x0 0x1e0003 0x1f19 0xffffffffffffffb0 oops 0 +ciMethodData javax/swing/text/html/HTMLDocument getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 2 2648 orig 264 72 34 205 106 0 0 0 0 16 13 78 31 0 0 0 0 168 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 0 0 0 233 41 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 96 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 12 0x10005 0x6e 0x1e774a40 0x7e 0x1e774990 0x451 0x40004 0x0 0x1e76f040 0x53d 0x0 0x0 oops 3 2 javax/swing/text/html/HTMLDocument 4 javax/swing/plaf/basic/BasicHTML$BasicDocument 8 javax/swing/text/html/StyleSheet +ciMethodData javax/swing/text/html/StyleSheet getViewAttributes (Ljavax/swing/text/View;)Ljavax/swing/text/AttributeSet; 2 2270 orig 264 72 34 205 106 0 0 0 0 128 112 75 31 0 0 0 0 56 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 0 0 0 193 68 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 6 0 0 0 0 0 data 2 0x60002 0x898 oops 0 +ciMethodData javax/swing/text/html/StyleSheet$ViewAttributeSet (Ljavax/swing/text/html/StyleSheet;Ljavax/swing/text/View;)V 2 3427 orig 264 72 34 205 106 0 0 0 0 32 246 82 31 0 0 0 0 104 8 0 0 24 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 0 0 0 193 68 0 0 161 106 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 45 0 2 0 0 0 16 7 0 0 255 255 255 255 2 0 6 0 0 0 0 0 data 226 0x60002 0x898 0xf0005 0x531 0x22045530 0x16c 0x220455e0 0x1fb 0x130002 0x898 0x1a0005 0x0 0x21bc4ff0 0x898 0x0 0x0 0x200004 0x0 0x1e774a40 0x10b 0x1e774990 0x78d 0x230007 0x0 0x598 0x898 0x2a0005 0x531 0x22045530 0x16c 0x220455e0 0x1fb 0x310005 0x0 0x1e774af0 0x398 0x200808e0 0x500 0x3c0005 0x0 0x1e76f040 0x898 0x0 0x0 0x430005 0x0 0x22045690 0x898 0x0 0x0 0x480007 0x747 0x50 0x151 0x4f0005 0x0 0x21bc53a0 0x151 0x0 0x0 0x540005 0x0 0x1e774af0 0x398 0x200808e0 0x500 0x590007 0x500 0x358 0x398 0x5e0005 0x0 0x1e774af0 0x398 0x0 0x0 0x670005 0x0 0x22045740 0x10ec 0x0 0x0 0x6c0007 0x398 0x2c0 0xd54 0x710005 0x0 0x22045740 0xd54 0x0 0x0 0x7a0004 0xfffffffffffff2f1 0x21bc90b0 0x68 0x1e771980 0x45 0x7d0007 0xd0f 0x228 0x45 0x850007 0x45 0x158 0x0 0x8c0005 0x0 0x0 0x0 0x0 0x0 0x950007 0x0 0x108 0x0 0x9a0004 0x0 0x0 0x0 0x0 0x0 0x9d0007 0x0 0xb8 0x0 0xa20004 0x0 0x0 0x0 0x0 0x0 0xac0005 0x0 0x0 0x0 0x0 0x0 0xb10007 0x0 0x38 0x0 0xb40003 0x0 0xfffffffffffffdf0 0xbb0004 0x0 0x1e771980 0x45 0x0 0x0 0xc00005 0x0 0x1e76f040 0x45 0x0 0x0 0xc70007 0x0 0x50 0x45 0xce0005 0x0 0x21bc53a0 0x45 0x0 0x0 0xd10003 0xd54 0xfffffffffffffd28 0xd40003 0x398 0xf8 0xdc0005 0x0 0x200808e0 0x500 0x0 0x0 0xe10004 0x0 0x1e771980 0x500 0x0 0x0 0xec0005 0x0 0x1e76f040 0x500 0x0 0x0 0xf30007 0x0 0x50 0x500 0xfa0005 0x0 0x21bc53a0 0x500 0x0 0x0 0xff0005 0x0 0x21bc53a0 0x898 0x0 0x0 0x10b0005 0x0 0x21bc53a0 0x898 0x0 0x0 0x1110005 0x0 0x20083930 0x898 0x0 0x0 0x1160002 0x898 0x1190003 0x898 0x28 0x1200002 0x0 oops 29 4 javax/swing/text/html/InlineView 6 javax/swing/text/html/ParagraphView 12 javax/swing/text/html/StyleSheet$SearchBuffer 18 javax/swing/text/html/HTMLDocument 20 javax/swing/plaf/basic/BasicHTML$BasicDocument 28 javax/swing/text/html/InlineView 30 javax/swing/text/html/ParagraphView 34 javax/swing/text/html/HTMLDocument$RunElement 36 javax/swing/text/html/HTMLDocument$BlockElement 40 javax/swing/text/html/StyleSheet 46 javax/swing/text/StyleContext$NamedStyle 56 java/util/Vector 62 javax/swing/text/html/HTMLDocument$RunElement 64 javax/swing/text/html/HTMLDocument$BlockElement 72 javax/swing/text/html/HTMLDocument$RunElement 78 javax/swing/text/StyleContext$KeyEnumeration 88 javax/swing/text/StyleContext$KeyEnumeration 94 javax/swing/text/StyleConstants 96 javax/swing/text/html/HTML$Tag 147 javax/swing/text/html/HTML$Tag 153 javax/swing/text/html/StyleSheet 163 java/util/Vector 175 javax/swing/text/html/HTMLDocument$BlockElement 181 javax/swing/text/html/HTML$Tag 187 javax/swing/text/html/StyleSheet 197 java/util/Vector 203 java/util/Vector 209 java/util/Vector 215 javax/swing/text/html/StyleSheet$ViewAttributeSet +ciMethodData java/util/LinkedHashMap (I)V 2 6735 orig 264 72 34 205 106 0 0 0 0 72 249 196 22 0 0 0 0 56 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 0 0 97 202 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 2 0 0 0 0 0 data 2 0x20002 0x194c oops 0 +ciMethodData javax/swing/text/SimpleAttributeSet ()V 2 6726 orig 264 72 34 205 106 0 0 0 0 80 162 173 29 0 0 0 0 64 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 49 202 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 32 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 4 0x10002 0x1946 0xa0002 0x1946 oops 0 +ciMethodData javax/swing/text/StyleContext$NamedStyle fireStateChanged ()V 2 3679 orig 264 72 34 205 106 0 0 0 0 224 214 173 29 0 0 0 0 96 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 1 0 0 225 102 0 0 177 5 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 16 0 2 0 0 0 24 1 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 35 0x40005 0x0 0x260e7f70 0xcdc 0x0 0x0 0xe0007 0xcdc 0xe8 0xb6 0x160007 0x0 0xb0 0xb6 0x1d0007 0xa5 0x30 0x11 0x260002 0x11 0x310004 0x0 0x209c5950 0xb6 0x0 0x0 0x380005 0x0 0x209c5950 0xb6 0x0 0x0 0x400003 0xb6 0xffffffffffffff30 oops 3 2 javax/swing/event/EventListenerList 22 javax/swing/text/DefaultStyledDocument$StyleChangeHandler 28 javax/swing/text/DefaultStyledDocument$StyleChangeHandler +ciMethodData javax/swing/text/StyleContext$NamedStyle addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 1 971 orig 264 72 34 205 106 0 0 0 0 160 221 173 29 0 0 0 0 184 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 1 0 0 145 21 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 96 0 0 0 255 255 255 255 5 0 13 0 0 0 0 0 data 12 0xd0005 0xc 0x21e87a00 0x9b 0x1e76f040 0x20b 0x140005 0x0 0x22045690 0x2b2 0x0 0x0 oops 3 2 javax/swing/text/StyleContext 4 javax/swing/text/html/StyleSheet 8 javax/swing/text/StyleContext$NamedStyle +ciMethodData javax/swing/text/html/StyleSheet$SearchBuffer obtainSearchBuffer ()Ljavax/swing/text/html/StyleSheet$SearchBuffer; 2 4526 orig 264 72 34 205 106 0 0 0 0 144 20 83 31 0 0 0 0 64 2 0 0 216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 105 77 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 21 0 2 0 0 0 0 1 0 0 255 255 255 255 5 0 3 0 0 0 0 0 data 32 0x30005 0x0 0x2204bcb0 0x9ad 0x0 0x0 0x60007 0x0 0x98 0x9ad 0xc0005 0x0 0x2204bcb0 0x9ad 0x0 0x0 0xf0004 0x0 0x21bc4ff0 0x9ad 0x0 0x0 0x130003 0x9ad 0x28 0x1a0002 0x0 0x1e0003 0x9ad 0x28 0x260002 0x0 oops 3 2 java/util/Stack 12 java/util/Stack 18 javax/swing/text/html/StyleSheet$SearchBuffer +ciMethodData javax/swing/text/html/StyleSheet$SearchBuffer getVector ()Ljava/util/Vector; 2 4528 orig 264 72 34 205 106 0 0 0 0 128 22 83 31 0 0 0 0 80 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 153 109 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 48 0 0 0 255 255 255 255 7 0 4 0 0 0 0 0 data 6 0x40007 0xdb3 0x30 0x0 0xc0002 0x0 oops 0 +ciMethodData javax/swing/text/html/StyleSheet$SearchBuffer releaseSearchBuffer (Ljavax/swing/text/html/StyleSheet$SearchBuffer;)V 2 4655 orig 264 72 34 205 106 0 0 0 0 48 21 83 31 0 0 0 0 168 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 145 113 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 96 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 12 0x10005 0x0 0x21bc4ff0 0xe32 0x0 0x0 0x80005 0x0 0x2204bcb0 0xe32 0x0 0x0 oops 2 2 javax/swing/text/html/StyleSheet$SearchBuffer 8 java/util/Stack +ciMethodData javax/swing/text/html/StyleSheet$SearchBuffer empty ()V 2 4655 orig 264 72 34 205 106 0 0 0 0 232 23 83 31 0 0 0 0 56 2 0 0 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 129 137 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 13 0 2 0 0 0 240 0 0 0 255 255 255 255 7 0 4 0 0 0 0 0 data 30 0x40007 0xb4e 0x50 0x5e2 0xc0005 0x35 0x17482200 0x5ad 0x0 0x0 0x130007 0x0 0x50 0x1130 0x1a0005 0x0 0x21bc53a0 0x1130 0x0 0x0 0x210007 0x8e7 0x50 0x849 0x280005 0x0 0x26eee60 0x849 0x0 0x0 oops 3 6 java/lang/StringBuffer 16 java/util/Vector 26 java/util/Hashtable +ciMethodData java/util/Vector ensureCapacityHelper (I)V 2 6784 orig 264 72 34 205 106 0 0 0 0 160 31 187 22 0 0 0 0 88 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 204 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 48 0 0 0 255 255 255 255 7 0 7 0 0 0 0 0 data 6 0x70007 0x195e 0x30 0x22 0xc0002 0x22 oops 0 +ciMethodData java/util/Vector grow (I)V 1 276 orig 264 72 34 205 106 0 0 0 0 112 32 187 22 0 0 0 0 232 1 0 0 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 73 8 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 18 0 2 0 0 0 152 0 0 0 255 255 255 255 7 0 11 0 0 0 0 0 data 19 0xb0007 0x109 0x38 0x0 0x120003 0x0 0x18 0x1b0007 0x102 0x20 0x7 0x240007 0x109 0x30 0x0 0x280002 0x0 0x320002 0x109 oops 0 +ciMethodData java/util/Vector addElement (Ljava/lang/Object;)V 2 5390 orig 264 72 34 205 106 0 0 0 0 200 45 187 22 0 0 0 0 144 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 113 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 7 0 2 0 0 0 64 0 0 0 255 255 255 255 2 0 17 0 0 0 0 0 data 8 0x110002 0x140e 0x240104 0x0 0x26edb20 0x416 0x216c4e00 0x4a oops 2 4 java/lang/Class 6 org/apache/log4j/Logger +ciMethod java/util/NoSuchElementException ()V 9 1 1 0 -1 +ciMethodData java/util/HashMap (I)V 2 8795 orig 264 72 34 205 106 0 0 0 0 136 102 189 22 0 0 0 0 56 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 0 0 0 153 12 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 4 0 0 0 0 0 data 2 0x40002 0x2193 oops 0 +ciMethodData java/util/HashMap (IF)V 2 5328 orig 264 72 34 205 106 0 0 0 0 240 101 189 22 0 0 0 0 104 3 0 0 240 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 202 0 0 0 49 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 17 0 2 0 0 0 16 2 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 66 0x10002 0x1406 0x50007 0x1406 0xd0 0x0 0x100002 0x0 0x150005 0x0 0x0 0x0 0x0 0x0 0x190005 0x0 0x0 0x0 0x0 0x0 0x1c0005 0x0 0x0 0x0 0x0 0x0 0x1f0002 0x0 0x260007 0x1406 0x20 0x0 0x2f0007 0x0 0x50 0x1406 0x330002 0x1406 0x360007 0x1406 0xd0 0x0 0x410002 0x0 0x460005 0x0 0x0 0x0 0x0 0x0 0x4a0005 0x0 0x0 0x0 0x0 0x0 0x4d0005 0x0 0x0 0x0 0x0 0x0 0x500002 0x0 0x5b0002 0x1406 oops 0 +ciMethodData javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 2 12086 orig 264 72 34 205 106 0 0 0 0 104 169 173 29 0 0 0 0 136 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 177 105 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 8 0 2 0 0 0 48 0 0 0 255 255 255 255 5 0 6 0 0 0 0 0 data 6 0x60005 0x0 0x1f1d5e60 0x2d36 0x0 0x0 oops 1 2 java/util/LinkedHashMap +ciMethodData java/util/EventObject (Ljava/lang/Object;)V 2 11278 orig 264 72 34 205 106 0 0 0 0 8 148 248 22 0 0 0 0 104 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 0 0 0 217 92 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 5 0 2 0 0 0 64 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 8 0x10002 0x2b9b 0x50007 0x2b9b 0x30 0x0 0xe0002 0x0 oops 0 +ciMethod javax/swing/event/ChangeListener stateChanged (Ljavax/swing/event/ChangeEvent;)V 0 0 1 0 -1 +ciMethod javax/swing/event/ChangeEvent (Ljava/lang/Object;)V 937 1 622 0 0 +ciMethod javax/swing/text/View getPreferredSpan (I)F 0 0 1 0 -1 +ciMethod javax/swing/text/View getDocument ()Ljavax/swing/text/Document; 2425 1 14643 0 64 +ciMethod javax/swing/text/View getElement ()Ljavax/swing/text/Element; 1489 1 186 0 0 +ciMethod javax/swing/text/Document getProperty (Ljava/lang/Object;)Ljava/lang/Object; 0 0 1 0 -1 +ciMethod javax/swing/text/AbstractDocument getAttributeContext ()Ljavax/swing/text/AbstractDocument$AttributeContext; 1057 1 132 0 0 +ciMethod javax/swing/text/StyleContext addStyle (Ljava/lang/String;Ljavax/swing/text/Style;)Ljavax/swing/text/Style; 2049 1 2635 0 0 +ciMethod javax/swing/text/StyleContext addAttribute (Ljavax/swing/text/AttributeSet;Ljava/lang/Object;Ljava/lang/Object;)Ljavax/swing/text/AttributeSet; 2049 1 1622 0 -1 +ciMethod javax/swing/text/StyleContext addAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2065 1 5468 0 5856 +ciMethod javax/swing/text/StyleContext removeAttribute (Ljavax/swing/text/AttributeSet;Ljava/lang/Object;)Ljavax/swing/text/AttributeSet; 97 1 20 0 -1 +ciMethod javax/swing/text/StyleContext getEmptySet ()Ljavax/swing/text/AttributeSet; 2049 1 6943 0 0 +ciMethod javax/swing/text/StyleContext reclaim (Ljavax/swing/text/AttributeSet;)V 2065 1 7031 0 -1 +ciMethod javax/swing/text/StyleContext getCompressionThreshold ()I 1289 1 6711 0 -1 +ciMethod javax/swing/text/StyleContext getImmutableUniqueSet ()Ljavax/swing/text/AttributeSet; 3225 1 6555 0 -1 +ciMethod javax/swing/text/StyleContext getMutableAttributeSet (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/MutableAttributeSet; 441 1 55 0 -1 +ciMethod javax/swing/text/AttributeSet getAttributeCount ()I 0 0 1 0 -1 +ciMethod javax/swing/text/AttributeSet isDefined (Ljava/lang/Object;)Z 0 0 1 0 -1 +ciMethod javax/swing/text/AttributeSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 0 0 1 0 -1 +ciMethod javax/swing/text/AttributeSet getAttributeNames ()Ljava/util/Enumeration; 0 0 1 0 -1 +ciMethod javax/swing/text/MutableAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 0 0 1 0 -1 +ciMethod javax/swing/text/MutableAttributeSet addAttributes (Ljavax/swing/text/AttributeSet;)V 0 0 1 0 -1 +ciMethod javax/swing/text/MutableAttributeSet removeAttribute (Ljava/lang/Object;)V 0 0 1 0 -1 +ciMethod javax/swing/text/MutableAttributeSet removeAttributes (Ljavax/swing/text/AttributeSet;)V 0 0 1 0 -1 +ciMethod javax/swing/text/SimpleAttributeSet ()V 2049 1 6726 0 192 +ciMethod javax/swing/text/SimpleAttributeSet getAttributeNames ()Ljava/util/Enumeration; 2113 1 8540 0 544 +ciMethod javax/swing/text/SimpleAttributeSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 17193 1 12672 0 1376 +ciMethod javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 4097 1 12086 0 96 +ciMethod javax/swing/text/SimpleAttributeSet getResolveParent ()Ljavax/swing/text/AttributeSet; 513 1 1407 0 0 +ciMethod javax/swing/text/StyleContext$NamedStyle (Ljavax/swing/text/StyleContext;Ljava/lang/String;Ljavax/swing/text/Style;)V 2065 1 2833 0 0 +ciMethod javax/swing/text/StyleContext$NamedStyle setName (Ljava/lang/String;)V 841 1 359 0 -1 +ciMethod javax/swing/text/StyleContext$NamedStyle fireStateChanged ()V 3097 361 3650 0 0 +ciMethod javax/swing/text/StyleContext$NamedStyle getAttributeCount ()I 2601 1 2325 0 0 +ciMethod javax/swing/text/StyleContext$NamedStyle addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 2249 1 971 0 -1 +ciMethod javax/swing/text/StyleContext$NamedStyle addAttributes (Ljavax/swing/text/AttributeSet;)V 5041 1 2661 0 0 +ciMethod javax/swing/text/StyleContext$NamedStyle removeAttribute (Ljava/lang/Object;)V 57 1 20 0 -1 +ciMethod javax/swing/text/StyleContext$NamedStyle setResolveParent (Ljavax/swing/text/AttributeSet;)V 0 0 1 0 -1 +ciMethod javax/swing/text/StyleContext$SmallAttributeSet getLocalAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2049 1529 6491 0 -1 +ciMethod javax/swing/text/StyleContext$SmallAttributeSet getAttributeCount ()I 2049 1 6372 0 0 +ciMethod javax/swing/text/StyleContext$SmallAttributeSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2049 1 9360 0 6656 +ciMethod javax/swing/text/StyleContext$SmallAttributeSet getAttributeNames ()Ljava/util/Enumeration; 2049 1 5391 0 192 +ciMethod javax/swing/text/StyleContext$SmallAttributeSet getResolveParent ()Ljavax/swing/text/AttributeSet; 185 1 23 0 -1 +ciMethod javax/swing/text/html/HTML$Tag toString ()Ljava/lang/String; 1209 1 151 0 -1 +ciMethod java/util/LinkedHashMap$LinkedKeySet (Ljava/util/LinkedHashMap;)V 329 1 2842 0 0 +ciMethod java/util/LinkedHashMap$LinkedKeySet iterator ()Ljava/util/Iterator; 4097 1 8741 0 0 +ciMethod java/util/Collections$3 (Ljava/util/Collection;)V 2153 1 8540 0 0 +ciMethod java/util/Collections$3 hasMoreElements ()Z 3649 1 5715 0 96 +ciMethod java/util/Collections$3 nextElement ()Ljava/lang/Object; 3929 1 9806 0 192 +ciMethod java/util/LinkedHashMap$LinkedKeyIterator (Ljava/util/LinkedHashMap;)V 4097 1 8741 0 -1 +ciMethod java/util/LinkedHashMap$LinkedKeyIterator next ()Ljava/lang/Object; 3993 1 5744 0 160 +ciMethod javax/swing/text/AbstractDocument$BranchElement isLeaf ()Z 1041 1 130 0 0 +ciMethod javax/swing/text/Element getDocument ()Ljavax/swing/text/Document; 0 0 1 0 -1 +ciMethod javax/swing/text/Element getParentElement ()Ljavax/swing/text/Element; 0 0 1 0 -1 +ciMethod javax/swing/text/Element getAttributes ()Ljavax/swing/text/AttributeSet; 0 0 1 0 -1 +ciMethod javax/swing/text/Element isLeaf ()Z 0 0 1 0 -1 +ciMethod javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 3161 1 8746 0 1696 +ciMethod javax/swing/text/AbstractDocument$AbstractElement getAttributeNames ()Ljava/util/Enumeration; 3105 1 4255 0 0 +ciMethod javax/swing/text/AbstractDocument$AbstractElement getParentElement ()Ljavax/swing/text/Element; 1025 1 128 0 0 +ciMethod javax/swing/text/AbstractDocument$AbstractElement getAttributes ()Ljavax/swing/text/AttributeSet; 2081 1 17810 0 0 +ciMethod javax/swing/text/AbstractDocument$AbstractElement isLeaf ()Z 0 0 1 0 -1 +ciMethod javax/swing/text/AbstractDocument$LeafElement isLeaf ()Z 1025 1 128 0 0 +ciMethod javax/swing/text/StyleContext$KeyEnumeration (Ljavax/swing/text/StyleContext;[Ljava/lang/Object;)V 2049 1 5391 0 0 +ciMethod javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 2601 1 5478 0 96 +ciMethod javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 2121 1 6441 0 128 +ciMethodData java/util/HashMap$TreeNode getTreeNode (ILjava/lang/Object;)Ljava/util/HashMap$TreeNode; 1 1074 orig 264 72 34 205 106 0 0 0 0 160 23 202 22 0 0 0 0 240 1 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 148 1 0 0 241 20 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 10 0 2 0 0 0 152 0 0 0 255 255 255 255 7 0 4 0 0 0 0 0 data 19 0x40007 0x29e 0x68 0x0 0x80005 0x0 0x0 0x0 0x0 0x0 0xb0003 0x0 0x18 0x120005 0x62 0x1961b650 0x23c 0x0 0x0 oops 1 15 java/util/HashMap$TreeNode +ciMethodData javax/swing/event/EventListenerList ()V 2 8205 orig 264 72 34 205 106 0 0 0 0 120 167 29 23 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 154 1 0 0 153 243 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 2 0x10002 0x1e73 oops 0 +ciMethod javax/swing/text/html/HTML getTagForStyleConstantsKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/HTML$Tag; 1937 1 1818 0 0 +ciMethod javax/swing/text/html/StyleSheet getRule (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/Element;)Ljavax/swing/text/Style; 1809 6097 1538 0 0 +ciMethod javax/swing/text/html/StyleSheet getViewAttributes (Ljavax/swing/text/View;)Ljavax/swing/text/AttributeSet; 561 1 2269 0 0 +ciMethod javax/swing/text/html/StyleSheet translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2049 1 2270 0 0 +ciMethod javax/swing/text/html/StyleSheet addAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2121 1 5303 0 0 +ciMethod javax/swing/text/html/StyleSheet removeHTMLTags (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 16569 17089 4850 0 0 +ciMethod javax/swing/text/html/StyleSheet convertAttributeSet (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2081 3113 5303 0 0 +ciMethod javax/swing/text/html/StyleSheet getResolvedStyle (Ljava/lang/String;Ljava/util/Vector;Ljavax/swing/text/html/HTML$Tag;)Ljavax/swing/text/Style; 2881 1 1573 0 -1 +ciMethod javax/swing/text/html/StyleSheet access$000 (Ljavax/swing/text/html/StyleSheet;)Ljavax/swing/text/html/CSS; 1041 1 130 0 0 +ciMethod javax/swing/text/html/CSS getInternalCSSValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 1985 1 970 0 0 +ciMethod javax/swing/text/html/CSS styleConstantsKeyToCSSKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/CSS$Attribute; 2081 1 7254 0 1312 +ciMethod javax/swing/text/html/CSS styleConstantsValueToCSSValue (Ljavax/swing/text/StyleConstants;Ljava/lang/Object;)Ljava/lang/Object; 865 1 612 0 -1 +ciMethod javax/swing/text/html/CSS cssValueToStyleConstantsValue (Ljavax/swing/text/StyleConstants;Ljava/lang/Object;)Ljava/lang/Object; 0 0 1 0 -1 +ciMethod javax/swing/text/html/CSS translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2049 1 2408 0 0 +ciMethod javax/swing/text/html/CSS getTableBorder (Ljavax/swing/text/AttributeSet;)I 0 0 234 0 0 +ciMethod javax/swing/text/html/CSS translateEmbeddedAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/MutableAttributeSet;)V 729 2241 939 0 0 +ciMethod javax/swing/text/html/CSS translateAttributes (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/AttributeSet;Ljavax/swing/text/MutableAttributeSet;)V 1465 1945 1538 0 0 +ciMethod javax/swing/text/html/CSS translateAttribute (Ljavax/swing/text/html/HTML$Attribute;Ljava/lang/String;Ljavax/swing/text/MutableAttributeSet;)V 145 145 353 0 0 +ciMethod javax/swing/text/html/CSS getCssValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 425 1 562 0 0 +ciMethod javax/swing/text/html/CSS getCssAttribute (Ljavax/swing/text/html/HTML$Attribute;)[Ljavax/swing/text/html/CSS$Attribute; 2057 1 353 0 0 +ciMethod javax/swing/text/html/CSS getCssAlignAttribute (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/CSS$Attribute; 0 0 78 0 0 +ciMethod javax/swing/text/html/CSS getHTMLTag (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/HTML$Tag; 2049 1 2408 0 0 +ciMethod javax/swing/text/html/CSS isHTMLFontTag (Ljavax/swing/text/html/HTML$Tag;)Z 0 0 1 0 -1 +ciMethod javax/swing/text/html/CSS$Attribute getDefaultValue ()Ljava/lang/String; 17 1 2 0 0 +ciMethod javax/swing/text/html/CSS$CssValue parseCssValue (Ljava/lang/String;)Ljava/lang/Object; 641 1 80 0 -1 +ciMethod javax/swing/text/html/CSS$CssValue parseHtmlValue (Ljava/lang/String;)Ljava/lang/Object; 1969 1 246 0 -1 +ciMethod javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2113 1 5439 0 1504 +ciMethod javax/swing/text/html/StyleSheet$LargeConversionSet (Ljavax/swing/text/html/StyleSheet;)V 625 1 2541 0 0 +ciMethodData javax/swing/text/StyleContext$SmallAttributeSet getAttributeCount ()I 2 6372 orig 264 72 34 205 106 0 0 0 0 208 247 173 29 0 0 0 0 32 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 33 191 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0 +ciMethodData java/util/LinkedHashMap$LinkedHashIterator hasNext ()Z 2 5743 orig 264 72 34 205 106 0 0 0 0 88 126 231 22 0 0 0 0 88 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 1 0 0 129 164 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 56 0 0 0 255 255 255 255 7 0 4 0 0 0 0 0 data 7 0x40007 0x6dd 0x38 0xdb3 0x80003 0xdb3 0x18 oops 0 +ciMethodData java/util/Collections$3 hasMoreElements ()Z 2 5715 orig 264 72 34 205 106 0 0 0 0 208 18 174 29 0 0 0 0 120 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 1 0 0 89 164 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 48 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 6 0x40005 0x0 0x1fd051c0 0x148b 0x0 0x0 oops 1 2 java/util/LinkedHashMap$LinkedKeyIterator +ciMethodData java/util/LinkedHashMap$LinkedHashIterator nextNode ()Ljava/util/LinkedHashMap$Entry; 2 34387 orig 264 72 34 205 106 0 0 0 0 40 127 231 22 0 0 0 0 128 1 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 1 0 0 25 36 4 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 7 0 2 0 0 0 96 0 0 0 255 255 255 255 7 0 16 0 0 0 0 0 data 12 0x100007 0x8483 0x30 0x0 0x170002 0x0 0x1c0007 0x8483 0x30 0x0 0x230002 0x0 oops 0 +ciMethodData java/util/Collections$3 nextElement ()Ljava/lang/Object; 2 9806 orig 264 72 34 205 106 0 0 0 0 112 19 174 29 0 0 0 0 120 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 1 0 0 25 35 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 48 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 6 0x40005 0x0 0x1fd051c0 0x2463 0x0 0x0 oops 1 2 java/util/LinkedHashMap$LinkedKeyIterator +ciMethodData java/util/LinkedHashMap$LinkedKeyIterator next ()Ljava/lang/Object; 2 5744 orig 264 72 34 205 106 0 0 0 0 200 23 174 29 0 0 0 0 168 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 1 0 0 233 163 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 96 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 12 0x10005 0x16 0x1fd051c0 0x1467 0x0 0x0 0x40005 0x16 0x1fd06c70 0x1467 0x0 0x0 oops 2 2 java/util/LinkedHashMap$LinkedKeyIterator 8 java/util/LinkedHashMap$Entry +ciMethodData javax/swing/text/SimpleAttributeSet getAttributeNames ()Ljava/util/Enumeration; 2 8540 orig 264 72 34 205 106 0 0 0 0 176 166 173 29 0 0 0 0 136 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 1 0 0 161 2 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 7 0 2 0 0 0 64 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 8 0x40005 0x0 0x1f1d5e60 0x2054 0x0 0x0 0x70002 0x2054 oops 1 2 java/util/LinkedHashMap +ciMethodData java/util/LinkedHashMap keySet ()Ljava/util/Set; 2 8743 orig 264 72 34 205 106 0 0 0 0 72 255 196 22 0 0 0 0 80 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 1 0 0 249 8 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 48 0 0 0 255 255 255 255 7 0 6 0 0 0 0 0 data 6 0x60007 0x162e 0x30 0xaf1 0xe0002 0xaf1 oops 0 +ciMethodData java/util/LinkedHashMap$LinkedKeySet (Ljava/util/LinkedHashMap;)V 2 2842 orig 264 72 34 205 106 0 0 0 0 192 7 174 29 0 0 0 0 56 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 0 0 0 137 87 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 6 0 0 0 0 0 data 2 0x60002 0xaf1 oops 0 +ciMethodData java/util/Collections enumeration (Ljava/util/Collection;)Ljava/util/Enumeration; 2 8540 orig 264 72 34 205 106 0 0 0 0 224 75 188 22 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 1 0 0 121 2 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 255 255 255 255 2 0 5 0 0 0 0 0 data 2 0x50002 0x204f oops 0 +ciMethodData java/util/Collections$3 (Ljava/util/Collection;)V 2 8540 orig 264 72 34 205 106 0 0 0 0 56 18 174 29 0 0 0 0 144 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 1 0 0 121 2 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 255 255 255 255 2 0 6 0 0 0 0 0 data 8 0x60002 0x204f 0xe0005 0x0 0x1e6ad110 0x204f 0x0 0x0 oops 1 4 java/util/LinkedHashMap$LinkedKeySet +ciMethodData javax/swing/text/SimpleAttributeSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2 12672 orig 264 72 34 205 106 0 0 0 0 104 167 173 29 0 0 0 0 32 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 217 72 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 8 0 2 0 0 0 208 0 0 0 255 255 255 255 5 0 5 0 0 0 0 0 data 26 0x50005 0x0 0x1f1d5e60 0x291b 0x0 0x0 0xa0007 0x23d4 0xa0 0x547 0xe0005 0x0 0x21bd3140 0x53b 0x19833e50 0xc 0x130007 0x547 0x50 0x0 0x180005 0x0 0x0 0x0 0x0 0x0 oops 3 2 java/util/LinkedHashMap 12 javax/swing/text/html/StyleSheet$LargeConversionSet 14 javax/swing/text/SimpleAttributeSet +ciMethodData java/lang/StringBuffer setLength (I)V 2 4021 orig 264 72 34 205 106 0 0 0 0 96 244 181 22 0 0 0 0 56 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 169 109 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 7 0 0 0 0 0 data 2 0x70002 0xdb5 oops 0 +ciMethodData java/lang/AbstractStringBuilder setLength (I)V 2 4900 orig 264 72 34 205 106 0 0 0 0 136 62 182 22 0 0 0 0 192 1 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 33 137 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 20 0 2 0 0 0 112 0 0 0 255 255 255 255 7 0 1 0 0 0 0 0 data 14 0x10007 0x1124 0x30 0x0 0x90002 0x0 0xf0002 0x1124 0x170007 0x1124 0x30 0x0 0x240002 0x0 oops 0 +ciMethodData javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 2 5478 orig 264 72 34 205 106 0 0 0 0 96 149 174 29 0 0 0 0 88 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 1 0 0 9 161 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 56 0 0 0 255 255 255 255 7 0 9 0 0 0 0 0 data 7 0x90007 0x722 0x38 0xcff 0xd0003 0xcff 0x18 oops 0 +ciMethod javax/swing/text/html/HTMLDocument getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 10601 1 2648 0 0 +ciMethod javax/swing/text/StyledDocument getForeground (Ljavax/swing/text/AttributeSet;)Ljava/awt/Color; 0 0 1 0 -1 +ciMethodData java/util/LinkedHashMap$LinkedKeySet iterator ()Ljava/util/Iterator; 2 8741 orig 264 72 34 205 106 0 0 0 0 144 9 174 29 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 41 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 8 0 0 0 0 0 data 2 0x80002 0x2025 oops 0 +ciMethod javax/swing/text/html/ImageView getImageURL ()Ljava/net/URL; 2177 1 252 0 -1 +ciMethod javax/swing/text/html/ImageView getImage ()Ljava/awt/Image; 2273 1 6683 0 0 +ciMethod javax/swing/text/html/ImageView getLoadsSynchronously ()Z 2049 1 252 0 -1 +ciMethod javax/swing/text/html/ImageView getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 2145 1 526 0 0 +ciMethod javax/swing/text/html/ImageView getAttributes ()Ljavax/swing/text/AttributeSet; 2145 1 526 0 0 +ciMethod javax/swing/text/html/ImageView setPropertiesFromAttributes ()V 89 1 526 0 0 +ciMethod javax/swing/text/html/ImageView getPreferredSpan (I)F 2049 1 5416 0 -1 +ciMethod javax/swing/text/html/ImageView isLink ()Z 2145 1 526 0 0 +ciMethod javax/swing/text/html/ImageView getPreferredSpanFromAltView (I)F 2041 1 5416 0 0 +ciMethod javax/swing/text/html/ImageView getIntAttr (Ljavax/swing/text/html/HTML$Attribute;I)I 2049 1 2082 0 0 +ciMethod javax/swing/text/html/ImageView sync ()V 2065 1 5451 0 544 +ciMethod javax/swing/text/html/ImageView refreshImage ()V 57 1 252 0 0 +ciMethod javax/swing/text/html/ImageView loadImage ()V 2049 1 252 0 0 +ciMethod javax/swing/text/html/ImageView updateImageSize ()V 2049 1 252 0 0 +ciMethod javax/swing/text/html/ImageView updateAltTextView ()V 0 0 1 0 -1 +ciMethod javax/swing/text/html/ImageView getAltView ()Ljavax/swing/text/View; 0 0 1 0 -1 +ciMethod javax/swing/text/html/StyleSheet$ViewAttributeSet (Ljavax/swing/text/html/StyleSheet;Ljavax/swing/text/View;)V 561 121 2270 0 0 +ciMethod javax/swing/text/html/MuxingAttributeSet ()V 2049 1 2270 0 0 +ciMethod javax/swing/text/html/MuxingAttributeSet setAttributes ([Ljavax/swing/text/AttributeSet;)V 2601 1 2270 0 0 +ciMethod javax/swing/text/html/StyleSheet$SearchBuffer ()V 57 1 7 0 -1 +ciMethod javax/swing/text/html/StyleSheet$SearchBuffer obtainSearchBuffer ()Ljavax/swing/text/html/StyleSheet$SearchBuffer; 16393 1 4526 0 0 +ciMethod javax/swing/text/html/StyleSheet$SearchBuffer releaseSearchBuffer (Ljavax/swing/text/html/StyleSheet$SearchBuffer;)V 8169 1 4526 0 0 +ciMethod javax/swing/text/html/StyleSheet$SearchBuffer getStringBuffer ()Ljava/lang/StringBuffer; 2881 1 1573 0 -1 +ciMethod javax/swing/text/html/StyleSheet$SearchBuffer getVector ()Ljava/util/Vector; 8169 1 4526 0 0 +ciMethod javax/swing/text/html/StyleSheet$SearchBuffer empty ()V 2041 1 4655 0 0 +ciMethodData javax/swing/text/StyleContext$SmallAttributeSet getLocalAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2 13361 orig 264 72 34 205 106 0 0 0 0 24 244 173 29 0 0 0 0 248 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 217 194 0 0 145 155 1 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 10 0 2 0 0 0 168 0 0 0 255 255 255 255 7 0 4 0 0 0 0 0 data 21 0x40007 0x185b 0x20 0x0 0x160007 0xa33 0x88 0x419a 0x1d0005 0x335d 0x21bc90b0 0x43a 0x26eda90 0xa03 0x200007 0x3372 0x20 0xe28 0x2c0003 0x3372 0xffffffffffffff90 oops 2 10 javax/swing/text/StyleConstants 12 java/lang/String +ciMethodData javax/swing/text/StyleContext$SmallAttributeSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2 9360 orig 264 72 34 205 106 0 0 0 0 144 250 173 29 0 0 0 0 32 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 129 28 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 8 0 2 0 0 0 208 0 0 0 255 255 255 255 5 0 2 0 0 0 0 0 data 26 0x20005 0x0 0x20af6f30 0x152f 0x20af6fe0 0xe61 0x70007 0x15e9 0xa0 0xda7 0xb0005 0x0 0x20af6f30 0xb65 0x20af6fe0 0x242 0x100007 0xc70 0x50 0x137 0x150005 0x0 0x22045690 0x137 0x0 0x0 oops 5 2 javax/swing/text/html/StyleSheet$SmallConversionSet 4 javax/swing/text/StyleContext$SmallAttributeSet 12 javax/swing/text/html/StyleSheet$SmallConversionSet 14 javax/swing/text/StyleContext$SmallAttributeSet 22 javax/swing/text/StyleContext$NamedStyle +ciMethodData javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2 5439 orig 264 72 34 205 106 0 0 0 0 128 254 76 31 0 0 0 0 224 2 0 0 80 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 1 0 0 185 161 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 25 0 2 0 0 0 144 1 0 0 255 255 255 255 4 0 1 0 0 0 0 0 data 50 0x10004 0xfffffffffffff3d3 0x21bc90b0 0x73e 0x198367a0 0x3f 0x40007 0xc2d 0x150 0x80a 0xb0002 0x80a 0xf0004 0x0 0x21bc90b0 0x73e 0x20afa5b0 0xcc 0x120005 0x0 0x21e87730 0x80a 0x0 0x0 0x170007 0x760 0xc0 0xaa 0x1c0002 0xaa 0x210007 0xaa 0x90 0x0 0x280002 0x0 0x2c0004 0x0 0x0 0x0 0x0 0x0 0x300005 0x0 0x0 0x0 0x0 0x0 0x360002 0x1437 oops 5 2 javax/swing/text/StyleConstants 4 javax/swing/text/html/CSS$Attribute 14 javax/swing/text/StyleConstants 16 javax/swing/text/StyleConstants$ParagraphConstants 20 javax/swing/text/html/CSS +ciMethodData javax/swing/text/html/CSS styleConstantsKeyToCSSKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/CSS$Attribute; 2 7254 orig 264 72 34 205 106 0 0 0 0 48 235 75 31 0 0 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 0 0 145 218 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 96 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 12 0x40005 0x0 0x26eee60 0x1b52 0x0 0x0 0x70104 0x0 0x198367a0 0x469 0x0 0x0 oops 2 2 java/util/Hashtable 8 javax/swing/text/html/CSS$Attribute +ciMethodData javax/swing/text/View getDocument ()Ljavax/swing/text/Document; 2 14649 orig 264 72 34 205 106 0 0 0 0 128 133 169 29 0 0 0 0 120 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 47 1 0 0 81 192 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 48 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 6 0x40005 0x20e5 0x20080830 0xbed 0x200808e0 0xb38 oops 2 2 javax/swing/text/AbstractDocument$BranchElement 4 javax/swing/text/html/HTMLDocument$BlockElement +ciMethodData java/util/Hashtable clear ()V 1 24508 orig 264 72 34 205 106 0 0 0 0 16 130 178 22 0 0 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 8 0 0 81 5 0 0 113 58 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 6 0 2 0 0 0 104 0 0 0 255 255 255 255 7 0 22 0 0 0 0 0 data 13 0x160007 0xaa 0x68 0x74e 0x1c0104 0x0 0x0 0x0 0x0 0x0 0x1d0003 0x74e 0xffffffffffffffb0 oops 0 +ciMethodData java/util/HashMap tableSizeFor (I)I 2 5528 orig 264 72 34 205 106 0 0 0 0 248 100 189 22 0 0 0 0 152 1 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 130 1 0 0 177 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 8 0 2 0 0 0 112 0 0 0 255 255 255 255 7 0 37 0 0 0 0 0 data 14 0x250007 0x1408 0x38 0xe 0x290003 0xe 0x50 0x2f0007 0x1408 0x38 0x0 0x340003 0x0 0x18 oops 0 +ciMethod javax/swing/ImageIcon ()V 2009 1 247 0 -1 +ciMethod javax/swing/ImageIcon setImage (Ljava/awt/Image;)V 2009 1 247 0 -1 +ciMethodData java/util/Stack push (Ljava/lang/Object;)Ljava/lang/Object; 2 12898 orig 264 72 34 205 106 0 0 0 0 24 134 187 22 0 0 0 0 128 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 17 139 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 48 0 0 0 255 255 255 255 5 0 2 0 0 0 0 0 data 6 0x20005 0x0 0x2204bcb0 0x3162 0x0 0x0 oops 1 2 java/util/Stack +ciMethodData javax/swing/text/StyleContext getEmptySet ()Ljavax/swing/text/AttributeSet; 2 6943 orig 264 72 34 205 106 0 0 0 0 120 37 173 29 0 0 0 0 32 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 249 208 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0 +ciMethodData javax/swing/text/StyleContext$SmallAttributeSet getAttributeNames ()Ljava/util/Enumeration; 2 5391 orig 264 72 34 205 106 0 0 0 0 48 251 173 29 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 121 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 12 0 0 0 0 0 data 2 0xc0002 0x140f oops 0 +ciMethodData javax/swing/text/StyleContext$KeyEnumeration (Ljavax/swing/text/StyleContext;[Ljava/lang/Object;)V 2 5391 orig 264 72 34 205 106 0 0 0 0 192 148 174 29 0 0 0 0 64 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 121 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 6 0 0 0 0 0 data 2 0x60002 0x140f oops 0 +ciMethodData javax/swing/event/ChangeEvent (Ljava/lang/Object;)V 1 622 orig 264 72 34 205 106 0 0 0 0 24 189 158 29 0 0 0 0 56 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 0 0 0 201 15 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 255 255 255 255 2 0 2 0 0 0 0 0 data 2 0x20002 0x1f9 oops 0 +ciMethodData javax/swing/text/html/StyleSheet convertAttributeSet (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2 8890 orig 264 72 34 205 106 0 0 0 0 248 127 75 31 0 0 0 0 16 6 0 0 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 1 0 0 97 158 0 0 169 9 1 0 0 0 0 0 0 0 0 0 2 0 0 0 2 0 39 0 2 0 0 0 192 4 0 0 255 255 255 255 4 0 1 0 0 0 0 0 data 152 0x10004 0xffffffffffffec34 0x199221e0 0x3 0x19833e50 0x2 0x40007 0x0 0x70 0x13cc 0x80004 0xffffffffffffec34 0x199221e0 0x3 0x19833e50 0x2 0xb0007 0x13cc 0x20 0x0 0x110005 0x100 0x199221e0 0x1ba 0x19833e50 0x1112 0x180005 0x0 0x205f8b00 0x20f8 0x22045740 0x17e 0x1d0007 0xa2a 0x3c0 0x184c 0x210005 0x0 0x205f8b00 0x16ce 0x22045740 0x17e 0x280004 0xfffffffffffff156 0x1e771980 0x2 0x198367a0 0x2 0x2b0007 0xeaa 0x328 0x9a2 0x330002 0x9a2 0x390005 0x6e8 0x199221e0 0x1ba 0x1e774af0 0x100 0x420005 0x0 0x205f8b00 0x19af 0x22045740 0x27e 0x470007 0x9a2 0x298 0x128b 0x4c0005 0x0 0x205f8b00 0x110d 0x22045740 0x17e 0x580004 0xfffffffffffff717 0x1e771980 0x2 0x198367a0 0x2 0x5b0007 0x8e9 0x180 0x9a2 0x640004 0x0 0x21bc90b0 0x9a2 0x0 0x0 0x670005 0x0 0x21e87730 0x9a2 0x0 0x0 0x6e0007 0x9a2 0x100 0x0 0x740005 0x0 0x0 0x0 0x0 0x0 0x810004 0x0 0x0 0x0 0x0 0x0 0x860005 0x0 0x0 0x0 0x0 0x0 0x8d0007 0x0 0x50 0x0 0x960005 0x0 0x0 0x0 0x0 0x0 0x9d0007 0x0 0x80 0x128b 0xa70005 0xda0 0x199221e0 0x36d 0x1e774af0 0x17e 0xac0005 0x0 0x21bd3140 0x128b 0x0 0x0 0xb10003 0x128b 0xfffffffffffffd50 0xb70003 0xeaa 0xfffffffffffffc28 oops 25 2 javax/swing/text/html/HTMLDocument$TaggedAttributeSet 4 javax/swing/text/SimpleAttributeSet 12 javax/swing/text/html/HTMLDocument$TaggedAttributeSet 14 javax/swing/text/SimpleAttributeSet 22 javax/swing/text/html/HTMLDocument$TaggedAttributeSet 24 javax/swing/text/SimpleAttributeSet 28 java/util/Collections$3 30 javax/swing/text/StyleContext$KeyEnumeration 38 java/util/Collections$3 40 javax/swing/text/StyleContext$KeyEnumeration 44 javax/swing/text/html/HTML$Tag 46 javax/swing/text/html/CSS$Attribute 56 javax/swing/text/html/HTMLDocument$TaggedAttributeSet 58 javax/swing/text/html/HTMLDocument$RunElement 62 java/util/Collections$3 64 javax/swing/text/StyleContext$KeyEnumeration 72 java/util/Collections$3 74 javax/swing/text/StyleContext$KeyEnumeration 78 javax/swing/text/html/HTML$Tag 80 javax/swing/text/html/CSS$Attribute 88 javax/swing/text/StyleConstants 94 javax/swing/text/html/CSS 136 javax/swing/text/html/HTMLDocument$TaggedAttributeSet 138 javax/swing/text/html/HTMLDocument$RunElement 142 javax/swing/text/html/StyleSheet$LargeConversionSet +ciMethodData javax/swing/text/html/StyleSheet$LargeConversionSet (Ljavax/swing/text/html/StyleSheet;)V 2 2541 orig 264 72 34 205 106 0 0 0 0 224 108 77 31 0 0 0 0 56 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 78 0 0 0 249 76 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 255 255 255 255 2 0 6 0 0 0 0 0 data 2 0x60002 0x99f oops 0 +ciMethodData javax/swing/text/html/StyleSheet addAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2 5303 orig 264 72 34 205 106 0 0 0 0 96 122 75 31 0 0 0 0 248 1 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 1 0 0 113 157 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 160 0 0 0 255 255 255 255 4 0 1 0 0 0 0 0 data 20 0x10004 0xffffffffffffee07 0x19833e50 0x1 0x199221e0 0x1b5 0x40007 0x1b5 0x30 0x11f9 0xa0002 0x11f9 0x120005 0x0 0x1e76f040 0x13ac 0x19922c90 0x2 0x150002 0x13ae oops 4 2 javax/swing/text/SimpleAttributeSet 4 javax/swing/text/html/HTMLDocument$TaggedAttributeSet 14 javax/swing/text/html/StyleSheet 16 javax/swing/plaf/basic/BasicEditorPaneUI$StyleSheetUIResource +ciMethodData javax/swing/text/html/StyleSheet removeHTMLTags (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2 6052 orig 264 72 34 205 106 0 0 0 0 144 126 75 31 0 0 0 0 208 3 0 0 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 1 0 0 225 86 0 0 97 122 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 18 0 2 0 0 0 120 2 0 0 255 255 255 255 4 0 1 0 0 0 0 0 data 79 0x10004 0xfffffffffffff524 0x19833e50 0x75 0x1e774af0 0xc 0x40007 0x0 0x248 0xadc 0x80004 0xfffffffffffff524 0x19833e50 0x75 0x1e774af0 0xc 0xb0007 0x0 0x1f8 0xadc 0xf0005 0x0 0x19833e50 0xa5c 0x1e774af0 0x80 0x160005 0x0 0x205f8b00 0x18e7 0x22045740 0x141 0x1b0007 0xadc 0x178 0xf4c 0x1f0005 0x0 0x205f8b00 0xe8b 0x22045740 0xc1 0x280004 0xfffffffffffff518 0x198367a0 0x24 0x21bc90b0 0x464 0x2b0007 0xae8 0xe0 0x464 0x300004 0x0 0x21bc90b0 0x464 0x0 0x0 0x330002 0x464 0x3a0007 0x464 0x80 0x0 0x400005 0x0 0x0 0x0 0x0 0x0 0x450007 0x0 0x30 0x0 0x4c0002 0x0 0x500003 0xf4c 0xfffffffffffffe70 oops 13 2 javax/swing/text/SimpleAttributeSet 4 javax/swing/text/html/HTMLDocument$RunElement 12 javax/swing/text/SimpleAttributeSet 14 javax/swing/text/html/HTMLDocument$RunElement 22 javax/swing/text/SimpleAttributeSet 24 javax/swing/text/html/HTMLDocument$RunElement 28 java/util/Collections$3 30 javax/swing/text/StyleContext$KeyEnumeration 38 java/util/Collections$3 40 javax/swing/text/StyleContext$KeyEnumeration 44 javax/swing/text/html/CSS$Attribute 46 javax/swing/text/StyleConstants 54 javax/swing/text/StyleConstants +ciMethodData java/util/Vector copyInto ([Ljava/lang/Object;)V 2 5166 orig 264 72 34 205 106 0 0 0 0 152 29 187 22 0 0 0 0 96 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 113 153 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 11 0 0 0 0 0 data 2 0xb0002 0x132e oops 0 +ciMethodData javax/swing/text/StyleContext$NamedStyle (Ljavax/swing/text/StyleContext;Ljava/lang/String;Ljavax/swing/text/Style;)V 2 2833 orig 264 72 34 205 106 0 0 0 0 208 208 173 29 0 0 0 0 80 2 0 0 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 121 80 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 15 0 2 0 0 0 240 0 0 0 255 255 255 255 2 0 6 0 0 0 0 0 data 30 0x60002 0xa0f 0xe0002 0xa0f 0x1b0005 0x6 0x1e76f040 0xa01 0x21e87a00 0x8 0x220007 0x911 0x50 0xfe 0x270005 0x0 0x22045690 0xfe 0x0 0x0 0x2b0007 0xa0f 0x50 0x0 0x300005 0x0 0x0 0x0 0x0 0x0 oops 3 6 javax/swing/text/html/StyleSheet 8 javax/swing/text/StyleContext 16 javax/swing/text/StyleContext$NamedStyle +ciMethodData javax/swing/text/StyleContext$NamedStyle setName (Ljava/lang/String;)V 1 371 orig 264 72 34 205 106 0 0 0 0 32 212 173 29 0 0 0 0 160 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 105 0 0 0 81 8 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 80 0 0 0 255 255 255 255 7 0 1 0 0 0 0 0 data 10 0x10007 0x0 0x50 0x10a 0x90005 0x0 0x22045690 0x10a 0x0 0x0 oops 1 6 javax/swing/text/StyleContext$NamedStyle +ciMethodData javax/swing/text/StyleContext$NamedStyle setResolveParent (Ljavax/swing/text/AttributeSet;)V 1 0 orig 264 72 34 205 106 0 0 0 0 8 225 173 29 0 0 0 0 232 1 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 152 0 0 0 255 255 255 255 7 0 1 0 0 0 0 0 data 19 0x10007 0x0 0x68 0x0 0x90005 0x0 0x0 0x0 0x0 0x0 0xc0003 0x0 0x48 0x130005 0x0 0x0 0x0 0x0 0x0 oops 0 +ciMethodData javax/swing/text/StyleContext$NamedStyle removeAttribute (Ljava/lang/Object;)V 1 20 orig 264 72 34 205 106 0 0 0 0 240 222 173 29 0 0 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 105 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 96 0 0 0 255 255 255 255 5 0 12 0 0 0 0 0 data 12 0xc0005 0x0 0x1e76f040 0xd 0x0 0x0 0x130005 0x0 0x22045690 0xd 0x0 0x0 oops 2 2 javax/swing/text/html/StyleSheet 8 javax/swing/text/StyleContext$NamedStyle +ciMethodData javax/swing/text/StyleContext addStyle (Ljava/lang/String;Ljavax/swing/text/Style;)Ljavax/swing/text/Style; 2 2671 orig 264 72 34 205 106 0 0 0 0 232 24 173 29 0 0 0 0 184 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 121 75 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 96 0 0 0 255 255 255 255 2 0 7 0 0 0 0 0 data 12 0x70002 0x96f 0xc0007 0x873 0x50 0xfc 0x150005 0x0 0x22045690 0xfc 0x0 0x0 oops 1 8 javax/swing/text/StyleContext$NamedStyle +ciMethodData javax/swing/text/StyleContext$NamedStyle addAttributes (Ljavax/swing/text/AttributeSet;)V 2 2661 orig 264 72 34 205 106 0 0 0 0 72 222 173 29 0 0 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 9 64 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 96 0 0 0 255 255 255 255 5 0 12 0 0 0 0 0 data 12 0xc0005 0x0 0x1e76f040 0x801 0x0 0x0 0x130005 0x0 0x22045690 0x801 0x0 0x0 oops 2 2 javax/swing/text/html/StyleSheet 8 javax/swing/text/StyleContext$NamedStyle +ciMethodData javax/swing/text/SimpleAttributeSet getResolveParent ()Ljavax/swing/text/AttributeSet; 2 1407 orig 264 72 34 205 106 0 0 0 0 232 172 173 29 0 0 0 0 168 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 249 41 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 96 0 0 0 255 255 255 255 5 0 7 0 0 0 0 0 data 12 0x70005 0x0 0x1f1d5e60 0x53f 0x0 0x0 0xa0104 0x0 0x0 0x0 0x0 0x0 oops 1 2 java/util/LinkedHashMap +ciMethodData javax/swing/text/html/HTML getTagForStyleConstantsKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/HTML$Tag; 2 1828 orig 264 72 34 205 106 0 0 0 0 136 225 74 31 0 0 0 0 168 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 0 0 0 145 49 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 96 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 12 0x40005 0x0 0x26eee60 0x632 0x0 0x0 0x70104 0x0 0x0 0x0 0x0 0x0 oops 1 2 java/util/Hashtable +ciMethodData javax/swing/text/html/ImageView sync ()V 2 5451 orig 264 72 34 205 106 0 0 0 0 240 166 82 31 0 0 0 0 224 1 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 73 162 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 14 0 2 0 0 0 152 0 0 0 255 255 255 255 7 0 9 0 0 0 0 0 data 19 0x90007 0x13e9 0x30 0x60 0xd0002 0x60 0x190007 0x1386 0x68 0xc3 0x300003 0xc3 0x18 0x390005 0x0 0x1e8189c0 0xc3 0x0 0x0 oops 1 15 javax/swing/text/html/ImageView +ciMethodData javax/swing/text/html/ImageView refreshImage ()V 1 252 orig 264 72 34 205 106 0 0 0 0 80 168 82 31 0 0 0 0 168 1 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 169 7 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 128 0 0 0 255 255 255 255 3 0 42 0 0 0 0 0 data 16 0x2a0003 0xf5 0x18 0x330002 0xf5 0x370002 0xf5 0x4c0003 0xf5 0x18 0x540003 0xf5 0x30 0x6d0003 0x0 0x18 oops 0 +ciMethodData javax/swing/text/html/ImageView setPropertiesFromAttributes ()V 1 526 orig 264 72 34 205 106 0 0 0 0 112 151 82 31 0 0 0 0 144 5 0 0 24 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 25 16 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 32 0 2 0 0 0 72 4 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 137 0x10005 0x0 0x1e8189c0 0x1f9 0x1e7748e0 0xa 0x80005 0x0 0x1e76f040 0x203 0x0 0x0 0x140002 0x203 0x170007 0x203 0x38 0x0 0x1b0003 0x0 0x18 0x1f0002 0x203 0x2d0002 0x203 0x440002 0x203 0x560005 0x0 0x1e8189c0 0x1f9 0x1e7748e0 0xa 0x590004 0x0 0x1e774990 0x1f9 0x1e774a40 0xa 0x5d0005 0x0 0x1e8189c0 0x1f9 0x1e7748e0 0xa 0x600005 0x0 0x1e774990 0x1f9 0x1e774a40 0xa 0x690005 0x0 0x1e8189c0 0x1f9 0x1e7748e0 0xa 0x6c0005 0x0 0x1e774af0 0x203 0x0 0x0 0x760005 0x0 0x1e774af0 0x203 0x0 0x0 0x820007 0x1dd 0x108 0x26 0x860005 0x0 0x26eda90 0x26 0x0 0x0 0x8d0005 0x0 0x26eda90 0x26 0x0 0x0 0x900007 0x26 0x38 0x0 0x980003 0x0 0x68 0x9e0005 0x0 0x26eda90 0x26 0x0 0x0 0xa10007 0x26 0x20 0x0 0xae0005 0x0 0x1e774af0 0x203 0x0 0x0 0xb30104 0x0 0x0 0x0 0x0 0x0 0xba0007 0x203 0xa0 0x0 0xc20005 0x0 0x0 0x0 0x0 0x0 0xc70007 0x0 0x50 0x0 0xdc0003 0x0 0x18 0xe70003 0x0 0x30 0xfe0003 0x203 0x18 oops 19 2 javax/swing/text/html/ImageView 4 org/mage/card/arcane/UI$1$1$1 8 javax/swing/text/html/StyleSheet 29 javax/swing/text/html/ImageView 31 org/mage/card/arcane/UI$1$1$1 35 javax/swing/plaf/basic/BasicHTML$BasicDocument 37 javax/swing/text/html/HTMLDocument 41 javax/swing/text/html/ImageView 43 org/mage/card/arcane/UI$1$1$1 47 javax/swing/plaf/basic/BasicHTML$BasicDocument 49 javax/swing/text/html/HTMLDocument 53 javax/swing/text/html/ImageView 55 org/mage/card/arcane/UI$1$1$1 59 javax/swing/text/html/HTMLDocument$RunElement 65 javax/swing/text/html/HTMLDocument$RunElement 75 java/lang/String 81 java/lang/String 94 java/lang/String 104 javax/swing/text/html/HTMLDocument$RunElement +ciMethodData javax/swing/text/AbstractDocument$AbstractElement getAttributeNames ()Ljava/util/Enumeration; 2 4255 orig 264 72 34 205 106 0 0 0 0 216 76 174 29 0 0 0 0 120 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 132 1 0 0 217 120 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 48 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 6 0x40005 0x0 0x20af6f30 0xf1b 0x0 0x0 oops 1 2 javax/swing/text/html/StyleSheet$SmallConversionSet +ciMethodData javax/swing/text/html/ImageView getImage ()Ljava/awt/Image; 2 7073 orig 264 72 34 205 106 0 0 0 0 152 145 82 31 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28 1 0 0 41 212 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 2 0x10002 0x1a85 oops 0 +ciMethodData javax/swing/text/html/ImageView getPreferredSpan (I)F 2 5416 orig 264 72 34 205 106 0 0 0 0 32 159 82 31 0 0 0 0 144 4 0 0 80 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 65 161 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 36 0 2 0 0 0 64 3 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 104 0x10002 0x1428 0x50007 0x2e7 0x50 0x1141 0xf0007 0x0 0x30 0x1141 0x140002 0x1141 0x2a0007 0x0 0x50 0x2e7 0x360007 0x0 0x30 0x2e7 0x3b0002 0x2e7 0x500005 0x0 0x0 0x0 0x0 0x0 0x550007 0x0 0x110 0x0 0x590008 0x6 0x0 0x40 0x0 0x40 0x0 0x40 0x9c0002 0x0 0xa10005 0x0 0x0 0x0 0x0 0x0 0xa50005 0x0 0x0 0x0 0x0 0x0 0xa80005 0x0 0x0 0x0 0x0 0x0 0xab0002 0x0 0xb00002 0x0 0xb80007 0x0 0x50 0x0 0xbd0005 0x0 0x0 0x0 0x0 0x0 0xc30008 0x6 0x0 0x40 0x0 0x40 0x0 0x40 0x10a0002 0x0 0x10f0005 0x0 0x0 0x0 0x0 0x0 0x1130005 0x0 0x0 0x0 0x0 0x0 0x1160005 0x0 0x0 0x0 0x0 0x0 0x1190002 0x0 oops 0 +ciMethodData javax/swing/text/html/ImageView getPreferredSpanFromAltView (I)F 2 5731 orig 264 72 34 205 106 0 0 0 0 88 164 82 31 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 33 171 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 176 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 22 0x10005 0x0 0x1e8189c0 0x14fb 0x1e7748e0 0x69 0x40007 0x1564 0x80 0x0 0x80002 0x0 0xd0007 0x0 0x50 0x0 0x120005 0x0 0x0 0x0 0x0 0x0 oops 2 2 javax/swing/text/html/ImageView 4 org/mage/card/arcane/UI$1$1$1 +ciMethodData javax/swing/text/html/MuxingAttributeSet ()V 2 2270 orig 264 72 34 205 106 0 0 0 0 8 255 82 31 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 241 62 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 2 0x10002 0x7de oops 0 +ciMethodData javax/swing/text/html/StyleSheet translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2 2275 orig 264 72 34 205 106 0 0 0 0 168 120 75 31 0 0 0 0 224 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 25 63 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 5 0 2 0 0 0 144 0 0 0 255 255 255 255 5 0 5 0 0 0 0 0 data 18 0x50005 0x0 0x21e87730 0x7e3 0x0 0x0 0xc0005 0x0 0x1e76f040 0x7e3 0x0 0x0 0x120005 0x0 0x22045690 0x7e3 0x0 0x0 oops 3 2 javax/swing/text/html/CSS 8 javax/swing/text/html/StyleSheet 14 javax/swing/text/StyleContext$NamedStyle +ciMethodData javax/swing/text/html/CSS getHTMLTag (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/HTML$Tag; 2 2408 orig 264 72 34 205 106 0 0 0 0 56 7 76 31 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 65 67 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 176 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 22 0x40005 0x0 0x200808e0 0x518 0x1e774af0 0x350 0xb0004 0x0 0x1e771980 0x868 0x0 0x0 0xe0007 0x0 0x50 0x868 0x120004 0x0 0x1e771980 0x868 0x0 0x0 oops 4 2 javax/swing/text/html/HTMLDocument$BlockElement 4 javax/swing/text/html/HTMLDocument$RunElement 8 javax/swing/text/html/HTML$Tag 18 javax/swing/text/html/HTML$Tag +ciMethodData javax/swing/text/html/CSS translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2 2408 orig 264 72 34 205 106 0 0 0 0 32 243 75 31 0 0 0 0 24 7 0 0 48 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 65 67 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 72 0 2 0 0 0 200 5 0 0 255 255 255 255 2 0 4 0 0 0 0 0 data 185 0x40002 0x868 0x90004 0x0 0x200808e0 0x518 0x1e774af0 0x350 0xf0002 0x868 0x190007 0x9c 0x40 0x7cc 0x210007 0x7cc 0x2c8 0x0 0x250005 0x0 0x200808e0 0x9c 0x0 0x0 0x2a0005 0x0 0x200808e0 0x9c 0x0 0x0 0x2f0005 0x0 0x200808e0 0x9c 0x0 0x0 0x380002 0x9c 0x3f0007 0x9c 0x30 0x0 0x490002 0x0 0x510005 0x0 0x200808e0 0x9c 0x0 0x0 0x560004 0x0 0x26eda90 0x9c 0x0 0x0 0x5d0007 0x0 0x178 0x9c 0x660005 0x0 0x21e87730 0x9c 0x0 0x0 0x690004 0x0 0x198378c0 0x9c 0x0 0x0 0x770007 0x9c 0x38 0x0 0x7b0003 0x0 0x18 0x8c0005 0x0 0x19833e50 0x9c 0x0 0x0 0x970005 0x0 0x19833e50 0x9c 0x0 0x0 0xa20005 0x0 0x19833e50 0x9c 0x0 0x0 0xad0005 0x0 0x19833e50 0x9c 0x0 0x0 0xb30005 0x0 0x200808e0 0x518 0x1e774af0 0x350 0xb80007 0x518 0x48 0x350 0xbe0002 0x350 0xc10003 0x350 0x28 0xc90002 0x518 0xd10007 0x868 0x208 0x0 0xd80005 0x0 0x0 0x0 0x0 0x0 0xe10007 0x0 0x138 0x0 0xe80005 0x0 0x0 0x0 0x0 0x0 0xeb0007 0x0 0x70 0x0 0xf20005 0x0 0x0 0x0 0x0 0x0 0xf50007 0x0 0x98 0x0 0xfe0005 0x0 0x0 0x0 0x0 0x0 0x1070005 0x0 0x0 0x0 0x0 0x0 0x10c0003 0x0 0x98 0x1130005 0x0 0x0 0x0 0x0 0x0 0x11c0007 0x0 0x50 0x0 0x1250005 0x0 0x0 0x0 0x0 0x0 oops 15 4 javax/swing/text/html/HTMLDocument$BlockElement 6 javax/swing/text/html/HTMLDocument$RunElement 20 javax/swing/text/html/HTMLDocument$BlockElement 26 javax/swing/text/html/HTMLDocument$BlockElement 32 javax/swing/text/html/HTMLDocument$BlockElement 46 javax/swing/text/html/HTMLDocument$BlockElement 52 java/lang/String 62 javax/swing/text/html/CSS 68 javax/swing/text/html/CSS$LengthValue 81 javax/swing/text/SimpleAttributeSet 87 javax/swing/text/SimpleAttributeSet 93 javax/swing/text/SimpleAttributeSet 99 javax/swing/text/SimpleAttributeSet 105 javax/swing/text/html/HTMLDocument$BlockElement 107 javax/swing/text/html/HTMLDocument$RunElement +ciMethodData javax/swing/text/html/CSS getTableBorder (Ljavax/swing/text/AttributeSet;)I 1 234 orig 264 72 34 205 106 0 0 0 0 232 243 75 31 0 0 0 0 40 2 0 0 176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81 7 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 224 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 28 0x40005 0x0 0x200808e0 0xea 0x0 0x0 0x90004 0x0 0x26eda90 0xea 0x0 0x0 0x100007 0x0 0x70 0xea 0x160005 0xea 0x0 0x0 0x0 0x0 0x190007 0xea 0x20 0x0 0x1f0002 0xea oops 2 2 javax/swing/text/html/HTMLDocument$BlockElement 8 java/lang/String +ciMethodData javax/swing/text/html/CSS translateAttribute (Ljavax/swing/text/html/HTML$Attribute;Ljava/lang/String;Ljavax/swing/text/MutableAttributeSet;)V 1 353 orig 264 72 34 205 106 0 0 0 0 176 4 76 31 0 0 0 0 104 2 0 0 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 0 0 0 121 10 0 0 121 10 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 14 0 2 0 0 0 8 1 0 0 255 255 255 255 2 0 2 0 0 0 0 0 data 33 0x20002 0x14f 0x90007 0x0 0x40 0x14f 0xd0007 0x14f 0x20 0x0 0x210007 0x14f 0xb8 0x14f 0x2f0005 0x0 0x21e87730 0x14f 0x0 0x0 0x360007 0x0 0x50 0x14f 0x3e0005 0x0 0x19833e50 0x14f 0x0 0x0 0x460003 0x14f 0xffffffffffffff60 oops 2 16 javax/swing/text/html/CSS 26 javax/swing/text/SimpleAttributeSet +ciMethodData javax/swing/text/html/CSS getInternalCSSValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 1 973 orig 264 72 34 205 106 0 0 0 0 152 234 75 31 0 0 0 0 128 2 0 0 176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 0 0 0 169 22 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 40 1 0 0 255 255 255 255 5 0 5 0 0 0 0 0 data 37 0x50005 0x0 0x26eee60 0x2d5 0x0 0x0 0x80004 0x0 0x20603b60 0x7c 0x20603c10 0x7c 0xe0005 0x1dd 0x20603b60 0x7c 0x20603c10 0x7c 0x150007 0x0 0x38 0x2d5 0x1a0003 0x2d5 0x78 0x1f0005 0x0 0x0 0x0 0x0 0x0 0x220005 0x0 0x0 0x0 0x0 0x0 oops 5 2 java/util/Hashtable 8 javax/swing/text/html/CSS$FontFamily 10 javax/swing/text/html/CSS$FontSize 14 javax/swing/text/html/CSS$FontFamily 16 javax/swing/text/html/CSS$FontSize +ciMethodData javax/swing/text/html/CSS translateEmbeddedAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/MutableAttributeSet;)V 2 3464 orig 264 72 34 205 106 0 0 0 0 64 2 76 31 0 0 0 0 168 4 0 0 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 1 0 0 153 26 0 0 129 99 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 18 0 2 0 0 0 80 3 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 106 0x10005 0x0 0x1e774af0 0x353 0x0 0x0 0xb0005 0x0 0x1e774af0 0x353 0x0 0x0 0x130007 0x353 0x30 0x0 0x1c0002 0x0 0x200005 0x0 0x22045740 0xfc3 0x0 0x0 0x250007 0x353 0x290 0xc70 0x290005 0x0 0x22045740 0xc70 0x0 0x0 0x320004 0xfffffffffffff3c3 0x26eda90 0x30 0x21bc90b0 0xf0 0x350007 0xc3d 0x148 0x33 0x3a0004 0x0 0x1e771980 0x33 0x0 0x0 0x420005 0x0 0x1e774af0 0x33 0x0 0x0 0x4b0007 0x0 0xb0 0x33 0x500004 0x0 0x19833e50 0x33 0x0 0x0 0x530007 0x0 0x60 0x33 0x5b0004 0x0 0x19833e50 0x33 0x0 0x0 0x5f0002 0x33 0x620003 0x33 0xc8 0x670004 0xfffffffffffff3f6 0x26eda90 0x30 0x21bc90b0 0xf0 0x6a0007 0xc0a 0x80 0x33 0x730005 0x0 0x1e774af0 0x33 0x0 0x0 0x780005 0x0 0x19833e50 0x33 0x0 0x0 0x7d0003 0xc70 0xfffffffffffffd58 oops 14 2 javax/swing/text/html/HTMLDocument$RunElement 8 javax/swing/text/html/HTMLDocument$RunElement 20 javax/swing/text/StyleContext$KeyEnumeration 30 javax/swing/text/StyleContext$KeyEnumeration 36 java/lang/String 38 javax/swing/text/StyleConstants 46 javax/swing/text/html/HTML$Tag 52 javax/swing/text/html/HTMLDocument$RunElement 62 javax/swing/text/SimpleAttributeSet 72 javax/swing/text/SimpleAttributeSet 83 java/lang/String 85 javax/swing/text/StyleConstants 93 javax/swing/text/html/HTMLDocument$RunElement 99 javax/swing/text/SimpleAttributeSet +ciMethodData javax/swing/text/html/CSS translateAttributes (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/AttributeSet;Ljavax/swing/text/MutableAttributeSet;)V 2 2456 orig 264 72 34 205 106 0 0 0 0 200 3 76 31 0 0 0 0 88 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 0 0 0 201 42 0 0 41 69 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 43 0 2 0 0 0 248 4 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 159 0x10005 0x0 0x200808e0 0x526 0x19833e50 0x33 0xa0005 0x0 0x22045740 0xdc0 0x205f8b00 0x3e 0xf0007 0x559 0x498 0x8a5 0x140005 0x0 0x22045740 0x89a 0x205f8b00 0xb 0x1d0004 0xfffffffffffff946 0x21bc90b0 0x85 0x198367a0 0x4 0x200007 0x6ba 0x350 0x1eb 0x250004 0x0 0x2185e270 0x1eb 0x0 0x0 0x2f0007 0x19d 0x168 0x4e 0x360005 0x0 0x200808e0 0x4e 0x0 0x0 0x3b0004 0x0 0x26eda90 0x4e 0x0 0x0 0x420007 0x0 0xd0 0x4e 0x480002 0x4e 0x4f0007 0x0 0xa0 0x4e 0x570005 0x0 0x21e87730 0x4e 0x0 0x0 0x5e0007 0x0 0x50 0x4e 0x660005 0x0 0x19833e50 0x4e 0x0 0x0 0x6b0003 0x4e 0x198 0x730007 0x19d 0x68 0x0 0x780002 0x0 0x7b0007 0x0 0x38 0x0 0x7e0003 0x0 0x130 0x850007 0x4f 0xa8 0x14e 0x8d0007 0x100 0x88 0x4e 0x910002 0x4e 0x980007 0x4e 0x40 0x0 0xa10002 0x0 0xa50002 0x0 0xa80003 0x4e 0x88 0xb10005 0x0 0x200808e0 0x144 0x19833e50 0xb 0xb60004 0x0 0x26eda90 0x14f 0x0 0x0 0xba0002 0x14f 0xbd0003 0x1eb 0xc8 0xc20004 0xfffffffffffffac2 0x21bc90b0 0x85 0x198367a0 0x17c 0xc50007 0x53e 0x80 0x17c 0xce0005 0x0 0x200808e0 0x17c 0x0 0x0 0xd30005 0x0 0x19833e50 0x17c 0x0 0x0 0xd80003 0x8a5 0xfffffffffffffb50 oops 20 2 javax/swing/text/html/HTMLDocument$BlockElement 4 javax/swing/text/SimpleAttributeSet 8 javax/swing/text/StyleContext$KeyEnumeration 10 java/util/Collections$3 18 javax/swing/text/StyleContext$KeyEnumeration 20 java/util/Collections$3 24 javax/swing/text/StyleConstants 26 javax/swing/text/html/CSS$Attribute 34 javax/swing/text/html/HTML$Attribute 44 javax/swing/text/html/HTMLDocument$BlockElement 50 java/lang/String 66 javax/swing/text/html/CSS 76 javax/swing/text/SimpleAttributeSet 119 javax/swing/text/html/HTMLDocument$BlockElement 121 javax/swing/text/SimpleAttributeSet 125 java/lang/String 136 javax/swing/text/StyleConstants 138 javax/swing/text/html/CSS$Attribute 146 javax/swing/text/html/HTMLDocument$BlockElement 152 javax/swing/text/SimpleAttributeSet +ciMethodData javax/swing/text/StyleContext$NamedStyle getAttributeCount ()I 2 2325 orig 264 72 34 205 106 0 0 0 0 16 216 173 29 0 0 0 0 120 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 1 0 0 129 62 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 48 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 6 0x40005 0x0 0x20af6f30 0x7d0 0x0 0x0 oops 1 2 javax/swing/text/html/StyleSheet$SmallConversionSet +ciMethodData javax/swing/text/html/StyleSheet getRule (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/Element;)Ljavax/swing/text/Style; 2 7904 orig 264 72 34 205 106 0 0 0 0 216 108 75 31 0 0 0 0 112 10 0 0 136 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 2 0 0 1 43 0 0 49 223 0 0 0 0 0 0 0 0 0 0 2 0 0 0 2 0 132 0 2 0 0 0 24 9 0 0 255 255 255 255 2 0 0 0 0 0 0 0 data 291 0x2 0x560 0x50005 0x0 0x21bc4ff0 0x560 0x0 0x0 0xf0007 0x560 0x98 0x10a3 0x160005 0x0 0x21bc53a0 0x10a3 0x0 0x0 0x1b0005 0x0 0x200808e0 0x1070 0x1e774af0 0x33 0x220003 0x10a3 0xffffffffffffff80 0x270005 0x0 0x21bc53a0 0x560 0x0 0x0 0x2d0005 0x0 0x21bc4ff0 0x560 0x0 0x0 0x3b0007 0x560 0x380 0xb43 0x420005 0x0 0x21bc53a0 0xb43 0x0 0x0 0x450004 0x0 0x200808e0 0xb43 0x0 0x0 0x4a0005 0x0 0x200808e0 0xb43 0x0 0x0 0x560005 0x0 0x200808e0 0xb43 0x0 0x0 0x5f0005 0x0 0x1e771980 0xb43 0x0 0x0 0x680005 0x8e 0x17482200 0xab5 0x0 0x0 0x6e0007 0x0 0x1f8 0xb43 0x760005 0x0 0x200808e0 0xb43 0x0 0x0 0x7b0007 0xb43 0xc8 0x0 0x820005 0x0 0x0 0x0 0x0 0x0 0x8d0005 0x0 0x0 0x0 0x0 0x0 0x920005 0x0 0x0 0x0 0x0 0x0 0x960003 0x0 0xf8 0x9e0005 0x0 0x200808e0 0xb43 0x0 0x0 0xa30007 0xb43 0xb0 0x0 0xaa0005 0x0 0x0 0x0 0x0 0x0 0xb50005 0x0 0x0 0x0 0x0 0x0 0xba0005 0x0 0x0 0x0 0x0 0x0 0xc20005 0x8e 0x17482200 0xab5 0x0 0x0 0xc90003 0xb43 0xfffffffffffffc98 0xcf0005 0x0 0x1e771980 0x560 0x0 0x0 0xd20005 0x8e 0x17482200 0x4d2 0x0 0x0 0xd90005 0x0 0x21bc53a0 0x560 0x0 0x0 0xdc0004 0x0 0x200808e0 0x52d 0x1e774af0 0x33 0xe10005 0x0 0x200808e0 0x52d 0x1e774af0 0x33 0xe90005 0x0 0x200808e0 0x52d 0x1e774af0 0x33 0xee0007 0x52d 0xe8 0x33 0xf40005 0x0 0x1e774af0 0x33 0x0 0x0 0xfd0004 0x0 0x19833e50 0x33 0x0 0x0 0x1000007 0x0 0x68 0x33 0x1050004 0x0 0x19833e50 0x33 0x0 0x0 0x10a0003 0x33 0x18 0x1120007 0x0 0x1f8 0x560 0x11a0005 0x0 0x200808e0 0x52d 0x19833e50 0x33 0x11f0007 0x560 0xc8 0x0 0x1260005 0x0 0x0 0x0 0x0 0x0 0x1310005 0x0 0x0 0x0 0x0 0x0 0x1360005 0x0 0x0 0x0 0x0 0x0 0x13a0003 0x0 0xf8 0x1420005 0x0 0x200808e0 0x52d 0x19833e50 0x33 0x1470007 0x560 0xb0 0x0 0x14e0005 0x0 0x0 0x0 0x0 0x0 0x1590005 0x0 0x0 0x0 0x0 0x0 0x15e0005 0x0 0x0 0x0 0x0 0x0 0x1650005 0x8e 0x17482200 0x4d2 0x0 0x0 0x16b0002 0x560 0x1750002 0x560 0x17e0002 0x0 oops 32 4 javax/swing/text/html/StyleSheet$SearchBuffer 14 java/util/Vector 20 javax/swing/text/html/HTMLDocument$BlockElement 22 javax/swing/text/html/HTMLDocument$RunElement 29 java/util/Vector 35 javax/swing/text/html/StyleSheet$SearchBuffer 45 java/util/Vector 51 javax/swing/text/html/HTMLDocument$BlockElement 57 javax/swing/text/html/HTMLDocument$BlockElement 63 javax/swing/text/html/HTMLDocument$BlockElement 69 javax/swing/text/html/HTML$Tag 75 java/lang/StringBuffer 85 javax/swing/text/html/HTMLDocument$BlockElement 116 javax/swing/text/html/HTMLDocument$BlockElement 144 java/lang/StringBuffer 153 javax/swing/text/html/HTML$Tag 159 java/lang/StringBuffer 165 java/util/Vector 171 javax/swing/text/html/HTMLDocument$BlockElement 173 javax/swing/text/html/HTMLDocument$RunElement 177 javax/swing/text/html/HTMLDocument$BlockElement 179 javax/swing/text/html/HTMLDocument$RunElement 183 javax/swing/text/html/HTMLDocument$BlockElement 185 javax/swing/text/html/HTMLDocument$RunElement 193 javax/swing/text/html/HTMLDocument$RunElement 199 javax/swing/text/SimpleAttributeSet 209 javax/swing/text/SimpleAttributeSet 222 javax/swing/text/html/HTMLDocument$BlockElement 224 javax/swing/text/SimpleAttributeSet 253 javax/swing/text/html/HTMLDocument$BlockElement 255 javax/swing/text/SimpleAttributeSet 281 java/lang/StringBuffer +ciMethodData javax/swing/text/html/MuxingAttributeSet setAttributes ([Ljavax/swing/text/AttributeSet;)V 2 2332 orig 264 72 34 205 106 0 0 0 0 160 255 82 31 0 0 0 0 40 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 1 0 0 185 62 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0 +ciMethodData javax/swing/text/html/ImageView getIntAttr (Ljavax/swing/text/html/HTML$Attribute;I)I 2 2242 orig 264 72 34 205 106 0 0 0 0 8 166 82 31 0 0 0 0 216 2 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 17 62 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 14 0 2 0 0 0 128 1 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 48 0x10005 0x0 0x1e8189c0 0x79a 0x1e7748e0 0x28 0x40005 0x0 0x1e774af0 0x7c2 0x0 0x0 0xc0005 0x0 0x1e774af0 0x7c2 0x0 0x0 0x110007 0x5e2 0xf0 0x1e0 0x160005 0x0 0x1e774af0 0x1e0 0x0 0x0 0x1b0004 0x0 0x26eda90 0x1e0 0x0 0x0 0x220007 0x1e0 0x38 0x0 0x280003 0x0 0x50 0x2e0002 0x1e0 0x310002 0x1e0 0x360003 0x1e0 0x18 oops 6 2 javax/swing/text/html/ImageView 4 org/mage/card/arcane/UI$1$1$1 8 javax/swing/text/html/HTMLDocument$RunElement 14 javax/swing/text/html/HTMLDocument$RunElement 24 javax/swing/text/html/HTMLDocument$RunElement 30 java/lang/String +ciMethodData javax/swing/text/html/CSS getCssAlignAttribute (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/CSS$Attribute; 1 78 orig 264 72 34 205 106 0 0 0 0 136 6 76 31 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 113 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0 +ciMethodData javax/swing/text/html/CSS getCssValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 1 562 orig 264 72 34 205 106 0 0 0 0 88 5 76 31 0 0 0 0 232 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 53 0 0 0 233 15 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 144 0 0 0 255 255 255 255 5 0 5 0 0 0 0 0 data 18 0x50005 0x0 0x26eee60 0x1fd 0x0 0x0 0x80004 0x0 0x198378c0 0xfc 0x21bd17e0 0xa8 0xe0005 0x59 0x198378c0 0xfc 0x21bd17e0 0xa8 oops 5 2 java/util/Hashtable 8 javax/swing/text/html/CSS$LengthValue 10 javax/swing/text/html/CSS$StringValue 14 javax/swing/text/html/CSS$LengthValue 16 javax/swing/text/html/CSS$StringValue +ciMethodData javax/swing/text/html/ImageView getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 1 526 orig 264 72 34 205 106 0 0 0 0 104 148 82 31 0 0 0 0 216 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 1 0 0 17 8 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 144 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 18 0x10005 0x0 0x1e8189c0 0xf8 0x1e7748e0 0xa 0x40004 0x0 0x1e774990 0xf8 0x1e774a40 0xa 0x90005 0x0 0x1e774990 0xf8 0x1e774a40 0xa oops 6 2 javax/swing/text/html/ImageView 4 org/mage/card/arcane/UI$1$1$1 8 javax/swing/plaf/basic/BasicHTML$BasicDocument 10 javax/swing/text/html/HTMLDocument 14 javax/swing/plaf/basic/BasicHTML$BasicDocument 16 javax/swing/text/html/HTMLDocument +ciMethodData javax/swing/text/html/ImageView isLink ()Z 1 556 orig 264 72 34 205 106 0 0 0 0 240 162 82 31 0 0 0 0 88 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 1 0 0 1 9 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 56 0 0 0 255 255 255 255 7 0 7 0 0 0 0 0 data 7 0x70007 0x120 0x38 0x0 0xb0003 0x0 0x18 oops 0 +ciMethodData javax/swing/text/html/ImageView getAttributes ()Ljavax/swing/text/AttributeSet; 1 556 orig 264 72 34 205 106 0 0 0 0 0 149 82 31 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 1 0 0 1 9 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 2 0x10002 0x120 oops 0 +ciMethodData javax/swing/text/html/CSS getCssAttribute (Ljavax/swing/text/html/HTML$Attribute;)[Ljavax/swing/text/html/CSS$Attribute; 1 353 orig 264 72 34 205 106 0 0 0 0 240 5 76 31 0 0 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 3 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 96 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 12 0x40005 0x0 0x26eee60 0x60 0x0 0x0 0x70004 0x0 0x198dedd0 0x60 0x0 0x0 oops 2 2 java/util/Hashtable 8 [Ljavax/swing/text/html/CSS$Attribute; +ciMethodData javax/swing/text/html/ImageView loadImage ()V 1 272 orig 264 72 34 205 106 0 0 0 0 64 169 82 31 0 0 0 0 176 3 0 0 120 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 129 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 26 0 2 0 0 0 104 2 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 77 0x10005 0x0 0x1e8189c0 0x10 0x0 0x0 0x80007 0x0 0x238 0x10 0xc0005 0x0 0x1e8189c0 0x10 0x0 0x0 0x110005 0x0 0x1e774990 0x10 0x0 0x0 0x160104 0x0 0x0 0x0 0x0 0x0 0x1b0007 0x10 0x98 0x0 0x200005 0x0 0x0 0x0 0x0 0x0 0x230004 0x0 0x0 0x0 0x0 0x0 0x270003 0x0 0x108 0x2a0002 0x10 0x2e0005 0x0 0x1f2acb50 0x10 0x0 0x0 0x330007 0x0 0xb0 0x10 0x370005 0x0 0x1e8189c0 0x10 0x0 0x0 0x3a0007 0x0 0x60 0x10 0x410002 0x10 0x490005 0x0 0x2002f9c0 0x10 0x0 0x0 oops 6 2 javax/swing/text/html/ImageView 12 javax/swing/text/html/ImageView 18 javax/swing/plaf/basic/BasicHTML$BasicDocument 51 sun/awt/windows/WToolkit 61 javax/swing/text/html/ImageView 73 javax/swing/ImageIcon +ciMethodData javax/swing/text/html/ImageView updateImageSize ()V 1 272 orig 264 72 34 205 106 0 0 0 0 56 171 82 31 0 0 0 0 88 5 0 0 232 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 129 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 62 0 2 0 0 0 16 4 0 0 255 255 255 255 5 0 7 0 0 0 0 0 data 130 0x70005 0x0 0x1e8189c0 0x10 0x0 0x0 0xe0007 0x0 0x3d0 0x10 0x120005 0x0 0x1e8189c0 0x10 0x0 0x0 0x190005 0x0 0x1e774af0 0x10 0x0 0x0 0x250002 0x10 0x2a0007 0x0 0x20 0x10 0x360002 0x10 0x3b0007 0x0 0x20 0x10 0x440007 0x10 0x70 0x0 0x4d0005 0x0 0x0 0x0 0x0 0x0 0x520007 0x0 0x20 0x0 0x590007 0x10 0x70 0x0 0x620005 0x0 0x0 0x0 0x0 0x0 0x670007 0x0 0x20 0x0 0x710007 0x0 0x78 0x10 0x740002 0x10 0x7f0005 0x0 0x1f2acb50 0x10 0x0 0x0 0x830003 0x10 0x58 0x860002 0x0 0x910005 0x0 0x0 0x0 0x0 0x0 0xa10007 0x0 0xb8 0x10 0xa80007 0x10 0x40 0x0 0xaf0007 0x0 0x20 0x0 0xbd0007 0x10 0x40 0x0 0xc40007 0x0 0x78 0x0 0xcc0003 0x10 0x58 0xd60007 0x0 0x20 0x0 0xe40007 0x0 0x20 0x0 0x1050003 0x10 0x18 0x1120007 0x10 0x30 0x0 0x1160002 0x0 0x1190003 0x10 0x28 0x1280002 0x0 oops 4 2 javax/swing/text/html/ImageView 12 javax/swing/text/html/ImageView 18 javax/swing/text/html/HTMLDocument$RunElement 70 sun/awt/windows/WToolkit +instanceKlass org/jdesktop/swingx/graphics/ShadowRenderer +instanceKlass sun/awt/EventQueueDelegate$Delegate +instanceKlass mage/client/plugins/adapters/MageActionCallback$$Lambda$253 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass mage/client/plugins/adapters/MageActionCallback$1$$Lambda$252 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/mage/plugins/card/info/CardInfoPaneImpl$$Lambda$251 +instanceKlass javax/swing/text/html/TableView$ColumnIterator +instanceKlass javax/swing/text/html/TableView$RowIterator +instanceKlass javax/swing/text/html/CSS$LayoutIterator +instanceKlass mage/client/util/gui/GuiDisplayUtil$1 +instanceKlass mage/client/util/gui/GuiDisplayUtil$TextLines +instanceKlass mage/client/util/gui/GuiDisplayUtil +instanceKlass mage/client/plugins/adapters/MageActionCallback$1 +instanceKlass mage/client/util/gui/ArrowUtil +instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber$2 +instanceKlass javax/swing/Popup +instanceKlass sun/awt/ModalExclude +instanceKlass javax/swing/PopupFactory +instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber$1 +instanceKlass sun/font/GraphicComponent +instanceKlass org/mage/card/arcane/ModernCardRenderer$RuleLayout +instanceKlass java/awt/TexturePaintContext +instanceKlass org/mage/card/arcane/CardPanelAttributes +instanceKlass org/mage/card/arcane/CardPanelRenderImpl$$Lambda$250 +instanceKlass java/awt/font/TextLayout$CaretPolicy +instanceKlass java/awt/font/TextLayout +instanceKlass java/awt/font/TextLine$TextLineMetrics +instanceKlass sun/font/DelegatingShape +instanceKlass sun/font/GlyphLayout$LayoutEngineKey +instanceKlass sun/font/GlyphLayout$EngineRecord +instanceKlass sun/font/ScriptRunData +instanceKlass sun/font/GlyphLayout$SDCache$SDKey +instanceKlass sun/font/GlyphLayout$SDCache +instanceKlass sun/font/FontRunIterator +instanceKlass sun/font/ScriptRun +instanceKlass sun/font/TextRecord +instanceKlass sun/font/GlyphLayout$GVData +instanceKlass sun/font/SunLayoutEngine +instanceKlass sun/font/GlyphLayout$LayoutEngineFactory +instanceKlass sun/font/GlyphLayout$LayoutEngine +instanceKlass sun/font/GlyphLayout +instanceKlass sun/font/TextLabel +instanceKlass sun/font/Decoration$Label +instanceKlass sun/font/TextSource +instanceKlass java/awt/font/GraphicAttribute +instanceKlass sun/font/TextLineComponent +instanceKlass sun/font/TextLabelFactory +instanceKlass java/awt/font/CharArrayIterator +instanceKlass java/awt/font/LineMetrics +instanceKlass sun/font/CoreMetrics +instanceKlass java/awt/font/TextLine$Function +instanceKlass java/awt/font/TextLine +instanceKlass java/text/AttributeEntry +instanceKlass java/text/Annotation +instanceKlass sun/font/Decoration +instanceKlass java/awt/font/StyledParagraph +instanceKlass sun/text/normalizer/UTF16 +instanceKlass sun/text/bidi/BidiBase$TextAttributeConstants +instanceKlass sun/text/normalizer/CharTrie$FriendAgent +instanceKlass sun/text/normalizer/Trie$DefaultGetFoldingOffset +instanceKlass sun/text/normalizer/Trie$DataManipulate +instanceKlass sun/text/normalizer/Trie +instanceKlass sun/text/normalizer/ICUBinary +instanceKlass sun/text/normalizer/UBiDiProps$IsAcceptable +instanceKlass sun/text/normalizer/ICUBinary$Authenticate +instanceKlass sun/text/normalizer/ICUData +instanceKlass sun/text/normalizer/UBiDiProps +instanceKlass sun/text/bidi/BidiBase$Point +instanceKlass sun/text/bidi/BidiBase$InsertPoints +instanceKlass sun/text/bidi/BidiRun +instanceKlass sun/text/bidi/BidiBase$ImpTabPair +instanceKlass sun/text/bidi/BidiBase +instanceKlass java/text/Bidi +instanceKlass java/awt/font/TextMeasurer +instanceKlass java/text/BreakIterator$BreakIteratorCache +instanceKlass sun/text/SupplementaryCharacterData +instanceKlass sun/text/CompactByteArray +instanceKlass sun/util/locale/provider/RuleBasedBreakIterator$1 +instanceKlass java/awt/font/LineBreakMeasurer +instanceKlass org/jdesktop/swingx/graphics/GraphicsUtilities +instanceKlass sun/font/AttributeValues$1 +instanceKlass org/mage/card/arcane/TextboxRule$ItalicRegion +instanceKlass org/mage/card/arcane/TextboxRule$EmbeddedSymbol +instanceKlass org/mage/card/arcane/TextboxRule$AttributeRegion +instanceKlass net/java/truevfs/kernel/impl/FinalizeController$ +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/mage/card/arcane/CardPanelRenderImpl$$Lambda$247 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass com/google/common/collect/MapMaker$NullOutputExceptionReference +instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter +instanceKlass mage/client/deckeditor/collection/viewer/MageBook$CardPosition +instanceKlass org/mage/card/arcane/GlowText$$Lambda$246 +instanceKlass org/mage/card/arcane/GlowText$Key +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/mage/card/arcane/CardPanelRenderImpl$$Lambda$245 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/mage/card/arcane/Util$1 +instanceKlass org/mage/card/arcane/Util +instanceKlass org/mage/card/arcane/ModernSplitCardRenderer$$Lambda$244 +instanceKlass java/util/stream/MatchOps$$Lambda$243 +instanceKlass java/util/stream/MatchOps$BooleanTerminalSink +instanceKlass java/util/stream/Sink +instanceKlass java/util/stream/MatchOps$MatchOp +instanceKlass java/util/stream/TerminalOp +instanceKlass java/util/stream/MatchOps +instanceKlass org/mage/card/arcane/ModernSplitCardRenderer$$Lambda$242 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/util/stream/StreamOpFlag$MaskBuilder +instanceKlass java/util/stream/PipelineHelper +instanceKlass java/util/stream/StreamSupport +instanceKlass java/util/ArrayList$ArrayListSpliterator +instanceKlass org/mage/card/arcane/TextboxRule +instanceKlass org/mage/card/arcane/TextboxRuleParser +instanceKlass org/mage/card/arcane/ModernSplitCardRenderer$HalfCardProps +instanceKlass java/awt/TexturePaint +instanceKlass org/mage/card/arcane/CardRendererUtils +instanceKlass sun/font/SunFontManager$$Lambda$241 +instanceKlass sun/font/SunFontManager$8 +instanceKlass sun/font/FileFont$CreatedFontFileDisposerRecord +instanceKlass java/awt/Font$2 +instanceKlass sun/nio/fs/WindowsChannelFactory$2 +instanceKlass java/nio/file/TempFileHelper +instanceKlass java/awt/Font$1 +instanceKlass org/mage/card/arcane/CardRendererFactory +instanceKlass org/mage/card/arcane/CardPanelRenderImpl$ImageKey +instanceKlass mage/cards/action/TransferData +instanceKlass mage/client/util/NaturalOrderComparator +instanceKlass com/sun/media/sound/EventDispatcher$EventInfo +instanceKlass mage/client/util/audio/LinePool$$Lambda$240 +instanceKlass javax/sound/sampled/LineListener +instanceKlass com/sun/media/sound/EventDispatcher +instanceKlass javax/sound/sampled/LineEvent$Type +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass mage/client/util/audio/LinePool$$Lambda$239 +instanceKlass mage/utils/ThreadUtils$3 +instanceKlass mage/utils/ThreadUtils$2 +instanceKlass mage/utils/ThreadUtils$1 +instanceKlass mage/utils/ThreadUtils +instanceKlass mage/client/util/audio/AudioManager$1 +instanceKlass org/tritonus/share/TDebug +instanceKlass javax/sound/sampled/AudioFileFormat +instanceKlass javazoom/jl/decoder/Header +instanceKlass javazoom/spi/mpeg/sampled/file/tag/MP3MetadataParser +instanceKlass javazoom/spi/mpeg/sampled/file/tag/TagParseListener +instanceKlass javax/sound/sampled/AudioFileFormat$Type +instanceKlass javax/sound/sampled/spi/FormatConversionProvider +instanceKlass javax/sound/sampled/spi/AudioFileReader +instanceKlass mage/client/constants/Constants$IO +instanceKlass mage/client/constants/Constants +instanceKlass mage/client/util/audio/MageClip +instanceKlass javax/sound/sampled/Control$Type +instanceKlass com/sun/media/sound/EventDispatcher$LineMonitor +instanceKlass com/sun/media/sound/Toolkit +instanceKlass javax/sound/sampled/Clip +instanceKlass javax/sound/sampled/SourceDataLine +instanceKlass javax/sound/sampled/DataLine +instanceKlass javax/sound/sampled/Control +instanceKlass com/sun/media/sound/AbstractLine +instanceKlass javax/sound/sampled/Mixer +instanceKlass javax/sound/sampled/Line +instanceKlass javax/sound/sampled/Mixer$Info +instanceKlass com/sun/media/sound/Platform$$Lambda$238 +instanceKlass com/sun/media/sound/Platform$$Lambda$237 +instanceKlass com/sun/media/sound/Platform +instanceKlass com/sun/media/sound/JSSecurityManager$3 +instanceKlass com/sun/media/sound/JSSecurityManager$2 +instanceKlass com/sun/media/sound/JSSecurityManager +instanceKlass com/sun/media/sound/JDK13Services +instanceKlass javax/sound/sampled/spi/MixerProvider +instanceKlass javax/sound/sampled/AudioSystem +instanceKlass javax/sound/sampled/AudioFormat$Encoding +instanceKlass javax/sound/sampled/AudioFormat +instanceKlass javax/sound/sampled/Line$Info +instanceKlass mage/client/util/audio/LinePool +instanceKlass mage/client/deckeditor/collection/viewer/CollectionViewerPanel$$Lambda$236 +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass mage/client/deckeditor/collection/viewer/MageBook$$Lambda$235 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass mage/client/deckeditor/collection/viewer/MageBook$$Lambda$234 +instanceKlass mage/client/deckeditor/collection/viewer/MageBook$$Lambda$233 +instanceKlass mage/client/util/Command +instanceKlass mage/client/deckeditor/collection/viewer/MageBook$Configuration +instanceKlass mage/client/deckeditor/collection/viewer/CollectionViewerPanel$$Lambda$232 +instanceKlass mage/client/deckeditor/collection/viewer/CollectionViewerPanel$$Lambda$231 +instanceKlass mage/client/deckeditor/collection/viewer/CollectionViewerPanel$$Lambda$230 +instanceKlass mage/client/deckeditor/collection/viewer/CollectionViewerPanel$$Lambda$229 +instanceKlass mage/client/deckeditor/collection/viewer/CollectionViewerPanel$$Lambda$228 +instanceKlass java/awt/KeyboardFocusManager$4 +instanceKlass net/java/truevfs/kernel/impl/FinalizeController$FinalizeResource$class +instanceKlass net/java/truevfs/kernel/impl/ResourceAccountant$Account +instanceKlass scala/collection/convert/Decorators$class +instanceKlass scala/collection/convert/Decorators$ +instanceKlass scala/collection/convert/Decorators$AsScala +instanceKlass scala/collection/convert/DecorateAsScala$class +instanceKlass scala/collection/convert/Decorators +instanceKlass scala/collection/convert/DecorateAsJava$class +instanceKlass scala/collection/JavaConverters$ +instanceKlass scala/collection/convert/DecorateAsScala +instanceKlass scala/collection/convert/DecorateAsJava +instanceKlass net/java/truevfs/kernel/impl/ResourceAccountant$ +instanceKlass net/java/truevfs/kernel/impl/ResourceController$Resource$class +instanceKlass scala/reflect/ClassTag$ +instanceKlass net/java/truevfs/kernel/impl/TargetArchiveController$SyncOn +instanceKlass java/util/EnumMap$EntryIterator$Entry +instanceKlass java/util/EnumMap$EnumMapIterator +instanceKlass net/java/truevfs/kernel/impl/ResourceController$Resource +instanceKlass net/java/truevfs/kernel/impl/FinalizeController$FinalizeResource +instanceKlass net/java/truevfs/access/TBIO +instanceKlass net/java/truevfs/kernel/impl/FileSystemArchiveController$MountedFileSystem +instanceKlass net/java/truecommons/shed/Link$Type$Strong +instanceKlass net/java/truevfs/kernel/impl/CheckedCloseable$class +instanceKlass net/java/truevfs/kernel/impl/CheckedCloseable +instanceKlass net/java/truevfs/comp/zip/ULong +instanceKlass java/nio/file/attribute/FileTime +instanceKlass net/java/truecommons/cio/Entry$Entity +instanceKlass net/java/truevfs/driver/file/FileNode$1 +instanceKlass scala/math/package$ +instanceKlass scala/collection/mutable/LinkedEntry +instanceKlass scala/collection/convert/Wrappers$IteratorWrapper +instanceKlass scala/collection/convert/WrapAsScala$ +instanceKlass scala/collection/convert/Wrappers$IterableWrapperTrait +instanceKlass scala/collection/convert/WrapAsJava$class +instanceKlass scala/collection/mutable/Set +instanceKlass scala/collection/mutable/SetLike +instanceKlass scala/collection/concurrent/Map +instanceKlass scala/collection/convert/WrapAsScala$class +instanceKlass scala/collection/JavaConversions$ +instanceKlass scala/collection/convert/WrapAsJava +instanceKlass scala/collection/convert/WrapAsScala +instanceKlass net/java/truevfs/kernel/impl/package$ +instanceKlass scala/runtime/ObjectRef +instanceKlass scala/collection/mutable/ArrayOps$ofRef$ +instanceKlass scala/collection/mutable/ArrayOps$class +instanceKlass scala/collection/mutable/ArrayLike$class +instanceKlass scala/collection/IndexedSeqOptimized$class +instanceKlass scala/collection/mutable/IndexedSeqView +instanceKlass scala/collection/mutable/IndexedSeqLike$class +instanceKlass scala/collection/mutable/ArrayOps$ofRef +instanceKlass net/java/truevfs/kernel/impl/ArchiveFileSystem$EntryTable +instanceKlass net/java/truevfs/kernel/impl/ArchiveFileSystem +instanceKlass net/java/truevfs/kernel/impl/ArchiveFileSystem$ +instanceKlass net/java/truevfs/comp/zip/UShort +instanceKlass net/java/truevfs/comp/zip/ExtraField +instanceKlass net/java/truecommons/shed/HashMaps +instanceKlass net/java/truecommons/io/PowerBuffer +instanceKlass net/java/truecommons/io/AbstractSeekableChannel +instanceKlass sun/nio/fs/WindowsSecurityDescriptor +instanceKlass net/java/truevfs/comp/zip/Constants +instanceKlass net/java/truevfs/comp/zip/PositionMapper +instanceKlass org/apache/commons/compress/compressors/bzip2/BZip2Constants +instanceKlass net/java/truevfs/comp/zip/AbstractZipFile +instanceKlass net/java/truevfs/kernel/spec/FsInputSocketSource +instanceKlass net/java/truecommons/io/Source +instanceKlass java/nio/file/FileStore +instanceKlass sun/nio/fs/WindowsSecurity +instanceKlass sun/nio/fs/AbstractAclFileAttributeView +instanceKlass java/nio/file/attribute/AclFileAttributeView +instanceKlass java/nio/file/attribute/FileOwnerAttributeView +instanceKlass sun/nio/fs/WindowsLinkSupport +instanceKlass sun/nio/fs/WindowsFileSystemProvider$1 +instanceKlass net/java/truevfs/driver/file/FileController$1 +instanceKlass net/java/truevfs/kernel/impl/TargetArchiveController$ +instanceKlass sun/nio/fs/WindowsChannelFactory$Flags +instanceKlass sun/nio/fs/WindowsChannelFactory$1 +instanceKlass sun/nio/fs/WindowsChannelFactory +instanceKlass sun/nio/fs/WindowsPath$1 +instanceKlass net/java/truevfs/kernel/impl/LockingStrategy$Account +instanceKlass net/java/truevfs/kernel/impl/LockingStrategy$ +instanceKlass net/java/truevfs/kernel/impl/LockingStrategy +instanceKlass scala/Function2$class +instanceKlass scala/runtime/AbstractFunction2 +instanceKlass net/java/truevfs/kernel/impl/FalsePositiveArchiveController$TryChild$ +instanceKlass net/java/truevfs/kernel/impl/FinalizeController$class +instanceKlass net/java/truecommons/cio/IoBuffer +instanceKlass net/java/truecommons/cio/IoEntry +instanceKlass net/java/truecommons/shed/Releasable +instanceKlass net/java/truecommons/shed/Pool +instanceKlass net/java/truevfs/kernel/spec/sl/IoBufferPoolLocator$Lazy +instanceKlass net/java/truevfs/kernel/spec/sl/IoBufferPoolLocator +instanceKlass net/java/truevfs/kernel/impl/LockController$class +instanceKlass net/java/truevfs/kernel/impl/SyncController$class +instanceKlass net/java/truevfs/kernel/impl/CacheController$class +instanceKlass net/java/truevfs/kernel/impl/LockAspect$class +instanceKlass net/java/truevfs/kernel/impl/ResourceAccountant +instanceKlass net/java/truevfs/kernel/impl/LockAspect +instanceKlass net/java/truecommons/shed/ExceptionHandler +instanceKlass net/java/truevfs/kernel/impl/ResourceController$class +instanceKlass net/java/truevfs/kernel/impl/ArchiveModelAspect$class +instanceKlass net/java/truevfs/kernel/impl/FileSystemArchiveController$ResetFileSystem +instanceKlass net/java/truevfs/kernel/impl/ArchiveController$class +instanceKlass net/java/truevfs/kernel/impl/BasicArchiveController +instanceKlass net/java/truevfs/kernel/impl/MountState +instanceKlass net/java/truevfs/kernel/impl/ArchiveModelAspect +instanceKlass net/java/truevfs/kernel/impl/LockController +instanceKlass net/java/truevfs/kernel/impl/SyncController +instanceKlass net/java/truevfs/kernel/impl/CacheController +instanceKlass net/java/truevfs/kernel/impl/ResourceController +instanceKlass net/java/truevfs/kernel/impl/FinalizeController +instanceKlass net/java/truecommons/cio/InputSocket +instanceKlass net/java/truecommons/cio/OutputSocket +instanceKlass net/java/truecommons/cio/IoSocket +instanceKlass net/java/truevfs/kernel/impl/FalsePositiveArchiveController$State +instanceKlass scala/Product2$class +instanceKlass scala/Product2$mcJD$sp +instanceKlass scala/Product2$mcJI$sp +instanceKlass scala/Product2$mcJJ$sp +instanceKlass scala/Product2$mcDI$sp +instanceKlass scala/Product2$mcDD$sp +instanceKlass scala/Product2$mcDJ$sp +instanceKlass scala/Product2$mcIJ$sp +instanceKlass scala/Product2$mcII$sp +instanceKlass scala/Product2$mcID$sp +instanceKlass scala/Tuple2 +instanceKlass scala/Product2 +instanceKlass net/java/truecommons/shed/Link +instanceKlass scala/Predef$ArrowAssoc$ +instanceKlass sun/nio/fs/WindowsUriSupport +instanceKlass net/java/truevfs/kernel/spec/FsNode +instanceKlass scala/Predef$$anon$3 +instanceKlass scala/reflect/NoManifest$ +instanceKlass scala/reflect/ManifestFactory$ClassTypeManifest +instanceKlass scala/runtime/Null$ +instanceKlass scala/reflect/Manifest$class +instanceKlass scala/reflect/ClassTag$class +instanceKlass scala/reflect/ClassManifestDeprecatedApis$class +instanceKlass scala/collection/mutable/ArrayBuilder +instanceKlass scala/reflect/AnyValManifest +instanceKlass scala/reflect/Manifest +instanceKlass scala/reflect/ManifestFactory$ +instanceKlass scala/reflect/ClassTag +instanceKlass scala/reflect/ClassManifestDeprecatedApis +instanceKlass scala/reflect/OptManifest +instanceKlass scala/reflect/ClassManifestFactory$ +instanceKlass scala/reflect/package$ +instanceKlass scala/collection/immutable/Set +instanceKlass scala/collection/immutable/Map +instanceKlass scala/collection/immutable/MapLike +instanceKlass scala/util/Right$ +instanceKlass scala/util/Left$ +instanceKlass scala/util/Either$ +instanceKlass scala/math/LowPriorityOrderingImplicits$class +instanceKlass scala/math/Ordering$ +instanceKlass scala/math/LowPriorityOrderingImplicits +instanceKlass scala/math/Ordered +instanceKlass scala/math/Ordered$ +instanceKlass scala/math/Numeric$ +instanceKlass scala/math/Integral$ +instanceKlass scala/math/Fractional$ +instanceKlass scala/math/LowPriorityEquiv$class +instanceKlass scala/math/Equiv$ +instanceKlass scala/math/LowPriorityEquiv +instanceKlass scala/math/ScalaNumericConversions +instanceKlass scala/math/ScalaNumericAnyConversions +instanceKlass scala/math/BigInt$ +instanceKlass java/math/MathContext +instanceKlass scala/math/BigDecimal$ +instanceKlass scala/collection/immutable/Range$ +instanceKlass scala/collection/mutable/StringBuilder$ +instanceKlass scala/collection/immutable/VectorPointer$class +instanceKlass scala/collection/immutable/IndexedSeq$class +instanceKlass scala/collection/IndexedSeq$class +instanceKlass scala/collection/IndexedSeqLike$class +instanceKlass scala/collection/immutable/VectorPointer +instanceKlass scala/collection/immutable/IndexedSeq +instanceKlass scala/collection/immutable/Stream$$hash$colon$colon$ +instanceKlass scala/collection/$colon$plus$ +instanceKlass scala/collection/$plus$colon$ +instanceKlass scala/collection/immutable/$colon$colon$ +instanceKlass scala/collection/immutable/List$$anon$1 +instanceKlass scala/collection/BufferedIterator +instanceKlass scala/collection/Iterator$class +instanceKlass scala/collection/AbstractIterator +instanceKlass scala/collection/TraversableOnce$BufferedCanBuildFrom +instanceKlass scala/collection/Iterator$ +instanceKlass scala/runtime/BoxesRunTime +instanceKlass scala/Function0$mcZ$sp$class +instanceKlass scala/Function0$mcZ$sp +instanceKlass scala/sys/package$ +instanceKlass scala/collection/mutable/HashEntry$class +instanceKlass scala/collection/mutable/DefaultEntry +instanceKlass scala/util/hashing/package$ +instanceKlass scala/runtime/ScalaRunTime$ +instanceKlass scala/runtime/BoxedUnit +instanceKlass scala/collection/CustomParallelizable$class +instanceKlass scala/collection/mutable/HashTable$ +instanceKlass scala/collection/mutable/HashTable$class +instanceKlass scala/collection/mutable/HashTable$HashUtils$class +instanceKlass scala/collection/mutable/HashEntry +instanceKlass scala/collection/Parallel +instanceKlass scala/collection/LinearSeqOptimized$class +instanceKlass scala/collection/immutable/LinearSeq$class +instanceKlass scala/collection/LinearSeq$class +instanceKlass scala/collection/LinearSeqLike$class +instanceKlass scala/collection/immutable/Seq$class +instanceKlass scala/collection/immutable/Iterable$class +instanceKlass scala/collection/immutable/Traversable$class +instanceKlass scala/collection/Seq$class +instanceKlass scala/collection/mutable/HashTable +instanceKlass scala/collection/mutable/HashTable$HashUtils +instanceKlass scala/collection/SeqView +instanceKlass scala/collection/SeqViewLike +instanceKlass scala/collection/SeqLike$class +instanceKlass scala/collection/GenSeq$class +instanceKlass scala/collection/GenSeqLike$class +instanceKlass scala/collection/generic/GenMapFactory +instanceKlass scala/sys/PropImpl +instanceKlass scala/sys/BooleanProp +instanceKlass scala/sys/BooleanProp$ +instanceKlass scala/sys/Prop +instanceKlass scala/sys/SystemProperties$ +instanceKlass scala/util/control/NoStackTrace$ +instanceKlass scala/util/control/NoStackTrace$class +instanceKlass scala/util/control/Breaks$TryBlock +instanceKlass scala/util/control/Breaks +instanceKlass scala/math/Numeric +instanceKlass scala/collection/generic/GenTraversableFactory$GenericCanBuildFrom +instanceKlass scala/package$$anon$1 +instanceKlass scala/Specializable +instanceKlass scala/package$ +instanceKlass scala/DeprecatedPredef$class +instanceKlass scala/collection/mutable/ArrayOps +instanceKlass scala/Predef$$eq$colon$eq +instanceKlass scala/Predef$$less$colon$less +instanceKlass scala/collection/CustomParallelizable +instanceKlass scala/collection/mutable/ArrayLike +instanceKlass scala/collection/mutable/IndexedSeqOptimized +instanceKlass scala/collection/IndexedSeqOptimized +instanceKlass scala/collection/mutable/IndexedSeq +instanceKlass scala/collection/mutable/IndexedSeqLike +instanceKlass scala/collection/IndexedSeq +instanceKlass scala/collection/IndexedSeqLike +instanceKlass scala/collection/generic/CanBuildFrom +instanceKlass scala/LowPriorityImplicits +instanceKlass scala/DeprecatedPredef +instanceKlass scala/Option$ +instanceKlass net/java/truevfs/kernel/impl/NeedsWriteLockException$ +instanceKlass scala/util/Either +instanceKlass scala/collection/LinearSeqOptimized +instanceKlass scala/collection/immutable/LinearSeq +instanceKlass scala/collection/LinearSeq +instanceKlass scala/collection/LinearSeqLike +instanceKlass scala/collection/immutable/Seq +instanceKlass scala/collection/immutable/Iterable +instanceKlass scala/collection/immutable/Traversable +instanceKlass net/java/truevfs/kernel/impl/LockOn$ +instanceKlass scala/runtime/AbstractFunction1 +instanceKlass net/java/truevfs/kernel/spec/FsNodePath +instanceKlass net/java/truevfs/kernel/spec/FsMountPoint +instanceKlass net/java/truecommons/shed/PathNormalizer +instanceKlass net/java/truecommons/shed/UriEncoder +instanceKlass net/java/truevfs/kernel/spec/FsNodeName +instanceKlass net/java/truecommons/shed/Paths +instanceKlass net/java/truecommons/shed/PathSplitter +instanceKlass org/mage/plugins/card/utils/CardImageUtils +instanceKlass org/mage/plugins/card/images/CardDownloadData +instanceKlass org/mage/plugins/card/images/ImageCache$1 +instanceKlass net/java/truevfs/access/TRex +instanceKlass org/mage/plugins/card/images/ImageCache +instanceKlass java/security/DomainCombiner +instanceKlass sun/awt/image/GifFrame +instanceKlass javax/swing/text/html/ImageView$ImageHandler +instanceKlass java/awt/geom/EllipseIterator +instanceKlass sun/java2d/loops/ProcessPath$Edge +instanceKlass sun/java2d/loops/ProcessPath$ActiveEdgeList +instanceKlass sun/java2d/loops/ProcessPath$Point +instanceKlass sun/java2d/loops/ProcessPath$FillData +instanceKlass sun/java2d/loops/ProcessPath$ProcessHandler +instanceKlass sun/java2d/loops/ProcessPath$1 +instanceKlass sun/java2d/loops/ProcessPath$EndSubPathHandler +instanceKlass sun/java2d/loops/ProcessPath +instanceKlass java/awt/geom/RectIterator +instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$227 +instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$226 +instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$225 +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass mage/client/deckeditor/table/MageCardComparator +instanceKlass mage/abilities/mana/ManaAbility +instanceKlass mage/game/permanent/Permanent +instanceKlass mage/game/stack/StackObjImpl +instanceKlass mage/game/Game +instanceKlass java/util/AbstractList$1 +instanceKlass java/lang/Class$EnclosingMethodInfo +instanceKlass mage/util/RandomUtil +instanceKlass org/h2/mvstore/db/MVSecondaryIndex$MVStoreCursor +instanceKlass mage/cards/SplitCardHalf +instanceKlass mage/abilities/SpellAbility$1 +instanceKlass mage/abilities/ActivatedAbility +instanceKlass mage/cards/CardSetInfo +instanceKlass mage/abilities/costs/VariableCost +instanceKlass mage/abilities/costs/mana/ManaCostImpl$1 +instanceKlass mage/Mana$1 +instanceKlass mage/filter/predicate/Predicates$AndPredicate +instanceKlass mage/filter/predicate/Predicates +instanceKlass mage/abilities/Mode +instanceKlass mage/game/events/GameEvent +instanceKlass mage/abilities/costs/Costs +instanceKlass mage/abilities/AbilityImpl +instanceKlass mage/Mana +instanceKlass mage/abilities/costs/CostImpl +instanceKlass mage/MageInt +instanceKlass sun/security/provider/SeedGenerator$1 +instanceKlass sun/security/provider/SecureRandom$SeederHolder +instanceKlass java/util/UUID$Holder +instanceKlass mage/game/stack/StackObject +instanceKlass mage/game/ZoneChangeInfo +instanceKlass mage/abilities/Abilities +instanceKlass mage/abilities/costs/mana/ManaCosts +instanceKlass mage/abilities/costs/mana/ManaCost +instanceKlass mage/abilities/costs/Cost +instanceKlass mage/abilities/Ability +instanceKlass mage/game/Controllable +instanceKlass mage/filter/predicate/other/CardTextPredicate +instanceKlass mage/client/deckeditor/DeckEditorPanel$3 +instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$224 +instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$223 +instanceKlass mage/client/util/CardViewNameComparator +instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$222 +instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$221 +instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$220 +instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$219 +instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$218 +instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$217 +instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$216 +instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$215 +instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$214 +instanceKlass mage/client/deckeditor/DeckArea$2 +instanceKlass mage/client/deckeditor/DeckArea$1 +instanceKlass mage/client/cards/DragCardGrid$16 +instanceKlass mage/client/cards/DragCardGrid$$Lambda$213 +instanceKlass mage/client/cards/DragCardGrid$$Lambda$212 +instanceKlass mage/client/cards/DragCardGrid$$Lambda$211 +instanceKlass mage/client/cards/DragCardGrid$$Lambda$210 +instanceKlass mage/client/cards/DragCardGrid$$Lambda$209 +instanceKlass mage/client/cards/DragCardGrid$$Lambda$208 +instanceKlass mage/client/cards/DragCardGrid$$Lambda$207 +instanceKlass mage/client/cards/DragCardGrid$$Lambda$206 +instanceKlass mage/client/cards/DragCardGrid$$Lambda$205 +instanceKlass mage/client/cards/DragCardGrid$$Lambda$204 +instanceKlass mage/client/cards/DragCardGrid$$Lambda$203 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass mage/client/cards/DragCardGrid$$Lambda$202 +instanceKlass mage/client/cards/DragCardGrid$$Lambda$201 +instanceKlass mage/client/cards/DragCardGrid$$Lambda$200 +instanceKlass mage/client/util/CardViewRarityComparator +instanceKlass mage/client/util/CardViewColorIdentityComparator +instanceKlass mage/client/util/CardViewColorComparator +instanceKlass mage/client/util/CardViewCostComparator +instanceKlass mage/client/util/CardViewCardTypeComparator +instanceKlass mage/client/cards/DragCardGrid$Sort$$Lambda$199 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass mage/cards/decks/DeckCardInfo +instanceKlass mage/client/cards/CardDraggerGlassPane +instanceKlass mage/client/cards/DragCardGrid$Settings +instanceKlass mage/client/cards/DragCardGrid$CardTypeCounter +instanceKlass mage/cards/decks/DeckCardLayout +instanceKlass mage/client/deckeditor/DeckArea$Settings +instanceKlass mage/client/cards/DragCardGrid$DragCardGridListener +instanceKlass mage/client/deckeditor/table/TableModel$1 +instanceKlass mage/client/util/EventDispatcher +instanceKlass mage/client/cards/CardEventSource +instanceKlass mage/client/util/EventSource +instanceKlass mage/client/util/Listener +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$198 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$197 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$196 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$195 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$194 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$193 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$192 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$191 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$190 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$189 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$188 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$187 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$186 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$185 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$184 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$183 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$182 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$181 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$180 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$179 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$178 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$177 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$176 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$175 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$174 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$173 +instanceKlass mage/client/deckeditor/CardSelector$$Lambda$172 +instanceKlass mage/cards/repository/CardCriteria +instanceKlass mage/filter/FilterImpl +instanceKlass mage/filter/Filter +instanceKlass mage/client/cards/DragCardSource +instanceKlass mage/filter/predicate/Predicate +instanceKlass mage/client/cards/ICardGrid +instanceKlass mage/client/deckeditor/SortSetting +instanceKlass mage/client/cards/DragCardTarget +instanceKlass javax/swing/JTable$ModelChange +instanceKlass mage/view/RoomUsersView +instanceKlass org/mage/card/arcane/ManaSymbols$2 +instanceKlass mage/client/chat/ChatPanelSeparated$1 +instanceKlass mage/client/remote/CallbackClientImpl$1 +instanceKlass java/awt/LightweightDispatcher$2 +instanceKlass mage/client/util/audio/AudioManager +instanceKlass mage/client/remote/CallbackClientImpl$$Lambda$171 +instanceKlass mage/client/util/object/SaveObjectUtil +instanceKlass mage/client/util/audio/MusicPlayer +instanceKlass org/jboss/util/threadpool/RunnableTaskWrapper +instanceKlass org/jboss/remoting/ServerInvoker$4 +instanceKlass java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy +instanceKlass org/jboss/util/threadpool/BasicThreadPool$ThreadPoolThreadFactory +instanceKlass org/jboss/util/threadpool/BlockingMode +instanceKlass mage/client/table/TablesPanel$$Lambda$170 +instanceKlass org/jboss/util/collection/ValueRef +instanceKlass mage/utils/CompressUtil +instanceKlass mage/remote/traffic/ZippedObjectImpl +instanceKlass mage/remote/traffic/ZippedObject +instanceKlass org/jboss/util/threadpool/TaskWrapper +instanceKlass org/jboss/util/threadpool/BasicThreadPool +instanceKlass org/jboss/util/threadpool/BasicThreadPoolMBean +instanceKlass org/jboss/util/threadpool/ThreadPoolMBean +instanceKlass mage/view/ChatMessage +instanceKlass java/io/ObjectStreamClass$5 +instanceKlass java/io/ObjectStreamClass$4 +instanceKlass java/io/ObjectStreamClass$3 +instanceKlass java/io/ObjectStreamClass$1 +instanceKlass java/io/ObjectInputValidation +instanceKlass java/io/ObjectInputStream$GetField +instanceKlass org/jboss/util/LRUCachePolicy$LRUCacheEntry +instanceKlass org/jboss/remoting/transport/bisocket/BisocketServerInvoker$ControlConnectionThread$1 +instanceKlass mage/client/dialog/JoinTableDialog$$Lambda$169 +instanceKlass mage/client/dialog/JoinTableDialog$$Lambda$168 +instanceKlass org/jdesktop/observablecollections/ObservableMap +instanceKlass org/jdesktop/beansbinding/BeanProperty$SourceEntry +instanceKlass org/jdesktop/beansbinding/Binding$PSL +instanceKlass org/jdesktop/beansbinding/Binding$ValueResult +instanceKlass org/jdesktop/beansbinding/Converter +instanceKlass java/lang/annotation/Documented +instanceKlass java/lang/Deprecated +instanceKlass sun/reflect/generics/tree/VoidDescriptor +instanceKlass sun/reflect/generics/reflectiveObjects/GenericArrayTypeImpl +instanceKlass sun/reflect/generics/tree/ArrayTypeSignature +instanceKlass sun/reflect/generics/tree/TypeVariableSignature +instanceKlass sun/reflect/generics/tree/IntSignature +instanceKlass org/jdesktop/swingbinding/adapters/JComboBoxAdapterProvider +instanceKlass org/jdesktop/swingbinding/adapters/JSpinnerAdapterProvider +instanceKlass org/jdesktop/swingbinding/adapters/JSliderAdapterProvider +instanceKlass org/jdesktop/swingbinding/adapters/JTableAdapterProvider +instanceKlass org/jdesktop/swingbinding/adapters/JListAdapterProvider +instanceKlass org/jdesktop/swingbinding/adapters/JTextComponentAdapterProvider +instanceKlass org/jdesktop/swingbinding/adapters/AbstractButtonAdapterProvider +instanceKlass org/jdesktop/beansbinding/ext/BeanAdapterProvider +instanceKlass org/jdesktop/beansbinding/ext/BeanAdapterFactory +instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$167 +instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$166 +instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$165 +instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$164 +instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$163 +instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$162 +instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$161 +instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$160 +instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$159 +instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$158 +instanceKlass org/jdesktop/beansbinding/BindingGroup$Handler +instanceKlass org/jdesktop/beansbinding/PropertyStateListener +instanceKlass org/jdesktop/beansbinding/Bindings +instanceKlass org/jdesktop/beansbinding/PropertyPath +instanceKlass org/jdesktop/observablecollections/ObservableMapListener +instanceKlass org/jdesktop/beansbinding/BindingListener +instanceKlass org/jdesktop/beansbinding/BindingGroup +instanceKlass org/jdesktop/beansbinding/Binding +instanceKlass org/jdesktop/beansbinding/Property +instanceKlass mage/game/tournament/LimitedOptions +instanceKlass mage/client/dialog/NewTableDialog$$Lambda$157 +instanceKlass mage/client/dialog/NewTableDialog$$Lambda$156 +instanceKlass mage/client/dialog/NewTableDialog$$Lambda$155 +instanceKlass mage/client/dialog/NewTableDialog$$Lambda$154 +instanceKlass mage/client/dialog/NewTableDialog$$Lambda$153 +instanceKlass mage/client/table/NewPlayerPanel$$Lambda$152 +instanceKlass mage/client/table/NewPlayerPanel$$Lambda$151 +instanceKlass mage/client/util/Event +instanceKlass java/lang/invoke/SerializedLambda +instanceKlass mage/client/util/sets/ConstructedFormats$1 +instanceKlass mage/client/util/sets/ConstructedFormats$$Lambda$150 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass mage/client/util/sets/ConstructedFormats$$Lambda$149 +instanceKlass org/h2/result/SortOrder +instanceKlass org/h2/command/dml/SelectOrderBy +instanceKlass com/j256/ormlite/stmt/query/OrderBy +instanceKlass mage/deck/Standard$1 +instanceKlass mage/cards/CardGraphicInfo +instanceKlass mage/MageObjectImpl +instanceKlass mage/cards/ExpansionSet$SetCardInfo +instanceKlass mage/util/ClassScanner +instanceKlass mage/cards/decks/DeckValidator +instanceKlass mage/client/util/sets/ConstructedFormats +instanceKlass mage/client/util/gui/countryBox/CountryUtil +instanceKlass javax/swing/SwingWorker$5 +instanceKlass mage/client/MageFrame$$Lambda$148 +instanceKlass org/h2/mvstore/db/TransactionStore$TransactionMap$1 +instanceKlass org/h2/util/DateTimeUtils +instanceKlass java/time/Instant +instanceKlass java/time/temporal/TemporalAdjuster +instanceKlass java/time/temporal/Temporal +instanceKlass java/time/temporal/TemporalAccessor +instanceKlass org/h2/result/SimpleRow +instanceKlass org/h2/expression/AggregateData +instanceKlass org/h2/util/HashBase +instanceKlass mage/cards/repository/CardRepository$$Lambda$147 +instanceKlass mage/ObjectColor +instanceKlass mage/util/Copyable +instanceKlass org/h2/mvstore/Page$PageChildren +instanceKlass org/h2/mvstore/ConcurrentArrayList$1 +instanceKlass org/h2/mvstore/MVStore$2 +instanceKlass org/h2/mvstore/Page$PageReference +instanceKlass java/util/concurrent/ConcurrentHashMap$MapEntry +instanceKlass com/j256/ormlite/misc/JavaxPersistence +instanceKlass com/j256/ormlite/field/ForeignCollectionField +instanceKlass mage/cards/Card +instanceKlass mage/MageObject +instanceKlass mage/MageItem +instanceKlass mage/cards/repository/CardInfo +instanceKlass org/h2/mvstore/DataUtils$MapEntry +instanceKlass mage/view/TournamentTypeView +instanceKlass mage/view/GameTypeView +instanceKlass mage/remote/SessionImpl$4 +instanceKlass org/jboss/remoting/transport/bisocket/BisocketServerInvoker$2 +instanceKlass java/util/function/Predicate +instanceKlass java/util/function/Consumer +instanceKlass java/util/function/UnaryOperator +instanceKlass org/jboss/remoting/Client$7 +instanceKlass org/jboss/remoting/ServerInvoker$CallbackContainer +instanceKlass org/jboss/remoting/security/SSLSocketFactoryServiceMBean +instanceKlass org/jboss/remoting/security/SocketFactoryMBean +instanceKlass org/jboss/remoting/security/SSLSocketBuilderMBean +instanceKlass org/jboss/remoting/SerializableStore +instanceKlass org/jboss/remoting/callback/CallbackErrorHandler +instanceKlass org/jboss/remoting/AbstractInvoker$CallbackHandlerHolder +instanceKlass org/jboss/util/LRUCachePolicy$LRUList +instanceKlass org/jboss/util/LRUCachePolicy +instanceKlass org/jboss/util/CachePolicy +instanceKlass org/jboss/remoting/transport/Connector$5 +instanceKlass org/jboss/remoting/ServerInvoker$2 +instanceKlass org/jboss/remoting/Lease +instanceKlass org/jboss/remoting/ConnectionNotifier +instanceKlass org/jboss/remoting/ServerInvoker$1 +instanceKlass javax/management/MBeanServer +instanceKlass org/jboss/remoting/callback/ServerInvokerCallbackHandler +instanceKlass org/jboss/remoting/callback/AsynchInvokerCallbackHandler +instanceKlass org/jboss/remoting/socketfactory/ServerSocketFactoryWrapper +instanceKlass javax/net/ServerSocketFactory +instanceKlass org/jboss/remoting/transport/socket/SocketServerInvokerMBean +instanceKlass org/jboss/remoting/ServerInvokerMBean +instanceKlass org/jboss/remoting/transport/bisocket/TransportServerFactory +instanceKlass org/jboss/remoting/transport/ServerFactory +instanceKlass org/jboss/remoting/serialization/ClassLoaderUtility$1 +instanceKlass org/jboss/remoting/transport/Connector$3 +instanceKlass org/jboss/remoting/transport/Connector$1 +instanceKlass javax/management/MBeanServerConnection +instanceKlass javax/management/ObjectName +instanceKlass javax/management/QueryExp +instanceKlass org/jboss/remoting/Client$9 +instanceKlass org/jboss/remoting/transport/PortUtil$1 +instanceKlass mage/remote/SessionImpl$CallbackHandler +instanceKlass org/jboss/remoting/util/TimerUtil +instanceKlass org/jboss/remoting/ConnectionValidator$4 +instanceKlass org/jboss/remoting/util/StoppableTimerTask +instanceKlass org/jboss/remoting/Client$ConnectionValidatorKey +instanceKlass EDU/oswego/cs/dl/util/concurrent/ConcurrentHashMap$HashIterator +instanceKlass org/jboss/remoting/ClientHolder +instanceKlass EDU/oswego/cs/dl/util/concurrent/ConcurrentHashMap$Entry +instanceKlass EDU/oswego/cs/dl/util/concurrent/ConcurrentHashMap$Segment +instanceKlass org/jboss/serial/objectmetamodel/DataContainer$DataContainerDirectInput +instanceKlass org/jboss/serial/objectmetamodel/ObjectsCache$JBossSeralizationInputInterface +instanceKlass java/util/function/BiConsumer +instanceKlass org/jboss/serial/persister/EnumerationPersister +instanceKlass org/jboss/serial/persister/ProxyPersister +instanceKlass org/jboss/serial/persister/ClassReferencePersister +instanceKlass org/jboss/serial/persister/RegularObjectPersister +instanceKlass org/jboss/serial/persister/ExternalizePersister +instanceKlass org/jboss/serial/persister/ArrayPersister +instanceKlass org/jboss/serial/persister/Persister +instanceKlass org/jboss/serial/persister/PersistResolver +instanceKlass org/jboss/serial/util/StringUtil +instanceKlass org/jboss/serial/classmetamodel/StreamingClass +instanceKlass gnu/trove/HashFunctions +instanceKlass java/io/ObjectStreamClass$MemberSignature +instanceKlass org/jboss/serial/classmetamodel/FieldsManager +instanceKlass org/jboss/serial/classmetamodel/ClassMetadataField +instanceKlass gnu/trove/TLongObjectProcedure +instanceKlass gnu/trove/TLongHashingStrategy +instanceKlass java/lang/reflect/WeakCache$LookupValue +instanceKlass org/jboss/serial/util/HashStringUtil +instanceKlass org/jboss/serial/classmetamodel/ClassMetamodelFactory$CacheLoaderReference +instanceKlass org/jboss/serial/util/FastHashMap +instanceKlass org/jboss/serial/classmetamodel/ClassMetamodelFactory +instanceKlass org/jboss/serial/objectmetamodel/ObjectDescriptorFactory +instanceKlass org/jboss/serial/objectmetamodel/DataContainer$DataContainerDirectOutput +instanceKlass org/jboss/serial/objectmetamodel/ObjectsCache$JBossSeralizationOutputInterface +instanceKlass gnu/trove/TIntObjectProcedure +instanceKlass gnu/trove/TIntHashingStrategy +instanceKlass java/util/DualPivotQuicksort +instanceKlass gnu/trove/PrimeFinder +instanceKlass gnu/trove/TObjectIntProcedure +instanceKlass gnu/trove/THash +instanceKlass org/jboss/serial/objectmetamodel/DataExport +instanceKlass org/jboss/serial/io/JBossObjectInputStream$1 +instanceKlass java/io/ObjectStreamClass$ExceptionInfo +instanceKlass org/jboss/serial/util/ClassMetaConsts$1 +instanceKlass org/jboss/serial/classmetamodel/ConstructorManager +instanceKlass org/jboss/serial/classmetamodel/ClassMetaDataSlot +instanceKlass org/jboss/serial/classmetamodel/ClassMetaData +instanceKlass gnu/trove/TObjectHashingStrategy +instanceKlass org/jboss/serial/references/PersistentReference +instanceKlass org/jboss/serial/util/ClassMetaConsts +instanceKlass org/jboss/serial/classmetamodel/ClassResolver +instanceKlass org/jboss/serial/util/StringUtilBuffer$Position +instanceKlass org/jboss/serial/util/StringUtilBuffer +instanceKlass java/io/ObjectOutputStream$DebugTraceInfoStack +instanceKlass java/io/ObjectOutputStream$PutField +instanceKlass java/io/SerialCallbackContext +instanceKlass java/io/ObjectOutputStream$ReplaceTable +instanceKlass java/io/ObjectOutputStream$HandleTable +instanceKlass org/jboss/serial/objectmetamodel/ObjectSubstitutionInterface +instanceKlass org/jboss/serial/objectmetamodel/DataContainerConstants +instanceKlass org/jboss/remoting/serialization/IMarshalledValue +instanceKlass org/jboss/remoting/serialization/SerializationManager +instanceKlass org/jboss/remoting/serialization/SerializationStreamFactory +instanceKlass org/jboss/remoting/serialization/SerializationStreamFactoryMBean +instanceKlass org/jboss/remoting/invocation/RemoteInvocation +instanceKlass org/jboss/remoting/marshal/rmi/RMIUnMarshaller +instanceKlass org/jboss/remoting/marshal/rmi/RMIMarshaller +instanceKlass org/jboss/remoting/marshal/serializable/SerializableUnMarshaller +instanceKlass org/jboss/remoting/marshal/UpdateableClassloaderUnMarshaller +instanceKlass org/jboss/remoting/marshal/VersionedUnMarshaller +instanceKlass org/jboss/remoting/marshal/PreferredStreamUnMarshaller +instanceKlass org/jboss/remoting/marshal/SerialUnMarshaller +instanceKlass org/jboss/remoting/marshal/serializable/SerializableMarshaller +instanceKlass org/jboss/remoting/marshal/VersionedMarshaller +instanceKlass org/jboss/remoting/marshal/PreferredStreamMarshaller +instanceKlass org/jboss/remoting/marshal/SerialMarshaller +instanceKlass org/jboss/remoting/marshal/MarshalFactory +instanceKlass mage/remote/SessionImpl$ClientConnectionListener +instanceKlass mage/view/GameView +instanceKlass mage/interfaces/ServerState +instanceKlass mage/view/DraftPickView +instanceKlass mage/game/tournament/TournamentOptions +instanceKlass mage/view/TournamentView +instanceKlass mage/cards/decks/DeckCardLists +instanceKlass mage/game/match/MatchOptions +instanceKlass org/jboss/remoting/transporter/TransporterClient$6 +instanceKlass EDU/oswego/cs/dl/util/concurrent/Semaphore +instanceKlass EDU/oswego/cs/dl/util/concurrent/Sync +instanceKlass org/jboss/remoting/InvokerRegistry$ClientInvokerHolder +instanceKlass org/jboss/remoting/transport/bisocket/BisocketClientInvoker$BooleanHolder +instanceKlass org/jboss/remoting/transport/socket/ServerAddress +instanceKlass org/jboss/remoting/marshal/Marshaller +instanceKlass org/jboss/remoting/LeasePinger +instanceKlass org/jboss/remoting/marshal/UnMarshaller +instanceKlass org/jboss/remoting/InvocationRequest +instanceKlass java/beans/PropertyEditorSupport +instanceKlass java/beans/PropertyEditor +instanceKlass java/beans/PropertyEditorManager +instanceKlass org/jboss/util/propertyeditor/PropertyEditors$Initialize +instanceKlass org/jboss/util/propertyeditor/PropertyEditors +instanceKlass org/jboss/remoting/transport/socket/SocketWrapper +instanceKlass org/jboss/remoting/transport/socket/OpenConnectionChecker +instanceKlass org/jboss/remoting/marshal/MarshallerLoaderHandler +instanceKlass org/jboss/remoting/marshal/MarshallerLoaderConstants +instanceKlass org/jboss/remoting/ServerInvocationHandler +instanceKlass org/jboss/remoting/transport/Connector +instanceKlass org/jboss/remoting/transport/ConnectorMBean +instanceKlass org/jboss/remoting/marshal/MarshallLoaderFactory +instanceKlass org/jboss/remoting/AbstractInvoker$1 +instanceKlass org/jboss/remoting/InvocationResponse +instanceKlass org/jboss/remoting/socketfactory/SocketFactoryWrapper +instanceKlass javax/net/SocketFactory +instanceKlass org/jboss/remoting/AbstractInvoker +instanceKlass org/jboss/remoting/transport/BidirectionalClientInvoker +instanceKlass org/jboss/remoting/transport/bisocket/TransportClientFactory +instanceKlass org/jboss/remoting/transport/ClientFactory +instanceKlass org/jboss/remoting/serialization/ClassLoaderUtility$4 +instanceKlass org/jboss/remoting/serialization/ClassLoaderUtility +instanceKlass org/jboss/remoting/transport/ClientInvoker +instanceKlass org/jboss/remoting/Invoker +instanceKlass org/jboss/remoting/InvokerRegistry +instanceKlass org/jboss/remoting/Client$6 +instanceKlass org/jboss/remoting/transport/PortUtil +instanceKlass org/jboss/util/HashCode +instanceKlass org/jboss/util/id/UID +instanceKlass org/jboss/util/platform/PID +instanceKlass org/jboss/util/id/VMID$1 +instanceKlass org/jboss/util/id/VMID +instanceKlass org/jboss/util/id/GUID +instanceKlass org/jboss/util/id/ID +instanceKlass org/jboss/remoting/Client$3 +instanceKlass org/jboss/remoting/Client$1 +instanceKlass org/jboss/util/threadpool/ThreadPool +instanceKlass org/jboss/remoting/Client +instanceKlass org/jboss/remoting/transporter/DefaultLoadBalancer +instanceKlass org/jboss/remoting/transporter/LoadBalancer +instanceKlass org/jboss/remoting/detection/Detector +instanceKlass javax/management/MBeanRegistration +instanceKlass org/jboss/remoting/transporter/TransporterClient +instanceKlass mage/interfaces/MageServer +instanceKlass org/jboss/remoting/Home +instanceKlass java/net/NetworkInterface$2 +instanceKlass java/net/DefaultInterface +instanceKlass java/net/InterfaceAddress +instanceKlass java/net/NetworkInterface$1 +instanceKlass java/net/NetworkInterface +instanceKlass org/jboss/remoting/InvokerLocator$2 +instanceKlass org/jboss/remoting/util/SecurityUtility$1 +instanceKlass org/jboss/remoting/util/SecurityUtility +instanceKlass org/jboss/remoting/Version +instanceKlass org/jboss/logging/NullLoggerPlugin +instanceKlass org/jboss/logging/LoggerPlugin +instanceKlass org/jboss/logging/Logger +instanceKlass org/jboss/remoting/InvokerLocator +instanceKlass mage/remote/SessionImpl$6 +instanceKlass org/jboss/remoting/ConnectionListener +instanceKlass java/net/Authenticator +instanceKlass mage/remote/SessionImpl$5 +instanceKlass javax/swing/JComponent$$Lambda$146 +instanceKlass mage/players/net/SkipPrioritySteps +instanceKlass java/awt/AWTEvent$2 +instanceKlass java/awt/LightweightDispatcher$1 +instanceKlass java/awt/Container$MouseEventTargetFilter +instanceKlass java/awt/Container$EventTargetFilter +instanceKlass java/awt/Cursor$CursorDisposer +instanceKlass java/text/AttributedString$AttributedStringIterator +instanceKlass java/text/AttributedCharacterIterator +instanceKlass java/text/AttributedString +instanceKlass sun/awt/im/CompositionAreaHandler +instanceKlass javax/swing/text/JTextComponent$InputMethodRequestsHandler +instanceKlass java/awt/KeyboardFocusManager$3 +instanceKlass javax/swing/plaf/nimbus/ImageScalingHelper +instanceKlass sun/java2d/pipe/AlphaPaintPipe$TileContext +instanceKlass java/awt/MultipleGradientPaintContext +instanceKlass java/awt/PaintContext +instanceKlass sun/java2d/d3d/D3DPaints +instanceKlass java/awt/GradientPaint +instanceKlass java/awt/MultipleGradientPaint +instanceKlass java/awt/geom/Path2D$Iterator +instanceKlass java/awt/geom/RoundRectIterator +instanceKlass java/awt/geom/PathIterator +instanceKlass sun/dc/pr/Rasterizer$ConsumerDisposer +instanceKlass sun/dc/pr/PathDasher$1 +instanceKlass sun/dc/pr/PathDasher +instanceKlass sun/awt/geom/PathConsumer2D +instanceKlass sun/dc/pr/PathStroker$1 +instanceKlass sun/dc/pr/PathStroker +instanceKlass sun/dc/pr/PathFiller$1 +instanceKlass sun/dc/pr/PathFiller +instanceKlass sun/dc/path/PathConsumer +instanceKlass sun/dc/pr/Rasterizer +instanceKlass sun/java2d/pipe/AATileGenerator +instanceKlass javax/swing/plaf/nimbus/ImageCache +instanceKlass javax/swing/RepaintManager$3 +instanceKlass javax/swing/KeyboardManager$ComponentKeyStrokePair +instanceKlass java/awt/KeyboardFocusManager$LightweightFocusRequest +instanceKlass java/awt/KeyboardFocusManager$HeavyweightFocusRequest +instanceKlass java/awt/DefaultKeyboardFocusManager$TypeAheadMarker +instanceKlass mage/cards/CardDimensions +instanceKlass javax/swing/Timer$1 +instanceKlass mage/client/util/stats/MemoryUsageStatUtil +instanceKlass mage/client/util/Config +instanceKlass javax/swing/TimerQueue$DelayedTimer +instanceKlass javax/swing/SwingWorker$SwingWorkerPropertyChangeSupport$1 +instanceKlass javax/swing/SwingWorker$7 +instanceKlass javax/swing/SwingWorker$6 +instanceKlass mage/components/ImagePanel$1 +instanceKlass sun/java2d/loops/FontInfo +instanceKlass java/awt/PrintGraphics +instanceKlass java/awt/print/PrinterGraphics +instanceKlass sun/awt/SunGraphicsCallback +instanceKlass sun/java2d/d3d/D3DScreenUpdateManager$$Lambda$145 +instanceKlass sun/java2d/pipe/BufferedPaints +instanceKlass sun/java2d/d3d/D3DSurfaceData$1 +instanceKlass sun/java2d/d3d/D3DSurfaceData$1Status +instanceKlass javax/swing/RepaintManager$4 +instanceKlass javax/swing/RepaintManager$2$1 +instanceKlass sun/swing/plaf/synth/SynthFileChooserUI$DelayedSelectionUpdater +instanceKlass java/awt/EventQueue$4 +instanceKlass java/awt/SequencedEvent$1 +instanceKlass sun/awt/AWTAccessor$SequencedEventAccessor +instanceKlass mage/client/util/SystemUtil +instanceKlass mage/client/MageFrame$$Lambda$144 +instanceKlass java/io/ObjectStreamClass$ClassDataSlot +instanceKlass java/io/ObjectStreamClass$FieldReflector +instanceKlass java/io/ObjectOutput +instanceKlass java/io/ObjectStreamClass$2 +instanceKlass java/io/Externalizable +instanceKlass java/io/ObjectStreamClass$EntryFuture +instanceKlass java/io/ObjectStreamClass$Caches +instanceKlass java/io/ObjectStreamClass +instanceKlass java/io/Bits +instanceKlass java/io/ObjectInputStream$ValidationList +instanceKlass java/io/ObjectInputStream$HandleTable$HandleList +instanceKlass java/io/ObjectInputStream$HandleTable +instanceKlass java/io/ObjectInputStream$$Lambda$143 +instanceKlass sun/misc/JavaObjectInputStreamAccess +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass sun/misc/ObjectStreamClassValidator +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass mage/client/MageFrame$$Lambda$142 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass sun/invoke/util/VerifyAccess$1 +instanceKlass java/awt/CardLayout +instanceKlass net/java/balloontip/positioners/BalloonTipPositioner$1 +instanceKlass net/java/balloontip/BalloonTip$10 +instanceKlass net/java/balloontip/BalloonTip$1 +instanceKlass net/java/balloontip/BalloonTip$VisibilityControl +instanceKlass mage/client/util/gui/ArrowBuilder +instanceKlass javax/swing/SwingHeavyWeight +instanceKlass sun/awt/windows/WTrayIconPeer$IconObserver +instanceKlass java/awt/peer/TrayIconPeer +instanceKlass mage/client/components/tray/MageTray$$Lambda$141 +instanceKlass mage/client/components/tray/MageTray$$Lambda$140 +instanceKlass mage/client/components/tray/MageTray$$Lambda$139 +instanceKlass mage/client/components/tray/MageTray$$Lambda$138 +instanceKlass mage/client/components/tray/MageTray$$Lambda$137 +instanceKlass mage/client/components/tray/MageTray$$Lambda$136 +instanceKlass java/awt/PopupMenu$1 +instanceKlass sun/awt/AWTAccessor$PopupMenuAccessor +instanceKlass java/awt/Menu$1 +instanceKlass sun/awt/AWTAccessor$MenuAccessor +instanceKlass java/awt/MenuItem$1 +instanceKlass sun/awt/AWTAccessor$MenuItemAccessor +instanceKlass java/awt/MenuComponent$1 +instanceKlass sun/awt/AWTAccessor$MenuComponentAccessor +instanceKlass mage/client/components/tray/MageTray$$Lambda$135 +instanceKlass java/awt/TrayIcon$1 +instanceKlass sun/awt/AWTAccessor$TrayIconAccessor +instanceKlass org/mage/plugins/card/utils/Transparency +instanceKlass java/awt/peer/SystemTrayPeer +instanceKlass java/awt/SystemTray$1 +instanceKlass sun/awt/AWTAccessor$SystemTrayAccessor +instanceKlass java/awt/SystemTray +instanceKlass sun/java2d/loops/GraphicsPrimitive$GeneralBinaryOp +instanceKlass sun/awt/image/OffScreenImageSource +instanceKlass org/mage/plugins/card/utils/ImageManager +instanceKlass mage/client/components/MageRoundPane$$Lambda$134 +instanceKlass mage/client/components/MageRoundPane$Key +instanceKlass mage/client/components/MageRoundPane$$Lambda$133 +instanceKlass mage/client/components/MageRoundPane$ShadowKey +instanceKlass javax/swing/JTable$4 +instanceKlass javax/swing/JTable$5 +instanceKlass javax/swing/JTable$2 +instanceKlass javax/swing/JTable$Resizable3 +instanceKlass javax/swing/JTable$Resizable2 +instanceKlass java/awt/image/FilteredImageSource +instanceKlass java/awt/image/ImageFilter +instanceKlass javax/swing/DefaultRowSorter$Row +instanceKlass com/google/common/base/Joiner$MapJoiner +instanceKlass com/google/common/base/Joiner +instanceKlass com/google/common/collect/Collections2 +instanceKlass com/google/common/collect/BiMap +instanceKlass com/google/common/base/Predicate +instanceKlass com/google/common/collect/MapDifference +instanceKlass com/google/common/collect/Maps +instanceKlass com/google/common/collect/Sets +instanceKlass mage/client/preference/MagePreferences +instanceKlass com/google/common/base/Preconditions +instanceKlass com/google/common/collect/Hashing +instanceKlass com/google/common/collect/ImmutableCollection +instanceKlass mage/client/util/IgnoreList +instanceKlass mage/client/table/TablesPanel$$Lambda$132 +instanceKlass java/util/Optional +instanceKlass javax/swing/RowFilter +instanceKlass mage/client/chat/ChatPanelBasic$2 +instanceKlass mage/client/table/TablesPanel$$Lambda$131 +instanceKlass mage/client/table/TablesPanel$$Lambda$130 +instanceKlass mage/client/table/TablesPanel$$Lambda$129 +instanceKlass mage/client/table/TablesPanel$$Lambda$128 +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass mage/client/table/TablesPanel$$Lambda$127 +instanceKlass mage/client/table/TablesPanel$$Lambda$126 +instanceKlass mage/client/table/TablesPanel$$Lambda$125 +instanceKlass mage/client/table/TablesPanel$$Lambda$124 +instanceKlass mage/client/table/TablesPanel$$Lambda$123 +instanceKlass mage/client/table/TablesPanel$$Lambda$122 +instanceKlass mage/client/table/TablesPanel$$Lambda$121 +instanceKlass mage/client/table/TablesPanel$$Lambda$120 +instanceKlass mage/client/table/TablesPanel$$Lambda$119 +instanceKlass mage/client/table/TablesPanel$$Lambda$118 +instanceKlass mage/client/table/TablesPanel$$Lambda$117 +instanceKlass mage/client/table/TablesPanel$$Lambda$116 +instanceKlass mage/client/table/TablesPanel$$Lambda$115 +instanceKlass mage/client/table/TablesPanel$$Lambda$114 +instanceKlass mage/client/table/TablesPanel$$Lambda$113 +instanceKlass mage/client/table/TablesPanel$$Lambda$112 +instanceKlass mage/client/table/TablesPanel$$Lambda$111 +instanceKlass mage/client/table/TablesPanel$$Lambda$110 +instanceKlass mage/client/table/TablesPanel$$Lambda$109 +instanceKlass mage/client/table/TablesPanel$$Lambda$108 +instanceKlass mage/client/table/TablesPanel$$Lambda$107 +instanceKlass mage/client/table/TablesPanel$$Lambda$106 +instanceKlass javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange +instanceKlass javax/accessibility/AccessibleTableModelChange +instanceKlass mage/client/util/gui/TableUtil +instanceKlass javax/swing/JTable$SortManager +instanceKlass javax/accessibility/AccessibleExtendedTable +instanceKlass javax/accessibility/AccessibleTable +instanceKlass javax/swing/Autoscroller +instanceKlass javax/swing/table/TableColumn +instanceKlass javax/swing/text/DefaultStyledDocument$AbstractChangeHandler +instanceKlass javax/swing/plaf/basic/BasicSpinnerUI$Handler +instanceKlass javax/swing/plaf/synth/SynthSpinnerUI$SpinnerLayout +instanceKlass javax/swing/plaf/synth/SynthSpinnerUI$EditorFocusHandler +instanceKlass javax/swing/JSpinner$ModelListener +instanceKlass javax/swing/text/NavigationFilter$FilterBypass +instanceKlass javax/swing/text/DocumentFilter +instanceKlass javax/swing/JFormattedTextField$AbstractFormatterFactory +instanceKlass javax/swing/JFormattedTextField$AbstractFormatter +instanceKlass javax/swing/JFormattedTextField$DocumentHandler +instanceKlass javax/swing/AbstractSpinnerModel +instanceKlass javax/swing/SpinnerModel +instanceKlass mage/view/UsersView +instanceKlass javax/swing/plaf/basic/BasicTableUI$Handler +instanceKlass javax/swing/AbstractCellEditor +instanceKlass javax/swing/tree/TreeCellEditor +instanceKlass javax/swing/table/TableCellEditor +instanceKlass javax/swing/CellEditor +instanceKlass javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler +instanceKlass javax/swing/plaf/basic/BasicTableHeaderUI$1 +instanceKlass sun/swing/table/DefaultTableCellHeaderRenderer$EmptyIcon +instanceKlass javax/swing/table/TableCellRenderer +instanceKlass javax/swing/JTable$$Lambda$105 +instanceKlass javax/swing/JTable$$Lambda$104 +instanceKlass javax/swing/JTable$$Lambda$103 +instanceKlass javax/swing/JTable$$Lambda$102 +instanceKlass javax/swing/JTable$$Lambda$101 +instanceKlass javax/swing/JTable$$Lambda$100 +instanceKlass javax/swing/JTable$$Lambda$99 +instanceKlass javax/swing/JTable$$Lambda$98 +instanceKlass javax/swing/JTable$$Lambda$97 +instanceKlass javax/swing/JTable$$Lambda$96 +instanceKlass javax/swing/JTable$$Lambda$95 +instanceKlass javax/swing/table/DefaultTableColumnModel +instanceKlass javax/swing/table/TableColumnModel +instanceKlass javax/swing/plaf/basic/BasicSplitPaneUI$Handler +instanceKlass javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager +instanceKlass javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout +instanceKlass java/util/ArrayList$1 +instanceKlass mage/view/MatchView +instanceKlass mage/view/TableView +instanceKlass javax/swing/SwingWorker$1 +instanceKlass sun/swing/AccumulativeRunnable +instanceKlass javax/swing/SwingWorker +instanceKlass java/util/concurrent/Executors$RunnableAdapter +instanceKlass mage/client/MageFrame$$Lambda$94 +instanceKlass mage/client/dialog/ErrorDialog$$Lambda$93 +instanceKlass javax/swing/plaf/synth/SynthTextAreaUI$Handler +instanceKlass mage/client/dialog/ResetPasswordDialog$$Lambda$92 +instanceKlass mage/client/dialog/ResetPasswordDialog$$Lambda$91 +instanceKlass mage/client/dialog/ResetPasswordDialog$$Lambda$90 +instanceKlass sun/nio/ch/Util$5 +instanceKlass sun/nio/ch/FileChannelImpl$Unmapper +instanceKlass java/nio/channels/FileChannel$MapMode +instanceKlass sun/font/Type1Font$1 +instanceKlass sun/font/SunFontManager$11 +instanceKlass sun/font/SunFontManager$10 +instanceKlass mage/client/dialog/RegisterUserDialog$$Lambda$89 +instanceKlass mage/client/dialog/RegisterUserDialog$$Lambda$88 +instanceKlass mage/client/dialog/RegisterUserDialog$$Lambda$87 +instanceKlass org/h2/mvstore/WriteBuffer +instanceKlass org/h2/mvstore/Chunk +instanceKlass javax/swing/GroupLayout$AutoPreferredGapMatch +instanceKlass mage/client/dialog/ConnectDialog$$Lambda$86 +instanceKlass mage/client/dialog/ConnectDialog$$Lambda$85 +instanceKlass mage/client/dialog/ConnectDialog$$Lambda$84 +instanceKlass mage/client/dialog/ConnectDialog$$Lambda$83 +instanceKlass mage/client/dialog/ConnectDialog$$Lambda$82 +instanceKlass mage/client/dialog/ConnectDialog$$Lambda$81 +instanceKlass mage/client/dialog/ConnectDialog$$Lambda$80 +instanceKlass mage/client/dialog/ConnectDialog$$Lambda$79 +instanceKlass mage/client/dialog/ConnectDialog$$Lambda$78 +instanceKlass mage/client/dialog/ConnectDialog$$Lambda$77 +instanceKlass mage/client/dialog/ConnectDialog$$Lambda$76 +instanceKlass mage/client/dialog/ConnectDialog$$Lambda$75 +instanceKlass javax/swing/JInternalFrame$FocusPropertyChangeListener +instanceKlass sun/swing/MenuItemLayoutHelper$ColumnAlignment +instanceKlass javax/swing/plaf/basic/BasicInternalFrameUI$Handler +instanceKlass javax/swing/event/InternalFrameListener +instanceKlass javax/swing/plaf/synth/SynthInternalFrameTitlePane$SynthTitlePaneLayout +instanceKlass javax/swing/plaf/basic/BasicInternalFrameTitlePane$Handler +instanceKlass javax/swing/plaf/synth/SynthDesktopIconUI$Handler +instanceKlass mage/client/remote/CallbackClientImpl +instanceKlass org/jboss/remoting/callback/InvokerCallbackHandler +instanceKlass mage/remote/SessionImpl$RemotingTask +instanceKlass mage/remote/SessionImpl +instanceKlass javax/swing/GroupLayout$SpringDelta +instanceKlass javax/swing/GroupLayout$1 +instanceKlass javax/swing/GroupLayout$ComponentInfo +instanceKlass javax/swing/GroupLayout +instanceKlass mage/client/MageFrame$$Lambda$74 +instanceKlass mage/client/MageFrame$$Lambda$73 +instanceKlass mage/client/MageFrame$$Lambda$72 +instanceKlass mage/client/MageFrame$$Lambda$71 +instanceKlass mage/client/MageFrame$$Lambda$70 +instanceKlass mage/client/MageFrame$$Lambda$69 +instanceKlass mage/client/MageFrame$$Lambda$68 +instanceKlass sun/awt/image/PNGImageDecoder$Chromaticities +instanceKlass mage/client/MageFrame$$Lambda$67 +instanceKlass sun/awt/image/ImageDecoder +instanceKlass java/net/URLConnection$1 +instanceKlass sun/net/www/MimeEntry +instanceKlass sun/net/www/MimeTable$DefaultInstanceHolder$1 +instanceKlass sun/net/www/MimeTable$DefaultInstanceHolder +instanceKlass sun/net/www/MimeTable$1 +instanceKlass sun/net/www/MimeTable +instanceKlass java/net/FileNameMap +instanceKlass sun/awt/image/ImageFetcher$1 +instanceKlass sun/awt/image/FetcherInfo +instanceKlass sun/awt/image/ImageConsumerQueue +instanceKlass sun/awt/image/ImageWatched$Link +instanceKlass sun/awt/image/ImageWatched +instanceKlass java/awt/image/ImageConsumer +instanceKlass sun/awt/image/InputStreamImageSource +instanceKlass sun/awt/image/ImageFetchable +instanceKlass javax/swing/plaf/basic/BasicToolBarUI$Handler +instanceKlass javax/swing/plaf/synth/SynthToolBarUI$SynthToolBarLayoutManager +instanceKlass javax/swing/JToolBar$DefaultToolBarLayout +instanceKlass javax/swing/plaf/basic/BasicDesktopPaneUI$Handler +instanceKlass javax/swing/DefaultDesktopManager +instanceKlass mage/client/components/MageJDesktop$1 +instanceKlass org/jdesktop/swingx/painter/Painter +instanceKlass org/mage/plugins/theme/ThemePluginImpl +instanceKlass mage/view/SimpleCardView +instanceKlass mage/components/CardInfoPane +instanceKlass org/mage/plugins/card/CardPluginImpl +instanceKlass net/xeoh/plugins/base/options/addpluginsfrom/OptionReportAfter +instanceKlass net/xeoh/plugins/base/util/PluginManagerUtil$2 +instanceKlass net/xeoh/plugins/base/util/PluginManagerUtil$1 +instanceKlass net/xeoh/plugins/base/impl/registry/PluggableMetaInformation$PluginLoadedInformation +instanceKlass net/xeoh/plugins/base/annotations/configuration/ConfigurationFile +instanceKlass net/xeoh/plugins/base/annotations/configuration/IsDisabled +instanceKlass net/xeoh/plugins/base/impl/registry/PluggableClassMetaInformation +instanceKlass net/xeoh/plugins/base/annotations/meta/Author +instanceKlass net/xeoh/plugins/base/annotations/PluginImplementation +instanceKlass org/mage/plugins/counter/CounterPluginImpl +instanceKlass mage/interfaces/plugin/CounterPlugin +instanceKlass org/mage/plugins/counter/CounterBean +instanceKlass java/util/zip/ZipFile$ZipEntryIterator +instanceKlass java/util/jar/JarFile$JarEntryIterator +instanceKlass net/xeoh/plugins/base/impl/classpath/cache/JARCache$JARInformation +instanceKlass net/jcores/cores/CoreObject$6 +instanceKlass net/xeoh/plugins/base/impl/classpath/locator/AbstractClassPathLocation +instanceKlass net/jcores/cores/CoreObject$5 +instanceKlass net/jcores/cores/CoreFile$8 +instanceKlass net/jcores/options/Option +instanceKlass java/net/URLEncoder +instanceKlass java/net/URLDecoder +instanceKlass net/xeoh/plugins/base/options/addpluginsfrom/OptionLoadAsynchronously +instanceKlass net/jcores/utils/Handler +instanceKlass net/jcores/interfaces/functions/F1Object2Bool +instanceKlass net/jcores/cores/Core +instanceKlass java/util/concurrent/SynchronousQueue$TransferStack$SNode +instanceKlass java/util/concurrent/SynchronousQueue$Transferer +instanceKlass net/jcores/CommonCore$1 +instanceKlass net/jcores/utils/Reporter +instanceKlass net/jcores/managers/Manager +instanceKlass net/jcores/CommonCore +instanceKlass net/jcores/CoreKeeper +instanceKlass net/xeoh/plugins/base/options/AddPluginsFromOption +instanceKlass net/xeoh/plugins/base/util/PluginConfigurationUtil +instanceKlass net/xeoh/plugins/base/impl/PluginManagerImpl$2 +instanceKlass net/xeoh/plugins/base/options/getplugin/OptionPluginSelector +instanceKlass net/xeoh/plugins/base/util/OptionUtils +instanceKlass net/xeoh/plugins/base/options/getplugin/OptionCapabilities +instanceKlass net/xeoh/plugins/base/options/GetPluginOption +instanceKlass net/xeoh/plugins/base/impl/PluginInformationImpl +instanceKlass net/xeoh/plugins/base/PluginInformation +instanceKlass net/xeoh/plugins/informationbroker/InformationListener +instanceKlass net/xeoh/plugins/informationbroker/InformationItemIdentifier +instanceKlass net/xeoh/plugins/informationbroker/InformationItem +instanceKlass net/xeoh/plugins/informationbroker/impl/InformationBrokerImpl +instanceKlass net/xeoh/plugins/informationbroker/InformationBroker +instanceKlass net/xeoh/plugins/base/annotations/events/PluginLoaded +instanceKlass net/xeoh/plugins/base/annotations/Timer +instanceKlass net/xeoh/plugins/base/annotations/Thread +instanceKlass net/xeoh/plugins/base/annotations/events/Init +instanceKlass net/xeoh/plugins/base/annotations/injections/InjectPlugin +instanceKlass net/xeoh/plugins/bus/messages/BusMessage +instanceKlass net/xeoh/plugins/bus/ChannelListener +instanceKlass net/xeoh/plugins/base/Pluglet +instanceKlass java/util/Timer$1 +instanceKlass java/util/TaskQueue +instanceKlass java/util/Timer +instanceKlass net/xeoh/plugins/bus/impl/BusImpl +instanceKlass net/xeoh/plugins/bus/Bus +instanceKlass net/xeoh/plugins/base/impl/loader/AbstractLoader +instanceKlass net/xeoh/plugins/base/impl/registry/PluggableMetaInformation +instanceKlass net/xeoh/plugins/base/impl/SpawnResult +instanceKlass net/xeoh/plugins/base/impl/PluginSupervisorImpl +instanceKlass net/xeoh/plugins/base/PluginSupervisor +instanceKlass net/xeoh/plugins/base/impl/PluginConfigurationImpl +instanceKlass net/xeoh/plugins/base/impl/Spawner +instanceKlass net/xeoh/plugins/base/util/PluginManagerUtil +instanceKlass org/codehaus/classworlds/DefaultClassRealm +instanceKlass org/codehaus/classworlds/ClassWorld$1 +instanceKlass org/codehaus/classworlds/ClassRealm +instanceKlass org/codehaus/classworlds/ClassWorld +instanceKlass net/xeoh/plugins/base/impl/classpath/ClassPathManager$1 +instanceKlass net/xeoh/plugins/base/impl/classpath/ClassPathManager +instanceKlass net/xeoh/plugins/base/impl/classpath/locator/ClassPathLocator +instanceKlass net/jcores/interfaces/functions/F1 +instanceKlass net/xeoh/plugins/base/impl/registry/PluginRegistry +instanceKlass net/xeoh/plugins/base/impl/classpath/cache/JARCache +instanceKlass net/xeoh/plugins/base/options/getplugin/PluginSelector +instanceKlass net/xeoh/plugins/base/Option +instanceKlass net/xeoh/plugins/base/PluginConfiguration +instanceKlass net/xeoh/plugins/base/impl/PluginManagerImpl +instanceKlass net/xeoh/plugins/base/PluginManager +instanceKlass net/xeoh/plugins/base/impl/PluginManagerFactory +instanceKlass mage/client/util/DefaultActionCallback +instanceKlass mage/client/plugins/adapters/MageActionCallback +instanceKlass mage/cards/action/ActionCallback +instanceKlass mage/interfaces/plugin/ThemePlugin +instanceKlass mage/interfaces/plugin/CardPlugin +instanceKlass net/xeoh/plugins/base/Plugin +instanceKlass net/xeoh/plugins/base/Pluggable +instanceKlass mage/client/plugins/MagePlugins +instanceKlass org/h2/mvstore/db/MVTable$1 +instanceKlass org/h2/index/SpatialIndex +instanceKlass org/h2/engine/Constants +instanceKlass java/text/FieldPosition$Delegate +instanceKlass mage/cards/ExpansionSet +instanceKlass mage/cards/repository/ExpansionInfo +instanceKlass com/j256/ormlite/support/GeneratedKeyHolder +instanceKlass com/j256/ormlite/misc/BaseDaoEnabled +instanceKlass java/sql/Array +instanceKlass org/h2/result/ResultExternal +instanceKlass org/h2/result/LocalResult +instanceKlass com/j256/ormlite/jdbc/JdbcDatabaseResults +instanceKlass com/j256/ormlite/stmt/SelectIterator +instanceKlass com/j256/ormlite/jdbc/TypeValMapper$1 +instanceKlass com/j256/ormlite/jdbc/TypeValMapper +instanceKlass org/h2/table/Plan$1 +instanceKlass org/h2/table/Plan +instanceKlass org/h2/command/dml/Optimizer +instanceKlass com/j256/ormlite/stmt/mapped/BaseMappedStatement +instanceKlass com/j256/ormlite/stmt/PreparedUpdate +instanceKlass com/j256/ormlite/stmt/PreparedDelete +instanceKlass com/j256/ormlite/stmt/ColumnArg +instanceKlass com/j256/ormlite/stmt/query/ManyClause +instanceKlass com/j256/ormlite/stmt/query/BaseComparison +instanceKlass com/j256/ormlite/stmt/query/Comparison +instanceKlass com/j256/ormlite/stmt/BaseArgumentHolder +instanceKlass com/j256/ormlite/stmt/ArgumentHolder +instanceKlass com/j256/ormlite/stmt/query/NeedsFutureClause +instanceKlass com/j256/ormlite/stmt/query/Clause +instanceKlass com/j256/ormlite/stmt/Where +instanceKlass com/j256/ormlite/stmt/PreparedQuery +instanceKlass com/j256/ormlite/stmt/StatementBuilder +instanceKlass com/j256/ormlite/jdbc/JdbcCompiledStatement +instanceKlass sun/nio/ch/FileKey +instanceKlass sun/nio/ch/FileLockTable +instanceKlass java/nio/channels/FileLock +instanceKlass org/h2/mvstore/cache/CacheLongKeyLIRS$Entry +instanceKlass org/h2/mvstore/cache/CacheLongKeyLIRS$Segment +instanceKlass org/h2/mvstore/cache/CacheLongKeyLIRS +instanceKlass org/h2/mvstore/FreeSpaceBitSet +instanceKlass org/h2/mvstore/FileStore +instanceKlass org/h2/mvstore/db/MVTableEngine$1 +instanceKlass sun/net/ResourceManager +instanceKlass org/h2/mvstore/MVStoreTool +instanceKlass java/lang/Throwable$PrintStreamOrWriter +instanceKlass java/net/Socket$3 +instanceKlass java/net/Socket$2 +instanceKlass org/h2/value/Transfer +instanceKlass org/h2/util/SmallMap +instanceKlass org/h2/server/TcpServerThread +instanceKlass java/net/Proxy +instanceKlass sun/net/spi/DefaultProxySelector$3 +instanceKlass sun/net/spi/DefaultProxySelector$NonProxyInfo +instanceKlass sun/net/NetProperties$1 +instanceKlass sun/net/NetProperties +instanceKlass sun/net/spi/DefaultProxySelector$1 +instanceKlass java/net/ProxySelector +instanceKlass java/net/SocksSocketImpl$3 +instanceKlass sun/net/util/IPAddressUtil +instanceKlass java/net/InetAddress$CacheEntry +instanceKlass sun/net/InetAddressCachePolicy$2 +instanceKlass sun/net/InetAddressCachePolicy$1 +instanceKlass sun/net/InetAddressCachePolicy +instanceKlass org/h2/table/PlanItem +instanceKlass org/h2/index/IndexCondition +instanceKlass org/h2/index/IndexCursor +instanceKlass org/h2/table/TableFilter +instanceKlass org/h2/result/ResultInterface +instanceKlass java/sql/ParameterMetaData +instanceKlass java/sql/ResultSetMetaData +instanceKlass org/h2/expression/ExpressionVisitor +instanceKlass org/h2/engine/FunctionAlias$JavaMethod +instanceKlass org/h2/engine/Session$Savepoint +instanceKlass org/h2/expression/FunctionInfo +instanceKlass java/util/concurrent/atomic/AtomicReference +instanceKlass org/h2/mvstore/StreamStore +instanceKlass org/h2/value/Value$ValueBlob +instanceKlass org/h2/value/Value$ValueClob +instanceKlass org/h2/store/LobStorageMap +instanceKlass org/h2/mvstore/rtree/SpatialKey +instanceKlass org/h2/mvstore/db/TransactionStore$VersionedValue +instanceKlass org/h2/engine/MetaRecord +instanceKlass org/h2/result/Row +instanceKlass org/h2/mvstore/db/TransactionStore$TransactionMap$2 +instanceKlass org/h2/mvstore/db/MVPrimaryIndex$MVStoreCursor +instanceKlass org/h2/util/StatementBuilder +instanceKlass org/h2/expression/ParameterInterface +instanceKlass org/h2/result/ResultTarget +instanceKlass org/h2/expression/FunctionCall +instanceKlass org/h2/table/TableFilter$TableFilterVisitor +instanceKlass org/h2/command/Command +instanceKlass org/h2/command/Prepared +instanceKlass org/h2/command/Parser +instanceKlass org/h2/mvstore/db/TransactionStore$TransactionMap +instanceKlass org/h2/mvstore/db/TransactionStore$Transaction +instanceKlass org/h2/index/IndexType +instanceKlass org/h2/table/IndexColumn +instanceKlass org/h2/index/Cursor +instanceKlass org/h2/mvstore/db/MVIndex +instanceKlass org/h2/index/Index +instanceKlass org/h2/api/ErrorCode +instanceKlass java/util/zip/ZipUtils +instanceKlass java/io/ObjectStreamConstants +instanceKlass java/io/ObjectInput +instanceKlass org/h2/util/JdbcUtils +instanceKlass org/h2/value/DataType +instanceKlass org/h2/expression/Expression +instanceKlass org/h2/table/ColumnResolver +instanceKlass org/h2/table/Column +instanceKlass org/h2/command/ddl/CreateTableData +instanceKlass org/h2/engine/UndoLog +instanceKlass org/h2/mvstore/CursorPos +instanceKlass org/h2/mvstore/Cursor +instanceKlass org/h2/mvstore/db/TransactionStore$ArrayType +instanceKlass org/h2/mvstore/db/TransactionStore$VersionedValueType +instanceKlass org/h2/mvstore/type/ObjectDataType$AutoDetectDataType +instanceKlass org/h2/mvstore/type/ObjectDataType +instanceKlass org/h2/mvstore/MVMap$Builder +instanceKlass org/h2/mvstore/db/ValueDataType +instanceKlass org/h2/mvstore/db/TransactionStore +instanceKlass org/h2/mvstore/DataUtils +instanceKlass org/h2/mvstore/Page +instanceKlass org/h2/mvstore/ConcurrentArrayList +instanceKlass org/h2/mvstore/type/StringDataType +instanceKlass org/h2/mvstore/MVMap$MapBuilder +instanceKlass org/h2/mvstore/MVStore +instanceKlass org/h2/mvstore/type/DataType +instanceKlass org/h2/mvstore/db/MVTableEngine$Store +instanceKlass org/h2/mvstore/MVStore$Builder +instanceKlass org/h2/engine/DbObjectBase +instanceKlass org/h2/mvstore/db/MVTableEngine +instanceKlass org/h2/api/TableEngine +instanceKlass org/h2/util/NetUtils +instanceKlass org/h2/server/TcpServer +instanceKlass org/h2/server/Service +instanceKlass org/h2/util/Tool +instanceKlass org/h2/server/ShutdownHandler +instanceKlass sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter +instanceKlass sun/util/locale/provider/TimeZoneNameUtility +instanceKlass sun/nio/cs/Surrogate +instanceKlass sun/nio/cs/Surrogate$Parser +instanceKlass org/h2/util/IOUtils +instanceKlass sun/security/provider/ByteArrayAccess +instanceKlass sun/security/provider/SeedGenerator +instanceKlass org/h2/util/MathUtils$1 +instanceKlass sun/security/jca/GetInstance$Instance +instanceKlass java/security/MessageDigestSpi +instanceKlass java/security/Provider$UString +instanceKlass java/security/Provider$Service +instanceKlass sun/security/provider/NativePRNG$NonBlocking +instanceKlass sun/security/provider/NativePRNG$Blocking +instanceKlass sun/security/provider/NativePRNG +instanceKlass sun/security/provider/SunEntries$1 +instanceKlass sun/security/provider/SunEntries +instanceKlass sun/security/jca/ProviderConfig$2 +instanceKlass java/security/Security$1 +instanceKlass java/security/Security +instanceKlass sun/security/jca/ProviderList$2 +instanceKlass sun/misc/FDBigInteger +instanceKlass java/security/Provider$EngineDescription +instanceKlass java/security/Provider$ServiceKey +instanceKlass sun/security/jca/ProviderConfig +instanceKlass sun/security/jca/ProviderList +instanceKlass sun/security/jca/Providers +instanceKlass sun/security/jca/GetInstance +instanceKlass java/security/SecureRandomSpi +instanceKlass org/h2/message/Trace +instanceKlass org/h2/message/TraceSystem +instanceKlass org/h2/message/TraceWriter +instanceKlass org/h2/util/TempFileDeleter +instanceKlass org/h2/engine/Mode +instanceKlass org/h2/util/BitField +instanceKlass org/h2/schema/SchemaObject +instanceKlass org/h2/engine/DbObject +instanceKlass org/h2/result/SearchRow +instanceKlass org/h2/engine/Database +instanceKlass org/h2/compress/CompressLZF +instanceKlass org/h2/compress/Compressor +instanceKlass org/h2/store/fs/FileMemData +instanceKlass org/h2/store/fs/FilePath +instanceKlass org/h2/store/fs/FileUtils +instanceKlass org/h2/store/FileLock +instanceKlass org/h2/engine/Engine +instanceKlass org/h2/engine/SessionFactory +instanceKlass org/h2/command/CommandInterface +instanceKlass org/h2/store/LobStorageInterface +instanceKlass org/h2/engine/SessionWithState +instanceKlass org/h2/engine/SessionInterface +instanceKlass org/h2/store/DataHandler +instanceKlass org/h2/value/CompareMode +instanceKlass org/h2/util/StringUtils +instanceKlass org/h2/engine/SettingsBase +instanceKlass java/util/Random +instanceKlass org/h2/util/MathUtils +instanceKlass org/h2/engine/SysProperties +instanceKlass org/h2/command/dml/SetTypes +instanceKlass org/h2/engine/ConnectionInfo +instanceKlass java/sql/CallableStatement +instanceKlass java/sql/NClob +instanceKlass java/sql/Clob +instanceKlass java/sql/Blob +instanceKlass org/h2/value/Value +instanceKlass java/sql/DatabaseMetaData +instanceKlass java/sql/PreparedStatement +instanceKlass java/sql/Statement +instanceKlass java/sql/ResultSet +instanceKlass org/h2/message/TraceObject +instanceKlass org/h2/util/New +instanceKlass org/h2/util/Utils +instanceKlass org/h2/upgrade/DbUpgrade +instanceKlass com/j256/ormlite/misc/VersionUtils +instanceKlass com/j256/ormlite/jdbc/JdbcDatabaseConnection$OneLongWrapper +instanceKlass com/j256/ormlite/support/CompiledStatement +instanceKlass java/sql/Savepoint +instanceKlass com/j256/ormlite/support/DatabaseResults +instanceKlass com/j256/ormlite/db/BaseDatabaseType$1 +instanceKlass com/j256/ormlite/dao/GenericRawResults +instanceKlass com/j256/ormlite/dao/RawRowMapper +instanceKlass com/j256/ormlite/stmt/StatementExecutor +instanceKlass com/j256/ormlite/field/DataPersisterManager +instanceKlass com/j256/ormlite/field/DatabaseField +instanceKlass com/j256/ormlite/field/types/BaseDateType$DateStringFormatConfig +instanceKlass com/j256/ormlite/field/DataPersister +instanceKlass com/j256/ormlite/field/DatabaseFieldConfig +instanceKlass com/j256/ormlite/dao/BaseForeignCollection +instanceKlass com/j256/ormlite/table/DatabaseTableConfig +instanceKlass com/j256/ormlite/table/TableInfo +instanceKlass com/j256/ormlite/dao/ForeignCollection +instanceKlass com/j256/ormlite/dao/CloseableWrappedIterable +instanceKlass com/j256/ormlite/dao/ObjectCache +instanceKlass com/j256/ormlite/stmt/PreparedStmt +instanceKlass com/j256/ormlite/stmt/GenericRowMapper +instanceKlass com/j256/ormlite/dao/CloseableIterator +instanceKlass com/j256/ormlite/dao/BaseDaoImpl +instanceKlass java/lang/reflect/WeakCache$Value +instanceKlass sun/misc/ProxyGenerator$ExceptionTableEntry +instanceKlass sun/misc/ProxyGenerator$PrimitiveTypeInfo +instanceKlass sun/misc/ProxyGenerator$FieldInfo +instanceKlass sun/misc/ProxyGenerator$ConstantPool$Entry +instanceKlass sun/misc/ProxyGenerator$MethodInfo +instanceKlass sun/misc/ProxyGenerator$ProxyMethod +instanceKlass sun/misc/ProxyGenerator$ConstantPool +instanceKlass sun/misc/ProxyGenerator +instanceKlass java/lang/reflect/WeakCache$Factory +instanceKlass java/util/function/Supplier +instanceKlass sun/reflect/annotation/AnnotationInvocationHandler +instanceKlass sun/reflect/annotation/AnnotationParser$1 +instanceKlass java/lang/annotation/Target +instanceKlass java/lang/annotation/Inherited +instanceKlass java/lang/annotation/Retention +instanceKlass sun/reflect/annotation/ExceptionProxy +instanceKlass sun/reflect/annotation/AnnotationType$1 +instanceKlass com/j256/ormlite/table/DatabaseTable +instanceKlass com/j256/ormlite/dao/DaoManager$ClassConnectionSource +instanceKlass com/j256/ormlite/dao/Dao +instanceKlass com/j256/ormlite/dao/CloseableIterable +instanceKlass com/j256/ormlite/dao/DaoManager +instanceKlass com/j256/ormlite/field/FieldType +instanceKlass com/j256/ormlite/table/TableUtils +instanceKlass mage/cards/repository/DatabaseVersion +instanceKlass mage/cards/repository/RepositoryUtil +instanceKlass java/util/concurrent/CopyOnWriteArrayList$COWIterator +instanceKlass java/sql/DriverInfo +instanceKlass java/sql/DriverManager$2 +instanceKlass java/sql/DriverManager$1 +instanceKlass java/sql/DriverManager +instanceKlass java/sql/Connection +instanceKlass java/sql/Wrapper +instanceKlass org/h2/Driver +instanceKlass java/sql/Driver +instanceKlass com/j256/ormlite/field/BaseFieldConverter +instanceKlass com/j256/ormlite/field/FieldConverter +instanceKlass com/j256/ormlite/db/BaseDatabaseType +instanceKlass com/j256/ormlite/db/DatabaseType +instanceKlass com/j256/ormlite/db/DatabaseTypeUtils +instanceKlass com/j256/ormlite/logger/Logger +instanceKlass com/j256/ormlite/logger/Slf4jLoggingLog$1 +instanceKlass com/j256/ormlite/logger/Slf4jLoggingLog +instanceKlass com/j256/ormlite/logger/LocalLog +instanceKlass com/j256/ormlite/logger/Log +instanceKlass com/j256/ormlite/logger/LoggerFactory +instanceKlass com/j256/ormlite/jdbc/JdbcDatabaseConnection +instanceKlass com/j256/ormlite/support/DatabaseConnection +instanceKlass com/j256/ormlite/support/BaseConnectionSource +instanceKlass com/j256/ormlite/support/ConnectionSource +instanceKlass com/sun/imageio/plugins/common/ReaderUtil +instanceKlass sun/java2d/cmm/CMSManager +instanceKlass com/sun/imageio/plugins/png/PNGImageDataEnumeration +instanceKlass java/io/RandomAccessFile$1 +instanceKlass javax/imageio/metadata/IIOMetadata +instanceKlass com/sun/imageio/stream/CloseableDisposerRecord +instanceKlass org/mage/plugins/card/constants/Constants +instanceKlass sun/nio/fs/BasicFileAttributesHolder +instanceKlass java/nio/file/Files$3 +instanceKlass java/nio/file/FileTreeWalker$Event +instanceKlass sun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator +instanceKlass java/nio/file/FileTreeWalker$DirectoryNode +instanceKlass sun/nio/fs/WindowsDirectoryStream +instanceKlass java/nio/file/DirectoryStream +instanceKlass java/nio/file/Files$AcceptAllFilter +instanceKlass java/nio/file/DirectoryStream$Filter +instanceKlass sun/nio/fs/WindowsNativeDispatcher$BackupResult +instanceKlass sun/nio/fs/WindowsNativeDispatcher$CompletionStatus +instanceKlass sun/nio/fs/WindowsNativeDispatcher$AclInformation +instanceKlass sun/nio/fs/WindowsNativeDispatcher$Account +instanceKlass sun/nio/fs/WindowsNativeDispatcher$DiskFreeSpace +instanceKlass sun/nio/fs/WindowsNativeDispatcher$VolumeInformation +instanceKlass sun/nio/fs/WindowsNativeDispatcher$FirstStream +instanceKlass sun/nio/fs/WindowsNativeDispatcher$FirstFile +instanceKlass sun/nio/fs/WindowsNativeDispatcher$1 +instanceKlass sun/nio/fs/WindowsNativeDispatcher +instanceKlass sun/nio/fs/NativeBuffer$Deallocator +instanceKlass sun/nio/fs/NativeBuffer +instanceKlass sun/nio/fs/NativeBuffers +instanceKlass sun/nio/fs/WindowsFileAttributes +instanceKlass java/nio/file/attribute/DosFileAttributes +instanceKlass sun/nio/fs/AbstractBasicFileAttributeView +instanceKlass sun/nio/fs/DynamicFileAttributeView +instanceKlass sun/nio/fs/WindowsFileAttributeViews +instanceKlass java/nio/file/attribute/BasicFileAttributeView +instanceKlass java/nio/file/attribute/FileAttributeView +instanceKlass java/nio/file/attribute/AttributeView +instanceKlass java/nio/file/attribute/BasicFileAttributes +instanceKlass java/nio/file/CopyOption +instanceKlass java/nio/file/OpenOption +instanceKlass java/util/RegularEnumSet$EnumSetIterator +instanceKlass java/nio/file/FileTreeWalker +instanceKlass java/nio/file/Files +instanceKlass java/nio/file/SimpleFileVisitor +instanceKlass sun/nio/fs/AbstractPath +instanceKlass java/nio/file/Paths +instanceKlass sun/nio/fs/WindowsFileSystem$2 +instanceKlass java/nio/file/PathMatcher +instanceKlass java/util/regex/ASCII +instanceKlass sun/nio/fs/Globs +instanceKlass java/net/URI$Parser +instanceKlass java/net/URI +instanceKlass sun/nio/fs/Util +instanceKlass sun/nio/fs/WindowsPathParser$Result +instanceKlass sun/nio/fs/WindowsPathParser +instanceKlass java/nio/file/FileSystem +instanceKlass java/nio/file/spi/FileSystemProvider +instanceKlass sun/nio/fs/DefaultFileSystemProvider +instanceKlass java/nio/file/FileSystems$DefaultFileSystemHolder$1 +instanceKlass java/nio/file/FileSystems$DefaultFileSystemHolder +instanceKlass java/nio/file/FileSystems +instanceKlass java/nio/file/FileVisitor +instanceKlass org/mage/card/arcane/ManaSymbols +instanceKlass java/awt/Polygon +instanceKlass com/google/common/collect/MapMaker$StrategyImpl$FutureValueReference +instanceKlass org/mage/card/arcane/CardRenderer +instanceKlass java/awt/MediaEntry +instanceKlass java/awt/MediaTracker +instanceKlass java/awt/image/BufferStrategy +instanceKlass javax/swing/ImageIcon$2 +instanceKlass javax/swing/ImageIcon$1 +instanceKlass javax/swing/ImageIcon +instanceKlass com/mortennobel/imagescaling/ResampleOp$2 +instanceKlass com/mortennobel/imagescaling/ResampleOp$1 +instanceKlass com/mortennobel/imagescaling/ResampleOp$SubSamplingData +instanceKlass com/mortennobel/imagescaling/ImageUtils +instanceKlass com/mortennobel/imagescaling/TriangleFilter +instanceKlass com/mortennobel/imagescaling/MitchellFilter +instanceKlass com/mortennobel/imagescaling/Lanczos3Filter +instanceKlass com/mortennobel/imagescaling/HermiteFilter +instanceKlass com/mortennobel/imagescaling/BSplineFilter +instanceKlass com/mortennobel/imagescaling/BoxFilter +instanceKlass com/mortennobel/imagescaling/BiCubicFilter +instanceKlass com/mortennobel/imagescaling/BellFilter +instanceKlass com/mortennobel/imagescaling/ResampleFilter +instanceKlass com/mortennobel/imagescaling/ResampleFilters +instanceKlass com/mortennobel/imagescaling/DimensionConstrain +instanceKlass com/mortennobel/imagescaling/AdvancedResizeOp +instanceKlass java/awt/image/BufferedImageOp +instanceKlass com/google/common/base/FinalizableReferenceQueue$DirectLoader +instanceKlass com/google/common/base/FinalizableReferenceQueue$DecoupledLoader +instanceKlass com/google/common/base/FinalizableReferenceQueue$SystemLoader +instanceKlass com/google/common/base/FinalizableReferenceQueue$FinalizerLoader +instanceKlass java/util/logging/LogManager$5 +instanceKlass java/util/logging/Logger$1 +instanceKlass java/util/logging/LogManager$LoggerContext$1 +instanceKlass java/util/logging/LogManager$3 +instanceKlass java/util/logging/LogManager$2 +instanceKlass java/util/logging/LogManager$LogNode +instanceKlass java/util/logging/LogManager$LoggerContext +instanceKlass java/util/logging/LogManager$1 +instanceKlass java/util/logging/LogManager +instanceKlass java/util/concurrent/CopyOnWriteArrayList +instanceKlass java/util/logging/Logger$LoggerBundle +instanceKlass java/util/logging/Level$KnownLevel +instanceKlass java/util/logging/Level +instanceKlass java/util/logging/Handler +instanceKlass java/util/logging/Logger +instanceKlass com/google/common/base/FinalizableReferenceQueue +instanceKlass com/google/common/collect/MapMaker$QueueHolder +instanceKlass mage/client/util/TransformedImageCache$$Lambda$66 +instanceKlass com/google/common/collect/CustomConcurrentHashMap +instanceKlass mage/client/util/ImageCaches +instanceKlass com/google/common/collect/CustomConcurrentHashMap$Impl$InternalsImpl +instanceKlass java/util/concurrent/atomic/AtomicReferenceArray +instanceKlass com/google/common/collect/CustomConcurrentHashMap$Internals +instanceKlass java/util/TimerTask +instanceKlass com/google/common/collect/MapMaker$StrategyImpl +instanceKlass com/google/common/collect/CustomConcurrentHashMap$ComputingStrategy +instanceKlass com/google/common/collect/CustomConcurrentHashMap$Strategy +instanceKlass mage/client/util/TransformedImageCache$$Lambda$65 +instanceKlass com/google/common/base/Function +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass mage/client/util/TransformedImageCache$Key +instanceKlass com/google/common/collect/CustomConcurrentHashMap$Builder +instanceKlass com/google/common/collect/MapMaker$StrongEntry +instanceKlass com/google/common/base/FinalizableReference +instanceKlass com/google/common/collect/MapMaker$ReferenceEntry +instanceKlass com/google/common/collect/MapMaker$1 +instanceKlass com/google/common/collect/MapMaker$ValueReference +instanceKlass com/google/common/collect/MapMaker +instanceKlass mage/client/util/TransformedImageCache +instanceKlass sun/awt/image/MultiResolutionImage +instanceKlass sun/awt/image/BufImgSurfaceData$ICMColorData +instanceKlass mage/client/util/gui/BufferedImageBuilder +instanceKlass java/awt/image/BufferedImage$1 +instanceKlass sun/awt/image/NativeLibLoader$1 +instanceKlass sun/awt/image/NativeLibLoader +instanceKlass java/awt/image/SampleModel +instanceKlass java/awt/image/Raster +instanceKlass java/awt/image/DataBuffer$1 +instanceKlass sun/awt/image/SunWritableRaster$DataStealer +instanceKlass java/awt/image/DataBuffer +instanceKlass com/sun/imageio/plugins/jpeg/JPEG$JCS +instanceKlass com/sun/imageio/plugins/jpeg/ImageTypeIterator +instanceKlass com/sun/imageio/plugins/jpeg/ImageTypeProducer +instanceKlass javax/imageio/IIOParam +instanceKlass com/sun/imageio/plugins/jpeg/JPEGImageReader$JPEGReaderDisposerRecord +instanceKlass com/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock +instanceKlass javax/imageio/plugins/jpeg/JPEGHuffmanTable +instanceKlass javax/imageio/plugins/jpeg/JPEGQTable +instanceKlass com/sun/imageio/plugins/jpeg/JPEGImageReader$1 +instanceKlass javax/imageio/ImageIO$ImageReaderIterator +instanceKlass javax/imageio/spi/FilterIterator +instanceKlass javax/imageio/ImageIO$CanDecodeInputFilter +instanceKlass javax/imageio/spi/ServiceRegistry$Filter +instanceKlass javax/imageio/stream/MemoryCacheImageInputStream$StreamDisposerRecord +instanceKlass javax/imageio/stream/MemoryCache +instanceKlass javax/imageio/stream/ImageInputStreamImpl +instanceKlass javax/imageio/spi/PartialOrderIterator +instanceKlass javax/imageio/ImageIO$CacheInfo +instanceKlass javax/imageio/ImageTypeSpecifier +instanceKlass javax/imageio/ImageWriter +instanceKlass javax/imageio/ImageTranscoder +instanceKlass javax/imageio/metadata/IIOMetadataFormat +instanceKlass javax/imageio/ImageReader +instanceKlass javax/imageio/spi/IIORegistry$1 +instanceKlass com/sun/imageio/plugins/jpeg/JPEG +instanceKlass javax/imageio/stream/ImageOutputStream +instanceKlass javax/imageio/spi/DigraphNode +instanceKlass javax/imageio/stream/ImageInputStream +instanceKlass javax/imageio/spi/SubRegistry +instanceKlass javax/imageio/spi/IIOServiceProvider +instanceKlass javax/imageio/spi/RegisterableService +instanceKlass javax/imageio/spi/ServiceRegistry +instanceKlass javax/imageio/ImageIO +instanceKlass org/mage/card/arcane/UI +instanceKlass mage/client/util/ImageHelper +instanceKlass sun/awt/GlobalCursorManager$NativeUpdater +instanceKlass sun/awt/GlobalCursorManager +instanceKlass sun/java2d/StateTrackableDelegate$1 +instanceKlass sun/java2d/d3d/D3DBlitLoops +instanceKlass sun/java2d/loops/ProcessPath$DrawHandler +instanceKlass sun/java2d/pipe/BufferedRenderPipe$AAParallelogramPipe +instanceKlass sun/java2d/pipe/BufferedRenderPipe +instanceKlass sun/java2d/pipe/hw/AccelSurface +instanceKlass sun/font/SunFontManager$5 +instanceKlass sun/font/SunFontManager$FamilyDescription +instanceKlass sun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar +instanceKlass sun/util/locale/InternalLocaleBuilder +instanceKlass sun/util/locale/StringTokenIterator +instanceKlass sun/util/locale/ParseStatus +instanceKlass sun/awt/im/InputMethodAdapter +instanceKlass java/awt/im/spi/InputMethod +instanceKlass java/awt/im/spi/InputMethodContext +instanceKlass javax/swing/text/JTextComponent$KeyBinding +instanceKlass java/awt/print/Printable +instanceKlass javax/swing/text/NavigationFilter +instanceKlass javax/swing/TransferHandler$DropLocation +instanceKlass javax/print/attribute/PrintRequestAttributeSet +instanceKlass javax/print/attribute/AttributeSet +instanceKlass javax/print/PrintService +instanceKlass javax/swing/InputVerifier +instanceKlass java/awt/im/InputMethodRequests +instanceKlass java/awt/image/ImageProducer +instanceKlass java/awt/im/InputContext +instanceKlass java/awt/Event +instanceKlass org/jdesktop/layout/Baseline +instanceKlass org/jdesktop/layout/GroupLayout$SpringDelta +instanceKlass java/awt/GridBagLayoutInfo +instanceKlass javax/swing/LayoutStyle +instanceKlass org/jdesktop/layout/LayoutStyle +instanceKlass javax/swing/plaf/synth/SynthGraphicsUtils$SynthIconWrapper +instanceKlass org/jdesktop/layout/GroupLayout$AutopaddingMatch +instanceKlass java/awt/SystemColor$$Lambda$64 +instanceKlass sun/awt/AWTAccessor$SystemColorAccessor +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/awt/peer/DialogPeer +instanceKlass sun/awt/NullComponentPeer +instanceKlass java/awt/peer/LightweightPeer +instanceKlass sun/awt/im/ExecutableInputMethodManager$3 +instanceKlass sun/awt/im/InputMethodLocator +instanceKlass sun/awt/windows/WInputMethodDescriptor +instanceKlass java/awt/im/spi/InputMethodDescriptor +instanceKlass sun/awt/im/InputMethodManager +instanceKlass sun/awt/FontConfiguration$2 +instanceKlass sun/awt/NativeLibLoader$1 +instanceKlass sun/awt/NativeLibLoader +instanceKlass sun/awt/PlatformFont +instanceKlass java/awt/peer/FontPeer +instanceKlass javax/swing/RepaintManager$2 +instanceKlass sun/awt/windows/WComponentPeer$2 +instanceKlass sun/awt/windows/WColor +instanceKlass sun/java2d/StateTracker$2 +instanceKlass sun/java2d/StateTracker$1 +instanceKlass sun/java2d/StateTracker +instanceKlass sun/java2d/SurfaceDataProxy +instanceKlass sun/awt/image/SurfaceManager$FlushableCacheData +instanceKlass sun/java2d/DefaultDisposerRecord +instanceKlass sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec +instanceKlass sun/java2d/loops/RenderLoops +instanceKlass sun/java2d/windows/GDIRenderer +instanceKlass sun/java2d/loops/GraphicsPrimitiveMgr$2 +instanceKlass sun/java2d/loops/GraphicsPrimitiveMgr$1 +instanceKlass sun/java2d/loops/GeneralRenderer +instanceKlass sun/java2d/loops/CustomComponent +instanceKlass sun/java2d/pipe/ValidatePipe +instanceKlass java/awt/BasicStroke +instanceKlass java/awt/Stroke +instanceKlass java/awt/AlphaComposite +instanceKlass sun/awt/ConstrainableGraphics +instanceKlass sun/java2d/loops/CompositeType +instanceKlass sun/java2d/loops/GraphicsPrimitiveMgr +instanceKlass sun/java2d/loops/GraphicsPrimitive +instanceKlass sun/java2d/loops/XORComposite +instanceKlass sun/java2d/d3d/D3DScreenUpdateManager$$Lambda$63 +instanceKlass sun/java2d/d3d/D3DScreenUpdateManager$$Lambda$62 +instanceKlass sun/java2d/ScreenUpdateManager +instanceKlass sun/awt/im/InputMethodWindow +instanceKlass sun/awt/ExtendedKeyCodes +instanceKlass sun/awt/RepaintArea +instanceKlass sun/awt/windows/WWindowPeer$GuiDisposedListener +instanceKlass sun/awt/windows/WWindowPeer$ActiveWindowListener +instanceKlass java/awt/peer/CanvasPeer +instanceKlass java/awt/peer/PanelPeer +instanceKlass java/awt/peer/FramePeer +instanceKlass java/awt/peer/WindowPeer +instanceKlass java/awt/peer/ContainerPeer +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$61 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$60 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$59 +instanceKlass java/text/BreakIterator +instanceKlass javax/swing/text/GlyphView$GlyphPainter +instanceKlass javax/swing/SizeRequirements +instanceKlass javax/swing/text/TabableView +instanceKlass javax/swing/text/FlowView$FlowStrategy +instanceKlass javax/swing/text/html/StyleSheet$1 +instanceKlass javax/swing/text/html/CSSBorder$StrokePainter +instanceKlass javax/swing/text/html/CSSBorder$SolidPainter +instanceKlass javax/swing/text/html/CSSBorder$NullPainter +instanceKlass javax/swing/text/html/CSSBorder$BorderPainter +instanceKlass javax/swing/text/html/StyleSheet$BoxPainter +instanceKlass javax/swing/text/html/StyleSheet$SearchBuffer +instanceKlass javax/swing/text/html/MuxingAttributeSet +instanceKlass javax/swing/text/GapContent$UndoPosRef +instanceKlass javax/swing/text/DefaultStyledDocument$ElementBuffer$ElemChanges +instanceKlass javax/swing/text/DefaultStyledDocument$ElementSpec +instanceKlass javax/swing/text/html/parser/ContentModelState +instanceKlass javax/swing/text/html/parser/TagStack +instanceKlass javax/swing/text/html/parser/TagElement +instanceKlass javax/swing/text/html/parser/Parser +instanceKlass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction +instanceKlass javax/swing/text/html/HTMLEditorKit$ParserCallback +instanceKlass javax/swing/text/html/parser/AttributeList +instanceKlass javax/swing/text/html/parser/ContentModel +instanceKlass javax/swing/text/html/parser/ParserDelegator$1 +instanceKlass javax/swing/text/html/parser/Entity +instanceKlass javax/swing/text/html/parser/Element +instanceKlass javax/swing/text/html/parser/DTD +instanceKlass javax/swing/text/html/parser/DTDConstants +instanceKlass javax/swing/text/html/HTMLEditorKit$Parser +instanceKlass javax/swing/text/DefaultStyledDocument$ElementBuffer +instanceKlass javax/swing/text/StyledDocument +instanceKlass javax/swing/text/html/CSS$ShorthandMarginParser +instanceKlass javax/swing/text/html/CSS$LengthUnit +instanceKlass javax/swing/text/html/HTMLEditorKit$1 +instanceKlass javax/swing/text/html/CSSParser +instanceKlass javax/swing/text/html/StyleSheet$CssParser +instanceKlass javax/swing/text/html/CSSParser$CSSParserCallback +instanceKlass javax/swing/text/html/StyleSheet$SelectorMapping +instanceKlass javax/swing/text/html/CSS$CssValue +instanceKlass javax/swing/text/html/CSS$Value +instanceKlass javax/swing/text/html/CSS$Attribute +instanceKlass javax/swing/text/html/CSS +instanceKlass javax/swing/text/StyledEditorKit$AttributeTracker +instanceKlass javax/swing/text/html/HTML$Attribute +instanceKlass javax/swing/text/html/HTML +instanceKlass javax/swing/text/html/HTML$Tag +instanceKlass javax/swing/text/StyledEditorKit$StyledViewFactory +instanceKlass javax/swing/text/html/HTMLEditorKit$HTMLFactory +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$58 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$57 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$56 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$55 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$54 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$53 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$52 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$51 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$50 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$49 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$48 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$47 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$46 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$45 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$44 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$43 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$42 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$41 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$40 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$39 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$38 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$37 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$36 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$35 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$34 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$33 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$32 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$31 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$30 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$29 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$28 +instanceKlass java/awt/GridLayout +instanceKlass java/awt/GridBagConstraints +instanceKlass java/awt/GridBagLayout +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$27 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$26 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$25 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$24 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$23 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$22 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$21 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$20 +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$19 +instanceKlass org/jdesktop/layout/GroupLayout$ComponentInfo +instanceKlass org/jdesktop/layout/GroupLayout +instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$18 +instanceKlass java/awt/PointerInfo +instanceKlass sun/awt/DefaultMouseInfoPeer +instanceKlass java/awt/peer/MouseInfoPeer +instanceKlass java/awt/MouseInfo +instanceKlass java/awt/Component$2 +instanceKlass javax/swing/plaf/basic/BasicGraphicsUtils +instanceKlass javax/swing/plaf/basic/BasicSliderUI$ScrollListener +instanceKlass javax/swing/plaf/basic/BasicSliderUI$Handler +instanceKlass javax/swing/JSlider$ModelListener +instanceKlass javax/swing/plaf/synth/SynthTabbedPaneUI$1 +instanceKlass javax/swing/plaf/basic/BasicTabbedPaneUI$Handler +instanceKlass javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout +instanceKlass javax/swing/JTabbedPane$ModelListener +instanceKlass sun/awt/shell/Win32ShellFolder2$FolderDisposer$1 +instanceKlass javax/swing/plaf/basic/BasicDirectoryModel$DoChangeContents +instanceKlass javax/swing/plaf/basic/BasicDirectoryModel$LoadFilesThread$1 +instanceKlass sun/awt/shell/ShellFolder$1 +instanceKlass sun/awt/shell/Win32ShellFolderManager2$ComInvoker$4 +instanceKlass javax/swing/event/UndoableEditListener +instanceKlass javax/swing/text/DefaultCaret$1 +instanceKlass javax/swing/TimerQueue$1 +instanceKlass javax/swing/TimerQueue +instanceKlass javax/swing/text/AbstractDocument$UndoRedoDocumentEvent +instanceKlass javax/swing/event/DocumentEvent$ElementChange +instanceKlass javax/swing/text/SegmentCache +instanceKlass javax/swing/text/Utilities +instanceKlass javax/swing/text/Segment +instanceKlass java/text/CharacterIterator +instanceKlass javax/swing/event/DocumentEvent$EventType +instanceKlass javax/swing/event/DocumentEvent +instanceKlass javax/swing/undo/AbstractUndoableEdit +instanceKlass javax/swing/undo/UndoableEdit +instanceKlass javax/swing/plaf/basic/BasicDirectoryModel$1 +instanceKlass sun/font/StandardGlyphVector$GlyphStrike +instanceKlass java/awt/font/GlyphVector +instanceKlass sun/awt/shell/Win32ShellFolder2$13 +instanceKlass javax/swing/filechooser/WindowsFileSystemView$1 +instanceKlass sun/awt/shell/Win32ShellFolder2$11 +instanceKlass sun/awt/shell/Win32ShellFolder2$ColumnComparator$1 +instanceKlass sun/awt/shell/Win32ShellFolder2$18 +instanceKlass sun/awt/shell/Win32ShellFolder2$5 +instanceKlass sun/awt/shell/Win32ShellFolder2$9 +instanceKlass sun/awt/shell/Win32ShellFolder2$ColumnComparator +instanceKlass sun/awt/shell/Win32ShellFolder2$16 +instanceKlass sun/awt/shell/Win32ShellFolderManager2$1 +instanceKlass sun/awt/shell/Win32ShellFolder2$4 +instanceKlass sun/awt/shell/Win32ShellFolder2$2 +instanceKlass sun/awt/shell/Win32ShellFolder2$12 +instanceKlass sun/awt/shell/Win32ShellFolder2$8 +instanceKlass sun/awt/shell/Win32ShellFolder2$10 +instanceKlass sun/font/CMap +instanceKlass sun/font/T2KFontScaler$1 +instanceKlass sun/font/FontScaler +instanceKlass sun/font/TrueTypeFont$DirectoryEntry +instanceKlass java/nio/DirectByteBuffer$Deallocator +instanceKlass sun/nio/ch/Util$BufferCache +instanceKlass sun/nio/ch/Util$2 +instanceKlass sun/nio/ch/Util +instanceKlass sun/nio/ch/IOStatus +instanceKlass sun/nio/ch/NativeThread +instanceKlass java/nio/channels/spi/AbstractInterruptibleChannel$1 +instanceKlass sun/nio/ch/FileDispatcherImpl$1 +instanceKlass sun/nio/ch/NativeDispatcher +instanceKlass sun/nio/ch/NativeThreadSet +instanceKlass sun/nio/ch/IOUtil$1 +instanceKlass sun/nio/ch/IOUtil +instanceKlass java/nio/file/attribute/FileAttribute +instanceKlass java/nio/channels/spi/AbstractInterruptibleChannel +instanceKlass java/nio/channels/InterruptibleChannel +instanceKlass java/nio/channels/ScatteringByteChannel +instanceKlass java/nio/channels/GatheringByteChannel +instanceKlass java/nio/channels/SeekableByteChannel +instanceKlass java/nio/channels/ByteChannel +instanceKlass java/nio/channels/WritableByteChannel +instanceKlass java/nio/channels/ReadableByteChannel +instanceKlass java/nio/channels/Channel +instanceKlass java/io/RandomAccessFile +instanceKlass java/io/DataOutput +instanceKlass sun/font/TrueTypeFont$1 +instanceKlass sun/font/TrueTypeFont$TTDisposerRecord +instanceKlass sun/font/StrikeCache$DisposableStrike +instanceKlass sun/font/FontStrikeDisposer +instanceKlass sun/java2d/Disposer$PollDisposable +instanceKlass sun/font/FontStrikeDesc +instanceKlass sun/font/FontDesignMetrics$MetricsKey +instanceKlass java/awt/FontMetrics +instanceKlass sun/swing/FilePane$Handler +instanceKlass javax/swing/plaf/basic/BasicFileChooserUI$Handler +instanceKlass sun/swing/FilePane$DirectoriesFirstComparatorWrapper +instanceKlass javax/swing/RowSorter$SortKey +instanceKlass sun/swing/FilePane$DetailsTableRowSorter$1 +instanceKlass javax/swing/DefaultRowSorter$ModelWrapper +instanceKlass javax/swing/table/TableRowSorter$ComparableComparator +instanceKlass javax/swing/RowSorter +instanceKlass sun/awt/shell/ShellFolderColumnInfo +instanceKlass javax/swing/table/AbstractTableModel +instanceKlass javax/swing/table/TableModel +instanceKlass sun/swing/FilePane$5 +instanceKlass sun/swing/plaf/synth/SynthFileChooserUI$1 +instanceKlass sun/swing/plaf/synth/SynthFileChooserUI$SynthFCPropertyChangeListener +instanceKlass sun/swing/plaf/synth/SynthFileChooserUIImpl$ButtonAreaLayout +instanceKlass sun/swing/plaf/synth/SynthFileChooserUIImpl$FilterComboBoxRenderer +instanceKlass sun/swing/plaf/synth/SynthFileChooserUIImpl$2 +instanceKlass javax/accessibility/AccessibleBundle +instanceKlass sun/awt/shell/Win32ShellFolder2$6 +instanceKlass sun/awt/shell/Win32ShellFolder2$1 +instanceKlass sun/awt/shell/Win32ShellFolder2$FolderDisposer +instanceKlass java/util/concurrent/locks/LockSupport +instanceKlass sun/awt/shell/Win32ShellFolderManager2$ComInvoker$$Lambda$17 +instanceKlass sun/awt/shell/Win32ShellFolderManager2$ComInvoker$3 +instanceKlass java/util/concurrent/FutureTask$WaitNode +instanceKlass java/util/concurrent/FutureTask +instanceKlass sun/awt/shell/Win32ShellFolder2$7 +instanceKlass java/util/concurrent/Callable +instanceKlass sun/awt/shell/ShellFolder$4 +instanceKlass sun/awt/shell/ShellFolder$3 +instanceKlass sun/awt/shell/Win32ShellFolderManager2$ComInvoker$2 +instanceKlass sun/awt/shell/Win32ShellFolderManager2$ComInvoker$1 +instanceKlass java/util/concurrent/LinkedBlockingQueue$Node +instanceKlass sun/awt/shell/ShellFolder$Invoker +instanceKlass sun/awt/shell/ShellFolderManager +instanceKlass javax/accessibility/AccessibleValue +instanceKlass java/util/Vector$Itr +instanceKlass javax/swing/ActionPropertyChangeListener +instanceKlass javax/swing/ButtonGroup +instanceKlass javax/swing/plaf/basic/BasicMenuItemUI$Handler +instanceKlass javax/swing/event/MenuDragMouseListener +instanceKlass sun/swing/MenuItemLayoutHelper +instanceKlass javax/swing/JMenuItem$MenuItemFocusListener +instanceKlass javax/swing/JMenu$MenuChangeListener +instanceKlass sun/swing/plaf/synth/SynthFileChooserUIImpl$SynthFileChooserUIAccessor +instanceKlass sun/swing/FilePane$FileChooserUIAccessor +instanceKlass sun/swing/FilePane$3 +instanceKlass sun/swing/plaf/synth/SynthFileChooserUIImpl$IndentIcon +instanceKlass sun/swing/plaf/synth/SynthFileChooserUIImpl$DirectoryComboBoxRenderer +instanceKlass javax/swing/KeyboardManager +instanceKlass javax/swing/JComboBox$AccessibleJComboBox$AccessibleJComboBoxPopupMenuListener +instanceKlass javax/swing/JList$ListSelectionHandler +instanceKlass javax/swing/JComboBox$AccessibleJComboBox$AccessibleJComboBoxListSelectionListener +instanceKlass javax/accessibility/AccessibleExtendedText +instanceKlass javax/accessibility/AccessibleEditableText +instanceKlass javax/swing/event/CaretListener +instanceKlass javax/accessibility/AccessibleText +instanceKlass javax/swing/JComboBox$AccessibleJComboBox$AccessibleJComboBoxPropertyChangeListener +instanceKlass javax/accessibility/AccessibleRelationSet +instanceKlass javax/accessibility/AccessibleContext$1 +instanceKlass sun/awt/AWTAccessor$AccessibleContextAccessor +instanceKlass javax/accessibility/AccessibleContext +instanceKlass javax/accessibility/AccessibleExtendedComponent +instanceKlass javax/accessibility/AccessibleComponent +instanceKlass javax/accessibility/AccessibleSelection +instanceKlass javax/accessibility/AccessibleAction +instanceKlass javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager +instanceKlass javax/swing/JComboBox$KeySelectionManager +instanceKlass javax/swing/plaf/basic/BasicComboBoxUI$Handler +instanceKlass javax/swing/plaf/synth/SynthComboBoxUI$EditorFocusHandler +instanceKlass javax/swing/JTextField$ScrollRepainter +instanceKlass javax/swing/text/JTextComponent$DefaultKeymap +instanceKlass javax/swing/text/Keymap +instanceKlass javax/swing/text/TabExpander +instanceKlass javax/swing/text/StyleContext$KeyEnumeration +instanceKlass javax/swing/text/GapContent$StickyPosition +instanceKlass javax/swing/text/Position +instanceKlass javax/swing/text/AbstractDocument$1 +instanceKlass javax/swing/text/AbstractDocument$AbstractElement +instanceKlass javax/swing/tree/TreeNode +instanceKlass javax/swing/text/Element +instanceKlass java/util/Collections$3 +instanceKlass javax/swing/text/StyleContext$SmallAttributeSet +instanceKlass javax/swing/text/StyleContext$NamedStyle +instanceKlass javax/swing/text/Style +instanceKlass javax/swing/text/SimpleAttributeSet$EmptyAttributeSet +instanceKlass javax/swing/text/SimpleAttributeSet +instanceKlass javax/swing/text/MutableAttributeSet +instanceKlass javax/swing/text/AttributeSet +instanceKlass javax/swing/text/StyleContext$FontKey +instanceKlass javax/swing/text/AttributeSet$ParagraphAttribute +instanceKlass javax/swing/text/AttributeSet$ColorAttribute +instanceKlass javax/swing/text/AttributeSet$FontAttribute +instanceKlass javax/swing/text/AttributeSet$CharacterAttribute +instanceKlass javax/swing/text/StyleConstants +instanceKlass javax/swing/text/StyleContext +instanceKlass javax/swing/text/AbstractDocument$AttributeContext +instanceKlass javax/swing/text/GapVector +instanceKlass javax/swing/text/AbstractDocument$Content +instanceKlass javax/swing/text/AbstractDocument +instanceKlass javax/swing/text/DefaultHighlighter$SafeDamager +instanceKlass javax/swing/text/LayeredHighlighter$LayerPainter +instanceKlass javax/swing/text/Highlighter$HighlightPainter +instanceKlass javax/swing/text/Highlighter$Highlight +instanceKlass javax/swing/text/LayeredHighlighter +instanceKlass javax/swing/text/Highlighter +instanceKlass javax/swing/text/Document +instanceKlass javax/swing/text/DefaultCaret$Handler +instanceKlass java/awt/datatransfer/ClipboardOwner +instanceKlass javax/swing/text/Caret +instanceKlass javax/swing/plaf/synth/SynthTextFieldUI$Handler +instanceKlass javax/swing/plaf/basic/BasicTextUI$UpdateHandler +instanceKlass javax/swing/event/DocumentListener +instanceKlass javax/swing/text/View +instanceKlass javax/swing/text/Position$Bias +instanceKlass javax/swing/text/EditorKit +instanceKlass javax/swing/text/ViewFactory +instanceKlass javax/swing/plaf/basic/BasicComboBoxEditor +instanceKlass javax/swing/ComboBoxEditor +instanceKlass javax/swing/plaf/synth/SynthScrollPaneUI$ViewportViewFocusHandler +instanceKlass javax/swing/plaf/basic/BasicScrollPaneUI$Handler +instanceKlass java/awt/event/ComponentAdapter +instanceKlass javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener +instanceKlass javax/swing/plaf/basic/BasicScrollBarUI$Handler +instanceKlass javax/swing/plaf/basic/BasicScrollBarUI$ModelListener +instanceKlass javax/swing/DefaultBoundedRangeModel +instanceKlass javax/swing/BoundedRangeModel +instanceKlass javax/swing/JScrollBar$ModelListener +instanceKlass javax/swing/ViewportLayout +instanceKlass javax/swing/ScrollPaneLayout +instanceKlass javax/swing/plaf/basic/BasicComboPopup$Handler +instanceKlass javax/swing/plaf/basic/BasicListUI$Handler +instanceKlass javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag +instanceKlass javax/swing/event/MouseInputListener +instanceKlass javax/swing/ListCellRenderer +instanceKlass javax/swing/DefaultListSelectionModel +instanceKlass javax/swing/ListSelectionModel +instanceKlass java/awt/event/FocusAdapter +instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper +instanceKlass javax/swing/MenuSelectionManager +instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber +instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener +instanceKlass javax/swing/event/MenuKeyListener +instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener +instanceKlass javax/swing/plaf/basic/BasicLookAndFeel$1 +instanceKlass javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper +instanceKlass javax/swing/DefaultSingleSelectionModel +instanceKlass javax/swing/SingleSelectionModel +instanceKlass javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass +instanceKlass javax/swing/plaf/basic/ComboPopup +instanceKlass javax/swing/AncestorNotifier +instanceKlass javax/swing/JComboBox$1 +instanceKlass javax/swing/MutableComboBoxModel +instanceKlass javax/swing/BoxLayout +instanceKlass java/awt/event/KeyAdapter +instanceKlass java/awt/event/MouseMotionAdapter +instanceKlass javax/swing/ToolTipManager$stillInsideTimerAction +instanceKlass javax/swing/ToolTipManager$outsideTimerAction +instanceKlass javax/swing/Timer$DoPostEvent +instanceKlass javax/swing/ToolTipManager$insideTimerAction +instanceKlass javax/swing/Timer +instanceKlass java/awt/event/MouseAdapter +instanceKlass javax/swing/plaf/basic/BasicHTML +instanceKlass java/beans/VetoableChangeListener +instanceKlass javax/swing/event/AncestorListener +instanceKlass javax/swing/plaf/basic/BasicButtonListener +instanceKlass java/util/ArrayList$SubList$1 +instanceKlass javax/swing/AbstractButton$Handler +instanceKlass javax/swing/event/ChangeListener +instanceKlass javax/swing/DefaultButtonModel +instanceKlass javax/swing/ButtonModel +instanceKlass javax/swing/TransferHandler$TransferSupport +instanceKlass javax/swing/TransferHandler$DropHandler +instanceKlass java/awt/datatransfer/SystemFlavorMap$SoftCache +instanceKlass java/awt/datatransfer/SystemFlavorMap +instanceKlass java/awt/datatransfer/FlavorTable +instanceKlass java/awt/datatransfer/FlavorMap +instanceKlass java/awt/dnd/DropTargetContext +instanceKlass java/awt/dnd/DropTarget +instanceKlass java/awt/dnd/DropTargetListener +instanceKlass javax/swing/ClientPropertyKey$1 +instanceKlass sun/awt/AWTAccessor$ClientPropertyKeyAccessor +instanceKlass javax/swing/AbstractListModel +instanceKlass sun/swing/plaf/synth/SynthFileChooserUIImpl$1 +instanceKlass javax/swing/filechooser/FileView +instanceKlass sun/swing/UIAction +instanceKlass javax/swing/TransferHandler +instanceKlass javax/swing/filechooser/FileSystemView$1 +instanceKlass javax/swing/filechooser/FileSystemView +instanceKlass javax/swing/JFileChooser$1 +instanceKlass javax/swing/JFileChooser$WeakPCL +instanceKlass mage/players/net/UserSkipPrioritySteps +instanceKlass mage/players/net/UserData +instanceKlass javax/swing/plaf/synth/ColorType +instanceKlass javax/swing/plaf/nimbus/NimbusStyle$RuntimeState +instanceKlass javax/swing/plaf/nimbus/NimbusStyle$Values +instanceKlass javax/swing/plaf/synth/SynthPainter +instanceKlass javax/swing/plaf/nimbus/NimbusStyle$CacheKey +instanceKlass javax/swing/plaf/nimbus/NimbusStyle$1 +instanceKlass java/util/concurrent/ConcurrentLinkedQueue$Node +instanceKlass javax/swing/plaf/synth/SynthContext +instanceKlass javax/swing/plaf/synth/SynthUI +instanceKlass javax/swing/plaf/synth/SynthConstants +instanceKlass org/jdesktop/layout/GroupLayout$Spring +instanceKlass javax/swing/ComboBoxModel +instanceKlass javax/swing/ListModel +instanceKlass javax/swing/filechooser/FileFilter +instanceKlass mage/client/util/GUISizeHelper +instanceKlass sun/reflect/ClassDefiner$1 +instanceKlass sun/reflect/ClassDefiner +instanceKlass sun/reflect/MethodAccessorGenerator$1 +instanceKlass sun/reflect/Label$PatchInfo +instanceKlass sun/reflect/Label +instanceKlass sun/reflect/UTF8 +instanceKlass sun/reflect/ClassFileAssembler +instanceKlass sun/reflect/ByteVectorImpl +instanceKlass sun/reflect/ByteVector +instanceKlass sun/reflect/ByteVectorFactory +instanceKlass sun/reflect/AccessorGenerator +instanceKlass sun/reflect/ClassFileConstants +instanceKlass java/lang/StrictMath +instanceKlass javax/swing/plaf/nimbus/NimbusLookAndFeel$LinkProperty +instanceKlass javax/swing/plaf/nimbus/NimbusLookAndFeel$NimbusProperty +instanceKlass javax/swing/plaf/nimbus/NimbusLookAndFeel$2 +instanceKlass javax/swing/plaf/nimbus/AbstractRegionPainter +instanceKlass javax/swing/Painter +instanceKlass sun/swing/plaf/WindowsKeybindings +instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$PainterBorder +instanceKlass javax/swing/BorderFactory +instanceKlass javax/swing/plaf/BorderUIResource +instanceKlass javax/swing/plaf/nimbus/State +instanceKlass sun/swing/plaf/synth/SynthIcon +instanceKlass javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext +instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$LazyPainter +instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$DerivedFont +instanceKlass javax/swing/AbstractAction +instanceKlass javax/swing/text/JTextComponent$1 +instanceKlass sun/swing/SwingAccessor$JTextComponentAccessor +instanceKlass javax/swing/event/RowSorterListener +instanceKlass javax/swing/event/CellEditorListener +instanceKlass javax/swing/event/ListSelectionListener +instanceKlass javax/swing/event/TableColumnModelListener +instanceKlass javax/swing/event/TableModelListener +instanceKlass javax/swing/JSpinner$DisabledAction +instanceKlass javax/swing/Action +instanceKlass javax/swing/ScrollPaneConstants +instanceKlass java/awt/Adjustable +instanceKlass java/util/LinkedList$ListItr +instanceKlass javax/swing/event/ListDataListener +instanceKlass java/util/regex/Matcher +instanceKlass java/util/regex/MatchResult +instanceKlass java/util/regex/Pattern$TreeInfo +instanceKlass java/util/regex/Pattern$Node +instanceKlass java/util/regex/Pattern +instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$LazyStyle$Part +instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$LazyStyle +instanceKlass javax/swing/plaf/synth/Region +instanceKlass javax/swing/plaf/synth/SynthGraphicsUtils +instanceKlass javax/swing/plaf/synth/SynthStyle +instanceKlass sun/awt/Win32FontManager$2 +instanceKlass sun/font/SunFontManager$3 +instanceKlass sun/font/FontFamily +instanceKlass sun/font/Font2DHandle +instanceKlass sun/font/CompositeFontDescriptor +instanceKlass sun/awt/FontDescriptor +instanceKlass sun/awt/FontConfiguration +instanceKlass sun/font/SunFontManager$FontRegistrationInfo +instanceKlass sun/font/SunFontManager$2 +instanceKlass sun/awt/Win32FontManager$1 +instanceKlass sun/font/GlyphList +instanceKlass sun/font/StrikeCache$1 +instanceKlass sun/font/StrikeCache +instanceKlass sun/font/FontStrike +instanceKlass sun/font/CharToGlyphMapper +instanceKlass java/awt/geom/Path2D +instanceKlass sun/font/StrikeMetrics +instanceKlass sun/font/Font2D +instanceKlass sun/font/FontManagerNativeLibrary$1 +instanceKlass sun/font/FontManagerNativeLibrary +instanceKlass sun/font/SunFontManager$1 +instanceKlass sun/font/SunFontManager$T1Filter +instanceKlass sun/font/SunFontManager$TTFilter +instanceKlass java/io/FilenameFilter +instanceKlass sun/font/SunFontManager +instanceKlass sun/font/FontManagerForSGE +instanceKlass sun/font/FontManager +instanceKlass sun/java2d/FontSupport +instanceKlass sun/font/FontManagerFactory$1 +instanceKlass sun/font/FontManagerFactory +instanceKlass sun/font/FontUtilities$1 +instanceKlass sun/font/FontUtilities +instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$DefaultsListener +instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$ColorTree$Node +instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$ColorTree +instanceKlass javax/swing/plaf/nimbus/NimbusDefaults +instanceKlass javax/swing/plaf/nimbus/NimbusLookAndFeel$DefaultsListener +instanceKlass javax/swing/plaf/synth/SynthLookAndFeel$Handler +instanceKlass javax/swing/plaf/synth/SynthStyleFactory +instanceKlass java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry +instanceKlass java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1 +instanceKlass net/java/truecommons/shed/CanonicalStringSet$CanonicalStringIterator +instanceKlass java/util/NavigableSet +instanceKlass java/util/SortedSet +instanceKlass net/java/truecommons/shed/ExtensionSet$ExtensionMapper +instanceKlass net/java/truecommons/shed/CanonicalStringSet$Canonicalizer +instanceKlass net/java/truevfs/comp/zip/ZipCryptoParameters +instanceKlass net/java/truecommons/cio/OutputService +instanceKlass net/java/truecommons/key/spec/KeyManagerMap +instanceKlass net/java/truecommons/cio/InputService +instanceKlass net/java/truecommons/cio/Container +instanceKlass net/java/truecommons/shed/Stream +instanceKlass net/java/truevfs/kernel/spec/FsArchiveEntry +instanceKlass net/java/truecommons/cio/MutableEntry +instanceKlass net/java/truecommons/cio/Entry +instanceKlass net/java/truevfs/comp/zip/ZipEntry +instanceKlass net/java/truecommons/shed/UriBuilder +instanceKlass net/java/truevfs/kernel/spec/FsScheme +instanceKlass net/java/truecommons/services/ProviderWithSomeFunctions +instanceKlass net/java/truevfs/comp/zip/ZipFileParameters +instanceKlass net/java/truevfs/comp/zip/ZipEntryFactory +instanceKlass net/java/truevfs/comp/zip/ZipOutputStreamParameters +instanceKlass net/java/truevfs/comp/zip/ZipCharsetParameters +instanceKlass net/java/truevfs/comp/zip/ZipParameters +instanceKlass net/java/truecommons/services/Modifier +instanceKlass net/java/truevfs/kernel/spec/sl/FsDriverMapLocator$Lazy +instanceKlass net/java/truevfs/kernel/spec/sl/FsDriverMapLocator +instanceKlass net/java/truevfs/kernel/spec/FsAbstractCompositeDriver +instanceKlass net/java/truevfs/kernel/spec/FsCompositeDriver +instanceKlass net/java/truevfs/kernel/impl/ShutdownFuse +instanceKlass scala/Function0$mcV$sp$class +instanceKlass scala/Function0$class +instanceKlass scala/runtime/AbstractFunction0 +instanceKlass scala/Function0$mcV$sp +instanceKlass net/java/truevfs/kernel/impl/ShutdownFuse$DefaultThreadRegistry$ +instanceKlass net/java/truevfs/kernel/impl/ShutdownFuse$ThreadRegistry +instanceKlass net/java/truevfs/kernel/impl/ShutdownFuse$ +instanceKlass scala/Product$class +instanceKlass scala/collection/convert/Wrappers$JMapWrapperLike$class +instanceKlass scala/collection/mutable/Map$class +instanceKlass scala/collection/mutable/MapLike$class +instanceKlass scala/collection/mutable/Cloneable$class +instanceKlass scala/collection/generic/Shrinkable$class +instanceKlass scala/collection/mutable/Builder$class +instanceKlass scala/collection/generic/Growable$class +instanceKlass scala/collection/mutable/Iterable$class +instanceKlass scala/collection/mutable/Traversable$class +instanceKlass scala/collection/Map$class +instanceKlass scala/collection/mutable/Buffer +instanceKlass scala/collection/mutable/BufferLike +instanceKlass scala/collection/script/Scriptable +instanceKlass scala/collection/mutable/Seq +instanceKlass scala/collection/mutable/SeqLike +instanceKlass scala/collection/Set +instanceKlass scala/collection/SetLike +instanceKlass scala/collection/MapLike$class +instanceKlass scala/collection/generic/Subtractable$class +instanceKlass scala/PartialFunction$class +instanceKlass scala/Function1$class +instanceKlass scala/collection/GenMapLike$class +instanceKlass scala/collection/Iterable$class +instanceKlass scala/collection/IterableView +instanceKlass scala/collection/IterableViewLike +instanceKlass scala/collection/IterableLike$class +instanceKlass scala/collection/GenIterable$class +instanceKlass scala/collection/generic/TraversableFactory +instanceKlass scala/collection/generic/GenericSeqCompanion +instanceKlass scala/collection/Traversable$class +instanceKlass scala/collection/generic/GenericCompanion +instanceKlass scala/collection/GenTraversable$class +instanceKlass scala/collection/generic/GenericTraversableTemplate$class +instanceKlass scala/collection/Iterator +instanceKlass scala/collection/TraversableLike$class +instanceKlass scala/collection/Parallelizable$class +instanceKlass scala/collection/Seq +instanceKlass scala/collection/SeqLike +instanceKlass scala/util/control/ControlThrowable +instanceKlass scala/util/control/NoStackTrace +instanceKlass scala/Option +instanceKlass scala/Function2 +instanceKlass scala/collection/TraversableOnce$class +instanceKlass scala/collection/convert/Wrappers$class +instanceKlass scala/collection/convert/Wrappers$ +instanceKlass scala/collection/convert/Wrappers +instanceKlass scala/collection/TraversableView +instanceKlass scala/collection/TraversableViewLike +instanceKlass scala/collection/ViewMkString +instanceKlass scala/collection/GenSeq +instanceKlass scala/collection/GenSeqLike +instanceKlass scala/collection/GenSet +instanceKlass scala/collection/generic/GenericSetTemplate +instanceKlass scala/collection/GenSetLike +instanceKlass scala/collection/AbstractTraversable +instanceKlass scala/Product +instanceKlass scala/collection/convert/Wrappers$JMapWrapperLike +instanceKlass scala/collection/mutable/Map +instanceKlass scala/collection/mutable/MapLike +instanceKlass scala/collection/mutable/Cloneable +instanceKlass scala/Cloneable +instanceKlass scala/collection/generic/Shrinkable +instanceKlass scala/collection/mutable/Builder +instanceKlass scala/collection/generic/Growable +instanceKlass scala/collection/generic/Clearable +instanceKlass scala/collection/Map +instanceKlass scala/collection/MapLike +instanceKlass scala/collection/generic/Subtractable +instanceKlass scala/PartialFunction +instanceKlass scala/collection/GenMap +instanceKlass scala/collection/GenMapLike +instanceKlass scala/collection/mutable/Iterable +instanceKlass scala/collection/Iterable +instanceKlass scala/collection/IterableLike +instanceKlass scala/Equals +instanceKlass scala/collection/GenIterable +instanceKlass scala/collection/GenIterableLike +instanceKlass scala/collection/mutable/Traversable +instanceKlass scala/Mutable +instanceKlass scala/collection/Traversable +instanceKlass scala/collection/GenTraversable +instanceKlass scala/collection/generic/GenericTraversableTemplate +instanceKlass scala/collection/TraversableLike +instanceKlass scala/collection/GenTraversableLike +instanceKlass scala/collection/Parallelizable +instanceKlass scala/collection/TraversableOnce +instanceKlass scala/collection/GenTraversableOnce +instanceKlass scala/collection/generic/FilterMonadic +instanceKlass scala/collection/generic/HasNewBuilder +instanceKlass net/java/truevfs/kernel/impl/ReentrantReadWriteLockAspect$class +instanceKlass net/java/truevfs/kernel/impl/ReadWriteLockAspect$class +instanceKlass net/java/truevfs/kernel/spec/FsController +instanceKlass net/java/truevfs/kernel/impl/ArchiveController +instanceKlass net/java/truevfs/kernel/spec/FsModel +instanceKlass scala/math/Ordering +instanceKlass scala/math/PartialOrdering +instanceKlass scala/math/Equiv +instanceKlass scala/Serializable +instanceKlass scala/Function1 +instanceKlass scala/Function0 +instanceKlass net/java/truecommons/shed/Visitor +instanceKlass net/java/truecommons/shed/UniqueObject +instanceKlass net/java/truevfs/kernel/impl/ReentrantReadWriteLockAspect +instanceKlass net/java/truevfs/kernel/impl/ReadWriteLockAspect +instanceKlass net/java/truecommons/services/LocatableComparator +instanceKlass net/java/truevfs/kernel/spec/FsManager +instanceKlass net/java/truevfs/kernel/spec/FsController$Factory +instanceKlass net/java/truevfs/kernel/spec/FsModel$Factory +instanceKlass scala/Immutable +instanceKlass net/java/truecommons/services/Loader$1IterableServices +instanceKlass net/java/truecommons/services/Decorator +instanceKlass net/java/truecommons/services/LocatableService +instanceKlass net/java/truecommons/services/Loader +instanceKlass org/slf4j/helpers/BasicMarker +instanceKlass org/slf4j/Marker +instanceKlass org/slf4j/helpers/BasicMarkerFactory +instanceKlass org/slf4j/impl/StaticMarkerBinder +instanceKlass org/slf4j/spi/MarkerFactoryBinder +instanceKlass org/slf4j/IMarkerFactory +instanceKlass org/slf4j/MarkerFactory +instanceKlass java/util/concurrent/ConcurrentHashMap$Traverser +instanceKlass org/slf4j/helpers/NamedLoggerBase +instanceKlass org/slf4j/spi/LocationAwareLogger +instanceKlass org/slf4j/impl/Log4jLoggerFactory +instanceKlass org/slf4j/impl/StaticLoggerBinder +instanceKlass org/slf4j/spi/LoggerFactoryBinder +instanceKlass org/slf4j/helpers/NOPLoggerFactory +instanceKlass org/slf4j/helpers/SubstituteLoggerFactory +instanceKlass org/slf4j/ILoggerFactory +instanceKlass org/slf4j/LoggerFactory +instanceKlass net/java/truecommons/logging/LocalizedLogger +instanceKlass net/java/truecommons/services/Function +instanceKlass net/java/truecommons/services/Factory +instanceKlass org/slf4j/Logger +instanceKlass net/java/truecommons/services/ServiceLocator +instanceKlass net/java/truevfs/kernel/spec/sl/FsManagerLocator$Lazy +instanceKlass net/java/truevfs/kernel/spec/sl/FsManagerLocator +instanceKlass net/java/truecommons/services/Container +instanceKlass javax/inject/Provider +instanceKlass net/java/truecommons/shed/InheritableThreadLocalStack +instanceKlass net/java/truecommons/shed/BitField +instanceKlass net/java/truevfs/kernel/spec/FsAccessOptions +instanceKlass net/java/truecommons/shed/Resource +instanceKlass java/awt/Toolkit$SelectiveAWTEventListener +instanceKlass mage/client/MageFrame$$Lambda$16 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/awt/AWTEventMulticaster +instanceKlass java/awt/event/MouseWheelListener +instanceKlass java/awt/event/HierarchyBoundsListener +instanceKlass java/awt/event/HierarchyListener +instanceKlass java/awt/event/InputMethodListener +instanceKlass java/awt/event/TextListener +instanceKlass java/awt/event/AdjustmentListener +instanceKlass java/awt/event/ItemListener +instanceKlass java/awt/event/ActionListener +instanceKlass java/awt/event/MouseMotionListener +instanceKlass java/awt/event/MouseListener +instanceKlass java/awt/event/KeyListener +instanceKlass java/awt/event/FocusListener +instanceKlass java/awt/event/ContainerListener +instanceKlass java/awt/event/WindowAdapter +instanceKlass java/awt/event/WindowFocusListener +instanceKlass java/awt/event/WindowStateListener +instanceKlass mage/client/util/EDTExceptionHandler +instanceKlass mage/remote/Session +instanceKlass mage/remote/interfaces/Testable +instanceKlass mage/remote/interfaces/Replays +instanceKlass mage/remote/interfaces/PlayerActions +instanceKlass mage/remote/interfaces/Feedback +instanceKlass mage/remote/interfaces/ChatSession +instanceKlass mage/remote/interfaces/ServerState +instanceKlass mage/remote/interfaces/GameTypes +instanceKlass mage/remote/interfaces/GamePlay +instanceKlass mage/remote/interfaces/Connect +instanceKlass mage/remote/interfaces/ClientData +instanceKlass mage/client/SessionHandler +instanceKlass javax/swing/ActionMap +instanceKlass java/awt/event/KeyEvent$1 +instanceKlass sun/awt/AWTAccessor$KeyEventAccessor +instanceKlass java/awt/VKCollection +instanceKlass javax/swing/InputMap +instanceKlass javax/swing/LayoutComparator +instanceKlass java/util/function/IntBinaryOperator +instanceKlass java/util/function/LongBinaryOperator +instanceKlass java/util/function/DoubleBinaryOperator +instanceKlass java/util/function/BinaryOperator +instanceKlass java/util/function/IntToDoubleFunction +instanceKlass java/util/function/IntToLongFunction +instanceKlass java/util/function/IntUnaryOperator +instanceKlass java/util/function/IntFunction +instanceKlass java/util/stream/LongStream +instanceKlass java/util/stream/DoubleStream +instanceKlass java/util/stream/Stream +instanceKlass java/util/stream/IntStream +instanceKlass java/util/stream/BaseStream +instanceKlass java/util/Spliterator$OfDouble +instanceKlass java/util/Spliterator$OfInt +instanceKlass java/util/Spliterator$OfLong +instanceKlass java/util/Spliterator$OfPrimitive +instanceKlass java/util/Spliterator +instanceKlass javax/swing/SortingFocusTraversalPolicy$1 +instanceKlass javax/swing/RepaintManager$PaintManager +instanceKlass javax/swing/JRootPane$RootLayout +instanceKlass javax/swing/ArrayTable +instanceKlass com/sun/java/swing/SwingUtilities3 +instanceKlass javax/swing/RepaintManager$ProcessingRunnable +instanceKlass sun/swing/SwingLazyValue$1 +instanceKlass sun/reflect/misc/Trampoline +instanceKlass sun/net/www/protocol/jar/JarFileFactory +instanceKlass sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController +instanceKlass sun/reflect/misc/MethodUtil$1 +instanceKlass javax/swing/plaf/ComponentUI +instanceKlass sun/util/ResourceBundleEnumeration +instanceKlass javax/swing/UIManager$2 +instanceKlass sun/awt/PaintEventDispatcher +instanceKlass sun/swing/SwingAccessor +instanceKlass javax/swing/RepaintManager$1 +instanceKlass sun/swing/SwingAccessor$RepaintManagerAccessor +instanceKlass javax/swing/RepaintManager$DisplayChangedHandler +instanceKlass javax/swing/RepaintManager +instanceKlass javax/swing/plaf/metal/OceanTheme$6 +instanceKlass javax/swing/plaf/metal/OceanTheme$5 +instanceKlass javax/swing/plaf/metal/OceanTheme$4 +instanceKlass javax/swing/plaf/metal/OceanTheme$3 +instanceKlass javax/swing/plaf/metal/OceanTheme$2 +instanceKlass javax/swing/plaf/metal/OceanTheme$1 +instanceKlass java/util/EventListenerProxy +instanceKlass sun/swing/SwingUtilities2$AATextInfo +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$15 +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$14 +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$13 +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$12 +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$11 +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$10 +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$9 +instanceKlass javax/swing/UIDefaults$LazyInputMap +instanceKlass javax/swing/plaf/basic/BasicLookAndFeel$2 +instanceKlass sun/swing/SwingUtilities2$2 +instanceKlass javax/swing/border/AbstractBorder +instanceKlass javax/swing/UIDefaults$ActiveValue +instanceKlass sun/swing/SwingLazyValue +instanceKlass javax/swing/UIDefaults$LazyValue +instanceKlass javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate +instanceKlass javax/swing/plaf/UIResource +instanceKlass javax/swing/plaf/metal/MetalTheme +instanceKlass sun/swing/DefaultLookup +instanceKlass javax/swing/LookAndFeel +instanceKlass javax/swing/UIManager$1 +instanceKlass javax/swing/UIManager$LAFState +instanceKlass sun/swing/SwingUtilities2$LSBCacheEntry +instanceKlass sun/swing/StringUIClientPropertyKey +instanceKlass sun/swing/UIClientPropertyKey +instanceKlass java/awt/font/FontRenderContext +instanceKlass sun/swing/SwingUtilities2 +instanceKlass java/util/IdentityHashMap$IdentityHashMapIterator +instanceKlass java/awt/Toolkit$DesktopPropertyChangeSupport$1 +instanceKlass java/util/Arrays$LegacyMergeSort +instanceKlass sun/awt/SunHints$Value +instanceKlass java/awt/RenderingHints$Key +instanceKlass sun/awt/SunHints +instanceKlass java/awt/RenderingHints +instanceKlass sun/awt/windows/WDesktopProperties$WinPlaySound +instanceKlass java/awt/Color +instanceKlass java/awt/Paint +instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock +instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock +instanceKlass sun/nio/ch/Interruptible +instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock +instanceKlass java/util/concurrent/locks/ReadWriteLock +instanceKlass sun/awt/windows/ThemeReader +instanceKlass sun/awt/windows/WDesktopProperties +instanceKlass sun/awt/OSInfo$1 +instanceKlass sun/awt/OSInfo$WindowsVersion +instanceKlass sun/awt/OSInfo +instanceKlass javax/swing/UIManager$LookAndFeelInfo +instanceKlass javax/swing/UIManager +instanceKlass java/awt/FlowLayout +instanceKlass javax/swing/event/EventListenerList +instanceKlass javax/swing/JComponent$1 +instanceKlass sun/awt/KeyboardFocusManagerPeerImpl +instanceKlass java/awt/peer/KeyboardFocusManagerPeer +instanceKlass java/awt/FocusTraversalPolicy +instanceKlass java/awt/DefaultKeyboardFocusManager$1 +instanceKlass sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor +instanceKlass java/awt/AWTKeyStroke$1 +instanceKlass java/awt/AWTKeyStroke +instanceKlass java/awt/KeyboardFocusManager$1 +instanceKlass sun/awt/AWTAccessor$KeyboardFocusManagerAccessor +instanceKlass java/awt/KeyboardFocusManager +instanceKlass java/awt/KeyEventPostProcessor +instanceKlass java/awt/KeyEventDispatcher +instanceKlass java/awt/Window$WindowDisposerRecord +instanceKlass java/awt/BorderLayout +instanceKlass java/awt/LayoutManager2 +instanceKlass java/awt/GraphicsConfiguration +instanceKlass sun/awt/image/SurfaceManager$ProxiedGraphicsConfig +instanceKlass sun/java2d/pipe/hw/AccelGraphicsConfig +instanceKlass sun/java2d/pipe/hw/BufferedContextProvider +instanceKlass sun/java2d/pipe/BufferedContext +instanceKlass sun/java2d/pipe/hw/ContextCapabilities +instanceKlass sun/java2d/d3d/D3DGraphicsDevice$1 +instanceKlass sun/java2d/d3d/D3DGraphicsDevice$1Result +instanceKlass sun/java2d/d3d/D3DRenderQueue$1 +instanceKlass sun/java2d/pipe/RenderBuffer +instanceKlass sun/java2d/pipe/RenderQueue +instanceKlass sun/misc/PerfCounter$WindowsClientCounters +instanceKlass java/awt/GraphicsDevice +instanceKlass sun/java2d/SunGraphicsEnvironment$1 +instanceKlass sun/awt/SunDisplayChanger +instanceKlass sun/java2d/SurfaceManagerFactory +instanceKlass sun/java2d/windows/WindowsFlags$1 +instanceKlass sun/java2d/windows/WindowsFlags +instanceKlass java/awt/Cursor$1 +instanceKlass sun/awt/AWTAccessor$CursorAccessor +instanceKlass java/awt/geom/Point2D +instanceKlass java/awt/Cursor +instanceKlass java/awt/Graphics +instanceKlass java/awt/geom/RectangularShape +instanceKlass java/awt/Shape +instanceKlass java/awt/Component$3 +instanceKlass java/awt/ComponentOrientation +instanceKlass java/awt/SplashScreen$1 +instanceKlass java/awt/SplashScreen +instanceKlass java/awt/TrayIcon +instanceKlass java/awt/MenuComponent +instanceKlass java/awt/EventQueue$3 +instanceKlass sun/awt/dnd/SunDragSourceContextPeer +instanceKlass java/awt/dnd/peer/DragSourceContextPeer +instanceKlass sun/awt/EventQueueDelegate +instanceKlass java/awt/ModalEventFilter +instanceKlass java/awt/EventDispatchThread$HierarchyEventFilter +instanceKlass java/awt/EventFilter +instanceKlass java/awt/EventDispatchThread$1 +instanceKlass java/awt/Conditional +instanceKlass sun/awt/EventQueueItem +instanceKlass java/awt/EventQueue$5 +instanceKlass java/awt/event/InvocationEvent$1 +instanceKlass sun/awt/AWTAccessor$InvocationEventAccessor +instanceKlass java/awt/ActiveEvent +instanceKlass sun/awt/PostEventQueue +instanceKlass sun/awt/MostRecentKeyValue +instanceKlass java/awt/Queue +instanceKlass sun/awt/AppContext$1 +instanceKlass sun/awt/AppContext$2 +instanceKlass sun/awt/AppContext$3 +instanceKlass sun/awt/AppContext$6 +instanceKlass sun/misc/JavaAWTAccess +instanceKlass sun/awt/AppContext$GetAppContextLock +instanceKlass sun/awt/AppContext +instanceKlass java/lang/Shutdown$Lock +instanceKlass java/lang/Shutdown +instanceKlass java/lang/ApplicationShutdownHooks$1 +instanceKlass java/lang/ApplicationShutdownHooks +instanceKlass sun/awt/windows/WToolkit$$Lambda$8 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass sun/awt/windows/WToolkit$$Lambda$7 +instanceKlass sun/awt/windows/WToolkit$$Lambda$6 +instanceKlass sun/awt/windows/WToolkit$$Lambda$5 +instanceKlass sun/awt/AWTAutoShutdown +instanceKlass sun/misc/ThreadGroupUtils +instanceKlass sun/java2d/Disposer$$Lambda$4 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass sun/java2d/Disposer$1 +instanceKlass sun/java2d/Disposer +instanceKlass sun/awt/windows/WToolkit$ToolkitDisposer +instanceKlass sun/java2d/DisposerRecord +instanceKlass sun/misc/PerformanceLogger$TimeData +instanceKlass sun/misc/PerformanceLogger +instanceKlass sun/awt/SunToolkit$ModalityListenerList +instanceKlass sun/awt/ModalityListener +instanceKlass java/beans/PropertyChangeListener +instanceKlass java/beans/ChangeListenerMap +instanceKlass java/beans/PropertyChangeSupport +instanceKlass sun/awt/windows/WToolkit$2 +instanceKlass sun/awt/DisplayChangedListener +instanceKlass sun/awt/image/SurfaceManager +instanceKlass sun/awt/image/SurfaceManager$ImageAccessor +instanceKlass java/awt/ImageCapabilities +instanceKlass sun/java2d/DestSurfaceProvider +instanceKlass sun/java2d/loops/RenderCache$Entry +instanceKlass sun/java2d/loops/RenderCache +instanceKlass sun/java2d/pipe/DrawImage +instanceKlass sun/java2d/pipe/GeneralCompositePipe +instanceKlass sun/java2d/pipe/SpanShapeRenderer +instanceKlass sun/java2d/pipe/AlphaPaintPipe +instanceKlass sun/java2d/pipe/AAShapePipe +instanceKlass sun/java2d/pipe/RegionIterator +instanceKlass sun/java2d/pipe/Region +instanceKlass sun/java2d/pipe/SpanClipRenderer +instanceKlass sun/java2d/pipe/PixelToShapeConverter +instanceKlass sun/java2d/pipe/AlphaColorPipe +instanceKlass sun/java2d/pipe/CompositePipe +instanceKlass sun/java2d/pipe/GlyphListPipe +instanceKlass sun/java2d/pipe/OutlineTextRenderer +instanceKlass sun/java2d/pipe/RenderingEngine$1 +instanceKlass sun/java2d/pipe/RenderingEngine +instanceKlass sun/java2d/pipe/LoopPipe +instanceKlass sun/java2d/pipe/LoopBasedPipe +instanceKlass sun/java2d/pipe/ParallelogramPipe +instanceKlass sun/java2d/pipe/NullPipe +instanceKlass sun/java2d/pipe/DrawImagePipe +instanceKlass sun/java2d/pipe/TextPipe +instanceKlass sun/java2d/pipe/ShapeDrawPipe +instanceKlass sun/java2d/pipe/PixelFillPipe +instanceKlass sun/java2d/pipe/PixelDrawPipe +instanceKlass sun/java2d/StateTrackableDelegate$2 +instanceKlass sun/java2d/StateTrackableDelegate +instanceKlass java/awt/color/ICC_Profile$1 +instanceKlass sun/java2d/cmm/ProfileActivator +instanceKlass sun/java2d/cmm/ProfileDeferralMgr +instanceKlass java/awt/color/ICC_Profile +instanceKlass java/awt/color/ColorSpace +instanceKlass java/awt/image/ColorModel$1 +instanceKlass java/awt/image/ColorModel +instanceKlass sun/awt/image/PixelConverter +instanceKlass sun/java2d/loops/SurfaceType +instanceKlass sun/java2d/SurfaceData +instanceKlass sun/java2d/Surface +instanceKlass sun/java2d/StateTrackable +instanceKlass sun/java2d/DisposerTarget +instanceKlass sun/awt/windows/WToolkit$1 +instanceKlass java/util/Collections$SynchronizedMap +instanceKlass sun/awt/KeyboardFocusManagerPeerProvider +instanceKlass sun/awt/InputMethodSupport +instanceKlass sun/awt/ComponentFactory +instanceKlass sun/awt/WindowClosingListener +instanceKlass sun/awt/WindowClosingSupport +instanceKlass java/awt/Toolkit$2 +instanceKlass java/awt/EventQueue$2 +instanceKlass sun/awt/AWTAccessor$EventQueueAccessor +instanceKlass java/awt/EventQueue$1 +instanceKlass java/awt/EventQueue +instanceKlass javax/swing/SwingUtilities +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass mage/client/MageFrame$$Lambda$3 +instanceKlass mage/client/MageFrame$$Lambda$2 +instanceKlass org/apache/log4j/spi/LocationInfo +instanceKlass java/text/DontCareFieldPosition$1 +instanceKlass java/text/Format$FieldDelegate +instanceKlass mage/cards/decks/Deck +instanceKlass mage/interfaces/callback/ClientCallback +instanceKlass mage/view/GameEndView +instanceKlass java/util/UUID +instanceKlass mage/view/UserRequestMessage +instanceKlass mage/remote/Connection +instanceKlass java/util/concurrent/Executors$DefaultThreadFactory +instanceKlass java/util/concurrent/ThreadFactory +instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject +instanceKlass java/util/concurrent/locks/Condition +instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$Node +instanceKlass java/util/concurrent/locks/AbstractOwnableSynchronizer +instanceKlass java/util/concurrent/RunnableScheduledFuture +instanceKlass java/util/concurrent/ScheduledFuture +instanceKlass java/util/concurrent/Delayed +instanceKlass java/util/concurrent/RunnableFuture +instanceKlass java/util/concurrent/Future +instanceKlass java/util/concurrent/BlockingQueue +instanceKlass java/util/concurrent/ThreadPoolExecutor$AbortPolicy +instanceKlass java/util/concurrent/RejectedExecutionHandler +instanceKlass java/util/concurrent/AbstractExecutorService +instanceKlass java/util/concurrent/ScheduledExecutorService +instanceKlass java/util/concurrent/ExecutorService +instanceKlass java/util/concurrent/Executor +instanceKlass java/util/concurrent/Executors +instanceKlass java/util/EnumMap$1 +instanceKlass mage/client/components/MageUI +instanceKlass mage/utils/MageVersion +instanceKlass java/util/prefs/AbstractPreferences$1 +instanceKlass java/util/prefs/NodeChangeListener +instanceKlass java/util/prefs/PreferenceChangeListener +instanceKlass java/util/prefs/WindowsPreferencesFactory +instanceKlass java/util/prefs/PreferencesFactory +instanceKlass java/util/prefs/Preferences$2 +instanceKlass java/util/prefs/Preferences$1 +instanceKlass java/util/prefs/Preferences +instanceKlass org/apache/log4j/CategoryKey +instanceKlass org/apache/log4j/helpers/AppenderAttachableImpl +instanceKlass java/util/Vector$1 +instanceKlass java/util/Collections$EmptyEnumeration +instanceKlass org/apache/log4j/SortedKeyEnumeration +instanceKlass org/apache/log4j/spi/Filter +instanceKlass java/text/DigitList +instanceKlass java/text/FieldPosition +instanceKlass java/util/Currency$CurrencyNameGetter +instanceKlass java/util/Currency$1 +instanceKlass java/util/Currency +instanceKlass java/text/DecimalFormatSymbols +instanceKlass java/util/concurrent/atomic/AtomicMarkableReference$Pair +instanceKlass java/util/concurrent/atomic/AtomicMarkableReference +instanceKlass java/text/DateFormatSymbols +instanceKlass sun/util/calendar/CalendarUtils +instanceKlass sun/util/calendar/CalendarDate +instanceKlass java/util/Collections$EmptyIterator +instanceKlass sun/util/locale/LanguageTag +instanceKlass sun/util/resources/LocaleData$1 +instanceKlass sun/util/resources/LocaleData +instanceKlass sun/util/locale/provider/LocaleResources +instanceKlass sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter +instanceKlass sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter +instanceKlass sun/util/locale/provider/SPILocaleProviderAdapter$1 +instanceKlass sun/util/locale/provider/LocaleServiceProviderPool +instanceKlass sun/util/locale/provider/CalendarDataUtility +instanceKlass java/util/Calendar$Builder +instanceKlass sun/util/locale/provider/JRELocaleProviderAdapter$1 +instanceKlass sun/util/locale/provider/LocaleDataMetaInfo +instanceKlass sun/util/locale/provider/AvailableLanguageTags +instanceKlass sun/util/locale/provider/LocaleProviderAdapter$1 +instanceKlass sun/util/locale/provider/ResourceBundleBasedAdapter +instanceKlass sun/util/locale/provider/LocaleProviderAdapter +instanceKlass java/util/spi/LocaleServiceProvider +instanceKlass java/util/Calendar +instanceKlass java/util/TimeZone$1 +instanceKlass java/util/zip/CRC32 +instanceKlass java/util/zip/Checksum +instanceKlass sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule +instanceKlass java/io/DataInput +instanceKlass sun/util/calendar/ZoneInfoFile$1 +instanceKlass sun/util/calendar/ZoneInfoFile +instanceKlass java/util/TimeZone +instanceKlass java/util/Locale$1 +instanceKlass org/apache/log4j/spi/LoggingEvent +instanceKlass java/beans/SimpleBeanInfo +instanceKlass java/util/TreeMap$PrivateEntryIterator +instanceKlass sun/reflect/annotation/AnnotationParser +instanceKlass java/beans/Transient +instanceKlass com/sun/beans/WildcardTypeImpl +instanceKlass java/lang/reflect/GenericArrayType +instanceKlass sun/reflect/generics/reflectiveObjects/ParameterizedTypeImpl +instanceKlass java/lang/reflect/ParameterizedType +instanceKlass sun/reflect/generics/reflectiveObjects/LazyReflectiveObjectGenerator +instanceKlass java/lang/reflect/WildcardType +instanceKlass sun/reflect/generics/visitor/Reifier +instanceKlass sun/reflect/generics/visitor/TypeTreeVisitor +instanceKlass sun/reflect/generics/tree/MethodTypeSignature +instanceKlass sun/reflect/generics/tree/Wildcard +instanceKlass sun/reflect/generics/tree/BottomSignature +instanceKlass sun/reflect/generics/factory/CoreReflectionFactory +instanceKlass sun/reflect/generics/factory/GenericsFactory +instanceKlass sun/reflect/generics/scope/AbstractScope +instanceKlass sun/reflect/generics/scope/Scope +instanceKlass java/lang/reflect/TypeVariable +instanceKlass sun/reflect/generics/tree/ClassSignature +instanceKlass sun/reflect/generics/tree/Signature +instanceKlass sun/reflect/generics/tree/ClassTypeSignature +instanceKlass sun/reflect/generics/tree/SimpleClassTypeSignature +instanceKlass sun/reflect/generics/tree/FieldTypeSignature +instanceKlass sun/reflect/generics/tree/BaseType +instanceKlass sun/reflect/generics/tree/TypeSignature +instanceKlass sun/reflect/generics/tree/ReturnType +instanceKlass sun/reflect/generics/tree/TypeArgument +instanceKlass sun/reflect/generics/tree/FormalTypeParameter +instanceKlass sun/reflect/generics/tree/TypeTree +instanceKlass sun/reflect/generics/tree/Tree +instanceKlass sun/reflect/generics/parser/SignatureParser +instanceKlass com/sun/beans/TypeResolver +instanceKlass java/beans/MethodRef +instanceKlass com/sun/beans/util/Cache$CacheEntry +instanceKlass com/sun/beans/util/Cache +instanceKlass com/sun/beans/finder/AbstractFinder +instanceKlass com/sun/beans/finder/ClassFinder +instanceKlass com/sun/beans/finder/InstanceFinder +instanceKlass java/beans/WeakIdentityMap +instanceKlass java/beans/ThreadGroupContext +instanceKlass java/lang/reflect/Proxy$ProxyClassFactory +instanceKlass java/lang/reflect/Proxy$KeyFactory +instanceKlass java/util/function/BiFunction +instanceKlass java/lang/reflect/WeakCache +instanceKlass java/lang/reflect/InvocationHandler +instanceKlass java/lang/reflect/Proxy +instanceKlass java/beans/FeatureDescriptor +instanceKlass com/sun/beans/WeakCache +instanceKlass java/beans/Introspector +instanceKlass java/beans/BeanInfo +instanceKlass org/apache/log4j/config/PropertySetter +instanceKlass org/apache/log4j/helpers/FormattingInfo +instanceKlass java/text/Format +instanceKlass org/apache/log4j/helpers/PatternConverter +instanceKlass org/apache/log4j/helpers/PatternParser +instanceKlass org/apache/log4j/helpers/OnlyOnceErrorHandler +instanceKlass org/apache/log4j/Layout +instanceKlass org/apache/log4j/spi/ErrorHandler +instanceKlass org/apache/log4j/AppenderSkeleton +instanceKlass org/apache/log4j/spi/OptionHandler +instanceKlass org/apache/log4j/Appender +instanceKlass sun/net/DefaultProgressMeteringPolicy +instanceKlass sun/net/ProgressMeteringPolicy +instanceKlass sun/net/ProgressMonitor +instanceKlass org/apache/log4j/PropertyConfigurator +instanceKlass org/apache/log4j/helpers/LogLog +instanceKlass org/apache/log4j/helpers/Loader +instanceKlass org/apache/log4j/spi/Configurator +instanceKlass org/apache/log4j/helpers/OptionConverter +instanceKlass org/apache/log4j/spi/DefaultRepositorySelector +instanceKlass org/apache/log4j/DefaultCategoryFactory +instanceKlass org/apache/log4j/or/DefaultRenderer +instanceKlass org/apache/log4j/or/ObjectRenderer +instanceKlass org/apache/log4j/or/RendererMap +instanceKlass org/apache/log4j/spi/LoggerFactory +instanceKlass org/apache/log4j/Hierarchy +instanceKlass org/apache/log4j/spi/ThrowableRendererSupport +instanceKlass org/apache/log4j/spi/RendererSupport +instanceKlass org/apache/log4j/spi/RepositorySelector +instanceKlass org/apache/log4j/spi/LoggerRepository +instanceKlass org/apache/log4j/LogManager +instanceKlass org/apache/log4j/Priority +instanceKlass org/apache/log4j/Category +instanceKlass org/apache/log4j/spi/AppenderAttachable +instanceKlass java/awt/Frame$1 +instanceKlass sun/awt/AWTAccessor$FrameAccessor +instanceKlass java/awt/Window$1 +instanceKlass sun/awt/AWTAccessor$WindowAccessor +instanceKlass java/awt/Container$1 +instanceKlass sun/awt/AWTAccessor$ContainerAccessor +instanceKlass java/awt/geom/Dimension2D +instanceKlass java/awt/LightweightDispatcher +instanceKlass java/awt/event/AWTEventListener +instanceKlass java/awt/Component$DummyRequestFocusController +instanceKlass sun/awt/RequestFocusController +instanceKlass java/awt/Component$1 +instanceKlass sun/awt/AWTAccessor$ComponentAccessor +instanceKlass java/lang/Class$4 +instanceKlass java/text/AttributedCharacterIterator$Attribute +instanceKlass sun/font/AttributeValues +instanceKlass java/awt/geom/AffineTransform +instanceKlass sun/font/FontAccess +instanceKlass java/awt/Font +instanceKlass sun/awt/windows/WObjectPeer +instanceKlass java/awt/dnd/peer/DropTargetPeer +instanceKlass java/awt/peer/ComponentPeer +instanceKlass java/awt/event/InputEvent$1 +instanceKlass sun/awt/AWTAccessor$InputEventAccessor +instanceKlass java/awt/event/NativeLibLoader$1 +instanceKlass java/awt/event/NativeLibLoader +instanceKlass java/awt/AWTEvent$1 +instanceKlass sun/awt/AWTAccessor$AWTEventAccessor +instanceKlass java/util/EventObject +instanceKlass java/awt/Insets +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/InnerClassLambdaMetafactory$1 +instanceKlass java/awt/GraphicsEnvironment$$Lambda$1 +instanceKlass java/lang/invoke/InfoFromMemberName +instanceKlass java/lang/invoke/MethodHandleInfo +instanceKlass sun/security/util/SecurityConstants +instanceKlass java/security/AccessController$1 +instanceKlass java/lang/invoke/AbstractValidatingLambdaMetafactory +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass jdk/internal/org/objectweb/asm/FieldVisitor +instanceKlass java/lang/invoke/BoundMethodHandle$Factory$1 +instanceKlass java/lang/invoke/BoundMethodHandle$SpeciesData$1 +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaFormBuffer +instanceKlass java/lang/invoke/LambdaFormEditor +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/MethodHandleImpl$Lazy +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/util/SubList$1 +instanceKlass java/util/ListIterator +instanceKlass java/util/ArrayList$Itr +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/InvokerBytecodeGenerator$CpPatch +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass sun/invoke/empty/Empty +instanceKlass sun/invoke/util/VerifyType +instanceKlass java/lang/invoke/InvokerBytecodeGenerator$2 +instanceKlass jdk/internal/org/objectweb/asm/AnnotationVisitor +instanceKlass jdk/internal/org/objectweb/asm/Frame +instanceKlass jdk/internal/org/objectweb/asm/Label +instanceKlass jdk/internal/org/objectweb/asm/Type +instanceKlass jdk/internal/org/objectweb/asm/MethodVisitor +instanceKlass jdk/internal/org/objectweb/asm/Item +instanceKlass jdk/internal/org/objectweb/asm/ByteVector +instanceKlass jdk/internal/org/objectweb/asm/ClassVisitor +instanceKlass java/lang/invoke/InvokerBytecodeGenerator +instanceKlass java/util/AbstractList$Itr +instanceKlass java/util/Collections$UnmodifiableCollection$1 +instanceKlass java/lang/invoke/DirectMethodHandle$Lazy +instanceKlass sun/invoke/util/BytecodeDescriptor +instanceKlass java/lang/invoke/BoundMethodHandle$Factory +instanceKlass java/lang/invoke/BoundMethodHandle$SpeciesData +instanceKlass java/lang/invoke/LambdaForm$NamedFunction +instanceKlass java/lang/invoke/LambdaForm$Name +instanceKlass sun/invoke/util/ValueConversions +instanceKlass sun/invoke/util/VerifyAccess +instanceKlass java/lang/Long$LongCache +instanceKlass java/lang/Character$CharacterCache +instanceKlass java/lang/Short$ShortCache +instanceKlass java/lang/Byte$ByteCache +instanceKlass sun/invoke/util/Wrapper$Format +instanceKlass java/lang/invoke/MethodHandles +instanceKlass java/lang/invoke/Invokers +instanceKlass java/lang/invoke/MethodTypeForm +instanceKlass java/lang/invoke/MethodType$ConcurrentWeakInternSet +instanceKlass java/lang/invoke/MethodHandles$Lookup +instanceKlass java/lang/invoke/LambdaMetafactory +instanceKlass java/awt/GraphicsEnvironment +instanceKlass java/util/Properties$LineReader +instanceKlass java/awt/Toolkit$1 +instanceKlass java/awt/Toolkit$3 +instanceKlass java/net/URLClassLoader$2 +instanceKlass java/util/ResourceBundle$Control$1 +instanceKlass java/util/ResourceBundle$CacheKeyReference +instanceKlass java/util/ResourceBundle$CacheKey +instanceKlass java/util/ResourceBundle$RBClassLoader$1 +instanceKlass java/net/URLClassLoader$3$1 +instanceKlass sun/misc/CompoundEnumeration +instanceKlass java/net/URLClassLoader$3 +instanceKlass sun/misc/URLClassPath$1 +instanceKlass java/lang/ClassLoader$2 +instanceKlass sun/misc/URLClassPath$2 +instanceKlass sun/misc/Launcher$BootClassPathHolder$1 +instanceKlass sun/misc/Launcher$BootClassPathHolder +instanceKlass java/util/LinkedHashMap$LinkedHashIterator +instanceKlass java/util/ServiceLoader$1 +instanceKlass java/util/ServiceLoader$LazyIterator +instanceKlass java/util/ServiceLoader +instanceKlass java/util/spi/ResourceBundleControlProvider +instanceKlass java/util/ResourceBundle +instanceKlass java/util/ResourceBundle$Control +instanceKlass java/awt/Toolkit$5 +instanceKlass sun/awt/AWTAccessor +instanceKlass java/awt/Toolkit$4 +instanceKlass sun/awt/AWTAccessor$ToolkitAccessor +instanceKlass java/awt/Toolkit +instanceKlass java/awt/Component$AWTTreeLock +instanceKlass sun/util/calendar/CalendarSystem +instanceKlass java/util/Date +instanceKlass sun/util/logging/LoggingSupport$2 +instanceKlass sun/reflect/UnsafeFieldAccessorFactory +instanceKlass java/util/logging/LoggingProxyImpl +instanceKlass sun/util/logging/LoggingProxy +instanceKlass sun/util/logging/LoggingSupport$1 +instanceKlass sun/util/logging/LoggingSupport +instanceKlass sun/util/logging/PlatformLogger$LoggerProxy +instanceKlass sun/util/logging/PlatformLogger$1 +instanceKlass sun/util/logging/PlatformLogger +instanceKlass java/awt/Transparency +instanceKlass java/awt/image/WritableRenderedImage +instanceKlass java/awt/image/RenderedImage +instanceKlass java/awt/Image +instanceKlass javax/swing/GroupLayout$Spring +instanceKlass java/awt/LayoutManager +instanceKlass javax/swing/Icon +instanceKlass javax/swing/Scrollable +instanceKlass java/awt/Composite +instanceKlass javax/swing/event/PopupMenuListener +instanceKlass javax/swing/MenuElement +instanceKlass javax/swing/SwingConstants +instanceKlass java/awt/ItemSelectable +instanceKlass net/java/balloontip/positioners/BalloonTipPositioner +instanceKlass net/java/balloontip/styles/BalloonTipStyle +instanceKlass javax/swing/border/Border +instanceKlass java/awt/event/ComponentListener +instanceKlass javax/swing/DesktopManager +instanceKlass java/awt/event/WindowListener +instanceKlass java/util/EventListener +instanceKlass java/net/Socket +instanceKlass java/net/Inet6Address$Inet6AddressHolder +instanceKlass sun/net/NetHooks +instanceKlass java/net/Inet4AddressImpl +instanceKlass java/net/InetAddress$2 +instanceKlass sun/net/spi/nameservice/NameService +instanceKlass java/awt/Component +instanceKlass java/net/Inet6AddressImpl +instanceKlass java/net/InetAddressImpl +instanceKlass java/net/InetAddressImplFactory +instanceKlass java/awt/image/ImageObserver +instanceKlass java/net/InetAddress$Cache +instanceKlass java/net/InetAddress$InetAddressHolder +instanceKlass java/net/InetAddress$1 +instanceKlass sun/security/action/GetBooleanAction +instanceKlass java/net/InetSocketAddress$InetSocketAddressHolder +instanceKlass java/net/InetAddress +instanceKlass java/net/SocketAddress +instanceKlass java/awt/MenuContainer +instanceKlass javax/swing/TransferHandler$HasGetTransferHandler +instanceKlass javax/swing/RootPaneContainer +instanceKlass javax/accessibility/Accessible +instanceKlass sun/misc/FloatingDecimal$ASCIIToBinaryBuffer +instanceKlass javax/swing/WindowConstants +instanceKlass sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer +instanceKlass sun/misc/FloatingDecimal$ASCIIToBinaryConverter +instanceKlass sun/misc/FloatingDecimal$BinaryToASCIIBuffer +instanceKlass mage/interfaces/MageClient +instanceKlass sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer +instanceKlass mage/interfaces/callback/CallbackClient +instanceKlass sun/misc/FloatingDecimal$BinaryToASCIIConverter +instanceKlass sun/misc/FloatingDecimal +instanceKlass java/net/PlainSocketImpl$1 +instanceKlass java/net/AbstractPlainSocketImpl$1 +instanceKlass java/net/SocketImpl +instanceKlass java/net/SocketOptions +instanceKlass java/net/SocksConsts +instanceKlass java/net/ServerSocket +instanceKlass com/intellij/rt/execution/application/AppMain$1 +instanceKlass java/lang/Void +instanceKlass java/lang/Class$MethodArray +instanceKlass sun/launcher/LauncherHelper$FXHelper +instanceKlass com/intellij/rt/execution/application/AppMain +instanceKlass java/io/FilePermission$1 +instanceKlass sun/net/www/MessageHeader +instanceKlass java/net/URLConnection +instanceKlass java/security/PermissionCollection +instanceKlass sun/nio/ByteBuffered +instanceKlass sun/security/util/ManifestEntryVerifier +instanceKlass sun/security/util/SignatureFileVerifier +instanceKlass java/lang/Package +instanceKlass java/util/jar/JarVerifier$3 +instanceKlass java/security/CodeSigner +instanceKlass java/util/jar/JarVerifier +instanceKlass sun/misc/ASCIICaseInsensitiveComparator +instanceKlass java/util/jar/Attributes$Name +instanceKlass java/util/jar/Attributes +instanceKlass sun/misc/Resource +instanceKlass java/util/LinkedList$Node +instanceKlass java/util/zip/ZStreamRef +instanceKlass java/util/zip/Inflater +instanceKlass sun/misc/IOUtils +instanceKlass java/util/zip/ZipEntry +instanceKlass sun/misc/ExtensionDependency +instanceKlass sun/misc/JarIndex +instanceKlass sun/nio/ch/DirectBuffer +instanceKlass sun/misc/PerfCounter$CoreCounters +instanceKlass sun/misc/Perf +instanceKlass sun/misc/Perf$GetPerfAction +instanceKlass sun/misc/PerfCounter +instanceKlass java/util/zip/ZipCoder +instanceKlass java/util/Deque +instanceKlass java/util/Queue +instanceKlass java/nio/charset/StandardCharsets +instanceKlass java/util/jar/JavaUtilJarAccessImpl +instanceKlass sun/misc/JavaUtilJarAccess +instanceKlass sun/misc/FileURLMapper +instanceKlass sun/misc/URLClassPath$JarLoader$1 +instanceKlass sun/nio/cs/ThreadLocalCoders$Cache +instanceKlass sun/nio/cs/ThreadLocalCoders +instanceKlass java/util/zip/ZipFile$1 +instanceKlass sun/misc/JavaUtilZipFileAccess +instanceKlass java/util/zip/ZipFile +instanceKlass java/util/zip/ZipConstants +instanceKlass sun/misc/URLClassPath$Loader +instanceKlass sun/misc/URLClassPath$3 +instanceKlass sun/net/util/URLUtil +instanceKlass java/net/URLClassLoader$1 +instanceKlass java/lang/StringCoding$StringDecoder +instanceKlass sun/nio/cs/SingleByte +instanceKlass java/io/FileOutputStream$1 +instanceKlass java/lang/StringCoding$StringEncoder +instanceKlass java/lang/ThreadLocal$ThreadLocalMap +instanceKlass java/lang/StringCoding +instanceKlass sun/usagetracker/UsageTrackerClient$3 +instanceKlass java/util/TreeMap$Entry +instanceKlass java/lang/ProcessEnvironment$CheckedEntry +instanceKlass java/util/HashMap$HashIterator +instanceKlass java/lang/ProcessEnvironment$CheckedEntrySet$1 +instanceKlass java/util/NavigableMap +instanceKlass java/util/SortedMap +instanceKlass java/util/Collections$UnmodifiableMap +instanceKlass java/lang/ProcessEnvironment$EntryComparator +instanceKlass java/lang/ProcessEnvironment$NameComparator +instanceKlass sun/usagetracker/UsageTrackerClient$2 +instanceKlass sun/usagetracker/UsageTrackerClient$4 +instanceKlass sun/usagetracker/UsageTrackerClient$1 +instanceKlass java/util/concurrent/atomic/AtomicBoolean +instanceKlass sun/usagetracker/UsageTrackerClient +instanceKlass sun/misc/PostVMInitHook +instanceKlass java/lang/invoke/MethodHandleStatics$1 +instanceKlass java/lang/invoke/MethodHandleStatics +instanceKlass java/lang/invoke/MemberName$Factory +instanceKlass java/lang/ClassValue$Version +instanceKlass java/lang/ClassValue$Identity +instanceKlass java/lang/ClassValue +instanceKlass java/lang/invoke/MethodHandleImpl$3 +instanceKlass java/lang/invoke/MethodHandleImpl$2 +instanceKlass java/util/function/Function +instanceKlass java/lang/invoke/MethodHandleImpl$1 +instanceKlass java/lang/invoke/MethodHandleImpl +instanceKlass java/lang/SystemClassLoaderAction +instanceKlass sun/misc/Launcher$AppClassLoader$1 +instanceKlass sun/misc/URLClassPath +instanceKlass java/security/Principal +instanceKlass java/security/ProtectionDomain$Key +instanceKlass java/security/ProtectionDomain$2 +instanceKlass sun/misc/JavaSecurityProtectionDomainAccess +instanceKlass java/security/ProtectionDomain$JavaSecurityAccessImpl +instanceKlass sun/misc/JavaSecurityAccess +instanceKlass java/net/URLStreamHandler +instanceKlass java/net/Parts +instanceKlass java/util/BitSet +instanceKlass sun/net/www/ParseUtil +instanceKlass java/io/FileInputStream$1 +instanceKlass java/lang/CharacterData +instanceKlass sun/util/locale/LocaleUtils +instanceKlass java/util/Locale$LocaleKey +instanceKlass sun/util/locale/BaseLocale$Key +instanceKlass sun/util/locale/BaseLocale +instanceKlass java/util/concurrent/ConcurrentHashMap$CollectionView +instanceKlass java/util/concurrent/ConcurrentHashMap$CounterCell +instanceKlass java/util/concurrent/ConcurrentHashMap$Node +instanceKlass java/util/concurrent/locks/ReentrantLock +instanceKlass java/util/concurrent/locks/Lock +instanceKlass java/util/concurrent/ConcurrentMap +instanceKlass sun/util/locale/LocaleObjectCache +instanceKlass java/util/Locale +instanceKlass java/lang/reflect/Array +instanceKlass java/nio/charset/CoderResult$Cache +instanceKlass java/nio/charset/CoderResult +instanceKlass java/nio/charset/CharsetDecoder +instanceKlass sun/nio/cs/ArrayDecoder +instanceKlass java/io/Reader +instanceKlass java/lang/Readable +instanceKlass sun/misc/MetaIndex +instanceKlass sun/misc/Launcher$ExtClassLoader$1 +instanceKlass java/util/StringTokenizer +instanceKlass java/net/URLClassLoader$7 +instanceKlass sun/misc/JavaNetAccess +instanceKlass java/lang/ClassLoader$ParallelLoaders +instanceKlass sun/security/util/Debug +instanceKlass sun/misc/Launcher$Factory +instanceKlass java/net/URLStreamHandlerFactory +instanceKlass java/lang/Compiler$1 +instanceKlass java/lang/Compiler +instanceKlass java/lang/System$2 +instanceKlass sun/misc/JavaLangAccess +instanceKlass sun/io/Win32ErrorMode +instanceKlass sun/misc/OSEnvironment +instanceKlass java/lang/Integer$IntegerCache +instanceKlass sun/misc/NativeSignalHandler +instanceKlass sun/misc/Signal +instanceKlass java/lang/Terminator$1 +instanceKlass sun/misc/SignalHandler +instanceKlass java/lang/Terminator +instanceKlass java/lang/ClassLoader$NativeLibrary +instanceKlass java/io/ExpiringCache$Entry +instanceKlass java/lang/ClassLoader$3 +instanceKlass java/nio/file/Path +instanceKlass java/nio/file/Watchable +instanceKlass java/lang/Enum +instanceKlass java/io/ExpiringCache +instanceKlass java/io/FileSystem +instanceKlass java/io/DefaultFileSystem +instanceKlass java/nio/Bits$1 +instanceKlass sun/misc/JavaNioAccess +instanceKlass java/nio/ByteOrder +instanceKlass java/nio/Bits +instanceKlass java/nio/charset/CodingErrorAction +instanceKlass java/nio/charset/CharsetEncoder +instanceKlass sun/nio/cs/ArrayEncoder +instanceKlass sun/reflect/ReflectionFactory$1 +instanceKlass java/lang/Class$1 +instanceKlass sun/nio/cs/HistoricallyNamedCharset +instanceKlass java/util/Arrays +instanceKlass sun/security/action/GetPropertyAction +instanceKlass java/lang/ThreadLocal +instanceKlass java/nio/charset/spi/CharsetProvider +instanceKlass java/nio/charset/Charset +instanceKlass java/io/Writer +instanceKlass sun/reflect/misc/ReflectUtil +instanceKlass java/lang/reflect/ReflectAccess +instanceKlass sun/reflect/LangReflectAccess +instanceKlass java/lang/reflect/Modifier +instanceKlass sun/reflect/annotation/AnnotationType +instanceKlass java/lang/Class$AnnotationData +instanceKlass sun/reflect/generics/repository/AbstractRepository +instanceKlass java/lang/Class$Atomic +instanceKlass java/lang/Class$ReflectionData +instanceKlass java/lang/Class$3 +instanceKlass java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 +instanceKlass java/security/PrivilegedExceptionAction +instanceKlass java/util/concurrent/atomic/AtomicReferenceFieldUpdater +instanceKlass java/io/OutputStream +instanceKlass java/io/Flushable +instanceKlass java/io/FileDescriptor$1 +instanceKlass sun/misc/JavaIOFileDescriptorAccess +instanceKlass java/io/FileDescriptor +instanceKlass sun/misc/Version +instanceKlass java/lang/Runtime +instanceKlass java/util/Hashtable$Enumerator +instanceKlass java/util/Iterator +instanceKlass java/util/Enumeration +instanceKlass java/util/Objects +instanceKlass java/util/Collections$SynchronizedCollection +instanceKlass java/lang/Math +instanceKlass java/util/Hashtable$Entry +instanceKlass sun/misc/VM +instanceKlass java/util/HashMap$Node +instanceKlass java/util/Map$Entry +instanceKlass sun/reflect/Reflection +instanceKlass sun/misc/SharedSecrets +instanceKlass java/lang/ref/Reference$1 +instanceKlass sun/misc/JavaLangRefAccess +instanceKlass java/lang/ref/ReferenceQueue$Lock +instanceKlass java/lang/ref/ReferenceQueue +instanceKlass java/util/Collections$UnmodifiableCollection +instanceKlass java/util/AbstractMap +instanceKlass java/util/Set +instanceKlass java/util/Collections +instanceKlass java/lang/ref/Reference$Lock +instanceKlass sun/reflect/ReflectionFactory +instanceKlass java/util/AbstractCollection +instanceKlass java/util/RandomAccess +instanceKlass java/util/List +instanceKlass java/util/Collection +instanceKlass java/lang/Iterable +instanceKlass java/security/cert/Certificate +instanceKlass sun/reflect/ReflectionFactory$GetReflectionFactoryAction +instanceKlass java/security/PrivilegedAction +instanceKlass java/security/AccessController +instanceKlass java/security/Permission +instanceKlass java/security/Guard +instanceKlass java/lang/String$CaseInsensitiveComparator +instanceKlass java/util/Comparator +instanceKlass java/io/ObjectStreamField +instanceKlass java/lang/Number +instanceKlass java/lang/Character +instanceKlass java/lang/Boolean +instanceKlass java/nio/Buffer +instanceKlass java/lang/StackTraceElement +instanceKlass java/security/CodeSource +instanceKlass sun/misc/Launcher +instanceKlass java/util/jar/Manifest +instanceKlass java/net/URL +instanceKlass java/io/File +instanceKlass java/io/InputStream +instanceKlass java/io/Closeable +instanceKlass java/lang/AutoCloseable +instanceKlass sun/misc/Unsafe +instanceKlass java/lang/AbstractStringBuilder +instanceKlass java/lang/Appendable +instanceKlass java/lang/invoke/CallSite +instanceKlass java/lang/invoke/MethodType +instanceKlass java/lang/invoke/LambdaForm +instanceKlass java/lang/invoke/MethodHandleNatives +instanceKlass java/lang/invoke/MemberName +instanceKlass java/lang/invoke/MethodHandle +instanceKlass sun/reflect/CallerSensitive +instanceKlass java/lang/annotation/Annotation +instanceKlass sun/reflect/FieldAccessor +instanceKlass sun/reflect/ConstantPool +instanceKlass sun/reflect/ConstructorAccessor +instanceKlass sun/reflect/MethodAccessor +instanceKlass sun/reflect/MagicAccessorImpl +instanceKlass java/lang/reflect/Parameter +instanceKlass java/lang/reflect/Member +instanceKlass java/lang/reflect/AccessibleObject +instanceKlass java/util/Dictionary +instanceKlass java/util/Map +instanceKlass java/lang/ThreadGroup +instanceKlass java/lang/Thread$UncaughtExceptionHandler +instanceKlass java/lang/Thread +instanceKlass java/lang/Runnable +instanceKlass java/lang/ref/Reference +instanceKlass java/security/AccessControlContext +instanceKlass java/security/ProtectionDomain +instanceKlass java/lang/SecurityManager +instanceKlass java/lang/Throwable +instanceKlass java/lang/System +instanceKlass java/lang/ClassLoader +instanceKlass java/lang/Cloneable +instanceKlass java/lang/Class +instanceKlass java/lang/reflect/Type +instanceKlass java/lang/reflect/GenericDeclaration +instanceKlass java/lang/reflect/AnnotatedElement +instanceKlass java/lang/String +instanceKlass java/lang/CharSequence +instanceKlass java/lang/Comparable +instanceKlass java/io/Serializable +ciInstanceKlass java/lang/Object 1 1 78 3 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 100 7 7 7 7 7 1 1 1 12 12 12 12 12 12 12 12 12 12 10 10 10 10 10 10 10 10 10 10 1 +ciInstanceKlass java/io/Serializable 1 1 7 1 1 1 100 100 1 +ciInstanceKlass java/lang/String 1 1 540 3 3 3 3 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 7 7 100 100 100 7 7 100 100 7 100 100 100 7 100 7 7 100 7 7 100 7 100 100 7 100 7 100 100 7 7 7 100 100 7 7 100 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 1 1 +staticfield java/lang/String serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField; +staticfield java/lang/String CASE_INSENSITIVE_ORDER Ljava/util/Comparator; java/lang/String$CaseInsensitiveComparator +ciInstanceKlass java/lang/Class 1 1 1190 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 5 0 8 8 8 8 8 7 7 7 100 100 100 7 7 100 7 100 7 7 7 7 100 7 7 100 7 100 100 100 7 100 100 100 100 100 100 7 7 7 7 100 100 100 7 7 7 100 100 7 7 100 100 7 7 100 100 100 7 7 100 100 7 7 7 7 7 7 7 7 7 100 7 7 100 7 7 100 100 7 7 7 7 100 100 100 7 7 100 100 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 +staticfield java/lang/Class serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField; +ciInstanceKlass java/lang/Cloneable 1 0 7 1 1 1 100 100 1 +instanceKlass org/jboss/remoting/loading/RemotingClassLoader +instanceKlass org/jboss/remoting/loading/ClassByteClassLoader +instanceKlass net/java/truecommons/services/UnifiedClassLoader +instanceKlass java/util/ResourceBundle$RBClassLoader +instanceKlass sun/reflect/DelegatingClassLoader +instanceKlass java/security/SecureClassLoader +ciInstanceKlass java/lang/ClassLoader 1 1 842 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 7 7 100 100 100 100 7 100 100 7 7 7 7 100 7 100 100 100 100 7 7 100 100 7 100 7 7 100 100 100 100 7 100 100 7 7 100 7 7 100 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 1 1 +staticfield java/lang/ClassLoader nocerts [Ljava/security/cert/Certificate; 0 [Ljava/security/cert/Certificate; +ciInstanceKlass java/lang/System 1 1 369 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 100 7 100 100 100 100 100 100 7 7 100 100 7 100 100 7 7 7 7 100 100 100 7 100 100 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 +staticfield java/lang/System in Ljava/io/InputStream; java/io/BufferedInputStream +staticfield java/lang/System out Ljava/io/PrintStream; java/io/PrintStream +staticfield java/lang/System err Ljava/io/PrintStream; java/io/PrintStream +instanceKlass scala/util/control/BreakControl +instanceKlass scala/runtime/Nothing$ +instanceKlass scala/runtime/NonLocalReturnControl +instanceKlass java/lang/Exception +instanceKlass java/lang/Error +ciInstanceKlass java/lang/Throwable 1 1 327 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 100 100 100 100 100 7 100 100 100 100 7 7 100 7 100 100 100 7 100 100 7 7 7 7 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 1 1 1 1 1 +staticfield java/lang/Throwable UNASSIGNED_STACK [Ljava/lang/StackTraceElement; 0 [Ljava/lang/StackTraceElement; +staticfield java/lang/Throwable SUPPRESSED_SENTINEL Ljava/util/List; java/util/Collections$UnmodifiableRandomAccessList +staticfield java/lang/Throwable EMPTY_THROWABLE_ARRAY [Ljava/lang/Throwable; 0 [Ljava/lang/Throwable; +staticfield java/lang/Throwable $assertionsDisabled Z 1 +instanceKlass scala/NotImplementedError +instanceKlass net/java/truecommons/shed/ControlFlowException +instanceKlass java/util/ServiceConfigurationError +instanceKlass java/lang/AssertionError +instanceKlass java/lang/VirtualMachineError +instanceKlass java/lang/LinkageError +instanceKlass java/lang/ThreadDeath +ciInstanceKlass java/lang/Error 1 1 30 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 1 1 12 12 12 12 12 10 10 10 10 10 1 +ciInstanceKlass java/lang/ThreadDeath 0 0 18 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 10 1 +instanceKlass javax/sound/sampled/UnsupportedAudioFileException +instanceKlass javax/sound/sampled/LineUnavailableException +instanceKlass org/jboss/remoting/transport/socket/ServerThread$EvictionException +instanceKlass org/jboss/remoting/transport/socket/ServerThread$AcknowledgeFailure +instanceKlass java/util/TooManyListenersException +instanceKlass org/jboss/remoting/callback/HandleCallbackException +instanceKlass org/jboss/remoting/ClientDisconnectedException +instanceKlass org/jboss/remoting/ServerInvoker$InvalidStateException +instanceKlass javax/management/JMException +instanceKlass org/jboss/remoting/marshal/InvalidMarshallingResource +instanceKlass org/jboss/remoting/InvalidConfigurationException +instanceKlass java/util/concurrent/TimeoutException +instanceKlass java/util/concurrent/ExecutionException +instanceKlass java/awt/FontFormatException +instanceKlass java/util/concurrent/BrokenBarrierException +instanceKlass org/codehaus/classworlds/ClassWorldException +instanceKlass java/security/GeneralSecurityException +instanceKlass mage/MageException +instanceKlass java/lang/CloneNotSupportedException +instanceKlass java/sql/SQLException +instanceKlass com/google/common/base/internal/Finalizer$ShutDown +instanceKlass javax/swing/text/BadLocationException +instanceKlass java/awt/print/PrinterException +instanceKlass java/awt/AWTException +instanceKlass java/text/ParseException +instanceKlass java/util/prefs/BackingStoreException +instanceKlass java/net/URISyntaxException +instanceKlass mage/remote/MageRemoteException +instanceKlass java/beans/PropertyVetoException +instanceKlass org/apache/log4j/config/PropertySetterException +instanceKlass java/beans/IntrospectionException +instanceKlass java/security/PrivilegedActionException +instanceKlass java/io/IOException +instanceKlass java/lang/InterruptedException +instanceKlass java/lang/ReflectiveOperationException +instanceKlass java/lang/RuntimeException +ciInstanceKlass java/lang/Exception 1 1 30 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 1 1 12 12 12 12 12 10 10 10 10 10 1 +instanceKlass org/tritonus/share/TDebug$AssertException +instanceKlass scala/UninitializedError +instanceKlass mage/client/deck/generator/DeckGenerator$DeckGeneratorException +instanceKlass org/jboss/util/threadpool/ThreadPoolStoppedException +instanceKlass org/jboss/util/threadpool/ThreadPoolFullException +instanceKlass org/jdesktop/beansbinding/PropertyResolutionException +instanceKlass org/jboss/remoting/ConnectionFailedException +instanceKlass java/nio/BufferUnderflowException +instanceKlass org/jboss/remoting/CannotConnectException +instanceKlass org/h2/message/DbException +instanceKlass java/lang/reflect/UndeclaredThrowableException +instanceKlass java/awt/image/RasterFormatException +instanceKlass com/google/common/collect/ComputationException +instanceKlass scala/MatchError +instanceKlass java/util/NoSuchElementException +instanceKlass java/lang/UnsupportedOperationException +instanceKlass java/lang/IndexOutOfBoundsException +instanceKlass java/lang/IllegalStateException +instanceKlass java/util/MissingResourceException +instanceKlass java/lang/invoke/WrongMethodTypeException +instanceKlass java/lang/SecurityException +instanceKlass java/lang/IllegalArgumentException +instanceKlass java/lang/ArithmeticException +instanceKlass java/lang/NullPointerException +instanceKlass java/lang/IllegalMonitorStateException +instanceKlass java/lang/ArrayStoreException +instanceKlass java/lang/ClassCastException +ciInstanceKlass java/lang/RuntimeException 1 1 30 1 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 1 1 12 12 12 12 12 10 10 10 10 10 1 +ciInstanceKlass java/lang/SecurityManager 0 0 375 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +ciInstanceKlass java/security/ProtectionDomain 1 1 272 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 100 100 100 100 100 100 100 100 100 7 7 100 7 7 100 7 7 7 100 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 1 1 +staticfield java/security/ProtectionDomain debug Lsun/security/util/Debug; null +ciInstanceKlass java/security/AccessControlContext 1 1 305 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 7 100 100 7 100 100 7 100 100 7 100 100 7 100 7 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 1 +instanceKlass sun/reflect/misc/MethodUtil +instanceKlass java/net/URLClassLoader +ciInstanceKlass java/security/SecureClassLoader 1 1 130 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 100 100 7 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +staticfield java/security/SecureClassLoader debug Lsun/security/util/Debug; null +instanceKlass java/lang/IllegalAccessException +instanceKlass java/lang/NoSuchFieldException +instanceKlass java/lang/InstantiationException +instanceKlass java/lang/NoSuchMethodException +instanceKlass java/lang/reflect/InvocationTargetException +instanceKlass java/lang/ClassNotFoundException +ciInstanceKlass java/lang/ReflectiveOperationException 1 1 27 1 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 1 12 12 12 12 10 10 10 10 1 +ciInstanceKlass java/lang/ClassNotFoundException 1 1 32 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 100 1 1 1 12 12 12 9 10 10 1 +instanceKlass java/lang/ExceptionInInitializerError +instanceKlass java/lang/UnsatisfiedLinkError +instanceKlass java/lang/IncompatibleClassChangeError +instanceKlass java/lang/BootstrapMethodError +instanceKlass java/lang/NoClassDefFoundError +ciInstanceKlass java/lang/LinkageError 1 1 24 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 1 12 12 12 10 10 10 1 +ciInstanceKlass java/lang/NoClassDefFoundError 0 0 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1 +ciInstanceKlass java/lang/ClassCastException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 12 12 10 10 1 +ciInstanceKlass java/lang/ArrayStoreException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1 +instanceKlass java/lang/InternalError +instanceKlass java/lang/StackOverflowError +instanceKlass java/lang/OutOfMemoryError +ciInstanceKlass java/lang/VirtualMachineError 1 1 27 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 1 12 12 12 12 10 10 10 10 1 +ciInstanceKlass java/lang/OutOfMemoryError 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1 +ciInstanceKlass java/lang/StackOverflowError 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1 +ciInstanceKlass java/lang/IllegalMonitorStateException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1 +instanceKlass java/lang/ref/PhantomReference +instanceKlass java/lang/ref/FinalReference +instanceKlass java/lang/ref/WeakReference +instanceKlass java/lang/ref/SoftReference +ciInstanceKlass java/lang/ref/Reference 1 1 134 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 7 100 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 +instanceKlass javax/swing/plaf/nimbus/ImageCache$PixelCountSoftReference +instanceKlass sun/misc/SoftCache$ValueCell +instanceKlass com/google/common/base/FinalizableSoftReference +instanceKlass sun/font/FontDesignMetrics$KeyReference +instanceKlass sun/font/StrikeCache$SoftDisposerRef +instanceKlass sun/util/locale/provider/LocaleResources$ResourceReference +instanceKlass java/util/ResourceBundle$BundleReference +instanceKlass java/lang/invoke/LambdaFormEditor$Transform +instanceKlass sun/util/locale/LocaleObjectCache$CacheEntry +ciInstanceKlass java/lang/ref/SoftReference 1 1 35 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 7 1 1 1 1 12 12 12 12 12 9 9 10 10 10 1 +instanceKlass net/java/truecommons/shed/Link$Type$Weak +instanceKlass java/io/ObjectStreamClass$FieldReflectorKey +instanceKlass java/io/ObjectStreamClass$WeakClassKey +instanceKlass javax/swing/text/DefaultStyledDocument$AbstractChangeHandler$DocReference +instanceKlass sun/nio/ch/SharedFileLockTable$FileLockReference +instanceKlass java/lang/reflect/WeakCache$CacheValue +instanceKlass java/lang/reflect/Proxy$Key1 +instanceKlass java/lang/reflect/WeakCache$CacheKey +instanceKlass java/util/logging/LogManager$LoggerWeakRef +instanceKlass com/google/common/base/FinalizableWeakReference +instanceKlass javax/swing/ActionPropertyChangeListener$OwnedWeakReference +instanceKlass javax/swing/text/GapContent$MarkData +instanceKlass javax/swing/plaf/synth/SynthLookAndFeel$AATextListener +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$AATextListener +instanceKlass java/beans/WeakIdentityMap$Entry +instanceKlass java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +instanceKlass java/util/ResourceBundle$LoaderReference +instanceKlass java/lang/ThreadLocal$ThreadLocalMap$Entry +instanceKlass java/lang/ClassValue$Entry +instanceKlass java/util/WeakHashMap$Entry +ciInstanceKlass java/lang/ref/WeakReference 1 1 20 1 1 1 1 1 1 1 1 7 100 1 1 1 1 12 12 10 10 1 +instanceKlass java/lang/ref/Finalizer +ciInstanceKlass java/lang/ref/FinalReference 1 1 16 1 1 1 1 1 1 1 100 7 1 1 1 12 10 1 +instanceKlass org/h2/util/CloseWatcher +instanceKlass sun/misc/Cleaner +ciInstanceKlass java/lang/ref/PhantomReference 1 1 19 1 1 1 1 1 1 1 1 1 1 100 7 1 1 1 12 10 1 +ciInstanceKlass sun/misc/Cleaner 1 1 74 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 11 1 +staticfield sun/misc/Cleaner dummyQueue Ljava/lang/ref/ReferenceQueue; java/lang/ref/ReferenceQueue +ciInstanceKlass java/lang/ref/Finalizer 1 1 148 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 100 7 7 100 100 100 7 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 +staticfield java/lang/ref/Finalizer lock Ljava/lang/Object; java/lang/Object +instanceKlass org/jboss/remoting/transport/socket/ServerThread +instanceKlass org/jboss/remoting/transport/bisocket/BisocketServerInvoker$ControlMonitorTimerTask$1 +instanceKlass org/jboss/remoting/transport/bisocket/BisocketServerInvoker$SecondaryServerSocketThread +instanceKlass org/jboss/remoting/transport/bisocket/BisocketServerInvoker$ControlConnectionThread +instanceKlass sun/awt/image/ImageFetcher +instanceKlass java/util/TimerThread +instanceKlass org/h2/mvstore/MVStore$BackgroundWriterThread +instanceKlass org/h2/engine/DatabaseCloser +instanceKlass com/google/common/base/internal/Finalizer +instanceKlass java/util/logging/LogManager$Cleaner +instanceKlass javax/swing/plaf/basic/BasicDirectoryModel$LoadFilesThread +instanceKlass net/java/truevfs/kernel/impl/ShutdownFuse$$anon$1 +instanceKlass java/awt/EventDispatchThread +instanceKlass java/lang/ref/Finalizer$FinalizerThread +instanceKlass java/lang/ref/Reference$ReferenceHandler +ciInstanceKlass java/lang/Thread 1 1 539 3 3 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 100 100 100 100 100 100 100 100 100 7 100 100 7 7 7 100 7 100 7 7 100 100 100 100 100 100 7 7 100 100 100 100 100 100 7 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 1 1 1 1 1 +staticfield java/lang/Thread EMPTY_STACK_TRACE [Ljava/lang/StackTraceElement; 0 [Ljava/lang/StackTraceElement; +staticfield java/lang/Thread SUBCLASS_IMPLEMENTATION_PERMISSION Ljava/lang/RuntimePermission; java/lang/RuntimePermission +ciInstanceKlass java/lang/ThreadGroup 1 1 268 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 100 100 100 7 100 100 7 7 100 100 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 +instanceKlass scala/collection/convert/Wrappers$DictionaryWrapper +instanceKlass java/util/Hashtable +ciInstanceKlass java/util/Dictionary 1 1 31 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 1 1 1 1 1 1 12 10 1 +instanceKlass javax/swing/JSlider$1SmartHashtable +instanceKlass javax/swing/UIDefaults +instanceKlass java/util/Properties +ciInstanceKlass java/util/Hashtable 1 1 402 3 3 4 4 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 5 0 100 100 100 100 100 100 100 100 100 100 7 100 100 7 100 7 100 100 100 7 100 7 7 100 7 7 7 7 100 7 7 7 7 7 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 +instanceKlass java/security/Provider +instanceKlass org/h2/util/SortedProperties +ciInstanceKlass java/util/Properties 1 1 263 3 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 100 100 100 7 100 100 100 100 100 7 7 7 100 7 7 7 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1 +staticfield java/util/Properties hexDigit [C 16 +instanceKlass java/lang/reflect/Executable +instanceKlass java/lang/reflect/Field +ciInstanceKlass java/lang/reflect/AccessibleObject 1 1 144 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 100 100 7 7 100 7 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 +staticfield java/lang/reflect/AccessibleObject ACCESS_PERMISSION Ljava/security/Permission; java/lang/reflect/ReflectPermission +staticfield java/lang/reflect/AccessibleObject reflectionFactory Lsun/reflect/ReflectionFactory; sun/reflect/ReflectionFactory +ciInstanceKlass java/lang/reflect/Field 1 1 362 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 100 100 7 7 7 100 100 100 7 7 7 7 7 7 7 7 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 +ciInstanceKlass java/lang/reflect/Parameter 0 0 210 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1 +instanceKlass java/lang/reflect/Constructor +instanceKlass java/lang/reflect/Method +ciInstanceKlass java/lang/reflect/Executable 1 1 378 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 7 100 100 7 100 7 7 7 7 100 100 100 7 100 7 100 7 7 7 7 7 100 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 1 1 +ciInstanceKlass java/lang/reflect/Method 1 1 346 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 100 100 7 7 7 100 7 100 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 1 +ciInstanceKlass java/lang/reflect/Constructor 1 1 330 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 100 100 100 100 100 100 7 7 100 100 100 100 100 7 7 7 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 +instanceKlass sun/reflect/FieldAccessorImpl +instanceKlass sun/reflect/ConstructorAccessorImpl +instanceKlass sun/reflect/MethodAccessorImpl +ciInstanceKlass sun/reflect/MagicAccessorImpl 1 1 13 1 1 1 1 1 1 1 7 100 12 10 1 +instanceKlass sun/reflect/GeneratedMethodAccessor14 +instanceKlass sun/reflect/GeneratedMethodAccessor13 +instanceKlass sun/reflect/GeneratedMethodAccessor12 +instanceKlass sun/reflect/GeneratedMethodAccessor11 +instanceKlass sun/reflect/GeneratedMethodAccessor10 +instanceKlass sun/reflect/GeneratedMethodAccessor9 +instanceKlass sun/reflect/GeneratedMethodAccessor8 +instanceKlass sun/reflect/GeneratedMethodAccessor7 +instanceKlass sun/reflect/GeneratedMethodAccessor6 +instanceKlass sun/reflect/GeneratedMethodAccessor5 +instanceKlass sun/reflect/GeneratedMethodAccessor4 +instanceKlass sun/reflect/GeneratedMethodAccessor3 +instanceKlass sun/reflect/GeneratedMethodAccessor2 +instanceKlass sun/reflect/GeneratedMethodAccessor1 +instanceKlass sun/reflect/DelegatingMethodAccessorImpl +instanceKlass sun/reflect/NativeMethodAccessorImpl +ciInstanceKlass sun/reflect/MethodAccessorImpl 1 1 22 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 100 100 12 10 1 +instanceKlass sun/reflect/GeneratedConstructorAccessor7 +instanceKlass sun/reflect/GeneratedConstructorAccessor6 +instanceKlass sun/reflect/GeneratedConstructorAccessor5 +instanceKlass sun/reflect/GeneratedConstructorAccessor4 +instanceKlass sun/reflect/GeneratedConstructorAccessor3 +instanceKlass sun/reflect/GeneratedConstructorAccessor2 +instanceKlass sun/reflect/SerializationConstructorAccessorImpl +instanceKlass sun/reflect/BootstrapConstructorAccessorImpl +instanceKlass sun/reflect/GeneratedConstructorAccessor1 +instanceKlass sun/reflect/DelegatingConstructorAccessorImpl +instanceKlass sun/reflect/NativeConstructorAccessorImpl +ciInstanceKlass sun/reflect/ConstructorAccessorImpl 1 1 24 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 7 12 10 1 +ciInstanceKlass sun/reflect/DelegatingClassLoader 1 1 13 1 1 1 1 1 1 1 7 100 1 12 10 +ciInstanceKlass sun/reflect/ConstantPool 1 1 106 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +instanceKlass sun/reflect/UnsafeFieldAccessorImpl +ciInstanceKlass sun/reflect/FieldAccessorImpl 1 1 56 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 12 10 1 +instanceKlass sun/reflect/UnsafeIntegerFieldAccessorImpl +instanceKlass sun/reflect/UnsafeBooleanFieldAccessorImpl +instanceKlass sun/reflect/UnsafeObjectFieldAccessorImpl +instanceKlass sun/reflect/UnsafeStaticFieldAccessorImpl +ciInstanceKlass sun/reflect/UnsafeFieldAccessorImpl 1 1 229 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 100 100 100 100 100 100 7 100 100 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +staticfield sun/reflect/UnsafeFieldAccessorImpl unsafe Lsun/misc/Unsafe; sun/misc/Unsafe +instanceKlass sun/reflect/UnsafeStaticObjectFieldAccessorImpl +instanceKlass sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl +ciInstanceKlass sun/reflect/UnsafeStaticFieldAccessorImpl 1 1 38 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 1 1 1 1 12 12 12 12 12 9 9 10 10 10 1 +ciInstanceKlass sun/reflect/CallerSensitive 0 0 17 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1 +instanceKlass java/lang/invoke/DelegatingMethodHandle +instanceKlass java/lang/invoke/BoundMethodHandle +instanceKlass java/lang/invoke/DirectMethodHandle +ciInstanceKlass java/lang/invoke/MethodHandle 1 1 438 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 100 7 100 100 100 7 100 100 7 7 7 100 7 7 7 7 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 1 +staticfield java/lang/invoke/MethodHandle FORM_OFFSET J 20 +staticfield java/lang/invoke/MethodHandle $assertionsDisabled Z 1 +instanceKlass java/lang/invoke/DirectMethodHandle$Special +instanceKlass java/lang/invoke/DirectMethodHandle$Accessor +ciInstanceKlass java/lang/invoke/DirectMethodHandle 1 1 692 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 7 100 7 100 7 100 100 100 7 100 7 100 100 7 7 100 7 7 100 7 7 100 7 7 7 100 100 100 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1 1 1 1 1 1 +staticfield java/lang/invoke/DirectMethodHandle IMPL_NAMES Ljava/lang/invoke/MemberName$Factory; java/lang/invoke/MemberName$Factory +staticfield java/lang/invoke/DirectMethodHandle ACCESSOR_FORMS [Ljava/lang/invoke/LambdaForm; 132 [Ljava/lang/invoke/LambdaForm; +staticfield java/lang/invoke/DirectMethodHandle $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/MemberName 1 1 642 3 3 3 3 3 3 3 3 3 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 7 7 100 100 100 7 7 100 100 100 100 100 100 100 100 100 7 100 7 7 7 7 7 100 7 7 100 100 100 100 7 100 100 100 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1 +staticfield java/lang/invoke/MemberName $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/MethodHandleNatives 1 1 427 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 7 100 100 100 100 100 100 100 100 100 100 100 100 100 7 100 7 100 100 100 7 7 7 7 7 7 100 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 +staticfield java/lang/invoke/MethodHandleNatives COUNT_GWT Z 1 +staticfield java/lang/invoke/MethodHandleNatives $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/LambdaForm 1 1 967 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 8 100 100 100 100 7 7 100 100 100 7 100 100 100 100 100 100 100 100 7 7 7 100 7 7 100 100 100 7 100 7 100 100 7 7 7 7 7 100 100 7 7 7 7 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 1 1 1 1 1 1 +staticfield java/lang/invoke/LambdaForm COMPILE_THRESHOLD I 0 +staticfield java/lang/invoke/LambdaForm INTERNED_ARGUMENTS [[Ljava/lang/invoke/LambdaForm$Name; 5 [[Ljava/lang/invoke/LambdaForm$Name; +staticfield java/lang/invoke/LambdaForm IMPL_NAMES Ljava/lang/invoke/MemberName$Factory; java/lang/invoke/MemberName$Factory +staticfield java/lang/invoke/LambdaForm LF_identityForm [Ljava/lang/invoke/LambdaForm; 6 [Ljava/lang/invoke/LambdaForm; +staticfield java/lang/invoke/LambdaForm LF_zeroForm [Ljava/lang/invoke/LambdaForm; 6 [Ljava/lang/invoke/LambdaForm; +staticfield java/lang/invoke/LambdaForm NF_identity [Ljava/lang/invoke/LambdaForm$NamedFunction; 6 [Ljava/lang/invoke/LambdaForm$NamedFunction; +staticfield java/lang/invoke/LambdaForm NF_zero [Ljava/lang/invoke/LambdaForm$NamedFunction; 6 [Ljava/lang/invoke/LambdaForm$NamedFunction; +staticfield java/lang/invoke/LambdaForm DEBUG_NAME_COUNTERS Ljava/util/HashMap; null +staticfield java/lang/invoke/LambdaForm TRACE_INTERPRETER Z 0 +staticfield java/lang/invoke/LambdaForm $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/MethodType 1 1 591 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 5 0 7 100 100 100 7 100 100 7 100 7 100 100 100 100 100 7 7 7 7 100 7 7 7 7 7 7 7 7 7 7 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1 1 +staticfield java/lang/invoke/MethodType internTable Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet; java/lang/invoke/MethodType$ConcurrentWeakInternSet +staticfield java/lang/invoke/MethodType NO_PTYPES [Ljava/lang/Class; 0 [Ljava/lang/Class; +staticfield java/lang/invoke/MethodType objectOnlyTypes [Ljava/lang/invoke/MethodType; 20 [Ljava/lang/invoke/MethodType; +staticfield java/lang/invoke/MethodType serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField; +staticfield java/lang/invoke/MethodType rtypeOffset J 12 +staticfield java/lang/invoke/MethodType ptypesOffset J 16 +staticfield java/lang/invoke/MethodType $assertionsDisabled Z 1 +ciInstanceKlass java/lang/BootstrapMethodError 0 0 38 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 1 1 12 12 12 12 12 10 10 10 10 10 1 +instanceKlass java/lang/invoke/VolatileCallSite +instanceKlass java/lang/invoke/MutableCallSite +instanceKlass java/lang/invoke/ConstantCallSite +ciInstanceKlass java/lang/invoke/CallSite 1 1 311 8 8 8 8 8 8 8 8 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 100 7 100 100 100 100 100 100 7 100 7 100 7 7 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +staticfield java/lang/invoke/CallSite GET_TARGET Ljava/lang/invoke/MethodHandle; java/lang/invoke/DirectMethodHandle +staticfield java/lang/invoke/CallSite THROW_UCS Ljava/lang/invoke/MethodHandle; java/lang/invoke/MethodHandleImpl$AsVarargsCollector +staticfield java/lang/invoke/CallSite TARGET_OFFSET J 12 +ciInstanceKlass java/lang/invoke/ConstantCallSite 1 1 42 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 7 1 1 12 12 12 12 12 12 9 9 10 10 10 10 10 1 +ciInstanceKlass java/lang/invoke/MutableCallSite 0 0 57 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 1 +ciInstanceKlass java/lang/invoke/VolatileCallSite 0 0 33 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 12 12 12 12 12 12 10 10 10 10 10 10 1 +instanceKlass java/lang/StringBuilder +instanceKlass java/lang/StringBuffer +ciInstanceKlass java/lang/AbstractStringBuilder 1 1 318 3 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 100 7 100 100 100 7 7 7 100 7 100 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 +ciInstanceKlass java/lang/StringBuffer 1 1 371 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 7 100 7 7 100 100 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 1 +staticfield java/lang/StringBuffer serialPersistentFields [Ljava/io/ObjectStreamField; 3 [Ljava/io/ObjectStreamField; +ciInstanceKlass java/lang/StringBuilder 1 1 326 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 7 100 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 +ciInstanceKlass sun/misc/Unsafe 1 1 389 8 8 7 7 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 100 7 100 100 7 100 7 100 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +staticfield sun/misc/Unsafe theUnsafe Lsun/misc/Unsafe; sun/misc/Unsafe +staticfield sun/misc/Unsafe ARRAY_BOOLEAN_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_BYTE_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_SHORT_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_CHAR_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_INT_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_LONG_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_FLOAT_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_DOUBLE_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_OBJECT_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_BOOLEAN_INDEX_SCALE I 1 +staticfield sun/misc/Unsafe ARRAY_BYTE_INDEX_SCALE I 1 +staticfield sun/misc/Unsafe ARRAY_SHORT_INDEX_SCALE I 2 +staticfield sun/misc/Unsafe ARRAY_CHAR_INDEX_SCALE I 2 +staticfield sun/misc/Unsafe ARRAY_INT_INDEX_SCALE I 4 +staticfield sun/misc/Unsafe ARRAY_LONG_INDEX_SCALE I 8 +staticfield sun/misc/Unsafe ARRAY_FLOAT_INDEX_SCALE I 4 +staticfield sun/misc/Unsafe ARRAY_DOUBLE_INDEX_SCALE I 8 +staticfield sun/misc/Unsafe ARRAY_OBJECT_INDEX_SCALE I 4 +staticfield sun/misc/Unsafe ADDRESS_SIZE I 8 +instanceKlass com/sun/media/sound/RIFFReader +instanceKlass javax/sound/sampled/AudioInputStream +instanceKlass org/apache/commons/compress/compressors/CompressorInputStream +instanceKlass net/java/truecommons/io/ChannelInputStream +instanceKlass net/java/truecommons/io/DecoratingInputStream +instanceKlass org/jboss/remoting/stream/StreamHandler +instanceKlass java/io/ObjectInputStream$PeekInputStream +instanceKlass java/io/ObjectInputStream$BlockDataInputStream +instanceKlass org/h2/util/AutoCloseInputStream +instanceKlass org/h2/mvstore/StreamStore$Stream +instanceKlass org/h2/store/CountingReaderInputStream +instanceKlass java/io/ObjectInputStream +instanceKlass org/h2/store/fs/FileChannelInputStream +instanceKlass com/sun/imageio/plugins/common/InputStreamAdapter +instanceKlass java/io/SequenceInputStream +instanceKlass sun/java2d/cmm/ProfileDeferralInfo +instanceKlass java/util/zip/ZipFile$ZipFileInputStream +instanceKlass java/io/FilterInputStream +instanceKlass java/io/FileInputStream +instanceKlass java/io/ByteArrayInputStream +ciInstanceKlass java/io/InputStream 1 1 61 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 5 0 100 100 100 7 100 100 100 7 12 12 12 12 12 10 10 10 10 10 10 10 1 +ciInstanceKlass java/io/ByteArrayInputStream 1 1 62 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 100 100 100 7 1 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 1 +instanceKlass net/java/truevfs/access/TFile +instanceKlass sun/awt/shell/ShellFolder +ciInstanceKlass java/io/File 1 1 578 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 7 100 7 100 100 7 7 100 100 100 100 100 100 7 100 100 100 100 100 7 100 100 100 100 7 7 7 100 100 7 100 100 7 7 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 1 1 1 1 +staticfield java/io/File fs Ljava/io/FileSystem; java/io/WinNTFileSystem +staticfield java/io/File separatorChar C 92 +staticfield java/io/File separator Ljava/lang/String; "\" +staticfield java/io/File pathSeparatorChar C 59 +staticfield java/io/File pathSeparator Ljava/lang/String; ";" +staticfield java/io/File PATH_OFFSET J 16 +staticfield java/io/File PREFIX_LENGTH_OFFSET J 12 +staticfield java/io/File UNSAFE Lsun/misc/Unsafe; sun/misc/Unsafe +staticfield java/io/File $assertionsDisabled Z 1 +instanceKlass org/codehaus/classworlds/RealmClassLoader +instanceKlass sun/misc/Launcher$ExtClassLoader +instanceKlass sun/misc/Launcher$AppClassLoader +ciInstanceKlass java/net/URLClassLoader 1 1 522 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 100 100 100 7 7 7 100 100 7 100 100 100 7 7 7 100 7 100 7 7 7 7 7 100 100 100 7 7 100 100 100 7 7 7 7 100 7 100 100 100 7 7 7 100 7 7 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 +ciInstanceKlass java/net/URL 1 1 550 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 7 100 7 7 100 100 100 100 100 7 7 100 7 7 100 100 100 100 7 100 100 7 100 7 7 7 100 100 7 7 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 +staticfield java/net/URL serialPersistentFields [Ljava/io/ObjectStreamField; 7 [Ljava/io/ObjectStreamField; +ciInstanceKlass java/util/jar/Manifest 1 1 230 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 7 7 7 100 100 7 100 7 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 1 1 +ciInstanceKlass sun/misc/Launcher 1 1 218 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 100 100 100 100 100 100 100 100 7 100 7 100 7 7 100 7 7 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1 +ciInstanceKlass sun/misc/Launcher$AppClassLoader 1 1 201 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 7 7 100 7 100 7 7 100 100 7 100 7 100 7 100 7 7 7 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 +staticfield sun/misc/Launcher$AppClassLoader $assertionsDisabled Z 1 +ciInstanceKlass sun/misc/Launcher$ExtClassLoader 1 1 209 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 7 100 7 7 7 7 7 100 7 100 100 100 7 7 7 7 7 7 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 +ciInstanceKlass java/security/CodeSource 1 1 322 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 100 100 100 7 100 100 100 100 7 100 7 100 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1 +ciInstanceKlass java/lang/StackTraceElement 1 1 98 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 7 7 7 7 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 1 +instanceKlass java/nio/ShortBuffer +instanceKlass java/nio/IntBuffer +instanceKlass java/nio/LongBuffer +instanceKlass java/nio/CharBuffer +instanceKlass java/nio/ByteBuffer +ciInstanceKlass java/nio/Buffer 1 1 103 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 100 100 7 100 7 100 7 100 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +ciInstanceKlass java/lang/Boolean 1 1 110 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 7 100 100 100 7 100 7 7 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 1 +staticfield java/lang/Boolean TRUE Ljava/lang/Boolean; java/lang/Boolean +staticfield java/lang/Boolean FALSE Ljava/lang/Boolean; java/lang/Boolean +staticfield java/lang/Boolean TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Character 1 1 459 3 3 3 3 3 3 3 3 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5 0 5 0 100 100 7 7 100 100 100 7 100 7 100 100 100 100 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1 1 1 +staticfield java/lang/Character TYPE Ljava/lang/Class; java/lang/Class +staticfield java/lang/Character $assertionsDisabled Z 1 +instanceKlass scala/math/ScalaNumber +instanceKlass java/math/BigDecimal +instanceKlass java/math/BigInteger +instanceKlass java/util/concurrent/atomic/AtomicLong +instanceKlass java/util/concurrent/atomic/AtomicInteger +instanceKlass java/lang/Long +instanceKlass java/lang/Integer +instanceKlass java/lang/Short +instanceKlass java/lang/Byte +instanceKlass java/lang/Double +instanceKlass java/lang/Float +ciInstanceKlass java/lang/Number 1 1 34 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 7 12 12 10 10 1 +ciInstanceKlass java/lang/Float 1 1 169 3 3 3 4 4 4 4 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 4 4 5 0 7 100 100 7 100 7 100 100 7 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +staticfield java/lang/Float TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Double 1 1 223 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 0 5 0 5 0 5 0 5 0 6 0 6 0 6 0 6 0 6 0 6 0 6 0 7 100 7 100 100 7 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +staticfield java/lang/Double TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Byte 1 1 153 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 0 5 0 7 7 7 100 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +staticfield java/lang/Byte TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Short 1 1 159 3 3 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 0 5 0 7 100 100 7 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +staticfield java/lang/Short TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Integer 1 1 309 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 5 0 5 0 5 0 100 7 7 100 100 7 7 100 7 100 7 7 100 100 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +staticfield java/lang/Integer TYPE Ljava/lang/Class; java/lang/Class +staticfield java/lang/Integer digits [C 36 +staticfield java/lang/Integer DigitTens [C 100 +staticfield java/lang/Integer DigitOnes [C 100 +staticfield java/lang/Integer sizeTable [I 10 +ciInstanceKlass java/lang/Long 1 1 356 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 100 7 7 100 100 7 7 7 7 100 7 100 100 100 7 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +staticfield java/lang/Long TYPE Ljava/lang/Class; java/lang/Class +instanceKlass com/google/common/collect/NullOutputException +ciInstanceKlass java/lang/NullPointerException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 12 12 10 10 1 +ciInstanceKlass java/lang/ArithmeticException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1 +ciInstanceKlass java/util/Collection 1 1 87 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 100 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 10 10 10 11 11 11 11 11 11 1 +instanceKlass scala/collection/convert/Wrappers$IterableWrapper +instanceKlass java/util/LinkedHashMap$LinkedValues +instanceKlass java/util/IdentityHashMap$Values +instanceKlass java/util/AbstractQueue +instanceKlass java/util/TreeMap$Values +instanceKlass java/util/HashMap$Values +instanceKlass java/util/ArrayDeque +instanceKlass java/util/AbstractSet +instanceKlass java/util/AbstractList +ciInstanceKlass java/util/AbstractCollection 1 1 143 3 3 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 100 7 100 100 7 7 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 1 +instanceKlass sun/security/jca/ProviderList$3 +instanceKlass java/util/ArrayList$SubList +instanceKlass sun/awt/util/IdentityArrayList +instanceKlass java/util/SubList +instanceKlass java/util/Arrays$ArrayList +instanceKlass java/util/AbstractSequentialList +instanceKlass java/util/Collections$EmptyList +instanceKlass java/util/ArrayList +instanceKlass java/util/Vector +ciInstanceKlass java/util/AbstractList 1 1 167 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 7 7 100 7 7 100 100 7 7 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 1 1 +instanceKlass org/apache/log4j/ProvisionNode +instanceKlass java/util/Stack +ciInstanceKlass java/util/Vector 1 1 353 3 3 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 100 100 100 100 7 100 100 7 100 7 7 100 7 7 100 100 100 100 100 7 7 7 7 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1 1 1 1 1 +ciInstanceKlass java/util/Stack 1 1 56 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 7 1 1 1 1 12 12 12 12 12 12 12 10 10 10 10 10 10 10 10 1 +ciInstanceKlass java/util/Collections 1 1 675 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 100 100 100 100 100 100 100 100 7 7 100 100 7 100 100 100 100 100 100 100 100 100 100 100 100 7 7 7 100 7 7 100 100 7 100 100 100 100 100 7 100 100 7 7 100 100 7 100 7 100 100 100 7 7 100 100 7 100 100 7 100 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/util/Collections EMPTY_SET Ljava/util/Set; java/util/Collections$EmptySet +staticfield java/util/Collections EMPTY_LIST Ljava/util/List; java/util/Collections$EmptyList +staticfield java/util/Collections EMPTY_MAP Ljava/util/Map; java/util/Collections$EmptyMap +ciInstanceKlass java/util/Set 1 1 48 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 12 10 1 +instanceKlass java/util/EnumMap$EntrySet +instanceKlass EDU/oswego/cs/dl/util/concurrent/ConcurrentHashMap$EntrySet +instanceKlass com/google/common/collect/Sets$SetView +instanceKlass java/util/TreeMap$EntrySet +instanceKlass java/util/IdentityHashMap$KeySet +instanceKlass java/util/Hashtable$KeySet +instanceKlass javax/imageio/spi/PartiallyOrderedSet +instanceKlass java/util/LinkedHashMap$LinkedKeySet +instanceKlass java/util/TreeMap$KeySet +instanceKlass java/util/TreeSet +instanceKlass net/java/truecommons/shed/CanonicalStringSet +instanceKlass java/util/EnumSet +instanceKlass sun/util/resources/ParallelListResourceBundle$KeySet +instanceKlass java/util/HashMap$KeySet +instanceKlass java/util/LinkedHashMap$LinkedEntrySet +instanceKlass java/util/HashMap$EntrySet +instanceKlass java/lang/ProcessEnvironment$CheckedEntrySet +instanceKlass java/util/HashSet +instanceKlass java/util/WeakHashMap$KeySet +instanceKlass java/util/Collections$SetFromMap +instanceKlass java/util/Hashtable$EntrySet +instanceKlass java/util/Collections$EmptySet +ciInstanceKlass java/util/AbstractSet 1 1 71 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 7 7 100 100 7 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 10 10 10 10 10 10 10 11 11 11 11 11 11 1 +instanceKlass java/text/AttributedString$AttributeMap +instanceKlass sun/font/AttributeMap +instanceKlass scala/collection/convert/Wrappers$MapWrapper +instanceKlass org/jboss/util/collection/ReferenceValueMap +instanceKlass EDU/oswego/cs/dl/util/concurrent/ConcurrentHashMap +instanceKlass org/jboss/serial/util/PartitionedWeakHashMap +instanceKlass org/h2/mvstore/MVMap +instanceKlass com/google/common/collect/CustomConcurrentHashMap$Impl +instanceKlass java/util/IdentityHashMap +instanceKlass sun/misc/SoftCache +instanceKlass java/util/EnumMap +instanceKlass java/util/TreeMap +instanceKlass java/util/concurrent/ConcurrentHashMap +instanceKlass sun/util/PreHashedMap +instanceKlass java/util/WeakHashMap +instanceKlass java/util/HashMap +instanceKlass java/util/Collections$EmptyMap +ciInstanceKlass java/util/AbstractMap 1 1 152 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 100 100 7 100 100 100 100 100 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 +instanceKlass mage/cards/Sets +instanceKlass org/h2/value/CaseInsensitiveMap +instanceKlass javax/swing/UIDefaults$TextAndMnemonicHashMap +instanceKlass java/lang/ProcessEnvironment +instanceKlass java/util/LinkedHashMap +ciInstanceKlass java/util/HashMap 1 1 468 3 3 4 4 4 4 4 8 8 8 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 0 100 7 7 100 7 7 100 100 7 100 100 7 100 100 7 100 7 100 100 100 7 100 100 7 100 7 100 100 100 100 7 100 7 7 100 100 7 7 7 7 7 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/util/LinkedHashMap$Entry +ciInstanceKlass java/util/HashMap$Node 1 1 85 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 7 100 100 7 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 11 11 1 +ciInstanceKlass java/util/Hashtable$Entry 1 1 89 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 7 100 100 7 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 11 11 1 +ciInstanceKlass java/lang/Math 1 1 281 3 3 3 3 3 3 4 4 4 4 4 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 6 0 6 0 6 0 6 0 6 0 6 0 6 0 6 0 6 0 100 100 7 7 7 100 100 7 100 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +staticfield java/lang/Math $assertionsDisabled Z 1 +ciInstanceKlass java/util/Enumeration 1 0 14 1 1 1 1 1 1 1 1 1 100 100 1 1 +ciInstanceKlass java/util/Iterator 1 1 45 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 1 1 1 1 12 12 12 12 12 10 10 11 11 11 1 +ciInstanceKlass java/util/Arrays 1 1 800 3 8 8 8 8 8 8 8 8 7 7 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 100 100 100 7 7 100 100 100 7 7 100 100 7 100 100 100 7 100 100 100 100 100 7 7 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 7 7 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 15 15 15 15 15 16 18 18 18 18 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/util/Arrays $assertionsDisabled Z 1 +instanceKlass mage/abilities/Modes +instanceKlass mage/view/CardsView +instanceKlass org/h2/util/SmallLRUCache +instanceKlass org/h2/store/fs/FileMemData$Cache +instanceKlass java/io/ExpiringCache$1 +ciInstanceKlass java/util/LinkedHashMap 1 1 230 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 7 7 100 7 7 100 7 100 100 7 100 7 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/io/ExpiringCache$1 1 1 45 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 100 7 100 100 1 1 1 1 1 1 12 12 12 12 12 9 10 10 10 1 +instanceKlass java/util/HashMap$TreeNode +ciInstanceKlass java/util/LinkedHashMap$Entry 1 1 27 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 1 1 1 1 1 12 10 1 +instanceKlass java/util/regex/PatternSyntaxException +instanceKlass java/lang/NumberFormatException +ciInstanceKlass java/lang/IllegalArgumentException 1 1 27 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 1 12 12 12 12 10 10 10 10 1 +ciInstanceKlass java/util/HashMap$TreeNode 1 1 177 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 7 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +staticfield java/util/HashMap$TreeNode $assertionsDisabled Z 1 +ciInstanceKlass java/awt/image/ImageObserver 1 0 27 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 100 100 1 1 +instanceKlass sun/awt/image/ToolkitImage +instanceKlass java/awt/image/VolatileImage +instanceKlass java/awt/image/BufferedImage +ciInstanceKlass java/awt/Image 1 1 120 4 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 7 7 7 7 7 7 100 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +staticfield java/awt/Image UndefinedProperty Ljava/lang/Object; java/lang/Object +instanceKlass sun/awt/HeadlessToolkit +instanceKlass sun/awt/SunToolkit +ciInstanceKlass java/awt/Toolkit 1 1 636 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 5 0 100 100 100 100 100 100 100 100 100 100 7 100 100 7 7 7 7 7 7 7 7 7 100 7 7 7 100 7 100 100 100 100 100 100 100 7 100 7 100 7 100 100 7 100 7 100 7 100 7 7 100 7 7 100 7 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 1 1 1 1 1 1 1 +staticfield java/awt/Toolkit $assertionsDisabled Z 1 +instanceKlass org/apache/log4j/spi/RootLogger +ciInstanceKlass org/apache/log4j/Logger 1 1 110 10 100 100 10 10 10 10 10 10 10 9 11 9 10 10 9 10 9 8 10 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 12 1 1 12 12 12 7 12 12 12 12 12 7 12 7 12 12 12 12 12 12 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield org/apache/log4j/Logger FQCN Ljava/lang/String; "org.apache.log4j.Logger" +instanceKlass java/util/LinkedHashMap$LinkedValueIterator +instanceKlass java/util/LinkedHashMap$LinkedKeyIterator +instanceKlass java/util/LinkedHashMap$LinkedEntryIterator +ciInstanceKlass java/util/LinkedHashMap$LinkedHashIterator 1 1 80 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 7 7 7 100 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 10 10 10 10 10 10 1 1 +instanceKlass javax/swing/event/PopupMenuEvent +instanceKlass javax/sound/sampled/LineEvent +instanceKlass javax/swing/event/RowSorterEvent +instanceKlass javax/swing/event/TableColumnModelEvent +instanceKlass javax/swing/event/HyperlinkEvent +instanceKlass javax/swing/event/UndoableEditEvent +instanceKlass javax/swing/event/ListSelectionEvent +instanceKlass javax/swing/event/ListDataEvent +instanceKlass javax/swing/event/TableModelEvent +instanceKlass javax/swing/event/CaretEvent +instanceKlass javax/swing/event/ChangeEvent +instanceKlass java/beans/PropertyChangeEvent +instanceKlass java/awt/AWTEvent +ciInstanceKlass java/util/EventObject 1 1 62 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 7 100 7 1 1 1 1 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 10 1 +ciInstanceKlass java/lang/NumberFormatException 1 1 39 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 7 7 7 1 1 12 12 12 12 10 10 10 10 10 10 1 +ciInstanceKlass org/apache/log4j/CategoryKey 1 1 69 10 100 100 10 10 10 9 10 9 9 8 10 10 7 10 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 12 1 1 12 12 12 7 12 12 12 1 12 12 1 12 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/ArrayIndexOutOfBoundsException 1 1 38 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 100 1 1 12 12 12 12 12 10 10 10 10 10 10 1 +ciInstanceKlass sun/awt/windows/WToolkit 1 1 1081 4 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 8 8 8 8 100 100 100 100 100 7 100 100 7 100 7 100 100 7 100 100 100 7 100 100 100 7 100 100 7 100 7 100 100 7 7 7 7 7 100 7 100 100 7 7 7 100 7 7 7 100 100 7 7 7 7 100 100 100 100 100 100 100 100 100 7 7 100 100 100 100 7 7 7 7 7 100 100 100 100 100 100 100 100 100 100 100 100 100 100 7 100 100 7 7 7 100 7 7 7 100 100 100 7 100 100 7 7 100 100 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 15 15 15 15 15 15 16 16 16 16 18 18 18 18 18 1 1 1 1 1 1 +staticfield sun/awt/windows/WToolkit log Lsun/util/logging/PlatformLogger; sun/util/logging/PlatformLogger +ciInstanceKlass javax/swing/event/EventListenerList 1 1 152 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 100 7 100 100 7 100 100 7 100 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +staticfield javax/swing/event/EventListenerList NULL_ARRAY [Ljava/lang/Object; 0 [Ljava/lang/Object; +instanceKlass java/awt/SystemColor +instanceKlass javax/swing/plaf/nimbus/DerivedColor +instanceKlass javax/swing/plaf/ColorUIResource +ciInstanceKlass java/awt/Color 1 1 329 3 4 4 4 4 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 6 0 6 0 100 7 100 7 100 7 100 100 100 100 7 7 100 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +staticfield java/awt/Color white Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color WHITE Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color lightGray Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color LIGHT_GRAY Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color gray Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color GRAY Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color darkGray Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color DARK_GRAY Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color black Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color BLACK Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color red Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color RED Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color pink Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color PINK Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color orange Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color ORANGE Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color yellow Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color YELLOW Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color green Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color GREEN Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color magenta Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color MAGENTA Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color cyan Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color CYAN Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color blue Ljava/awt/Color; java/awt/Color +staticfield java/awt/Color BLUE Ljava/awt/Color; java/awt/Color +ciInstanceKlass java/util/NoSuchElementException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 12 12 10 10 1 +ciInstanceKlass javax/swing/event/ChangeListener 1 0 11 1 1 1 1 1 100 100 100 1 1 +ciInstanceKlass javax/swing/event/ChangeEvent 1 1 13 1 1 1 1 1 1 7 100 1 12 10 1 +instanceKlass javax/swing/text/WrappedPlainView$WrappedLine +instanceKlass javax/swing/text/ComponentView +instanceKlass javax/swing/text/GlyphView +instanceKlass javax/swing/plaf/basic/BasicHTML$Renderer +instanceKlass javax/swing/text/html/ImageView +instanceKlass javax/swing/text/CompositeView +instanceKlass javax/swing/text/PlainView +instanceKlass javax/swing/plaf/basic/BasicTextUI$RootView +ciInstanceKlass javax/swing/text/View 1 1 364 4 4 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 100 100 100 100 7 100 100 100 100 7 7 100 100 7 7 7 100 100 100 7 100 100 7 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 +staticfield javax/swing/text/View sharedBiasReturn [Ljavax/swing/text/Position$Bias; 1 [Ljavax/swing/text/Position$Bias; +ciInstanceKlass javax/swing/text/Document 1 0 48 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 8 8 100 100 100 1 1 1 1 1 1 1 1 1 1 +instanceKlass javax/swing/text/DefaultStyledDocument +instanceKlass javax/swing/text/PlainDocument +ciInstanceKlass javax/swing/text/AbstractDocument 1 1 697 3 8 8 8 8 8 8 8 8 8 8 8 8 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 8 8 8 8 8 8 100 100 100 100 100 7 100 100 100 7 100 100 100 7 100 7 100 7 100 7 100 7 100 7 7 100 100 7 7 7 7 7 100 100 100 7 7 7 7 7 100 100 7 100 100 100 7 100 100 7 100 7 7 100 100 7 7 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield javax/swing/text/AbstractDocument MultiByteProperty Ljava/lang/Object; "multiByte" +ciInstanceKlass javax/swing/text/AbstractDocument$AttributeContext 1 0 25 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1 1 1 1 1 +instanceKlass javax/swing/text/html/StyleSheet +ciInstanceKlass javax/swing/text/StyleContext 1 1 432 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 7 100 100 100 100 100 100 7 100 7 7 7 100 7 7 100 7 100 7 100 7 7 100 100 7 7 7 7 7 7 7 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 +instanceKlass javax/swing/text/StyleConstants$ParagraphConstants +instanceKlass javax/swing/text/StyleConstants$ColorConstants +instanceKlass javax/swing/text/StyleConstants$FontConstants +instanceKlass javax/swing/text/StyleConstants$CharacterConstants +ciInstanceKlass javax/swing/text/StyleConstants 1 1 305 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 7 100 7 7 7 7 7 100 7 7 7 100 7 7 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1 1 1 +staticfield javax/swing/text/StyleConstants NameAttribute Ljava/lang/Object; javax/swing/text/StyleConstants +staticfield javax/swing/text/StyleConstants ResolveAttribute Ljava/lang/Object; javax/swing/text/StyleConstants +staticfield javax/swing/text/StyleConstants ModelAttribute Ljava/lang/Object; javax/swing/text/StyleConstants +staticfield javax/swing/text/StyleConstants BidiLevel Ljava/lang/Object; javax/swing/text/StyleConstants$CharacterConstants +staticfield javax/swing/text/StyleConstants FontFamily Ljava/lang/Object; javax/swing/text/StyleConstants$FontConstants +staticfield javax/swing/text/StyleConstants Family Ljava/lang/Object; javax/swing/text/StyleConstants$FontConstants +staticfield javax/swing/text/StyleConstants FontSize Ljava/lang/Object; javax/swing/text/StyleConstants$FontConstants +staticfield javax/swing/text/StyleConstants Size Ljava/lang/Object; javax/swing/text/StyleConstants$FontConstants +staticfield javax/swing/text/StyleConstants Bold Ljava/lang/Object; javax/swing/text/StyleConstants$FontConstants +staticfield javax/swing/text/StyleConstants Italic Ljava/lang/Object; javax/swing/text/StyleConstants$FontConstants +staticfield javax/swing/text/StyleConstants Underline Ljava/lang/Object; javax/swing/text/StyleConstants$CharacterConstants +staticfield javax/swing/text/StyleConstants StrikeThrough Ljava/lang/Object; javax/swing/text/StyleConstants$CharacterConstants +staticfield javax/swing/text/StyleConstants Superscript Ljava/lang/Object; javax/swing/text/StyleConstants$CharacterConstants +staticfield javax/swing/text/StyleConstants Subscript Ljava/lang/Object; javax/swing/text/StyleConstants$CharacterConstants +staticfield javax/swing/text/StyleConstants Foreground Ljava/lang/Object; javax/swing/text/StyleConstants$ColorConstants +staticfield javax/swing/text/StyleConstants Background Ljava/lang/Object; javax/swing/text/StyleConstants$ColorConstants +staticfield javax/swing/text/StyleConstants ComponentAttribute Ljava/lang/Object; javax/swing/text/StyleConstants$CharacterConstants +staticfield javax/swing/text/StyleConstants IconAttribute Ljava/lang/Object; javax/swing/text/StyleConstants$CharacterConstants +staticfield javax/swing/text/StyleConstants ComposedTextAttribute Ljava/lang/Object; javax/swing/text/StyleConstants +staticfield javax/swing/text/StyleConstants FirstLineIndent Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants +staticfield javax/swing/text/StyleConstants LeftIndent Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants +staticfield javax/swing/text/StyleConstants RightIndent Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants +staticfield javax/swing/text/StyleConstants LineSpacing Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants +staticfield javax/swing/text/StyleConstants SpaceAbove Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants +staticfield javax/swing/text/StyleConstants SpaceBelow Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants +staticfield javax/swing/text/StyleConstants Alignment Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants +staticfield javax/swing/text/StyleConstants TabSet Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants +staticfield javax/swing/text/StyleConstants Orientation Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants +ciInstanceKlass javax/swing/text/StyleConstants$ParagraphConstants 1 1 24 1 1 1 1 1 1 1 1 1 1 1 100 100 7 100 7 1 12 10 10 1 1 1 +ciInstanceKlass javax/swing/text/AttributeSet 1 0 53 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 1 1 1 1 1 12 12 9 9 9 9 1 1 1 1 1 +ciInstanceKlass javax/swing/text/MutableAttributeSet 1 0 20 1 1 1 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1 +instanceKlass javax/swing/text/html/StyleSheet$LargeConversionSet +instanceKlass javax/swing/text/html/HTMLDocument$TaggedAttributeSet +instanceKlass javax/swing/text/StyledEditorKit$1 +ciInstanceKlass javax/swing/text/SimpleAttributeSet 1 1 210 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 100 7 100 100 7 7 7 7 100 7 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 1 1 +staticfield javax/swing/text/SimpleAttributeSet EMPTY Ljavax/swing/text/AttributeSet; javax/swing/text/SimpleAttributeSet$EmptyAttributeSet +ciInstanceKlass javax/swing/text/SimpleAttributeSet$EmptyAttributeSet 1 1 52 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 7 100 100 100 1 1 1 1 12 12 12 10 10 11 1 1 +ciInstanceKlass javax/swing/text/Style 1 0 14 1 1 1 1 1 1 1 1 100 100 100 1 1 +ciInstanceKlass javax/swing/text/StyleContext$NamedStyle 1 1 228 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 7 100 100 7 7 7 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 1 1 +instanceKlass javax/swing/text/html/StyleSheet$SmallConversionSet +ciInstanceKlass javax/swing/text/StyleContext$SmallAttributeSet 1 1 125 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 7 7 7 100 7 7 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 1 1 1 +ciInstanceKlass java/util/LinkedHashMap$LinkedKeySet 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 7 100 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 11 1 1 1 +ciInstanceKlass java/util/Collections$3 1 1 53 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 100 7 100 7 1 1 1 1 1 1 1 12 12 12 12 12 12 12 9 9 10 11 11 11 1 +ciInstanceKlass java/util/LinkedHashMap$LinkedKeyIterator 1 1 39 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 7 1 1 1 1 12 12 12 12 9 10 10 10 1 1 1 +ciInstanceKlass javax/swing/text/Element 1 0 25 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 +instanceKlass javax/swing/text/AbstractDocument$LeafElement +instanceKlass javax/swing/text/AbstractDocument$BranchElement +ciInstanceKlass javax/swing/text/AbstractDocument$AbstractElement 1 1 321 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 100 100 7 100 100 7 100 7 7 7 100 7 100 7 100 100 100 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 +instanceKlass javax/swing/text/DefaultStyledDocument$SectionElement +instanceKlass javax/swing/text/html/HTMLDocument$BlockElement +instanceKlass javax/swing/text/AbstractDocument$BidiRootElement +ciInstanceKlass javax/swing/text/AbstractDocument$BranchElement 1 1 118 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 7 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1 +instanceKlass javax/swing/text/html/HTMLDocument$RunElement +instanceKlass javax/swing/text/AbstractDocument$BidiElement +ciInstanceKlass javax/swing/text/AbstractDocument$LeafElement 1 1 127 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 7 7 7 100 100 100 7 100 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 1 +ciInstanceKlass javax/swing/text/StyleContext$KeyEnumeration 1 1 42 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 100 7 1 1 1 12 12 12 12 9 9 9 10 10 1 1 +instanceKlass javax/swing/text/html/HTML$UnknownTag +ciInstanceKlass javax/swing/text/html/HTML$Tag 1 1 438 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 1 1 +staticfield javax/swing/text/html/HTML$Tag A Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag ADDRESS Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag APPLET Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag AREA Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag B Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag BASE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag BASEFONT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag BIG Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag BLOCKQUOTE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag BODY Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag BR Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag CAPTION Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag CENTER Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag CITE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag CODE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag DD Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag DFN Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag DIR Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag DIV Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag DL Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag DT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag EM Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag FONT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag FORM Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag FRAME Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag FRAMESET Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag H1 Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag H2 Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag H3 Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag H4 Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag H5 Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag H6 Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag HEAD Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag HR Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag HTML Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag I Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag IMG Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag INPUT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag ISINDEX Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag KBD Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag LI Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag LINK Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag MAP Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag MENU Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag META Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag NOBR Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag NOFRAMES Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag OBJECT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag OL Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag OPTION Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag P Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag PARAM Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag PRE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag SAMP Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag SCRIPT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag SELECT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag SMALL Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag SPAN Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag STRIKE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag S Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag STRONG Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag STYLE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag SUB Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag SUP Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag TABLE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag TD Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag TEXTAREA Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag TH Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag TITLE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag TR Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag TT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag U Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag UL Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag VAR Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag IMPLIED Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag CONTENT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag COMMENT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag +staticfield javax/swing/text/html/HTML$Tag allTags [Ljavax/swing/text/html/HTML$Tag; 74 [Ljavax/swing/text/html/HTML$Tag; +ciInstanceKlass javax/swing/text/html/HTML 1 1 171 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 7 100 7 7 7 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 11 1 1 1 +staticfield javax/swing/text/html/HTML tagHashtable Ljava/util/Hashtable; java/util/Hashtable +staticfield javax/swing/text/html/HTML scMapping Ljava/util/Hashtable; java/util/Hashtable +staticfield javax/swing/text/html/HTML attHashtable Ljava/util/Hashtable; java/util/Hashtable +ciInstanceKlass javax/swing/text/html/HTML$Attribute 1 1 436 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 1 +staticfield javax/swing/text/html/HTML$Attribute SIZE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute COLOR Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute CLEAR Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute BACKGROUND Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute BGCOLOR Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute TEXT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute LINK Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute VLINK Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute ALINK Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute WIDTH Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute HEIGHT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute ALIGN Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute NAME Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute HREF Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute REL Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute REV Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute TITLE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute TARGET Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute SHAPE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute COORDS Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute ISMAP Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute NOHREF Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute ALT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute ID Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute SRC Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute HSPACE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute VSPACE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute USEMAP Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute LOWSRC Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute CODEBASE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute CODE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute ARCHIVE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute VALUE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute VALUETYPE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute TYPE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute CLASS Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute STYLE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute LANG Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute FACE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute DIR Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute DECLARE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute CLASSID Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute DATA Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute CODETYPE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute STANDBY Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute BORDER Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute SHAPES Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute NOSHADE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute COMPACT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute START Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute ACTION Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute METHOD Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute ENCTYPE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute CHECKED Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute MAXLENGTH Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute MULTIPLE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute SELECTED Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute ROWS Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute COLS Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute DUMMY Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute CELLSPACING Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute CELLPADDING Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute VALIGN Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute HALIGN Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute NOWRAP Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute ROWSPAN Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute COLSPAN Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute PROMPT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute HTTPEQUIV Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute CONTENT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute LANGUAGE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute VERSION Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute N Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute FRAMEBORDER Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute MARGINWIDTH Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute MARGINHEIGHT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute SCROLLING Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute NORESIZE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute ENDTAG Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute COMMENT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute MEDIA Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute +staticfield javax/swing/text/html/HTML$Attribute allAttributes [Ljavax/swing/text/html/HTML$Attribute; 81 [Ljavax/swing/text/html/HTML$Attribute; +instanceKlass javax/swing/plaf/basic/BasicEditorPaneUI$StyleSheetUIResource +ciInstanceKlass javax/swing/text/html/StyleSheet 1 1 672 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 100 100 100 100 7 100 100 100 100 100 7 7 7 7 7 7 7 100 100 7 7 7 7 7 7 7 7 100 7 7 7 100 7 7 100 7 7 7 100 7 7 100 100 7 7 7 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield javax/swing/text/html/StyleSheet noBorder Ljavax/swing/border/Border; javax/swing/border/EmptyBorder +staticfield javax/swing/text/html/StyleSheet sizeMapDefault [I 7 +ciInstanceKlass javax/swing/text/html/CSS 1 1 1178 4 4 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 5 0 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 100 100 7 7 7 100 100 100 100 7 100 100 7 7 100 7 7 7 100 100 100 100 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 100 7 100 100 100 7 7 7 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield javax/swing/text/html/CSS attributeMap Ljava/util/Hashtable; java/util/Hashtable +staticfield javax/swing/text/html/CSS valueMap Ljava/util/Hashtable; java/util/Hashtable +staticfield javax/swing/text/html/CSS htmlAttrToCssAttrMap Ljava/util/Hashtable; java/util/Hashtable +staticfield javax/swing/text/html/CSS styleConstantToCssMap Ljava/util/Hashtable; java/util/Hashtable +staticfield javax/swing/text/html/CSS htmlValueToCssValueMap Ljava/util/Hashtable; java/util/Hashtable +staticfield javax/swing/text/html/CSS cssValueToInternalValueMap Ljava/util/Hashtable; java/util/Hashtable +ciInstanceKlass javax/swing/text/html/CSS$Attribute 1 1 432 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 100 7 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 1 +staticfield javax/swing/text/html/CSS$Attribute BACKGROUND Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BACKGROUND_ATTACHMENT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BACKGROUND_COLOR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BACKGROUND_IMAGE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BACKGROUND_POSITION Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BACKGROUND_REPEAT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_BOTTOM Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_BOTTOM_COLOR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_BOTTOM_STYLE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_BOTTOM_WIDTH Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_COLOR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_LEFT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_LEFT_COLOR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_LEFT_STYLE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_LEFT_WIDTH Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_RIGHT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_RIGHT_COLOR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_RIGHT_STYLE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_RIGHT_WIDTH Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_STYLE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_TOP Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_TOP_COLOR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_TOP_STYLE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_TOP_WIDTH Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_WIDTH Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute CLEAR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute COLOR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute DISPLAY Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute FLOAT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute FONT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute FONT_FAMILY Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute FONT_SIZE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute FONT_STYLE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute FONT_VARIANT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute FONT_WEIGHT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute HEIGHT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute LETTER_SPACING Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute LINE_HEIGHT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute LIST_STYLE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute LIST_STYLE_IMAGE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute LIST_STYLE_POSITION Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute LIST_STYLE_TYPE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute MARGIN Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute MARGIN_BOTTOM Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute MARGIN_LEFT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute MARGIN_RIGHT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute MARGIN_LEFT_LTR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute MARGIN_LEFT_RTL Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute MARGIN_RIGHT_LTR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute MARGIN_RIGHT_RTL Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute MARGIN_TOP Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute PADDING Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute PADDING_BOTTOM Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute PADDING_LEFT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute PADDING_RIGHT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute PADDING_TOP Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute TEXT_ALIGN Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute TEXT_DECORATION Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute TEXT_INDENT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute TEXT_TRANSFORM Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute VERTICAL_ALIGN Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute WORD_SPACING Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute WHITE_SPACE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute WIDTH Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute BORDER_SPACING Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute CAPTION_SIDE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute +staticfield javax/swing/text/html/CSS$Attribute allAttributes [Ljavax/swing/text/html/CSS$Attribute; 67 [Ljavax/swing/text/html/CSS$Attribute; +staticfield javax/swing/text/html/CSS$Attribute ALL_MARGINS [Ljavax/swing/text/html/CSS$Attribute; 4 [Ljavax/swing/text/html/CSS$Attribute; +staticfield javax/swing/text/html/CSS$Attribute ALL_PADDING [Ljavax/swing/text/html/CSS$Attribute; 4 [Ljavax/swing/text/html/CSS$Attribute; +staticfield javax/swing/text/html/CSS$Attribute ALL_BORDER_WIDTHS [Ljavax/swing/text/html/CSS$Attribute; 4 [Ljavax/swing/text/html/CSS$Attribute; +staticfield javax/swing/text/html/CSS$Attribute ALL_BORDER_STYLES [Ljavax/swing/text/html/CSS$Attribute; 4 [Ljavax/swing/text/html/CSS$Attribute; +staticfield javax/swing/text/html/CSS$Attribute ALL_BORDER_COLORS [Ljavax/swing/text/html/CSS$Attribute; 4 [Ljavax/swing/text/html/CSS$Attribute; +instanceKlass javax/swing/text/html/CSS$BackgroundPosition +instanceKlass javax/swing/text/html/CSS$BackgroundImage +instanceKlass javax/swing/text/html/CSS$CssValueMapper +instanceKlass javax/swing/text/html/CSS$StringValue +instanceKlass javax/swing/text/html/CSS$LengthValue +instanceKlass javax/swing/text/html/CSS$ColorValue +instanceKlass javax/swing/text/html/CSS$BorderStyle +instanceKlass javax/swing/text/html/CSS$FontWeight +instanceKlass javax/swing/text/html/CSS$FontFamily +instanceKlass javax/swing/text/html/CSS$FontSize +ciInstanceKlass javax/swing/text/html/CSS$CssValue 1 1 34 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 1 1 12 12 12 9 10 10 1 1 +ciInstanceKlass javax/swing/text/html/CSS$FontSize 1 1 186 4 4 4 4 4 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 7 100 100 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 1 +ciInstanceKlass javax/swing/text/html/CSS$FontFamily 1 1 76 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 100 7 7 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 1 1 +instanceKlass javax/swing/text/html/CSS$BorderWidthValue +ciInstanceKlass javax/swing/text/html/CSS$LengthValue 1 1 122 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 100 7 100 7 7 7 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1 +ciInstanceKlass javax/swing/text/html/CSS$StringValue 1 1 112 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 7 100 7 7 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 1 1 +ciInstanceKlass javax/swing/text/html/StyleSheet$SmallConversionSet 1 1 53 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 7 100 7 7 1 1 1 1 1 1 12 12 12 12 12 12 12 9 10 10 10 10 10 10 1 1 1 +ciInstanceKlass javax/swing/text/html/HTMLDocument$TaggedAttributeSet 1 1 17 1 1 1 1 1 1 1 1 1 7 100 100 12 10 1 1 +ciInstanceKlass javax/swing/text/html/StyleSheet$LargeConversionSet 1 1 54 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 100 7 7 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 1 1 +ciInstanceKlass javax/swing/text/StyledDocument 1 0 30 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1 1 1 1 1 +instanceKlass javax/swing/text/html/HTMLDocument +ciInstanceKlass javax/swing/text/DefaultStyledDocument 1 1 663 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 100 100 100 100 100 100 100 100 100 100 100 7 7 100 7 7 7 7 100 100 100 7 7 7 7 7 100 7 7 7 100 7 100 100 7 7 100 100 7 7 7 7 7 7 7 7 100 100 100 100 7 100 7 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass javax/swing/plaf/basic/BasicHTML$BasicDocument +ciInstanceKlass javax/swing/text/html/HTMLDocument 1 1 686 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 8 8 100 100 100 100 100 7 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 7 100 100 7 100 7 7 7 7 100 7 100 100 7 7 100 7 100 7 100 100 7 100 100 100 100 100 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass javax/swing/text/html/HTMLDocument$BlockElement 1 1 47 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 7 100 7 1 1 1 1 12 12 12 12 12 12 9 9 10 10 10 10 1 1 1 +ciInstanceKlass javax/swing/plaf/basic/BasicHTML$BasicDocument 1 1 42 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 7 7 7 1 1 1 1 1 12 12 12 12 12 12 10 10 10 10 10 10 1 1 +ciInstanceKlass javax/swing/text/html/HTMLDocument$RunElement 1 1 47 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 7 100 7 1 1 1 1 12 12 12 12 12 12 9 9 10 10 10 10 1 1 1 +instanceKlass org/mage/card/arcane/UI$1$1$1 +ciInstanceKlass javax/swing/text/html/ImageView 1 1 586 4 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 100 7 7 7 7 100 7 100 7 7 100 7 7 100 100 100 7 100 100 100 7 100 100 100 100 100 7 100 7 7 7 7 100 100 7 7 100 100 7 7 7 7 100 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 1 1 1 1 1 +instanceKlass javax/swing/text/html/StyleSheet$ResolvedStyle +instanceKlass javax/swing/text/html/StyleSheet$ViewAttributeSet +ciInstanceKlass javax/swing/text/html/MuxingAttributeSet 1 1 96 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 100 7 100 100 7 100 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 1 1 +ciInstanceKlass javax/swing/text/html/StyleSheet$ViewAttributeSet 1 1 178 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 7 100 7 7 7 7 7 7 100 100 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 1 1 1 1 1 +ciInstanceKlass javax/swing/text/html/StyleSheet$SearchBuffer 1 1 86 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 100 7 7 7 100 7 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +ciInstanceKlass javax/swing/text/html/ParagraphView 1 1 231 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 7 100 7 7 7 7 7 7 100 7 100 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 1 1 1 +instanceKlass javax/swing/text/html/BRView +ciInstanceKlass javax/swing/text/html/InlineView 1 1 139 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 7 100 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 +ciInstanceKlass javax/swing/ImageIcon 1 1 333 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 7 7 7 100 100 100 100 100 100 100 100 100 100 7 7 7 100 100 7 7 7 7 100 100 7 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +staticfield javax/swing/ImageIcon component Ljava/awt/Component; javax/swing/ImageIcon$2$1 +staticfield javax/swing/ImageIcon tracker Ljava/awt/MediaTracker; java/awt/MediaTracker +staticfield javax/swing/ImageIcon TRACKER_KEY Ljava/lang/Object; java/lang/StringBuilder +ciInstanceKlass java/lang/StringIndexOutOfBoundsException 0 0 38 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 1 1 12 12 12 12 12 10 10 10 10 10 10 1 +ciInstanceKlass org/h2/util/SmallLRUCache 1 1 45 4 10 9 7 10 10 7 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 12 12 1 12 12 1 100 1 1 1 1 +instanceKlass javax/swing/text/DefaultStyledDocument$StyleChangeHandler +instanceKlass javax/swing/text/DefaultStyledDocument$StyleContextChangeHandler +ciInstanceKlass javax/swing/text/DefaultStyledDocument$AbstractChangeHandler 1 1 91 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 7 7 100 7 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 11 11 11 1 1 1 +staticfield javax/swing/text/DefaultStyledDocument$AbstractChangeHandler queueMap Ljava/util/Map; java/util/HashMap +ciInstanceKlass javax/swing/text/DefaultStyledDocument$AbstractChangeHandler$DocReference 1 1 30 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 7 1 1 1 1 1 1 12 12 9 10 1 1 1 +ciInstanceKlass javax/swing/text/DefaultStyledDocument$StyleChangeHandler 1 1 35 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 7 7 100 7 1 1 1 12 12 12 10 10 10 1 1 1 +ciInstanceKlass javax/swing/plaf/basic/BasicEditorPaneUI$StyleSheetUIResource 1 1 19 1 1 1 1 1 1 1 1 1 1 100 100 100 7 12 10 1 1 +ciInstanceKlass org/mage/card/arcane/UI$1$1$1 1 1 80 9 10 10 10 100 10 11 10 10 11 7 7 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 1 1 1 12 12 12 12 7 12 1 7 12 7 12 7 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass javax/swing/text/DefaultStyledDocument$SectionElement 1 1 29 8 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 1 1 1 12 12 9 10 1 1 1 +compile javax/swing/text/html/ImageView getPreferredSpan (I)F -1 4 inline 233 0 -1 javax/swing/text/html/ImageView getPreferredSpan (I)F 1 1 javax/swing/text/html/ImageView sync ()V 2 13 javax/swing/text/html/ImageView refreshImage ()V 2 57 javax/swing/text/html/ImageView setPropertiesFromAttributes ()V 3 1 javax/swing/text/html/ImageView getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 4 1 javax/swing/text/View getDocument ()Ljavax/swing/text/Document; 4 9 javax/swing/text/html/HTMLDocument getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 5 1 javax/swing/text/AbstractDocument getAttributeContext ()Ljavax/swing/text/AbstractDocument$AttributeContext; 3 8 javax/swing/text/html/StyleSheet getViewAttributes (Ljavax/swing/text/View;)Ljavax/swing/text/AttributeSet; 4 6 javax/swing/text/html/StyleSheet$ViewAttributeSet (Ljavax/swing/text/html/StyleSheet;Ljavax/swing/text/View;)V 5 6 javax/swing/text/html/MuxingAttributeSet ()V 6 1 java/lang/Object ()V 5 15 javax/swing/text/View getDocument ()Ljavax/swing/text/Document; 5 19 javax/swing/text/html/StyleSheet$SearchBuffer obtainSearchBuffer ()Ljavax/swing/text/html/StyleSheet$SearchBuffer; 6 3 java/util/Stack empty ()Z 7 1 java/util/Vector size ()I 6 12 java/util/Stack pop ()Ljava/lang/Object; 7 1 java/util/Vector size ()I 7 6 java/util/Stack peek ()Ljava/lang/Object; 8 1 java/util/Vector size ()I 8 21 java/util/Vector elementAt (I)Ljava/lang/Object; 9 44 java/util/Vector elementData (I)Ljava/lang/Object; 7 14 java/util/Vector removeElementAt (I)V 5 26 javax/swing/text/html/StyleSheet$SearchBuffer getVector ()Ljava/util/Vector; 5 42 javax/swing/text/View getElement ()Ljavax/swing/text/Element; 5 49 javax/swing/text/AbstractDocument$AbstractElement getAttributes ()Ljavax/swing/text/AttributeSet; 5 60 javax/swing/text/html/StyleSheet translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 6 5 javax/swing/text/html/CSS translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 7 4 javax/swing/text/SimpleAttributeSet ()V 8 1 java/lang/Object ()V 8 10 java/util/LinkedHashMap (I)V 9 2 java/util/HashMap (I)V 10 4 java/util/HashMap (IF)V 7 15 javax/swing/text/html/CSS getHTMLTag (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/HTML$Tag; 8 4 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 9 5 javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 10 11 javax/swing/text/html/StyleSheet access$000 (Ljavax/swing/text/html/StyleSheet;)Ljavax/swing/text/html/CSS; 10 18 javax/swing/text/html/CSS styleConstantsKeyToCSSKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/CSS$Attribute; 7 37 javax/swing/text/AbstractDocument$AbstractElement getParentElement ()Ljavax/swing/text/Element; 7 42 javax/swing/text/AbstractDocument$AbstractElement getParentElement ()Ljavax/swing/text/Element; 7 47 javax/swing/text/AbstractDocument$AbstractElement getAttributes ()Ljavax/swing/text/AttributeSet; 7 81 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 8 5 javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 7 102 javax/swing/text/html/CSS getInternalCSSValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 8 31 javax/swing/text/html/CSS$Attribute getDefaultValue ()Ljava/lang/String; 7 140 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 7 151 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 7 162 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 7 173 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 7 179 javax/swing/text/AbstractDocument$BranchElement isLeaf ()Z 7 179 javax/swing/text/AbstractDocument$LeafElement isLeaf ()Z 7 190 javax/swing/text/html/CSS translateEmbeddedAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/MutableAttributeSet;)V 8 1 javax/swing/text/AbstractDocument$AbstractElement getAttributeNames ()Ljava/util/Enumeration; 9 4 javax/swing/text/StyleContext$SmallAttributeSet getAttributeNames ()Ljava/util/Enumeration; 10 12 javax/swing/text/StyleContext$KeyEnumeration (Ljavax/swing/text/StyleContext;[Ljava/lang/Object;)V 8 11 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 9 5 javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 10 11 javax/swing/text/html/StyleSheet access$000 (Ljavax/swing/text/html/StyleSheet;)Ljavax/swing/text/html/CSS; 10 18 javax/swing/text/html/CSS styleConstantsKeyToCSSKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/CSS$Attribute; 8 32 javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 8 41 javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 8 120 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 7 201 javax/swing/text/html/CSS translateAttributes (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/AttributeSet;Ljavax/swing/text/MutableAttributeSet;)V 8 1 javax/swing/text/AbstractDocument$AbstractElement getAttributeNames ()Ljava/util/Enumeration; 9 4 javax/swing/text/StyleContext$SmallAttributeSet getAttributeNames ()Ljava/util/Enumeration; 10 12 javax/swing/text/StyleContext$KeyEnumeration (Ljavax/swing/text/StyleContext;[Ljava/lang/Object;)V 8 1 javax/swing/text/SimpleAttributeSet getAttributeNames ()Ljava/util/Enumeration; 9 4 java/util/LinkedHashMap keySet ()Ljava/util/Set; 10 14 java/util/LinkedHashMap$LinkedKeySet (Ljava/util/LinkedHashMap;)V 9 7 java/util/Collections enumeration (Ljava/util/Collection;)Ljava/util/Enumeration; 10 5 java/util/Collections$3 (Ljava/util/Collection;)V 8 10 javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 8 10 java/util/Collections$3 hasMoreElements ()Z 9 4 java/util/LinkedHashMap$LinkedHashIterator hasNext ()Z 8 20 javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 8 20 java/util/Collections$3 nextElement ()Ljava/lang/Object; 9 4 java/util/LinkedHashMap$LinkedKeyIterator next ()Ljava/lang/Object; 10 1 java/util/LinkedHashMap$LinkedHashIterator nextNode ()Ljava/util/LinkedHashMap$Entry; 10 4 java/util/HashMap$Node getKey ()Ljava/lang/Object; 8 72 javax/swing/text/html/CSS getCssAlignAttribute (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/CSS$Attribute; 8 87 javax/swing/text/html/CSS getCssValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 8 102 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 8 177 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 9 5 javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 8 177 javax/swing/text/SimpleAttributeSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 9 5 java/util/LinkedHashMap get (Ljava/lang/Object;)Ljava/lang/Object; 10 2 java/util/HashMap hash (Ljava/lang/Object;)I 10 6 java/util/HashMap getNode (ILjava/lang/Object;)Ljava/util/HashMap$Node; 10 25 java/util/LinkedHashMap afterNodeAccess (Ljava/util/HashMap$Node;)V 9 14 javax/swing/text/SimpleAttributeSet getResolveParent ()Ljavax/swing/text/AttributeSet; 10 7 java/util/LinkedHashMap get (Ljava/lang/Object;)Ljava/lang/Object; 8 186 javax/swing/text/html/CSS translateAttribute (Ljavax/swing/text/html/HTML$Attribute;Ljava/lang/String;Ljavax/swing/text/MutableAttributeSet;)V 9 2 javax/swing/text/html/CSS getCssAttribute (Ljavax/swing/text/html/HTML$Attribute;)[Ljavax/swing/text/html/CSS$Attribute; 9 47 javax/swing/text/html/CSS getCssValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 9 62 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 8 206 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 9 5 javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 10 11 javax/swing/text/html/StyleSheet access$000 (Ljavax/swing/text/html/StyleSheet;)Ljavax/swing/text/html/CSS; 10 18 javax/swing/text/html/CSS styleConstantsKeyToCSSKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/CSS$Attribute; 8 211 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 6 12 javax/swing/text/StyleContext addStyle (Ljava/lang/String;Ljavax/swing/text/Style;)Ljavax/swing/text/Style; 7 7 javax/swing/text/StyleContext$NamedStyle (Ljavax/swing/text/StyleContext;Ljava/lang/String;Ljavax/swing/text/Style;)V 8 6 java/lang/Object ()V 8 14 javax/swing/event/EventListenerList ()V 9 1 java/lang/Object ()V 8 27 javax/swing/text/StyleContext getEmptySet ()Ljavax/swing/text/AttributeSet; 6 18 javax/swing/text/StyleContext$NamedStyle addAttributes (Ljavax/swing/text/AttributeSet;)V 7 12 javax/swing/text/html/StyleSheet addAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 8 10 javax/swing/text/html/StyleSheet removeHTMLTags (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 9 15 javax/swing/text/SimpleAttributeSet getAttributeNames ()Ljava/util/Enumeration; 10 4 java/util/LinkedHashMap keySet ()Ljava/util/Set; 10 7 java/util/Collections enumeration (Ljava/util/Collection;)Ljava/util/Enumeration; 9 15 javax/swing/text/AbstractDocument$AbstractElement getAttributeNames ()Ljava/util/Enumeration; 10 4 javax/swing/text/StyleContext$SmallAttributeSet getAttributeNames ()Ljava/util/Enumeration; 9 22 java/util/Collections$3 hasMoreElements ()Z 10 4 java/util/LinkedHashMap$LinkedHashIterator hasNext ()Z 9 22 javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 9 31 java/util/Collections$3 nextElement ()Ljava/lang/Object; 10 4 java/util/LinkedHashMap$LinkedKeyIterator next ()Ljava/lang/Object; 11 4 java/util/HashMap$Node getKey ()Ljava/lang/Object; 9 31 javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 9 51 javax/swing/text/html/HTML getTagForStyleConstantsKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/HTML$Tag; 10 4 java/util/Hashtable get (Ljava/lang/Object;)Ljava/lang/Object; 8 18 javax/swing/text/html/StyleSheet convertAttributeSet (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 9 24 java/util/Collections$3 hasMoreElements ()Z 10 4 java/util/LinkedHashMap$LinkedHashIterator hasNext ()Z 9 24 javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 9 33 java/util/Collections$3 nextElement ()Ljava/lang/Object; 10 4 java/util/LinkedHashMap$LinkedKeyIterator next ()Ljava/lang/Object; 11 4 java/util/HashMap$Node getKey ()Ljava/lang/Object; 9 33 javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 9 51 javax/swing/text/html/StyleSheet$LargeConversionSet (Ljavax/swing/text/html/StyleSheet;)V 10 6 javax/swing/text/SimpleAttributeSet ()V 9 66 java/util/Collections$3 hasMoreElements ()Z 10 4 java/util/LinkedHashMap$LinkedHashIterator hasNext ()Z 9 66 javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 9 76 java/util/Collections$3 nextElement ()Ljava/lang/Object; 10 4 java/util/LinkedHashMap$LinkedKeyIterator next ()Ljava/lang/Object; 11 4 java/util/HashMap$Node getKey ()Ljava/lang/Object; 9 76 javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 9 103 javax/swing/text/html/CSS styleConstantsKeyToCSSKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/CSS$Attribute; 10 4 java/util/Hashtable get (Ljava/lang/Object;)Ljava/lang/Object; 9 172 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 7 19 javax/swing/text/StyleContext$NamedStyle fireStateChanged ()V 8 4 javax/swing/event/EventListenerList getListenerList ()[Ljava/lang/Object; 8 38 javax/swing/event/ChangeEvent (Ljava/lang/Object;)V 9 2 java/util/EventObject (Ljava/lang/Object;)V 10 1 java/lang/Object ()V 5 67 javax/swing/text/StyleContext$NamedStyle getAttributeCount ()I 6 4 javax/swing/text/StyleContext$SmallAttributeSet getAttributeCount ()I 5 79 java/util/Vector addElement (Ljava/lang/Object;)V 6 17 java/util/Vector ensureCapacityHelper (I)V 5 84 javax/swing/text/AbstractDocument$BranchElement isLeaf ()Z 5 84 javax/swing/text/AbstractDocument$LeafElement isLeaf ()Z 5 94 javax/swing/text/AbstractDocument$AbstractElement getAttributeNames ()Ljava/util/Enumeration; 6 4 javax/swing/text/StyleContext$SmallAttributeSet getAttributeNames ()Ljava/util/Enumeration; 7 12 javax/swing/text/StyleContext$KeyEnumeration (Ljavax/swing/text/StyleContext;[Ljava/lang/Object;)V 8 6 java/lang/Object ()V 5 103 javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 5 113 javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 5 220 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 6 5 javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 7 11 javax/swing/text/html/StyleSheet access$000 (Ljavax/swing/text/html/StyleSheet;)Ljavax/swing/text/html/CSS; 7 18 javax/swing/text/html/CSS styleConstantsKeyToCSSKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/CSS$Attribute; 8 4 java/util/Hashtable get (Ljava/lang/Object;)Ljava/lang/Object; 5 250 java/util/Vector addElement (Ljava/lang/Object;)V 6 17 java/util/Vector ensureCapacityHelper (I)V 5 255 java/util/Vector size ()I 5 267 java/util/Vector copyInto ([Ljava/lang/Object;)V 5 273 javax/swing/text/html/MuxingAttributeSet setAttributes ([Ljavax/swing/text/AttributeSet;)V 5 278 javax/swing/text/html/StyleSheet$SearchBuffer releaseSearchBuffer (Ljavax/swing/text/html/StyleSheet$SearchBuffer;)V 6 1 javax/swing/text/html/StyleSheet$SearchBuffer empty ()V 7 12 java/lang/StringBuffer setLength (I)V 8 7 java/lang/AbstractStringBuilder setLength (I)V 9 15 java/lang/AbstractStringBuilder ensureCapacityInternal (I)V 7 26 java/util/Vector removeAllElements ()V 7 40 java/util/Hashtable clear ()V 6 8 java/util/Stack push (Ljava/lang/Object;)Ljava/lang/Object; 7 2 java/util/Vector addElement (Ljava/lang/Object;)V 8 17 java/util/Vector ensureCapacityHelper (I)V 3 20 javax/swing/text/html/ImageView isLink ()Z 3 86 javax/swing/text/View getDocument ()Ljavax/swing/text/Document; 3 93 javax/swing/text/html/ImageView getAttributes ()Ljavax/swing/text/AttributeSet; 3 105 javax/swing/text/View getElement ()Ljavax/swing/text/Element; 1 20 javax/swing/text/html/ImageView getPreferredSpanFromAltView (I)F 2 1 javax/swing/text/html/ImageView getImage ()Ljava/awt/Image; 3 1 javax/swing/text/html/ImageView sync ()V 4 13 javax/swing/text/html/ImageView refreshImage ()V 4 57 javax/swing/text/html/ImageView setPropertiesFromAttributes ()V 5 1 javax/swing/text/html/ImageView getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 6 1 javax/swing/text/View getDocument ()Ljavax/swing/text/Document; 6 9 javax/swing/text/html/HTMLDocument getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 7 1 javax/swing/text/AbstractDocument getAttributeContext ()Ljavax/swing/text/AbstractDocument$AttributeContext; 5 8 javax/swing/text/html/StyleSheet getViewAttributes (Ljavax/swing/text/View;)Ljavax/swing/text/AttributeSet; 6 6 javax/swing/text/html/StyleSheet$ViewAttributeSet (Ljavax/swing/text/html/StyleSheet;Ljavax/swing/text/View;)V 7 6 javax/swing/text/html/MuxingAttributeSet ()V 8 1 java/lang/Object ()V 7 15 javax/swing/text/View getDocument ()Ljavax/swing/text/Document; 7 19 javax/swing/text/html/StyleSheet$SearchBuffer obtainSearchBuffer ()Ljavax/swing/text/html/StyleSheet$SearchBuffer; 8 3 java/util/Stack empty ()Z 9 1 java/util/Vector size ()I 8 12 java/util/Stack pop ()Ljava/lang/Object; 9 1 java/util/Vector size ()I 9 6 java/util/Stack peek ()Ljava/lang/Object; 10 1 java/util/Vector size ()I 10 21 java/util/Vector elementAt (I)Ljava/lang/Object; 9 14 java/util/Vector removeElementAt (I)V 7 26 javax/swing/text/html/StyleSheet$SearchBuffer getVector ()Ljava/util/Vector; 7 42 javax/swing/text/View getElement ()Ljavax/swing/text/Element; 7 49 javax/swing/text/AbstractDocument$AbstractElement getAttributes ()Ljavax/swing/text/AttributeSet; 7 60 javax/swing/text/html/StyleSheet translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 8 5 javax/swing/text/html/CSS translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 9 4 javax/swing/text/SimpleAttributeSet ()V 10 1 java/lang/Object ()V 10 10 java/util/LinkedHashMap (I)V 9 15 javax/swing/text/html/CSS getHTMLTag (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/HTML$Tag; 10 4 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 9 37 javax/swing/text/AbstractDocument$AbstractElement getParentElement ()Ljavax/swing/text/Element; 9 42 javax/swing/text/AbstractDocument$AbstractElement getParentElement ()Ljavax/swing/text/Element; 9 47 javax/swing/text/AbstractDocument$AbstractElement getAttributes ()Ljavax/swing/text/AttributeSet; 9 81 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 10 5 javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 9 102 javax/swing/text/html/CSS getInternalCSSValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 10 31 javax/swing/text/html/CSS$Attribute getDefaultValue ()Ljava/lang/String; 9 140 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 9 151 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 9 179 javax/swing/text/AbstractDocument$BranchElement isLeaf ()Z 9 179 javax/swing/text/AbstractDocument$LeafElement isLeaf ()Z 7 84 javax/swing/text/AbstractDocument$BranchElement isLeaf ()Z 7 84 javax/swing/text/AbstractDocument$LeafElement isLeaf ()Z 7 255 java/util/Vector size ()I 7 273 javax/swing/text/html/MuxingAttributeSet setAttributes ([Ljavax/swing/text/AttributeSet;)V 5 105 javax/swing/text/View getElement ()Ljavax/swing/text/Element; diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java index e5c0908323d..3d6d685e4cb 100644 --- a/Mage.Client/src/main/java/mage/client/MageFrame.java +++ b/Mage.Client/src/main/java/mage/client/MageFrame.java @@ -27,6 +27,21 @@ */ package mage.client; +import java.awt.*; +import java.awt.event.*; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.io.InputStream; +import java.util.*; +import java.util.List; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; +import java.util.prefs.Preferences; +import javax.imageio.ImageIO; +import javax.swing.*; +import javax.swing.event.PopupMenuEvent; +import javax.swing.event.PopupMenuListener; import mage.cards.decks.Deck; import mage.cards.repository.CardCriteria; import mage.cards.repository.CardInfo; @@ -77,25 +92,6 @@ import org.mage.plugins.card.images.DownloadPictures; import org.mage.plugins.card.info.CardInfoPaneImpl; import org.mage.plugins.card.utils.impl.ImageManagerImpl; -import javax.imageio.ImageIO; -import javax.swing.*; -import javax.swing.event.PopupMenuEvent; -import javax.swing.event.PopupMenuListener; -import java.awt.*; -import java.awt.event.*; -import java.awt.image.BufferedImage; -import java.beans.PropertyVetoException; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.prefs.Preferences; - /** * @author BetaSteward_at_googlemail.com */ @@ -253,13 +249,8 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { updateMemUsageTask = new UpdateMemUsageTask(jMemUsageLabel); - try { - tablesPane = new TablesPane(); - desktopPane.add(tablesPane, javax.swing.JLayeredPane.DEFAULT_LAYER); - tablesPane.setMaximum(true); - } catch (PropertyVetoException ex) { - LOGGER.fatal(null, ex); - } + tablesPane = new TablesPane(); + desktopPane.add(tablesPane, javax.swing.JLayeredPane.DEFAULT_LAYER); addTooltipContainer(); setBackground(); @@ -279,6 +270,8 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { backgroundPane.setSize(width, height); } + updateCurrentFrameSize(); + ArrowBuilder.getBuilder().setSize(width, height); if (title != null) { @@ -478,7 +471,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { private void createAndShowSwitchPanelsMenu(final JComponent component, final AbstractButton windowButton) { JPopupMenu menu = new JPopupMenu(); - JInternalFrame[] windows = desktopPane.getAllFramesInLayer(javax.swing.JLayeredPane.DEFAULT_LAYER); + Component[] windows = desktopPane.getComponentsInLayer(javax.swing.JLayeredPane.DEFAULT_LAYER); MagePaneMenuItem menuItem; for (int i = 0; i < windows.length; i++) { @@ -492,7 +485,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { MagePane frame = ((MagePaneMenuItem) ae.getSource()).getFrame(); setActive(frame); }); - menuItem.setIcon(window.getFrameIcon()); + //menuItem.setIcon(window.getFrameIcon()); menu.add(menuItem); } } @@ -543,23 +536,28 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { // showUserRequestDialog(message); // } public static void setActive(MagePane frame) { + // Nothing to do + if (activeFrame == frame) { + return; + } + + // Deactivate current frame if there is one + if (activeFrame != null) { + activeFrame.deactivated(); + } + + // If null, no new frame to activate, return early if (frame == null) { activeFrame = null; return; } LOGGER.debug("Setting " + frame.getTitle() + " active"); - if (activeFrame != null) { - activeFrame.deactivated(); - } activeFrame = frame; - activeFrame.setVisible(true); - activeFrame.toFront(); - try { - activeFrame.setSelected(true); - } catch (PropertyVetoException ex) { - LOGGER.error("Error setting " + frame.getTitle() + " active"); - } + desktopPane.moveToFront(frame); + activeFrame.setBounds(0, 0, desktopPane.getWidth(), desktopPane.getHeight()); + activeFrame.revalidate(); activeFrame.activated(); + activeFrame.setVisible(true); ArrowBuilder.getBuilder().hideAllPanels(); if (frame instanceof GamePane) { ArrowBuilder.getBuilder().showPanel(((GamePane) frame).getGameId()); @@ -569,23 +567,36 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { } } + private void updateCurrentFrameSize() { + if (activeFrame != null) { + activeFrame.setBounds(0, 0, desktopPane.getWidth(), desktopPane.getHeight()); + } + } + + @Override + public void doLayout() { + super.doLayout(); + + updateCurrentFrameSize(); + } + public static void deactivate(MagePane frame) { frame.setVisible(false); setActive(getTopMost(frame)); if (activeFrame != frame) { frame.deactivated(); } - } private static MagePane getTopMost(MagePane exclude) { MagePane topmost = null; int best = Integer.MAX_VALUE; - for (JInternalFrame frame : desktopPane.getAllFramesInLayer(JLayeredPane.DEFAULT_LAYER)) { + for (Component frame : desktopPane.getComponentsInLayer(JLayeredPane.DEFAULT_LAYER)) { if (frame.isVisible()) { int z = desktopPane.getComponentZOrder(frame); if (z < best) { - if (frame instanceof MagePane) { + // Exclude the tables pane if not connected, we never want to show it when not connected + if (frame instanceof MagePane && (SessionHandler.isConnected() || !(frame instanceof TablesPane))) { best = z; if (!frame.equals(exclude)) { topmost = (MagePane) frame; @@ -604,64 +615,47 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { * @param playerId */ public void showGame(UUID gameId, UUID playerId) { - try { - GamePane gamePane = new GamePane(); - desktopPane.add(gamePane, JLayeredPane.DEFAULT_LAYER); - gamePane.setMaximum(true); - gamePane.setVisible(true); - gamePane.showGame(gameId, playerId); - setActive(gamePane); - } catch (PropertyVetoException ex) { - } + GamePane gamePane = new GamePane(); + desktopPane.add(gamePane, JLayeredPane.DEFAULT_LAYER); + gamePane.setVisible(true); + gamePane.showGame(gameId, playerId); + setActive(gamePane); } public void watchGame(UUID gameId) { - try { - for (Component component : desktopPane.getComponents()) { - if (component instanceof GamePane - && ((GamePane) component).getGameId().equals(gameId)) { - setActive((GamePane) component); - return; - } + for (Component component : desktopPane.getComponents()) { + if (component instanceof GamePane + && ((GamePane) component).getGameId().equals(gameId)) { + setActive((GamePane) component); + return; } - GamePane gamePane = new GamePane(); - desktopPane.add(gamePane, JLayeredPane.DEFAULT_LAYER); - gamePane.setMaximum(true); - gamePane.setVisible(true); - gamePane.watchGame(gameId); - setActive(gamePane); - } catch (PropertyVetoException ex) { - LOGGER.debug("Problem starting watching game " + gameId, ex); } + GamePane gamePane = new GamePane(); + desktopPane.add(gamePane, JLayeredPane.DEFAULT_LAYER); + gamePane.setVisible(true); + gamePane.watchGame(gameId); + setActive(gamePane); } public void replayGame(UUID gameId) { - try { - GamePane gamePane = new GamePane(); - desktopPane.add(gamePane, JLayeredPane.DEFAULT_LAYER); - gamePane.setMaximum(true); - gamePane.setVisible(true); - gamePane.replayGame(gameId); - setActive(gamePane); - } catch (PropertyVetoException ex) { - } + GamePane gamePane = new GamePane(); + desktopPane.add(gamePane, JLayeredPane.DEFAULT_LAYER); + gamePane.setVisible(true); + gamePane.replayGame(gameId); + setActive(gamePane); } public void showDraft(UUID draftId) { - try { - DraftPane draftPane = new DraftPane(); - desktopPane.add(draftPane, JLayeredPane.DEFAULT_LAYER); - draftPane.setMaximum(true); - draftPane.setVisible(true); - draftPane.showDraft(draftId); - setActive(draftPane); - } catch (PropertyVetoException ex) { - } + DraftPane draftPane = new DraftPane(); + desktopPane.add(draftPane, JLayeredPane.DEFAULT_LAYER); + draftPane.setVisible(true); + draftPane.showDraft(draftId); + setActive(draftPane); } public void endDraft(UUID draftId) { // inform all open draft panes about - for (JInternalFrame window : desktopPane.getAllFramesInLayer(JLayeredPane.DEFAULT_LAYER)) { + for (Component window : desktopPane.getComponentsInLayer(JLayeredPane.DEFAULT_LAYER)) { if (window instanceof DraftPane) { DraftPane draftPane = (DraftPane) window; draftPane.removeDraft(); @@ -670,22 +664,18 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { } public void showTournament(UUID tournamentId) { - try { - for (Component component : desktopPane.getComponents()) { - if (component instanceof TournamentPane - && ((TournamentPane) component).getTournamentId().equals(tournamentId)) { - setActive((TournamentPane) component); - return; - } + for (Component component : desktopPane.getComponents()) { + if (component instanceof TournamentPane + && ((TournamentPane) component).getTournamentId().equals(tournamentId)) { + setActive((TournamentPane) component); + return; } - TournamentPane tournamentPane = new TournamentPane(); - desktopPane.add(tournamentPane, JLayeredPane.DEFAULT_LAYER); - tournamentPane.setMaximum(true); - tournamentPane.setVisible(true); - tournamentPane.showTournament(tournamentId); - setActive(tournamentPane); - } catch (PropertyVetoException ex) { } + TournamentPane tournamentPane = new TournamentPane(); + desktopPane.add(tournamentPane, JLayeredPane.DEFAULT_LAYER); + tournamentPane.setVisible(true); + tournamentPane.showTournament(tournamentId); + setActive(tournamentPane); } public void showGameEndDialog(GameEndView gameEndView) { @@ -748,7 +738,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { LOGGER.debug("connecting (auto): " + currentConnection.getProxyType().toString() + ' ' + currentConnection.getProxyHost() + ' ' + currentConnection.getProxyPort() + ' ' + currentConnection.getProxyUsername()); if (MageFrame.connect(currentConnection)) { - showGames(false); + prepareAndShowTablesPane(); return true; } else { showMessage("Unable to connect to server"); @@ -1014,23 +1004,20 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { } } - public void showGames(boolean setActive) { + public void prepareAndShowTablesPane() { + // Update the tables pane with the new session + this.tablesPane.showTables(); + + // Show the tables pane if there wasn't already an active pane MagePane topPanebefore = getTopMost(tablesPane); - if (!tablesPane.isVisible()) { - this.tablesPane.setVisible(true); - this.tablesPane.showTables(); - } - if (setActive) { + if (topPanebefore == null) { setActive(tablesPane); - } else // if other panel was already shown, mamke sure it's topmost again - if (topPanebefore != null) { - setActive(topPanebefore); - } + } } public void hideGames() { - JInternalFrame[] windows = desktopPane.getAllFramesInLayer(JLayeredPane.DEFAULT_LAYER); - for (JInternalFrame window : windows) { + Component[] windows = desktopPane.getComponentsInLayer(JLayeredPane.DEFAULT_LAYER); + for (Component window : windows) { if (window instanceof GamePane) { GamePane gamePane = (GamePane) window; gamePane.removeGame(); @@ -1066,25 +1053,20 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { name = "Deck Editor"; } // use already open editor - JInternalFrame[] windows = desktopPane.getAllFramesInLayer(JLayeredPane.DEFAULT_LAYER); - for (JInternalFrame window : windows) { - if (window instanceof DeckEditorPane && window.getTitle().equals(name)) { + Component[] windows = desktopPane.getComponentsInLayer(JLayeredPane.DEFAULT_LAYER); + for (Component window : windows) { + if (window instanceof DeckEditorPane && ((MagePane) window).getTitle().equals(name)) { setActive((MagePane) window); return; } } } - try { - DeckEditorPane deckEditorPane = new DeckEditorPane(); - desktopPane.add(deckEditorPane, JLayeredPane.DEFAULT_LAYER); - deckEditorPane.setMaximum(true); - deckEditorPane.setVisible(true); - deckEditorPane.show(mode, deck, name, tableId, time); - setActive(deckEditorPane); - } catch (PropertyVetoException ex) { - LOGGER.fatal(null, ex); - } + DeckEditorPane deckEditorPane = new DeckEditorPane(); + desktopPane.add(deckEditorPane, JLayeredPane.DEFAULT_LAYER); + deckEditorPane.setVisible(false); + deckEditorPane.show(mode, deck, name, tableId, time); + setActive(deckEditorPane); } public void showUserRequestDialog(final UserRequestMessage userRequestMessage) { @@ -1109,22 +1091,17 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { } public void showCollectionViewer() { - JInternalFrame[] windows = desktopPane.getAllFramesInLayer(JLayeredPane.DEFAULT_LAYER); - for (JInternalFrame window : windows) { + Component[] windows = desktopPane.getComponentsInLayer(JLayeredPane.DEFAULT_LAYER); + for (Component window : windows) { if (window instanceof CollectionViewerPane) { setActive((MagePane) window); return; } } - try { - CollectionViewerPane collectionViewerPane = new CollectionViewerPane(); - desktopPane.add(collectionViewerPane, javax.swing.JLayeredPane.DEFAULT_LAYER); - collectionViewerPane.setMaximum(true); - collectionViewerPane.setVisible(true); - setActive(collectionViewerPane); - } catch (PropertyVetoException ex) { - LOGGER.fatal(null, ex); - } + CollectionViewerPane collectionViewerPane = new CollectionViewerPane(); + desktopPane.add(collectionViewerPane, javax.swing.JLayeredPane.DEFAULT_LAYER); + collectionViewerPane.setVisible(true); + setActive(collectionViewerPane); } static void renderSplashFrame(Graphics2D g) { diff --git a/Mage.Client/src/main/java/mage/client/MagePane.java b/Mage.Client/src/main/java/mage/client/MagePane.java index b4a4d474d6e..6ba8b902041 100644 --- a/Mage.Client/src/main/java/mage/client/MagePane.java +++ b/Mage.Client/src/main/java/mage/client/MagePane.java @@ -36,37 +36,33 @@ package mage.client; import java.awt.AWTEvent; import java.awt.KeyboardFocusManager; import java.beans.PropertyVetoException; +import javax.swing.*; import javax.swing.plaf.basic.BasicInternalFrameUI; /** * * @author BetaSteward_at_googlemail.com */ -public abstract class MagePane extends javax.swing.JInternalFrame { +public abstract class MagePane extends javax.swing.JLayeredPane { + private String title = "no title set"; /** * Creates new form MagePane */ public MagePane() { - this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); initComponents(); - hideTitle(); - } - - private void hideTitle() { - if (ui instanceof BasicInternalFrameUI) { - ((BasicInternalFrameUI) ui).setNorthPane(null); - } } public void changeGUISize() { } - @Override - public void updateUI() { - super.updateUI(); - hideTitle(); + public void setTitle(String title) { + this.title = title; + } + + public String getTitle() { + return title; } public void hideFrame() { @@ -75,11 +71,6 @@ public abstract class MagePane extends javax.swing.JInternalFrame { public void removeFrame() { KeyboardFocusManager.getCurrentKeyboardFocusManager().clearGlobalFocusOwner(); - try { - this.setClosed(true); - } catch (PropertyVetoException ex) { - - } MageFrame.deactivate(this); MageFrame.getDesktop().remove(this); } @@ -106,18 +97,6 @@ public abstract class MagePane extends javax.swing.JInternalFrame { setBorder(null); - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 765, Short.MAX_VALUE) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 476, Short.MAX_VALUE) - ); - - pack(); }// //GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables diff --git a/Mage.Client/src/main/java/mage/client/SessionHandler.java b/Mage.Client/src/main/java/mage/client/SessionHandler.java index a690513ec5d..97a183c3cad 100644 --- a/Mage.Client/src/main/java/mage/client/SessionHandler.java +++ b/Mage.Client/src/main/java/mage/client/SessionHandler.java @@ -1,13 +1,12 @@ package mage.client; -import java.util.*; - import mage.cards.decks.DeckCardLists; import mage.client.chat.LocalCommands; import mage.constants.ManaType; import mage.constants.PlayerAction; import mage.game.match.MatchOptions; import mage.game.tournament.TournamentOptions; +import mage.players.PlayerType; import mage.players.net.UserData; import mage.remote.Connection; import mage.remote.MageRemoteException; @@ -15,6 +14,8 @@ import mage.remote.Session; import mage.remote.SessionImpl; import mage.view.*; +import java.util.*; + /** * Created by IGOUDT on 15-9-2016. */ @@ -91,11 +92,11 @@ public final class SessionHandler { session.sendPlayerBoolean(gameId, b); } - public static String[] getPlayerTypes() { + public static PlayerType[] getPlayerTypes() { return session.getPlayerTypes(); } - public static boolean joinTournamentTable(UUID roomId, UUID tableId, String text, String selectedItem, Integer integer, DeckCardLists deckCardLists, String s) { + public static boolean joinTournamentTable(UUID roomId, UUID tableId, String text, PlayerType selectedItem, Integer integer, DeckCardLists deckCardLists, String s) { return session.joinTournamentTable(roomId, tableId, text, selectedItem, integer, deckCardLists, s); } @@ -233,7 +234,7 @@ public final class SessionHandler { return session.createTable(roomId, options); } - public static boolean joinTable(UUID roomId, UUID tableId, String playerName, String human, int skill, DeckCardLists deckCardLists, String text) { + public static boolean joinTable(UUID roomId, UUID tableId, String playerName, PlayerType human, int skill, DeckCardLists deckCardLists, String text) { return session.joinTable(roomId, tableId, playerName, human, skill, deckCardLists, text); } diff --git a/Mage.Client/src/main/java/mage/client/cards/Card.java b/Mage.Client/src/main/java/mage/client/cards/Card.java index b3ddbadeec2..18693345577 100644 --- a/Mage.Client/src/main/java/mage/client/cards/Card.java +++ b/Mage.Client/src/main/java/mage/client/cards/Card.java @@ -33,52 +33,12 @@ */ package mage.client.cards; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Image; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.RenderingHints; -import java.awt.event.ComponentEvent; -import java.awt.event.ComponentListener; -import java.awt.event.FocusEvent; -import java.awt.event.FocusListener; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.awt.event.MouseMotionListener; -import java.awt.image.BufferedImage; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import javax.swing.JPanel; -import javax.swing.JPopupMenu; -import javax.swing.JScrollPane; -import javax.swing.Popup; -import javax.swing.PopupFactory; -import javax.swing.text.BadLocationException; -import javax.swing.text.Style; -import javax.swing.text.StyleConstants; -import javax.swing.text.StyleContext; -import javax.swing.text.StyledDocument; import mage.cards.CardDimensions; import mage.cards.MagePermanent; import mage.cards.Sets; import mage.cards.TextPopup; import mage.cards.action.ActionCallback; import mage.client.MageFrame; -import static mage.client.constants.Constants.CONTENT_MAX_XOFFSET; -import static mage.client.constants.Constants.FRAME_MAX_HEIGHT; -import static mage.client.constants.Constants.FRAME_MAX_WIDTH; -import static mage.client.constants.Constants.NAME_FONT_MAX_SIZE; -import static mage.client.constants.Constants.NAME_MAX_YOFFSET; -import static mage.client.constants.Constants.POWBOX_TEXT_MAX_LEFT; -import static mage.client.constants.Constants.POWBOX_TEXT_MAX_TOP; -import static mage.client.constants.Constants.SYMBOL_MAX_XOFFSET; -import static mage.client.constants.Constants.SYMBOL_MAX_YOFFSET; -import static mage.client.constants.Constants.TYPE_MAX_YOFFSET; import mage.client.game.PlayAreaPanel; import mage.client.util.Config; import mage.client.util.DefaultActionCallback; @@ -86,13 +46,21 @@ import mage.client.util.ImageHelper; import mage.client.util.gui.ArrowBuilder; import mage.constants.CardType; import mage.constants.EnlargeMode; -import mage.view.AbilityView; -import mage.view.CardView; -import mage.view.CounterView; -import mage.view.PermanentView; -import mage.view.StackAbilityView; +import mage.constants.SuperType; +import mage.view.*; import org.apache.log4j.Logger; +import javax.swing.*; +import javax.swing.text.*; +import java.awt.*; +import java.awt.event.*; +import java.awt.image.BufferedImage; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import static mage.client.constants.Constants.*; + /** * * @author BetaSteward_at_googlemail.com @@ -191,9 +159,9 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis gImage.setFont(new Font("Arial", Font.PLAIN, NAME_FONT_MAX_SIZE)); gImage.drawString(card.getName()+"TEST", CONTENT_MAX_XOFFSET, NAME_MAX_YOFFSET); - if (card.getCardTypes().contains(CardType.CREATURE)) { + if (card.isCreature()) { gImage.drawString(card.getPower() + '/' + card.getToughness(), POWBOX_TEXT_MAX_LEFT, POWBOX_TEXT_MAX_TOP); - } else if (card.getCardTypes().contains(CardType.PLANESWALKER)) { + } else if (card.isPlanesWalker()) { gImage.drawString(card.getLoyalty(), POWBOX_TEXT_MAX_LEFT, POWBOX_TEXT_MAX_TOP); } @@ -205,9 +173,9 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis gSmall.setFont(new Font("Arial", Font.PLAIN, Config.dimensions.nameFontSize)); gSmall.drawString(card.getName()+"TEST2", Config.dimensions.contentXOffset, Config.dimensions.nameYOffset); - if (card.getCardTypes().contains(CardType.CREATURE)) { + if (card.isCreature()) { gSmall.drawString(card.getPower() + "/-/" + card.getToughness(), Config.dimensions.powBoxTextLeft, Config.dimensions.powBoxTextTop); - } else if (card.getCardTypes().contains(CardType.PLANESWALKER)) { + } else if (card.isPlanesWalker()) { gSmall.drawString(card.getLoyalty(), Config.dimensions.powBoxTextLeft, Config.dimensions.powBoxTextTop); } @@ -239,9 +207,9 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis if (card.getColor().hasColor()) { sb.append('\n').append(card.getColor().toString()); } - if (card.getCardTypes().contains(CardType.CREATURE)) { + if (card.isCreature()) { sb.append('\n').append(card.getPower()).append('/').append(card.getToughness()); - } else if (card.getCardTypes().contains(CardType.PLANESWALKER)) { + } else if (card.isPlanesWalker()) { sb.append('\n').append(card.getLoyalty()); } for (String rule : getRules()) { @@ -262,9 +230,9 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis return "effect"; } StringBuilder sb = new StringBuilder(); - if (card.getCardTypes().contains(CardType.LAND)) { + if (card.isLand()) { sb.append("land").append(card.getSuperTypes()).append(card.getSubTypes()); - } else if (card.getCardTypes() != null && (card.getCardTypes().contains(CardType.CREATURE) || card.getCardTypes().contains(CardType.PLANESWALKER))) { + } else if (card.getCardTypes() != null && (card.isCreature() || card.isPlanesWalker())) { sb.append("creature"); } sb.append(card.getColor()).append(card.getRarity()).append(card.getExpansionSetCode()); @@ -300,7 +268,7 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis protected String getType(CardView card) { StringBuilder sbType = new StringBuilder(); - for (String superType : card.getSuperTypes()) { + for (SuperType superType : card.getSuperTypes()) { sbType.append(superType).append(' '); } diff --git a/Mage.Client/src/main/java/mage/client/cards/CardDraggerGlassPane.java b/Mage.Client/src/main/java/mage/client/cards/CardDraggerGlassPane.java index ed9ae1f67fb..e79ea3944c4 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardDraggerGlassPane.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardDraggerGlassPane.java @@ -1,6 +1,7 @@ package mage.client.cards; import mage.cards.MageCard; +import mage.client.MagePane; import mage.client.plugins.impl.Plugins; import mage.view.CardView; @@ -24,9 +25,12 @@ public class CardDraggerGlassPane implements MouseListener, MouseMotionListener private DragCardTarget currentDragTarget; private boolean isDragging; + // This should not be strictly needed, but for some reason I can't figure out getDeepestComponentAt and + // getComponentAt do not seem to work correctly for our setup if called on the root MageFrame. + private MagePane currentEventRootMagePane; + public CardDraggerGlassPane(DragCardSource source) { this.source = source; - } public void beginDrag(Component c, MouseEvent e) { @@ -46,6 +50,17 @@ public class CardDraggerGlassPane implements MouseListener, MouseMotionListener glassPane.setOpaque(false); glassPane.setVisible(true); + // Get root mage pane to handle drag targeting in + Component rootMagePane = c; + while (rootMagePane != null && !(rootMagePane instanceof MagePane)) { + rootMagePane = rootMagePane.getParent(); + } + if (rootMagePane == null) { + throw new RuntimeException("CardDraggerGlassPane::beginDrag not in a MagePane?"); + } else { + currentEventRootMagePane = (MagePane)rootMagePane; + } + // Hook up events c.addMouseListener(this); c.addMouseMotionListener(this); @@ -72,19 +87,19 @@ public class CardDraggerGlassPane implements MouseListener, MouseMotionListener // Update the target currentDragTarget = null; - updateCurrentTarget(SwingUtilities.convertMouseEvent(glassPane, e, currentRoot), false); + updateCurrentTarget(SwingUtilities.convertMouseEvent(glassPane, e, currentEventRootMagePane), false); } // e is relative to currentRoot private void updateCurrentTarget(MouseEvent e, boolean isEnding) { - Component mouseOver = SwingUtilities.getDeepestComponentAt(currentRoot.getContentPane(), e.getX(), e.getY()); + Component mouseOver = SwingUtilities.getDeepestComponentAt(currentEventRootMagePane, e.getX(), e.getY()); while (mouseOver != null) { if (mouseOver instanceof DragCardTarget) { DragCardTarget target = (DragCardTarget)mouseOver; - MouseEvent targetEvent = SwingUtilities.convertMouseEvent(currentRoot, e, mouseOver); + MouseEvent targetEvent = SwingUtilities.convertMouseEvent(currentEventRootMagePane, e, mouseOver); if (target != currentDragTarget) { if (currentDragTarget != null) { - MouseEvent oldTargetEvent = SwingUtilities.convertMouseEvent(currentRoot, e, (Component) currentDragTarget); + MouseEvent oldTargetEvent = SwingUtilities.convertMouseEvent(currentEventRootMagePane, e, (Component) currentDragTarget); currentDragTarget.dragCardExit(oldTargetEvent); } currentDragTarget = target; @@ -101,7 +116,7 @@ public class CardDraggerGlassPane implements MouseListener, MouseMotionListener mouseOver = mouseOver.getParent(); } if (currentDragTarget != null) { - MouseEvent oldTargetEvent = SwingUtilities.convertMouseEvent(currentRoot, e, (Component)currentDragTarget); + MouseEvent oldTargetEvent = SwingUtilities.convertMouseEvent(currentEventRootMagePane, e, (Component)currentDragTarget); currentDragTarget.dragCardExit(oldTargetEvent); } currentDragTarget = null; @@ -124,7 +139,7 @@ public class CardDraggerGlassPane implements MouseListener, MouseMotionListener dragComponent.removeMouseMotionListener(this); // Convert the event into root coords - e = SwingUtilities.convertMouseEvent(dragComponent, e, currentRoot); + e = SwingUtilities.convertMouseEvent(dragComponent, e, currentEventRootMagePane); // Remove the drag card glassPane.remove(dragView); @@ -144,7 +159,7 @@ public class CardDraggerGlassPane implements MouseListener, MouseMotionListener dragView.setLocation(glassE.getX(), glassE.getY()); dragView.repaint(); // Convert the event into root coords and update target - e = SwingUtilities.convertMouseEvent(dragComponent, e, currentRoot); + e = SwingUtilities.convertMouseEvent(dragComponent, e, currentEventRootMagePane); updateCurrentTarget(e, false); } diff --git a/Mage.Client/src/main/java/mage/client/cards/CardsList.java b/Mage.Client/src/main/java/mage/client/cards/CardsList.java index 45d106c187e..637271efa53 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardsList.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardsList.java @@ -33,26 +33,6 @@ */ package mage.client.cards; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Rectangle; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.beans.Beans; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import javax.swing.DefaultComboBoxModel; -import javax.swing.JTable; -import javax.swing.table.DefaultTableCellRenderer; -import javax.swing.table.TableColumn; -import javax.swing.table.TableColumnModel; import mage.cards.MageCard; import mage.client.constants.Constants.DeckEditorMode; import mage.client.constants.Constants.SortBy; @@ -61,22 +41,26 @@ import mage.client.deckeditor.table.TableModel; import mage.client.deckeditor.table.UpdateCountsCallback; import mage.client.dialog.PreferencesDialog; import mage.client.plugins.impl.Plugins; -import mage.client.util.CardViewCardTypeComparator; -import mage.client.util.CardViewColorComparator; -import mage.client.util.CardViewColorIdentityComparator; -import mage.client.util.CardViewCostComparator; -import mage.client.util.CardViewNameComparator; -import mage.client.util.CardViewRarityComparator; +import mage.client.util.*; import mage.client.util.Event; -import mage.client.util.GUISizeHelper; -import mage.client.util.Listener; import mage.client.util.gui.TableSpinnerEditor; -import mage.constants.CardType; import mage.view.CardView; import mage.view.CardsView; import mage.view.SimpleCardView; import org.mage.card.arcane.CardPanel; +import javax.swing.*; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.TableColumn; +import javax.swing.table.TableColumnModel; +import java.awt.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.beans.Beans; +import java.util.*; +import java.util.List; + /** * * @author BetaSteward_at_googlemail.com @@ -398,22 +382,22 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar int artifactCount = 0; for (CardView card : cards.values()) { - if (card.getCardTypes().contains(CardType.LAND)) { + if (card.isLand()) { landCount++; } - if (card.getCardTypes().contains(CardType.CREATURE)) { + if (card.isCreature()) { creatureCount++; } - if (card.getCardTypes().contains(CardType.SORCERY)) { + if (card.isSorcery()) { sorceryCount++; } - if (card.getCardTypes().contains(CardType.INSTANT)) { + if (card.isInstant()) { instantCount++; } - if (card.getCardTypes().contains(CardType.ENCHANTMENT)) { + if (card.isEnchantment()) { enchantmentCount++; } - if (card.getCardTypes().contains(CardType.ARTIFACT)) { + if (card.isArtifact()) { artifactCount++; } } diff --git a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java index d1bb0977e24..f1c4c49961a 100644 --- a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java +++ b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java @@ -1,53 +1,6 @@ package mage.client.cards; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.GridLayout; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; -import javax.swing.AbstractButton; -import javax.swing.BorderFactory; -import javax.swing.BoxLayout; -import javax.swing.ButtonGroup; -import javax.swing.ImageIcon; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JCheckBoxMenuItem; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JLayeredPane; -import javax.swing.JMenu; -import javax.swing.JMenuItem; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JPopupMenu; -import javax.swing.JScrollPane; import mage.cards.Card; -import javax.swing.JSlider; -import javax.swing.JTextField; -import javax.swing.JToggleButton; -import javax.swing.ScrollPaneConstants; -import javax.swing.SwingConstants; -import javax.swing.SwingUtilities; import mage.cards.MageCard; import mage.cards.decks.DeckCardInfo; import mage.cards.decks.DeckCardLayout; @@ -58,22 +11,28 @@ import mage.client.MageFrame; import mage.client.constants.Constants; import mage.client.dialog.PreferencesDialog; import mage.client.plugins.impl.Plugins; -import mage.client.util.CardViewCardTypeComparator; -import mage.client.util.CardViewColorComparator; -import mage.client.util.CardViewColorIdentityComparator; -import mage.client.util.CardViewCostComparator; -import mage.client.util.CardViewNameComparator; -import mage.client.util.CardViewRarityComparator; +import mage.client.util.*; import mage.client.util.Event; -import mage.client.util.GUISizeHelper; -import mage.client.util.Listener; import mage.constants.CardType; +import mage.constants.SuperType; import mage.util.RandomUtil; import mage.view.CardView; import mage.view.CardsView; import org.apache.log4j.Logger; import org.mage.card.arcane.CardRenderer; +import javax.swing.*; +import java.awt.*; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.util.*; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + /** * Created by StravantUser on 2016-09-20. */ @@ -511,50 +470,50 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg private final CardTypeCounter creatureCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { - return card.getCardTypes().contains(CardType.CREATURE); + return card.isCreature(); } }; private final CardTypeCounter landCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { - return card.getCardTypes().contains(CardType.LAND); + return card.isLand(); } }; private final CardTypeCounter artifactCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { - return card.getCardTypes().contains(CardType.ARTIFACT); + return card.isArtifact(); } }; private final CardTypeCounter enchantmentCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { - return card.getCardTypes().contains(CardType.ENCHANTMENT); + return card.isEnchantment(); } }; private final CardTypeCounter instantCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { - return card.getCardTypes().contains(CardType.INSTANT); + return card.isInstant(); } }; private final CardTypeCounter sorceryCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { - return card.getCardTypes().contains(CardType.SORCERY); + return card.isSorcery(); } }; private final CardTypeCounter planeswalkerCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { - return card.getCardTypes().contains(CardType.PLANESWALKER); + return card.isPlanesWalker(); } }; private final CardTypeCounter tribalCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { - return card.getCardTypes().contains(CardType.TRIBAL); + return card.isTribal(); } }; @@ -1312,8 +1271,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg } // Sub & Super Types if (!s) { - for (String str : card.getSuperTypes()) { - s |= str.toLowerCase().contains(searchStr); + for (SuperType str : card.getSuperTypes()) { + s |= str.toString().toLowerCase().contains(searchStr); } for (String str : card.getSubTypes()) { s |= str.toLowerCase().contains(searchStr); @@ -1388,8 +1347,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg t += ' ' + type.toString(); } // Sub & Super Types - for (String str : card.getSuperTypes()) { - t += ' ' + str.toLowerCase(); + for (SuperType type : card.getSuperTypes()) { + t += ' ' + type.toString().toLowerCase(); } for (String str : card.getSubTypes()) { t += ' ' + str.toLowerCase(); @@ -1523,7 +1482,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg for (ArrayList> gridRow : cardGrid) { for (ArrayList stack : gridRow) { for (CardView card : stack) { - if (card.getSuperTypes().contains("Basic")) { + if (card.getSuperTypes().contains(SuperType.BASIC)) { continue; } @@ -1896,7 +1855,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg } // What row to add it to? ArrayList> targetRow; - if (separateCreatures && !newCard.getCardTypes().contains(CardType.CREATURE)) { + if (separateCreatures && !newCard.isCreature()) { // Ensure row 2 exists if (cardGrid.size() < 2) { cardGrid.add(1, new ArrayList<>()); diff --git a/Mage.Client/src/main/java/mage/client/cards/Permanent.java b/Mage.Client/src/main/java/mage/client/cards/Permanent.java index f23c01cc885..6d60ad1af25 100644 --- a/Mage.Client/src/main/java/mage/client/cards/Permanent.java +++ b/Mage.Client/src/main/java/mage/client/cards/Permanent.java @@ -34,28 +34,24 @@ package mage.client.cards; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Rectangle; -import java.awt.RenderingHints; +import mage.cards.CardDimensions; +import mage.cards.MagePermanent; +import mage.cards.Sets; +import mage.client.util.Config; +import mage.client.util.TransformedImageCache; +import mage.view.CounterView; +import mage.view.PermanentView; + +import javax.swing.*; +import java.awt.*; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; import java.util.UUID; -import javax.swing.PopupFactory; -import mage.cards.CardDimensions; -import mage.cards.MagePermanent; -import mage.cards.Sets; + import static mage.client.constants.Constants.DAMAGE_MAX_LEFT; import static mage.client.constants.Constants.POWBOX_TEXT_MAX_TOP; -import mage.client.util.Config; -import mage.constants.CardType; -import mage.view.CounterView; -import mage.view.PermanentView; -import mage.client.util.TransformedImageCache; /** * @@ -113,10 +109,10 @@ public class Permanent extends Card { if (permanent.getOriginal().getColor().hasColor()) { sb.append('\n').append(permanent.getOriginal().getColor().toString()); } - if (permanent.getOriginal().getCardTypes().contains(CardType.CREATURE)) { + if (permanent.getOriginal().isCreature()) { sb.append('\n').append(permanent.getOriginal().getPower()).append('/').append(permanent.getOriginal().getToughness()); } - else if (permanent.getOriginal().getCardTypes().contains(CardType.PLANESWALKER)) { + else if (permanent.getOriginal().isPlanesWalker()) { sb.append('\n').append(permanent.getOriginal().getLoyalty()); } for (String rule: getRules()) { diff --git a/Mage.Client/src/main/java/mage/client/chat/LocalCommands.java b/Mage.Client/src/main/java/mage/client/chat/LocalCommands.java index f7e03f4e9c9..0c06598ab1e 100644 --- a/Mage.Client/src/main/java/mage/client/chat/LocalCommands.java +++ b/Mage.Client/src/main/java/mage/client/chat/LocalCommands.java @@ -4,6 +4,7 @@ import mage.client.MageFrame; import mage.client.SessionHandler; import mage.client.util.IgnoreList; import mage.interfaces.callback.ClientCallback; +import mage.interfaces.callback.ClientCallbackMethod; import mage.view.ChatMessage; import java.text.DateFormat; @@ -58,7 +59,7 @@ public final class LocalCommands { private static void displayLocalCommandResponse(UUID chatId, String response) { final String text = new StringBuilder().append("").append(response).append("").toString(); - ClientCallback chatMessage = new ClientCallback("chatMessage", chatId, + ClientCallback chatMessage = new ClientCallback(ClientCallbackMethod.CHATMESSAGE, chatId, new ChatMessage("", text, timeFormatter.format(new Date()), ChatMessage.MessageColor.BLUE)); MageFrame.getInstance().processCallback(chatMessage); } diff --git a/Mage.Client/src/main/java/mage/client/components/MageUI.java b/Mage.Client/src/main/java/mage/client/components/MageUI.java index 48c14687f4a..86db500ea86 100644 --- a/Mage.Client/src/main/java/mage/client/components/MageUI.java +++ b/Mage.Client/src/main/java/mage/client/components/MageUI.java @@ -3,6 +3,7 @@ package mage.client.components; import java.awt.Component; import java.util.EnumMap; import java.util.Map; +import java.util.concurrent.TimeUnit; import javax.swing.JButton; public class MageUI { @@ -92,9 +93,9 @@ public class MageUI { public void doClick(MageComponents name, int waitBeforeClick) throws InterruptedException { final JButton j = getButton(name); - Thread.sleep(waitBeforeClick); + TimeUnit.MILLISECONDS.sleep(waitBeforeClick); while (!j.isEnabled()) { - Thread.sleep(10); + TimeUnit.MILLISECONDS.sleep(10); } Thread t = new Thread(() -> j.doClick()); t.start(); diff --git a/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java b/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java index c193da98e34..43810b3e3e9 100644 --- a/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java +++ b/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java @@ -1,7 +1,7 @@ package mage.client.components.tray; import java.awt.*; - +import java.util.concurrent.TimeUnit; import mage.client.MageFrame; import org.apache.log4j.Logger; import org.mage.plugins.card.utils.impl.ImageManagerImpl; @@ -21,7 +21,6 @@ public enum MageTray { private int state = 0; - public void install() { if (!SystemTray.isSupported()) { log.warn("SystemTray is not supported"); @@ -97,7 +96,7 @@ public enum MageTray { int i = 0; while (state != 3) { trayIcon.setImage(i == 0 ? mainImage : flashedImage); - Thread.sleep(600); + TimeUnit.MILLISECONDS.sleep(600); i = i == 0 ? 1 : 0; } trayIcon.setImage(mainImage); diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPane.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPane.java index dc522a686b5..7d547a41bcd 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPane.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPane.java @@ -53,7 +53,6 @@ public class DeckEditorPane extends MagePane { * Creates new form TablesPane */ public DeckEditorPane() { - this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); boolean initialized = false; if (Plugins.instance.isThemePluginLoaded()) { Map uiMap = new HashMap<>(); @@ -105,8 +104,8 @@ public class DeckEditorPane extends MagePane { deckEditorPanel1 = new mage.client.deckeditor.DeckEditorPanel(); - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(deckEditorPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 885, Short.MAX_VALUE) @@ -115,14 +114,12 @@ public class DeckEditorPane extends MagePane { layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(deckEditorPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 626, Short.MAX_VALUE) ); - - pack(); }// //GEN-END:initComponents private void initComponents(Component container) { - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(container, javax.swing.GroupLayout.DEFAULT_SIZE, 885, Short.MAX_VALUE) @@ -132,7 +129,7 @@ public class DeckEditorPane extends MagePane { .addComponent(container, javax.swing.GroupLayout.DEFAULT_SIZE, 626, Short.MAX_VALUE) ); - pack(); + } public DeckEditorPanel getPanel() { diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java index 32afd8a7bfc..6ac79cc17b7 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java @@ -44,7 +44,6 @@ import java.util.concurrent.TimeUnit; import javax.swing.*; import javax.swing.Timer; import javax.swing.filechooser.FileFilter; - import mage.cards.Card; import mage.cards.Sets; import mage.cards.decks.Deck; @@ -58,8 +57,8 @@ import mage.client.SessionHandler; import mage.client.cards.BigCard; import mage.client.cards.ICardGrid; import mage.client.constants.Constants.DeckEditorMode; -import mage.client.deck.generator.DeckGenerator.DeckGeneratorException; import mage.client.deck.generator.DeckGenerator; +import mage.client.deck.generator.DeckGenerator.DeckGeneratorException; import mage.client.dialog.AddLandDialog; import mage.client.dialog.PreferencesDialog; import mage.client.plugins.impl.Plugins; @@ -189,7 +188,7 @@ public class DeckEditorPanel extends javax.swing.JPanel { case LIMITED_BUILDING: this.btnAddLand.setVisible(true); this.txtTimeRemaining.setVisible(true); - // Fall through to sideboarding + // Fall through to sideboarding case SIDEBOARDING: this.btnSubmit.setVisible(true); this.btnSubmitTimer.setVisible(true); @@ -711,84 +710,84 @@ public class DeckEditorPanel extends javax.swing.JPanel { jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup() - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) /*.addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE))*/ - .addGroup(jPanel1Layout.createSequentialGroup() - .addGap(6, 6, 6) - .addComponent(lblDeckName) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtDeckName, javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE)) - .addComponent(cardInfoPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGroup(jPanel1Layout.createSequentialGroup() - .addContainerGap() - .addComponent(btnSave) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnLoad) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnNew) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnExit)) - .addGroup(jPanel1Layout.createSequentialGroup() - .addContainerGap() - .addComponent(btnImport) - .addContainerGap() - .addComponent(btnGenDeck) - .addContainerGap() - .addComponent(btnAddLand) - .addContainerGap() - .addComponent(btnSubmit) - .addContainerGap() - .addComponent(btnSubmitTimer)) - .addGroup(jPanel1Layout.createSequentialGroup() - .addContainerGap() - .addComponent(txtTimeRemaining)) - ) - .addContainerGap())); + .addGroup(jPanel1Layout.createSequentialGroup() + .addGap(6, 6, 6) + .addComponent(lblDeckName) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(txtDeckName, javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE)) + .addComponent(cardInfoPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .addComponent(btnSave) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnLoad) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnNew) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnExit)) + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .addComponent(btnImport) + .addContainerGap() + .addComponent(btnGenDeck) + .addContainerGap() + .addComponent(btnAddLand) + .addContainerGap() + .addComponent(btnSubmit) + .addContainerGap() + .addComponent(btnSubmitTimer)) + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .addComponent(txtTimeRemaining)) + ) + .addContainerGap())); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup() - .addContainerGap() - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(txtDeckName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblDeckName)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnSave) - .addComponent(btnLoad) - .addComponent(btnNew) - .addComponent(btnExit)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnImport) - .addComponent(btnGenDeck) - .addComponent(btnAddLand) - .addComponent(btnSubmit) - .addComponent(btnSubmitTimer)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(txtTimeRemaining)) - //.addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, isShowCardInfo ? 30 : 159, Short.MAX_VALUE) - .addComponent(cardInfoPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 104, Short.MAX_VALUE) - .addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))); + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtDeckName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblDeckName)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(btnSave) + .addComponent(btnLoad) + .addComponent(btnNew) + .addComponent(btnExit)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(btnImport) + .addComponent(btnGenDeck) + .addComponent(btnAddLand) + .addComponent(btnSubmit) + .addComponent(btnSubmitTimer)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtTimeRemaining)) + //.addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, isShowCardInfo ? 30 : 159, Short.MAX_VALUE) + .addComponent(cardInfoPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 104, Short.MAX_VALUE) + .addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 261, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, 0) - .addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 604, Short.MAX_VALUE))); + .addGroup(layout.createSequentialGroup() + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 261, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 0, 0) + .addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 604, Short.MAX_VALUE))); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jSplitPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 615, Short.MAX_VALUE)); + .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jSplitPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 615, Short.MAX_VALUE)); } /** @@ -838,7 +837,6 @@ public class DeckEditorPanel extends javax.swing.JPanel { }); } - private void btnLoadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLoadActionPerformed //fcSelectDeck.setCurrentDirectory(new File()); String lastFolder = MageFrame.getPreferences().get("lastDeckFolder", ""); @@ -850,10 +848,11 @@ public class DeckEditorPanel extends javax.swing.JPanel { File file = fcSelectDeck.getSelectedFile(); { /** - * Work around a JFileChooser bug on Windows 7-10 with JRT 7+ - * In the case where the user selects the exact same file as was previously - * selected without touching anything else in the dialog, getSelectedFile() - * will erroneously return null due to some combination of our settings. + * Work around a JFileChooser bug on Windows 7-10 with JRT 7+ In + * the case where the user selects the exact same file as was + * previously selected without touching anything else in the + * dialog, getSelectedFile() will erroneously return null due to + * some combination of our settings. * * We manually sub in the last selected file in this case. */ @@ -893,10 +892,11 @@ public class DeckEditorPanel extends javax.swing.JPanel { File file = fcSelectDeck.getSelectedFile(); { /** - * Work around a JFileChooser bug on Windows 7-10 with JRT 7+ - * In the case where the user selects the exact same file as was previously - * selected without touching anything else in the dialog, getSelectedFile() - * will erroneously return null due to some combination of our settings. + * Work around a JFileChooser bug on Windows 7-10 with JRT 7+ In + * the case where the user selects the exact same file as was + * previously selected without touching anything else in the + * dialog, getSelectedFile() will erroneously return null due to + * some combination of our settings. * * We manually sub in the last selected file in this case. */ @@ -1123,7 +1123,7 @@ class UpdateDeckTask extends SwingWorker { protected Void doInBackground() throws Exception { while (!isCancelled()) { SessionHandler.updateDeck(tableId, deck.getDeckCardLists()); - Thread.sleep(5000); + TimeUnit.SECONDS.sleep(5); } return null; } diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java index 51acb6e70e8..34d5427c7a5 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java @@ -66,8 +66,8 @@ public class CollectionViewerPane extends MagePane { private void initComponents(Component container) { Component component = container != null ? container : new CollectionViewerPanel(); - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(component, javax.swing.GroupLayout.DEFAULT_SIZE, 885, Short.MAX_VALUE) @@ -76,8 +76,6 @@ public class CollectionViewerPane extends MagePane { layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(component, javax.swing.GroupLayout.DEFAULT_SIZE, 626, Short.MAX_VALUE) ); - - pack(); } @Override diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/table/MageCardComparator.java b/Mage.Client/src/main/java/mage/client/deckeditor/table/MageCardComparator.java index 71f67900d9a..0ae3255a20b 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/table/MageCardComparator.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/table/MageCardComparator.java @@ -26,10 +26,11 @@ */ package mage.client.deckeditor.table; -import java.util.Comparator; import mage.cards.MageCard; import mage.view.CardView; +import java.util.Comparator; + /** * {@link MageCard} comparator. Used to sort cards in Deck Editor Table View * pane. @@ -73,22 +74,22 @@ public class MageCardComparator implements Comparator { break; // Color case 3: - aCom = CardHelper.getColor(a); - bCom = CardHelper.getColor(b); + aCom = a.getColorText(); + bCom = a.getColorText(); break; // Type case 4: - aCom = CardHelper.getType(a); - bCom = CardHelper.getType(b); + aCom = a.getTypeText(); + bCom = b.getTypeText(); break; // Stats, attack and defense case 5: aCom = (float) -1; bCom = (float) -1; - if (CardHelper.isCreature(a)) { + if (a.isCreature()) { aCom = new Float(a.getPower() + '.' + (a.getToughness().startsWith("-") ? "0" : a.getToughness())); } - if (CardHelper.isCreature(b)) { + if (b.isCreature()) { bCom = new Float(b.getPower() + '.' + (b.getToughness().startsWith("-") ? "0" : b.getToughness())); } break; diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java b/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java index 31ea45eb342..e7d73e423b1 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java @@ -27,24 +27,6 @@ */ package mage.client.deckeditor.table; -import java.awt.Dimension; -import java.awt.Image; -import java.awt.event.KeyEvent; -import java.awt.event.KeyListener; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.awt.image.BufferedImage; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.UUID; -import javax.swing.JTable; -import javax.swing.table.AbstractTableModel; -import javax.swing.table.TableColumnModel; import mage.client.MageFrame; import mage.client.cards.BigCard; import mage.client.cards.CardEventSource; @@ -55,7 +37,6 @@ import mage.client.util.Config; import mage.client.util.Event; import mage.client.util.Listener; import mage.client.util.gui.GuiDisplayUtil; -import mage.constants.CardType; import mage.constants.EnlargeMode; import mage.view.CardView; import mage.view.CardsView; @@ -64,6 +45,16 @@ import org.jdesktop.swingx.JXPanel; import org.mage.card.arcane.ManaSymbols; import org.mage.card.arcane.UI; +import javax.swing.*; +import javax.swing.table.AbstractTableModel; +import javax.swing.table.TableColumnModel; +import java.awt.*; +import java.awt.event.*; +import java.awt.image.BufferedImage; +import java.util.*; +import java.util.List; +import java.util.Map.Entry; + /** * Table Model for card list. * @@ -133,22 +124,22 @@ public class TableModel extends AbstractTableModel implements ICardGrid { addCard(card, bigCard, gameId); } if (updateCountsCallback != null) { - if (card.getCardTypes().contains(CardType.LAND)) { + if (card.isLand()) { landCount++; } - if (card.getCardTypes().contains(CardType.CREATURE)) { + if (card.isCreature()) { creatureCount++; } - if (card.getCardTypes().contains(CardType.INSTANT)) { + if (card.isInstant()) { instantCount++; } - if (card.getCardTypes().contains(CardType.SORCERY)) { + if (card.isSorcery()) { sorceryCount++; } - if (card.getCardTypes().contains(CardType.ENCHANTMENT)) { + if (card.isEnchantment()) { enchantmentCount++; } - if (card.getCardTypes().contains(CardType.ARTIFACT)) { + if (card.isArtifact()) { artifactCount++; } } @@ -260,11 +251,11 @@ public class TableModel extends AbstractTableModel implements ICardGrid { castingCost = ManaSymbols.replaceSymbolsWithHTML(castingCost, ManaSymbols.Type.TABLE); return "" + castingCost + ""; case 3: - return CardHelper.getColor(c); + return c.getColorText(); case 4: - return CardHelper.getType(c); + return c.getTypeText(); case 5: - return CardHelper.isCreature(c) ? c.getPower() + '/' + return c.isCreature() ? c.getPower() + '/' + c.getToughness() : "-"; case 6: return c.getRarity().toString(); diff --git a/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java index 91324908844..b9ac1834ec1 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java @@ -45,6 +45,7 @@ import java.io.InputStreamReader; import java.io.Writer; import java.net.InetSocketAddress; import java.net.Proxy; +import java.net.SocketException; import java.net.SocketTimeoutException; import java.net.URL; import java.net.UnknownHostException; @@ -391,7 +392,12 @@ public class ConnectDialog extends MageDialog { connection.setUsername(this.txtUserName.getText().trim()); connection.setPassword(this.txtPassword.getText().trim()); connection.setForceDBComparison(this.chkForceUpdateDB.isSelected()); - connection.setUserIdStr(System.getProperty("user.name") + ':' + MagePreferences.getUserNames()); + String allMAC = ""; + try { + allMAC = connection.getMAC(); + } catch (SocketException ex) { + } + connection.setUserIdStr(System.getProperty("user.name") + ":" + System.getProperty("os.name") + ":" + MagePreferences.getUserNames() + ":" + allMAC); MageFrame.getPreferences().put(KEY_CONNECT_FLAG, ((CountryItemEditor) cbFlag.getEditor()).getImageItem()); PreferencesDialog.setProxyInformation(connection); @@ -429,7 +435,7 @@ public class ConnectDialog extends MageDialog { if (result) { lblStatus.setText(""); connected(); - MageFrame.getInstance().showGames(false); + MageFrame.getInstance().prepareAndShowTablesPane(); } else { lblStatus.setText("Could not connect"); } diff --git a/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java b/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java index 50d74717f36..52c76236173 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java @@ -27,14 +27,16 @@ */ package mage.client.dialog; -import java.util.UUID; -import javax.swing.JOptionPane; import mage.cards.decks.importer.DeckImporterUtil; import mage.client.MageFrame; import mage.client.SessionHandler; +import mage.players.PlayerType; import mage.remote.Session; import org.apache.log4j.Logger; +import javax.swing.*; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -143,9 +145,9 @@ public class JoinTableDialog extends MageDialog { try { PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_PASSWORD_JOIN, txtPassword.getText()); if (isTournament) { - joined = session.joinTournamentTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), "Human", 1, DeckImporterUtil.importDeck(this.newPlayerPanel.getDeckFile()), this.txtPassword.getText()); + joined = session.joinTournamentTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), PlayerType.HUMAN, 1, DeckImporterUtil.importDeck(this.newPlayerPanel.getDeckFile()), this.txtPassword.getText()); } else { - joined = session.joinTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), "Human", 1, DeckImporterUtil.importDeck(this.newPlayerPanel.getDeckFile()), this.txtPassword.getText()); + joined = session.joinTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), PlayerType.HUMAN, 1, DeckImporterUtil.importDeck(this.newPlayerPanel.getDeckFile()), this.txtPassword.getText()); } } catch (Exception ex) { diff --git a/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.form b/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.form index 6f93568ea09..a5a176504e9 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.form +++ b/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.form @@ -52,6 +52,10 @@ + + + + @@ -126,6 +130,8 @@ + + @@ -227,6 +233,10 @@ + + + + diff --git a/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java b/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java index c94ebc18085..f82aae965a8 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java @@ -27,14 +27,6 @@ */ package mage.client.dialog; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.UUID; -import javax.swing.*; - import mage.cards.decks.importer.DeckImporterUtil; import mage.client.MageFrame; import mage.client.SessionHandler; @@ -48,12 +40,19 @@ import mage.constants.MultiplayerAttackOption; import mage.constants.RangeOfInfluence; import mage.constants.SkillLevel; import mage.game.match.MatchOptions; +import mage.players.PlayerType; import mage.view.GameTypeView; import mage.view.TableView; import org.apache.log4j.Logger; +import javax.swing.*; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** - * * @author BetaSteward_at_googlemail.com */ public class NewTableDialog extends MageDialog { @@ -65,7 +64,7 @@ public class NewTableDialog extends MageDialog { private UUID roomId; private String lastSessionId; private final List players = new ArrayList<>(); - private final List prefPlayerTypes = new ArrayList<>(); + private final List prefPlayerTypes = new ArrayList<>(); private static final String LIMITED = "Limited"; @@ -124,6 +123,8 @@ public class NewTableDialog extends MageDialog { pnlOtherPlayers = new javax.swing.JPanel(); jSeparator1 = new javax.swing.JSeparator(); btnOK = new javax.swing.JButton(); + btnPreviousConfiguration1 = new javax.swing.JButton(); + btnPreviousConfiguration2 = new javax.swing.JButton(); btnCancel = new javax.swing.JButton(); lblQuitRatio = new javax.swing.JLabel(); lblEdhPowerLevel = new javax.swing.JLabel(); @@ -193,6 +194,13 @@ public class NewTableDialog extends MageDialog { btnOK.setText("OK"); btnOK.addActionListener(evt -> btnOKActionPerformed(evt)); + btnPreviousConfiguration1.setText("M1"); + btnPreviousConfiguration1.setToolTipText("Load saved Match configuration #1"); + btnPreviousConfiguration1.addActionListener(evt -> btnPreviousConfigurationActionPerformed(evt, 1)); + btnPreviousConfiguration2.setText("M2"); + btnPreviousConfiguration2.setToolTipText("Load saved Match configuration #2"); + btnPreviousConfiguration2.addActionListener(evt -> btnPreviousConfigurationActionPerformed(evt, 2)); + btnCancel.setText("Cancel"); btnCancel.addActionListener(evt -> btnCancelActionPerformed(evt)); @@ -205,157 +213,163 @@ public class NewTableDialog extends MageDialog { javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lblName) + .addComponent(lbDeckType) + .addComponent(lblGameType)) + .addGap(6, 6, 6) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(layout.createSequentialGroup() + .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, 270, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(chkRollbackTurnsAllowed) + .addGap(13, 13, 13) + .addComponent(lblFreeMulligans) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(lbTimeLimit) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(lblPassword) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnPreviousConfiguration1, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnPreviousConfiguration2, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, 332, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(chkRated) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(lblQuitRatio) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblEdhPowerLevel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(spnEdhPowerLevel, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addComponent(btnOK) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnCancel)) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lblNumPlayers) + .addComponent(spnNumPlayers, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lblRange) + .addComponent(cbRange, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(lblAttack) + .addGap(116, 116, 116) + .addComponent(lblSkillLevel)) + .addGroup(layout.createSequentialGroup() + .addComponent(cbAttackOption, javax.swing.GroupLayout.PREFERRED_SIZE, 177, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lblNumWins) + .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addComponent(jSeparator2) + .addComponent(player1Panel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.LEADING)) + .addContainerGap()) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblName) - .addComponent(lbDeckType) - .addComponent(lblGameType)) - .addGap(6, 6, 6) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addGroup(layout.createSequentialGroup() - .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, 270, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18) - .addComponent(chkRollbackTurnsAllowed) - .addGap(13, 13, 13) - .addComponent(lblFreeMulligans) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(lbTimeLimit) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(lblPassword) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, 332, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(chkRated) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(lblQuitRatio) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblEdhPowerLevel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnEdhPowerLevel, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addComponent(btnOK) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnCancel)) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblNumPlayers) - .addComponent(spnNumPlayers, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblRange) - .addComponent(cbRange, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(lblAttack) - .addGap(116, 116, 116) - .addComponent(lblSkillLevel)) - .addGroup(layout.createSequentialGroup() - .addComponent(cbAttackOption, javax.swing.GroupLayout.PREFERRED_SIZE, 177, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblNumWins) - .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addComponent(jSeparator2) - .addComponent(player1Panel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.LEADING)) - .addContainerGap()) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(jSeparator3, javax.swing.GroupLayout.DEFAULT_SIZE, 660, Short.MAX_VALUE) - .addContainerGap())) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(jSeparator3, javax.swing.GroupLayout.DEFAULT_SIZE, 660, Short.MAX_VALUE) + .addContainerGap())) ); layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(4, 4, 4) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblName) - .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblPassword) - .addComponent(lbTimeLimit) - .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lbDeckType) - .addComponent(lblQuitRatio) - .addComponent(chkRated) - .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblEdhPowerLevel) - .addComponent(chkRated) - .addComponent(spnEdhPowerLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblFreeMulligans) - .addComponent(chkRollbackTurnsAllowed)) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblGameType))) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(6, 6, 6) - .addComponent(lblNumPlayers) - .addGap(0, 0, 0) - .addComponent(spnNumPlayers, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(4, 4, 4) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblName) + .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnPreviousConfiguration1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnPreviousConfiguration2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblPassword) + .addComponent(lbTimeLimit) + .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lbDeckType) + .addComponent(lblQuitRatio) + .addComponent(chkRated) + .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblEdhPowerLevel) + .addComponent(chkRated) + .addComponent(spnEdhPowerLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblFreeMulligans) + .addComponent(chkRollbackTurnsAllowed)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblGameType))) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(6, 6, 6) + .addComponent(lblNumPlayers) + .addGap(0, 0, 0) + .addComponent(spnNumPlayers, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lblSkillLevel) + .addComponent(lblNumWins) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblRange) + .addComponent(lblAttack))) + .addGap(0, 0, 0) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(cbRange, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(cbAttackOption, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jLabel1) + .addGap(0, 0, 0) + .addComponent(player1Panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(16, 16, 16) + .addComponent(jLabel2) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, 105, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 7, Short.MAX_VALUE) + .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(btnCancel) + .addComponent(btnOK)) + .addGap(0, 0, 0)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblSkillLevel) - .addComponent(lblNumWins) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblRange) - .addComponent(lblAttack))) - .addGap(0, 0, 0) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cbRange, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(cbAttackOption, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jLabel1) - .addGap(0, 0, 0) - .addComponent(player1Panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(16, 16, 16) - .addComponent(jLabel2) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, 105, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 7, Short.MAX_VALUE) - .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnCancel) - .addComponent(btnOK)) - .addGap(0, 0, 0)) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(201, 201, 201) - .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(167, Short.MAX_VALUE))) + .addGroup(layout.createSequentialGroup() + .addGap(201, 201, 201) + .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(167, Short.MAX_VALUE))) ); pack(); @@ -367,10 +381,15 @@ public class NewTableDialog extends MageDialog { this.hideDialog(); }//GEN-LAST:event_btnCancelActionPerformed + private void btnPreviousConfigurationActionPerformed(java.awt.event.ActionEvent evt, int i) {//GEN-FIRST:event_btnPreviousConfigurationActionPerformed + currentSettingVersion = i; + setGameSettingsFromPrefs(currentSettingVersion); + }//GEN-LAST:event_btnPreviousConfigurationActionPerformed + private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOKActionPerformed GameTypeView gameType = (GameTypeView) cbGameType.getSelectedItem(); MatchOptions options = new MatchOptions(this.txtName.getText(), gameType.getName(), false, 2); - options.getPlayerTypes().add("Human"); + options.getPlayerTypes().add(PlayerType.HUMAN); for (TablePlayerPanel player : players) { options.getPlayerTypes().add(player.getPlayerType()); } @@ -404,11 +423,11 @@ public class NewTableDialog extends MageDialog { roomId, table.getTableId(), this.player1Panel.getPlayerName(), - "Human", 1, + PlayerType.HUMAN, 1, DeckImporterUtil.importDeck(this.player1Panel.getDeckFile()), this.txtPassword.getText())) { for (TablePlayerPanel player : players) { - if (!player.getPlayerType().equals("Human")) { + if (player.getPlayerType() != PlayerType.HUMAN) { if (!player.joinTable(roomId, table.getTableId())) { // error message must be send by the server SessionHandler.removeTable(roomId, table.getTableId()); @@ -509,7 +528,7 @@ public class NewTableDialog extends MageDialog { if (numPlayers > players.size()) { while (players.size() != numPlayers) { TablePlayerPanel playerPanel = new TablePlayerPanel(); - String playerType = "Human"; + PlayerType playerType = PlayerType.HUMAN; if (prefPlayerTypes.size() >= players.size() && !players.isEmpty()) { playerType = prefPlayerTypes.get(players.size() - 1); } @@ -562,11 +581,12 @@ public class NewTableDialog extends MageDialog { for (TablePlayerPanel tablePlayerPanel : players) { tablePlayerPanel.init(i++, tablePlayerPanel.getPlayerType()); } - setGameSettingsFromPrefs(); this.setModal(true); setGameOptions(); this.setLocation(150, 100); } + currentSettingVersion = 0; + setGameSettingsFromPrefs(currentSettingVersion); this.setVisible(true); } @@ -591,47 +611,61 @@ public class NewTableDialog extends MageDialog { /** * set the table settings from java prefs */ - private void setGameSettingsFromPrefs() { - txtName.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NAME, "Game")); - txtPassword.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_PASSWORD, "")); + int currentSettingVersion = 0; + private void setGameSettingsFromPrefs(int version) { + currentSettingVersion = version; + String versionStr = ""; + if (currentSettingVersion == 1) { + versionStr = "1"; + btnPreviousConfiguration1.requestFocus(); + } else if (currentSettingVersion == 2) { + versionStr = "2"; + btnPreviousConfiguration2.requestFocus(); + } else { + btnPreviousConfiguration2.getParent().requestFocus(); + } + txtName.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NAME + versionStr, "Game")); + txtPassword.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_PASSWORD + versionStr, "")); - String playerTypes = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_PLAYER_TYPES, "Human"); + String playerTypes = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_PLAYER_TYPES + versionStr, "Human"); prefPlayerTypes.clear(); - prefPlayerTypes.addAll(Arrays.asList(playerTypes.split(","))); - this.spnNumPlayers.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_PLAYERS, "2"))); + for (String pType : playerTypes.split(",")) { + prefPlayerTypes.add(PlayerType.getByDescription(pType)); + } + this.spnNumPlayers.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_PLAYERS + versionStr, "2"))); - String gameTypeName = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_GAME_TYPE, "Two Player Duel"); + String gameTypeName = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_GAME_TYPE + versionStr, "Two Player Duel"); for (GameTypeView gtv : SessionHandler.getGameTypes()) { if (gtv.getName().equals(gameTypeName)) { cbGameType.setSelectedItem(gtv); break; } } - int timeLimit = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_TIME_LIMIT, "1500")); + int timeLimit = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_TIME_LIMIT + versionStr, "1500")); for (MatchTimeLimit mtl : MatchTimeLimit.values()) { if (mtl.getTimeLimit() == timeLimit) { this.cbTimeLimit.setSelectedItem(mtl); break; } } - cbDeckType.setSelectedItem(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_DECK_TYPE, "Limited")); - String deckFile = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_DECK_FILE, null); + cbDeckType.setSelectedItem(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_DECK_TYPE + versionStr, "Limited")); + String deckFile = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_DECK_FILE + versionStr, null); if (deckFile != null) { this.player1Panel.setDeckFile(deckFile); } - this.spnNumWins.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_WINS, "2"))); - this.chkRollbackTurnsAllowed.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_ROLLBACK_TURNS_ALLOWED, "Yes").equals("Yes")); - this.chkRated.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_RATED, "No").equals("Yes")); - this.spnFreeMulligans.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_FREE_MULLIGANS, "0"))); + this.spnNumWins.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_WINS + versionStr, "2"))); + this.chkRollbackTurnsAllowed.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_ROLLBACK_TURNS_ALLOWED + versionStr, "Yes").equals("Yes")); + this.chkRated.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_RATED + versionStr, "No").equals("Yes")); + this.spnFreeMulligans.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_FREE_MULLIGANS + versionStr, "0"))); - int range = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_RANGE, "1")); + int range = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_RANGE + versionStr, "1")); for (RangeOfInfluence roi : RangeOfInfluence.values()) { if (roi.getRange() == range) { this.cbRange.setSelectedItem(roi); break; } } - String attackOption = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_ATTACK_OPTION, "Attack Multiple Players"); + String attackOption = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_ATTACK_OPTION + versionStr, "Attack Multiple Players"); for (MultiplayerAttackOption mao : MultiplayerAttackOption.values()) { if (mao.toString().equals(attackOption)) { this.cbAttackOption.setSelectedItem(mao); @@ -658,21 +692,27 @@ public class NewTableDialog extends MageDialog { * @param deckFile */ private void saveGameSettingsToPrefs(MatchOptions options, String deckFile) { - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NAME, options.getName()); - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_PASSWORD, options.getPassword()); - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_DECK_TYPE, options.getDeckType()); - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_TIME_LIMIT, Integer.toString(options.getPriorityTime())); - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_GAME_TYPE, options.getGameType()); - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_WINS, Integer.toString(options.getWinsNeeded())); - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_ROLLBACK_TURNS_ALLOWED, options.isRollbackTurnsAllowed() ? "Yes" : "No"); - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_RATED, options.isRated() ? "Yes" : "No"); - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_FREE_MULLIGANS, Integer.toString(options.getFreeMulligans())); - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_DECK_FILE, deckFile); - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_PLAYERS, spnNumPlayers.getValue().toString()); - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_RANGE, Integer.toString(options.getRange().getRange())); - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_ATTACK_OPTION, options.getAttackOption().toString()); - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_SKILL_LEVEL, options.getSkillLevel().toString()); - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_QUIT_RATIO, Integer.toString(options.getQuitRatio())); + String versionStr = ""; + if (currentSettingVersion == 1) { + versionStr = "1"; + } else if (currentSettingVersion == 2) { + versionStr = "2"; + } + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NAME + versionStr, options.getName()); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_PASSWORD + versionStr, options.getPassword()); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_DECK_TYPE + versionStr, options.getDeckType()); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_TIME_LIMIT + versionStr, Integer.toString(options.getPriorityTime())); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_GAME_TYPE + versionStr, options.getGameType()); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_WINS + versionStr, Integer.toString(options.getWinsNeeded())); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_ROLLBACK_TURNS_ALLOWED + versionStr, options.isRollbackTurnsAllowed() ? "Yes" : "No"); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_RATED + versionStr, options.isRated() ? "Yes" : "No"); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_FREE_MULLIGANS + versionStr, Integer.toString(options.getFreeMulligans())); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_DECK_FILE + versionStr, deckFile); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_PLAYERS + versionStr, spnNumPlayers.getValue().toString()); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_RANGE + versionStr, Integer.toString(options.getRange().getRange())); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_ATTACK_OPTION + versionStr, options.getAttackOption().toString()); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_SKILL_LEVEL + versionStr, options.getSkillLevel().toString()); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_QUIT_RATIO + versionStr, Integer.toString(options.getQuitRatio())); StringBuilder playerTypesString = new StringBuilder(); for (Object player : players) { if (playerTypesString.length() > 0) { @@ -681,12 +721,14 @@ public class NewTableDialog extends MageDialog { TablePlayerPanel tpp = (TablePlayerPanel) player; playerTypesString.append(tpp.getPlayerType()); } - PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_PLAYER_TYPES, playerTypesString.toString()); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_PLAYER_TYPES + versionStr, playerTypesString.toString()); } - + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnCancel; private javax.swing.JButton btnOK; + private javax.swing.JButton btnPreviousConfiguration1; + private javax.swing.JButton btnPreviousConfiguration2; private javax.swing.JComboBox cbAttackOption; private javax.swing.JComboBox cbDeckType; private javax.swing.JComboBox cbGameType; @@ -723,5 +765,4 @@ public class NewTableDialog extends MageDialog { private javax.swing.JTextField txtName; private javax.swing.JTextField txtPassword; // End of variables declaration//GEN-END:variables - } diff --git a/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.form b/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.form index 9268a0ec612..26c324e4cad 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.form +++ b/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.form @@ -64,6 +64,10 @@ + + + + @@ -97,7 +101,7 @@ - + @@ -210,6 +214,8 @@ + + @@ -511,7 +517,23 @@ - + + + + + + + + + + + + + + + + + diff --git a/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java b/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java index dd6caba68c3..fec1372e907 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java @@ -26,28 +26,18 @@ * or implied, of BetaSteward_at_googlemail.com. */ -/* + /* * NewTournamentDialog.java * * Created on Jan 28, 2011, 12:15:56 PM */ package mage.client.dialog; -import java.awt.Component; +import java.awt.*; import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; +import java.util.*; import java.util.List; -import java.util.UUID; -import javax.swing.ComboBoxModel; -import javax.swing.DefaultComboBoxModel; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JFileChooser; -import javax.swing.JOptionPane; -import javax.swing.JTextArea; -import javax.swing.SpinnerNumberModel; +import javax.swing.*; import javax.swing.filechooser.FileFilter; import mage.cards.decks.Deck; import mage.cards.decks.importer.DeckImporterUtil; @@ -65,13 +55,13 @@ import mage.game.draft.DraftOptions; import mage.game.draft.DraftOptions.TimingOption; import mage.game.tournament.LimitedOptions; import mage.game.tournament.TournamentOptions; +import mage.players.PlayerType; import mage.view.GameTypeView; import mage.view.TableView; import mage.view.TournamentTypeView; import org.apache.log4j.Logger; /** - * * @author BetaSteward_at_googlemail.com */ public class NewTournamentDialog extends MageDialog { @@ -93,7 +83,9 @@ public class NewTournamentDialog extends MageDialog { private String cubeFromDeckFilename = ""; private boolean automaticChange = false; - /** Creates new form NewTournamentDialog */ + /** + * Creates new form NewTournamentDialog + */ public NewTournamentDialog() { initComponents(); lastSessionId = ""; @@ -121,22 +113,23 @@ public class NewTournamentDialog extends MageDialog { cbDraftCube.setModel(new DefaultComboBoxModel(SessionHandler.getDraftCubes())); cbDraftTiming.setModel(new DefaultComboBoxModel(DraftOptions.TimingOption.values())); // update player types - int i=2; - for (TournamentPlayerPanel tournamentPlayerPanel :players) { + int i = 2; + for (TournamentPlayerPanel tournamentPlayerPanel : players) { tournamentPlayerPanel.init(i++); } cbAllowSpectators.setSelected(true); - setTournamentSettingsFromPrefs(); this.setModal(true); this.setLocation(150, 100); } + currentSettingVersion = 0; + setTournamentSettingsFromPrefs(currentSettingVersion); this.setVisible(true); } - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents @@ -183,6 +176,8 @@ public class NewTournamentDialog extends MageDialog { player1Panel = new mage.client.table.NewPlayerPanel(); pnlPlayers = new javax.swing.JPanel(); pnlOtherPlayers = new javax.swing.JPanel(); + btnSavedConfiguration1 = new javax.swing.JButton(); + btnSavedConfiguration2 = new javax.swing.JButton(); btnOk = new javax.swing.JButton(); btnCancel = new javax.swing.JButton(); pnlRandomPacks = new javax.swing.JPanel(); @@ -193,7 +188,7 @@ public class NewTournamentDialog extends MageDialog { lblName.setText("Name:"); - lbTimeLimit.setText("Time Limit:"); + lbTimeLimit.setText("Time:"); lbTimeLimit.setToolTipText("The time a player has for the whole match. If a player runs out of time during a game, he loses the complete match. "); org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, cbTimeLimit, org.jdesktop.beansbinding.ObjectProperty.create(), lbTimeLimit, org.jdesktop.beansbinding.BeanProperty.create("labelFor")); @@ -201,7 +196,7 @@ public class NewTournamentDialog extends MageDialog { cbTimeLimit.setToolTipText("The time a player has for the whole match. If a player runs out of time during a game, he loses the complete match. "); - lbSkillLevel.setText("Skill Level:"); + lbSkillLevel.setText("Skill:"); lbSkillLevel.setToolTipText("The time a player has for the whole match. If a player runs out of time during a game, he loses the complete match. "); cbSkillLevel.setToolTipText("This option can be used to make it easier to find matches
\nwith opponents of the appropriate skill level."); @@ -213,7 +208,7 @@ public class NewTournamentDialog extends MageDialog { lblTournamentType.setText("Tournament Type:"); - cbTournamentType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); + cbTournamentType.setModel(new javax.swing.DefaultComboBoxModel(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); cbTournamentType.addActionListener(evt -> cbTournamentTypeActionPerformed(evt)); lbDeckType.setText("Deck Type:"); @@ -235,7 +230,7 @@ public class NewTournamentDialog extends MageDialog { lblDraftCube.setText("Draft Cube:"); - cbDraftCube.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); + cbDraftCube.setModel(new javax.swing.DefaultComboBoxModel(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); cbDraftCube.addActionListener(evt -> cbDraftCubeActionPerformed(evt)); lblNumRounds.setText("Number of Swiss Rounds:"); @@ -260,27 +255,27 @@ public class NewTournamentDialog extends MageDialog { jLabel6.setText("Timing:"); - cbDraftTiming.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); + cbDraftTiming.setModel(new javax.swing.DefaultComboBoxModel(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); cbDraftTiming.addActionListener(evt -> cbDraftTimingActionPerformed(evt)); javax.swing.GroupLayout pnlDraftOptionsLayout = new javax.swing.GroupLayout(pnlDraftOptions); pnlDraftOptions.setLayout(pnlDraftOptionsLayout); pnlDraftOptionsLayout.setHorizontalGroup( - pnlDraftOptionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(pnlDraftOptionsLayout.createSequentialGroup() - .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(cbDraftTiming, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(19, Short.MAX_VALUE)) + pnlDraftOptionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlDraftOptionsLayout.createSequentialGroup() + .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(cbDraftTiming, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(19, Short.MAX_VALUE)) ); pnlDraftOptionsLayout.setVerticalGroup( - pnlDraftOptionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(pnlDraftOptionsLayout.createSequentialGroup() - .addGap(3, 3, 3) - .addGroup(pnlDraftOptionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(cbDraftTiming, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap()) + pnlDraftOptionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlDraftOptionsLayout.createSequentialGroup() + .addGap(3, 3, 3) + .addGroup(pnlDraftOptionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(cbDraftTiming, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap()) ); cbAllowSpectators.setText("Allow spectators"); @@ -306,14 +301,27 @@ public class NewTournamentDialog extends MageDialog { javax.swing.GroupLayout pnlPlayersLayout = new javax.swing.GroupLayout(pnlPlayers); pnlPlayers.setLayout(pnlPlayersLayout); pnlPlayersLayout.setHorizontalGroup( - pnlPlayersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + pnlPlayersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); pnlPlayersLayout.setVerticalGroup( - pnlPlayersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + pnlPlayersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); + btnSavedConfiguration1.setText("T1"); + btnSavedConfiguration1.setToolTipText("Load saved tournament configuration #1"); + btnSavedConfiguration1.addActionListener(evt -> btnSavedConfigurationActionPerformed(evt, 1)); + btnSavedConfiguration1.setVisible(true); + + btnSavedConfiguration2.setText("T2"); + btnSavedConfiguration2.setToolTipText("Load saved tournament configuration #2"); + btnSavedConfiguration2.addActionListener(evt -> btnSavedConfigurationActionPerformed(evt, 2)); + btnSavedConfiguration2.setVisible(true); + + btnOk.setText("OK"); + btnOk.addActionListener(evt -> btnOkActionPerformed(evt)); + btnOk.setText("OK"); btnOk.addActionListener(evt -> btnOkActionPerformed(evt)); @@ -333,170 +341,176 @@ public class NewTournamentDialog extends MageDialog { javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(pnlPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(pnlPacks, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(lblNbrPlayers) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnNumPlayers, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(lblNbrSeats) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnNumSeats, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(lblPacks) - .addComponent(lblPlayer1)) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(28, 28, 28) - .addComponent(pnlDraftOptions, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(lblNumRounds)) - .addGroup(layout.createSequentialGroup() - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(lblConstructionTime))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(spnConstructTime, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(chkRollbackTurnsAllowed)) - .addGroup(layout.createSequentialGroup() - .addComponent(spnNumRounds, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(cbAllowSpectators)))) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addComponent(btnOk) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnCancel)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(lblDraftCube) - .addComponent(lblTournamentType) - .addComponent(lbDeckType) - .addComponent(lblGameType)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(cbDraftCube, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGroup(layout.createSequentialGroup() - .addGap(28, 28, 28) - .addComponent(lblNumWins) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(lblQuitRatio) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(chkRated)) - .addComponent(cbTournamentType, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addGroup(layout.createSequentialGroup() - .addComponent(lblName) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(lbTimeLimit) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(lbSkillLevel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(lblPassword) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addComponent(lblFreeMulligans) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE))))) - .addComponent(player1Panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(pnlRandomPacks, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addContainerGap()) + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(pnlPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(pnlPacks, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(lblNbrPlayers) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(spnNumPlayers, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(lblNbrSeats) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(spnNumSeats, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(lblPacks) + .addComponent(lblPlayer1)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(28, 28, 28) + .addComponent(pnlDraftOptions, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(lblNumRounds)) + .addGroup(layout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(lblConstructionTime))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(spnConstructTime, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(chkRollbackTurnsAllowed)) + .addGroup(layout.createSequentialGroup() + .addComponent(spnNumRounds, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(cbAllowSpectators)))) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addComponent(btnOk) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnCancel)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(lblDraftCube) + .addComponent(lblTournamentType) + .addComponent(lbDeckType) + .addComponent(lblGameType)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(cbDraftCube, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addGap(28, 28, 28) + .addComponent(lblNumWins) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(lblQuitRatio) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(chkRated)) + .addComponent(cbTournamentType, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGroup(layout.createSequentialGroup() + .addComponent(lblName) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 224, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(lbTimeLimit) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(lbSkillLevel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(lblPassword) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnSavedConfiguration1) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnSavedConfiguration2)) + .addGroup(layout.createSequentialGroup() + .addComponent(lblFreeMulligans) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE))))) + .addComponent(player1Panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(pnlRandomPacks, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap()) ); layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(4, 4, 4) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblName) - .addComponent(lbTimeLimit) - .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblPassword) - .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lbSkillLevel) - .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblFreeMulligans) - .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblNumWins) - .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblQuitRatio) - .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(chkRated)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cbTournamentType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblTournamentType)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cbDraftCube, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblDraftCube)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lbDeckType)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblGameType) - .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(lblPacks) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup(layout.createSequentialGroup() - .addComponent(pnlPacks, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlRandomPacks, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cbAllowSpectators, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(spnNumRounds, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblNumRounds)) - .addComponent(lblNbrPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(spnNumPlayers) - .addComponent(lblNbrSeats, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(spnNumSeats) - .addComponent(pnlDraftOptions, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(lblPlayer1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(spnConstructTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblConstructionTime) - .addComponent(chkRollbackTurnsAllowed))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(player1Panel, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnOk) - .addComponent(btnCancel)) - .addContainerGap()) + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(4, 4, 4) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblName) + .addComponent(lbTimeLimit) + .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblPassword) + .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnSavedConfiguration1) + .addComponent(btnSavedConfiguration2) + .addComponent(lbSkillLevel) + .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblFreeMulligans) + .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblNumWins) + .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblQuitRatio) + .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(chkRated)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(cbTournamentType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblTournamentType)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(cbDraftCube, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblDraftCube)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lbDeckType)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblGameType) + .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(lblPacks) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addComponent(pnlPacks, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(pnlRandomPacks, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(cbAllowSpectators, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(spnNumRounds, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblNumRounds)) + .addComponent(lblNbrPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(spnNumPlayers) + .addComponent(lblNbrSeats, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(spnNumSeats) + .addComponent(pnlDraftOptions, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(lblPlayer1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(spnConstructTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblConstructionTime) + .addComponent(chkRollbackTurnsAllowed))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(player1Panel, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(pnlPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(btnOk) + .addComponent(btnCancel)) + .addContainerGap()) ); bindingGroup.bind(); @@ -508,20 +522,25 @@ public class NewTournamentDialog extends MageDialog { setTournamentOptions((Integer) this.spnNumPlayers.getValue()); }//GEN-LAST:event_cbTournamentTypeActionPerformed + private void btnSavedConfigurationActionPerformed(java.awt.event.ActionEvent evt, int setting) {//GEN-FIRST:event_btnSavedConfigurationActionPerformed + currentSettingVersion = setting; + setTournamentSettingsFromPrefs(currentSettingVersion); + }//GEN-LAST:event_btnSavedConfigurationActionPerformed + private void btnOkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOkActionPerformed TournamentTypeView tournamentType = (TournamentTypeView) cbTournamentType.getSelectedItem(); - int numSeats = (Integer)this.spnNumSeats.getValue(); + int numSeats = (Integer) this.spnNumSeats.getValue(); TournamentOptions tOptions = new TournamentOptions(this.txtName.getText(), "", numSeats); tOptions.setTournamentType(tournamentType.getName()); tOptions.setPassword(txtPassword.getText()); - tOptions.getPlayerTypes().add("Human"); + tOptions.getPlayerTypes().add(PlayerType.HUMAN); tOptions.setWatchingAllowed(cbAllowSpectators.isSelected()); - tOptions.setQuitRatio((Integer)spnQuitRatio.getValue()); - for (TournamentPlayerPanel player: players) { - tOptions.getPlayerTypes().add((String) player.getPlayerType().getSelectedItem()); + tOptions.setQuitRatio((Integer) spnQuitRatio.getValue()); + for (TournamentPlayerPanel player : players) { + tOptions.getPlayerTypes().add((PlayerType) player.getPlayerType().getSelectedItem()); } if (!tournamentType.isElimination()) { - tOptions.setNumberRounds((Integer)spnNumRounds.getValue()); + tOptions.setNumberRounds((Integer) spnNumRounds.getValue()); } if (tournamentType.isDraft()) { DraftOptions options = new DraftOptions(); @@ -533,21 +552,21 @@ public class NewTournamentDialog extends MageDialog { tOptions.setLimitedOptions(new LimitedOptions()); } if (tournamentType.isLimited()) { - tOptions.getLimitedOptions().setConstructionTime((Integer)this.spnConstructTime.getValue() * 60); + tOptions.getLimitedOptions().setConstructionTime((Integer) this.spnConstructTime.getValue() * 60); tOptions.getLimitedOptions().setIsRandom(tournamentType.isRandom()); if (tournamentType.isCubeBooster()) { tOptions.getLimitedOptions().setDraftCubeName(this.cbDraftCube.getSelectedItem().toString()); if (!(cubeFromDeckFilename.isEmpty())) { - Deck cubeFromDeck = new Deck(); + Deck cubeFromDeck = new Deck(); try { cubeFromDeck = Deck.load(DeckImporterUtil.importDeck(cubeFromDeckFilename), true, true); } catch (GameException e1) { - JOptionPane.showMessageDialog(MageFrame.getDesktop(), e1.getMessage(), "Error loading deck", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(MageFrame.getDesktop(), e1.getMessage(), "Error loading deck", JOptionPane.ERROR_MESSAGE); } if (cubeFromDeck != null) { cubeFromDeck.clearLayouts(); tOptions.getLimitedOptions().setCubeFromDeck(cubeFromDeck); - } + } } } else if (tournamentType.isRandom() || tournamentType.isRichMan()) { this.isRandom = tournamentType.isRandom(); @@ -558,18 +577,18 @@ public class NewTournamentDialog extends MageDialog { if (tournamentType.isRichMan()) { maxPacks = 36; } - if (selected.size() > maxPacks ){ + if (selected.size() > maxPacks) { StringBuilder infoString = new StringBuilder("More sets were selected than needed. "); infoString.append(maxPacks); infoString.append(" sets will be randomly chosen."); JOptionPane.showMessageDialog(MageFrame.getDesktop(), infoString, "Information", JOptionPane.INFORMATION_MESSAGE); Collections.shuffle(selected); tOptions.getLimitedOptions().getSetCodes().addAll(selected.subList(0, maxPacks)); - }else{ - tOptions.getLimitedOptions().getSetCodes().addAll(selected); + } else { + tOptions.getLimitedOptions().getSetCodes().addAll(selected); } } else { - for (JComboBox pack: packs) { + for (JComboBox pack : packs) { tOptions.getLimitedOptions().getSetCodes().add(((ExpansionInfo) pack.getSelectedItem()).getCode()); } } @@ -588,8 +607,8 @@ public class NewTournamentDialog extends MageDialog { tOptions.getMatchOptions().setMatchTimeLimit((MatchTimeLimit) this.cbTimeLimit.getSelectedItem()); tOptions.getMatchOptions().setSkillLevel((SkillLevel) this.cbSkillLevel.getSelectedItem()); - tOptions.getMatchOptions().setWinsNeeded((Integer)this.spnNumWins.getValue()); - tOptions.getMatchOptions().setFreeMulligans((Integer)this.spnFreeMulligans.getValue()); + tOptions.getMatchOptions().setWinsNeeded((Integer) this.spnNumWins.getValue()); + tOptions.getMatchOptions().setFreeMulligans((Integer) this.spnFreeMulligans.getValue()); tOptions.getMatchOptions().setAttackOption(MultiplayerAttackOption.LEFT); tOptions.getMatchOptions().setRange(RangeOfInfluence.ALL); tOptions.getMatchOptions().setRollbackTurnsAllowed(this.chkRollbackTurnsAllowed.isSelected()); @@ -605,11 +624,11 @@ public class NewTournamentDialog extends MageDialog { roomId, table.getTableId(), this.player1Panel.getPlayerName(), - "Human", 1, + PlayerType.HUMAN, 1, DeckImporterUtil.importDeck(this.player1Panel.getDeckFile()), tOptions.getPassword())) { - for (TournamentPlayerPanel player: players) { - if (!player.getPlayerType().toString().equals("Human")) { + for (TournamentPlayerPanel player : players) { + if (!player.getPlayerType().getSelectedItem().toString().equals("Human")) { if (!player.joinTournamentTable(roomId, table.getTableId(), DeckImporterUtil.importDeck(this.player1Panel.getDeckFile()))) { // error message must be send by sever SessionHandler.removeTable(roomId, table.getTableId()); @@ -633,8 +652,8 @@ public class NewTournamentDialog extends MageDialog { }//GEN-LAST:event_btnCancelActionPerformed private void updateNumSeats() { - int numPlayers = (Integer)this.spnNumPlayers.getValue(); - int numSeats = (Integer)this.spnNumSeats.getValue(); + int numPlayers = (Integer) this.spnNumPlayers.getValue(); + int numSeats = (Integer) this.spnNumSeats.getValue(); if (numSeats > 2) { TournamentTypeView tournamentType = (TournamentTypeView) cbTournamentType.getSelectedItem(); @@ -652,16 +671,16 @@ public class NewTournamentDialog extends MageDialog { } private void spnNumPlayersStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnNumPlayersStateChanged - int numPlayers = (Integer)this.spnNumPlayers.getValue(); + int numPlayers = (Integer) this.spnNumPlayers.getValue(); createPlayers(numPlayers - 1); - int numSeats = (Integer)this.spnNumSeats.getValue(); + int numSeats = (Integer) this.spnNumSeats.getValue(); if (numSeats > 2 && numPlayers != numSeats) { updateNumSeats(); } }//GEN-LAST:event_spnNumPlayersStateChanged private void spnNumSeatsStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnNumSeatsStateChanged - int numSeats = (Integer)this.spnNumSeats.getValue(); + int numSeats = (Integer) this.spnNumSeats.getValue(); if (numSeats > 2) { this.spnNumPlayers.setEnabled(false); } else { @@ -669,11 +688,10 @@ public class NewTournamentDialog extends MageDialog { } updateNumSeats(); }//GEN-LAST:event_spnNumSeatsStateChanged - private void spnNumWinsnumPlayersChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnNumWinsnumPlayersChanged - int numSeats = (Integer)this.spnNumSeats.getValue(); - int numWins = (Integer)this.spnNumSeats.getValue(); + int numSeats = (Integer) this.spnNumSeats.getValue(); + int numWins = (Integer) this.spnNumSeats.getValue(); if (numSeats > 2) { spnNumWins.setValue(1); } @@ -699,7 +717,6 @@ public class NewTournamentDialog extends MageDialog { return ""; } - private void cbDraftCubeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbDraftCubeActionPerformed cubeFromDeckFilename = ""; if (cbDraftCube.getSelectedItem().toString().equals("Cube From Deck")) { @@ -718,6 +735,7 @@ public class NewTournamentDialog extends MageDialog { private void cbGameTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbGameTypeActionPerformed setGameOptions(); }//GEN-LAST:event_cbGameTypeActionPerformed + private void setGameOptions() { GameTypeView gameType = (GameTypeView) cbGameType.getSelectedItem(); // int oldValue = (Integer) this.spnNumPlayers.getValue(); @@ -747,10 +765,10 @@ public class NewTournamentDialog extends MageDialog { if (tournamentType.isLimited()) { this.isRandom = tournamentType.isRandom(); - this.isRichMan = tournamentType.isRichMan(); - if (this.isRandom || this.isRichMan){ + this.isRichMan = tournamentType.isRichMan(); + if (this.isRandom || this.isRichMan) { createRandomPacks(); - }else{ + } else { createPacks(tournamentType.getNumBoosters()); } } @@ -759,8 +777,8 @@ public class NewTournamentDialog extends MageDialog { private void setNumberOfSwissRoundsMin(int numPlayers) { // set the number of minimum swiss rounds related to the number of players - int minRounds = (int) Math.ceil(Math.log(numPlayers + 1) / Math.log(2)); - int newValue = Math.max((Integer)spnNumRounds.getValue(), minRounds); + int minRounds = (int) Math.ceil(Math.log(numPlayers + 1) / Math.log(2)); + int newValue = Math.max((Integer) spnNumRounds.getValue(), minRounds); this.spnNumRounds.setModel(new SpinnerNumberModel(newValue, minRounds, 10, 1)); this.pack(); this.revalidate(); @@ -793,7 +811,7 @@ public class NewTournamentDialog extends MageDialog { this.lblPacks.setVisible(false); this.pnlPacks.setVisible(false); this.pnlRandomPacks.setVisible(false); - } else if (tournamentType.isRandom() || tournamentType.isRichMan()){ + } else if (tournamentType.isRandom() || tournamentType.isRichMan()) { this.lblDraftCube.setVisible(false); this.cbDraftCube.setVisible(false); this.lblPacks.setVisible(true); @@ -887,14 +905,13 @@ public class NewTournamentDialog extends MageDialog { private void packActionPerformed(java.awt.event.ActionEvent evt) { boolean start = false; int selectedIndex = 0; - for (JComboBox pack: packs) { + for (JComboBox pack : packs) { if (!start) { if (evt.getSource().equals(pack)) { start = true; selectedIndex = pack.getSelectedIndex(); } - } - else { + } else { pack.setSelectedIndex(selectedIndex); } } @@ -909,8 +926,7 @@ public class NewTournamentDialog extends MageDialog { players.add(playerPanel); } - } - else if (numPlayers < players.size()) { + } else if (numPlayers < players.size()) { while (players.size() != numPlayers) { players.remove(players.size() - 1); } @@ -921,11 +937,9 @@ public class NewTournamentDialog extends MageDialog { } - - private void drawPlayers() { this.pnlOtherPlayers.removeAll(); - for (TournamentPlayerPanel panel: players) { + for (TournamentPlayerPanel panel : players) { this.pnlOtherPlayers.add(panel); panel.getPlayerType().addActionListener(evt -> { if (!automaticChange) { @@ -942,14 +956,13 @@ public class NewTournamentDialog extends MageDialog { boolean start = false; int selectedIndex = 0; automaticChange = true; - for (TournamentPlayerPanel player: players) { + for (TournamentPlayerPanel player : players) { if (!start) { if (evt.getSource().equals(player.getPlayerType())) { start = true; selectedIndex = player.getPlayerType().getSelectedIndex(); } - } - else { + } else { player.getPlayerType().setSelectedIndex(selectedIndex); } } @@ -959,58 +972,70 @@ public class NewTournamentDialog extends MageDialog { /** * set the tournament settings from java prefs */ - private void setTournamentSettingsFromPrefs () { + int currentSettingVersion = 0; + private void setTournamentSettingsFromPrefs(int version) { + currentSettingVersion = version; + String versionStr = ""; + if (currentSettingVersion == 1) { + versionStr = "1"; + btnSavedConfiguration1.requestFocus(); + } else if (currentSettingVersion == 2) { + versionStr = "2"; + btnSavedConfiguration2.requestFocus(); + } else { + btnSavedConfiguration2.getParent().requestFocus(); + } int numPlayers; - txtName.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_NAME, "Tournament")); - txtPassword.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PASSWORD, "")); - int timeLimit = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_TIME_LIMIT, "1500")); - for (MatchTimeLimit mtl :MatchTimeLimit.values()) { + txtName.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_NAME + versionStr, "Tournament")); + txtPassword.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PASSWORD + versionStr, "")); + int timeLimit = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_TIME_LIMIT + versionStr, "1500")); + for (MatchTimeLimit mtl : MatchTimeLimit.values()) { if (mtl.getTimeLimit() == timeLimit) { this.cbTimeLimit.setSelectedItem(mtl); break; } } - String skillLevelDefault = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_SKILL_LEVEL, "Casual"); - for (SkillLevel skillLevel :SkillLevel.values()) { + String skillLevelDefault = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_SKILL_LEVEL + versionStr, "Casual"); + for (SkillLevel skillLevel : SkillLevel.values()) { if (skillLevel.toString().equals(skillLevelDefault)) { this.cbSkillLevel.setSelectedItem(skillLevel); break; } } - int constructionTime = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_CONSTR_TIME, "600")) / 60; + int constructionTime = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_CONSTR_TIME + versionStr, "600")) / 60; if (constructionTime < CONSTRUCTION_TIME_MIN || constructionTime > CONSTRUCTION_TIME_MAX) { constructionTime = CONSTRUCTION_TIME_MIN; } this.spnConstructTime.setValue(constructionTime); - String tournamentTypeName = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_TYPE, "Sealed Elimination"); + String tournamentTypeName = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_TYPE + versionStr, "Sealed Elimination"); for (TournamentTypeView tournamentTypeView : SessionHandler.getTournamentTypes()) { if (tournamentTypeView.getName().equals(tournamentTypeName)) { cbTournamentType.setSelectedItem(tournamentTypeView); break; } } - this.spnFreeMulligans.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_NUMBER_OF_FREE_MULLIGANS, "0"))); - this.spnNumWins.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_NUMBER_OF_WINS, "2"))); - this.spnQuitRatio.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_QUIT_RATIO, "100"))); + this.spnFreeMulligans.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_NUMBER_OF_FREE_MULLIGANS + versionStr, "0"))); + this.spnNumWins.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_NUMBER_OF_WINS + versionStr, "2"))); + this.spnQuitRatio.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_QUIT_RATIO + versionStr, "100"))); TournamentTypeView tournamentType = (TournamentTypeView) cbTournamentType.getSelectedItem(); activatePanelElements(tournamentType); if (tournamentType.isLimited()) { if (!tournamentType.isDraft()) { - numPlayers = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PLAYERS_SEALED, "2")); + numPlayers = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PLAYERS_SEALED + versionStr, "2")); setTournamentOptions(numPlayers); - loadBoosterPacks(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PACKS_SEALED, "")); + loadBoosterPacks(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PACKS_SEALED + versionStr, "")); } if (tournamentType.isDraft()) { - numPlayers = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PLAYERS_DRAFT, "4")); + numPlayers = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PLAYERS_DRAFT + versionStr, "4")); setTournamentOptions(numPlayers); - if (!(tournamentType.isRandom() || tournamentType.isRichMan())){ - loadBoosterPacks(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PACKS_DRAFT, "")); + if (!(tournamentType.isRandom() || tournamentType.isRichMan())) { + loadBoosterPacks(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PACKS_DRAFT + versionStr, "")); } - String draftTiming = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_DRAFT_TIMING, "REGULAR"); + String draftTiming = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_DRAFT_TIMING + versionStr, "REGULAR"); for (TimingOption timingOption : DraftOptions.TimingOption.values()) { if (timingOption.toString().equals(draftTiming)) { cbDraftTiming.setSelectedItem(draftTiming); @@ -1019,22 +1044,22 @@ public class NewTournamentDialog extends MageDialog { } } } - this.cbAllowSpectators.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_ALLOW_SPECTATORS, "Yes").equals("Yes")); - this.chkRollbackTurnsAllowed.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_ALLOW_ROLLBACKS, "Yes").equals("Yes")); - this.chkRated.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_RATED, "No").equals("Yes")); + this.cbAllowSpectators.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_ALLOW_SPECTATORS + versionStr, "Yes").equals("Yes")); + this.chkRollbackTurnsAllowed.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_ALLOW_ROLLBACKS + versionStr, "Yes").equals("Yes")); + this.chkRated.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_RATED + versionStr, "No").equals("Yes")); } private void loadBoosterPacks(String packString) { if (!packString.isEmpty()) { String[] packsArray = packString.substring(1, packString.length() - 1).split(","); int packNumber = 0; - for (String pack : packsArray ){ + for (String pack : packsArray) { packNumber++; if (this.packs.size() >= packNumber - 1) { - JComboBox comboBox = this.packs.get(packNumber-1); + JComboBox comboBox = this.packs.get(packNumber - 1); ComboBoxModel model = comboBox.getModel(); int size = model.getSize(); - for(int i=0;i { @Override protected Void doInBackground() throws Exception { while (!isCancelled()) { - SessionHandler.getTable(roomId, tableId).ifPresent(tableView -> { - - this.publish(tableView); - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - }); + SessionHandler.getTable(roomId, tableId).ifPresent(this::publish); + TimeUnit.SECONDS.sleep(1); } return null; } diff --git a/Mage.Client/src/main/java/mage/client/draft/DraftPane.java b/Mage.Client/src/main/java/mage/client/draft/DraftPane.java index 2805cac5a84..d471e030652 100644 --- a/Mage.Client/src/main/java/mage/client/draft/DraftPane.java +++ b/Mage.Client/src/main/java/mage/client/draft/DraftPane.java @@ -99,8 +99,8 @@ public class DraftPane extends MagePane { jScrollPane1.setViewportView(draftPanel1); - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 868, Short.MAX_VALUE) @@ -109,14 +109,12 @@ public class DraftPane extends MagePane { layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 582, Short.MAX_VALUE) ); - - pack(); }//
//GEN-END:initComponents private void initComponents(Component container) { - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(container, javax.swing.GroupLayout.DEFAULT_SIZE, 885, Short.MAX_VALUE) @@ -125,8 +123,6 @@ public class DraftPane extends MagePane { layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(container, javax.swing.GroupLayout.DEFAULT_SIZE, 626, Short.MAX_VALUE) ); - - pack(); } // Variables declaration - do not modify//GEN-BEGIN:variables diff --git a/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java b/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java index 1b7167bf287..2d3d2b1e553 100644 --- a/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java +++ b/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java @@ -33,15 +33,6 @@ */ package mage.client.game; -import java.awt.*; -import java.awt.event.ComponentAdapter; -import java.awt.event.ComponentEvent; -import java.util.*; -import java.util.List; -import java.util.Map.Entry; -import javax.swing.*; -import javax.swing.border.Border; -import javax.swing.border.EmptyBorder; import mage.cards.MagePermanent; import mage.client.cards.BigCard; import mage.client.cards.Permanent; @@ -51,11 +42,19 @@ import mage.client.util.GUISizeHelper; import mage.client.util.audio.AudioManager; import mage.client.util.layout.CardLayoutStrategy; import mage.client.util.layout.impl.OldCardLayoutStrategy; -import mage.constants.CardType; -import mage.utils.CardUtil; import mage.view.CounterView; import mage.view.PermanentView; +import javax.swing.*; +import javax.swing.border.Border; +import javax.swing.border.EmptyBorder; +import java.awt.*; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; +import java.util.*; +import java.util.List; +import java.util.Map.Entry; + /** * * @author BetaSteward_at_googlemail.com @@ -155,7 +154,7 @@ public class BattlefieldPanel extends javax.swing.JLayeredPane { changed = true; } else { if (!changed) { - changed = CardUtil.isCreature(oldMagePermanent.getOriginalPermanent()) != CardUtil.isCreature(permanent); + changed = oldMagePermanent.getOriginalPermanent().isCreature() != permanent.isCreature(); if (!changed) { int s1 = permanent.getAttachments() == null ? 0 : permanent.getAttachments().size(); int s2 = oldMagePermanent.getLinks().size(); @@ -279,9 +278,9 @@ public class BattlefieldPanel extends javax.swing.JLayeredPane { }*/ } - if (permanent.getCardTypes().contains(CardType.ARTIFACT)) { + if (permanent.isArtifact()) { addedArtifact = true; - } else if (permanent.getCardTypes().contains(CardType.CREATURE)) { + } else if (permanent.isCreature()) { addedCreature = true; } else { addedPermanent = true; @@ -305,7 +304,7 @@ public class BattlefieldPanel extends javax.swing.JLayeredPane { }); t.start(); } - if (((MagePermanent) comp).getOriginal().getCardTypes().contains(CardType.CREATURE)) { + if (((MagePermanent) comp).getOriginal().isCreature()) { removedCreature = true; } } diff --git a/Mage.Client/src/main/java/mage/client/game/GamePane.java b/Mage.Client/src/main/java/mage/client/game/GamePane.java index 6e100198521..5c30be94821 100644 --- a/Mage.Client/src/main/java/mage/client/game/GamePane.java +++ b/Mage.Client/src/main/java/mage/client/game/GamePane.java @@ -35,7 +35,8 @@ package mage.client.game; import java.awt.AWTEvent; import java.util.UUID; -import javax.swing.SwingUtilities; +import javax.swing.*; + import mage.client.MagePane; /** @@ -48,10 +49,9 @@ public class GamePane extends MagePane { * Creates new form GamePane */ public GamePane() { - this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); initComponents(); SwingUtilities.invokeLater(() -> { - gamePanel.setJLayeredPane(getLayeredPane()); + gamePanel.setJLayeredPane(this); gamePanel.installComponents(); }); @@ -96,12 +96,13 @@ public class GamePane extends MagePane { private void initComponents() { jScrollPane1 = new javax.swing.JScrollPane(); + jScrollPane1.setBorder(BorderFactory.createEmptyBorder()); gamePanel = new mage.client.game.GamePanel(); jScrollPane1.setViewportView(gamePanel); - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 600, Short.MAX_VALUE) @@ -113,7 +114,6 @@ public class GamePane extends MagePane { .addGap(0, 400, Short.MAX_VALUE) ); - pack(); } public UUID getGameId() { diff --git a/Mage.Client/src/main/java/mage/client/game/GamePanel.java b/Mage.Client/src/main/java/mage/client/game/GamePanel.java index d68e842327e..2cb9a387652 100644 --- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java +++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java @@ -31,6 +31,7 @@ import java.awt.AWTEvent; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; +import static java.awt.Component.LEFT_ALIGNMENT; import java.awt.Container; import java.awt.Dimension; import java.awt.Font; @@ -59,6 +60,7 @@ import java.util.Set; import java.util.UUID; import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; import javax.swing.AbstractAction; import javax.swing.BorderFactory; import javax.swing.GroupLayout; @@ -80,7 +82,6 @@ import javax.swing.border.EmptyBorder; import javax.swing.border.LineBorder; import javax.swing.plaf.basic.BasicSplitPaneDivider; import javax.swing.plaf.basic.BasicSplitPaneUI; - import mage.cards.Card; import mage.cards.action.ActionCallback; import mage.choices.Choice; @@ -100,9 +101,7 @@ import mage.client.dialog.PickChoiceDialog; import mage.client.dialog.PickNumberDialog; import mage.client.dialog.PickPileDialog; import mage.client.dialog.PreferencesDialog; - import static mage.client.dialog.PreferencesDialog.*; - import mage.client.dialog.ShowCardsDialog; import mage.client.game.FeedbackPanel.FeedbackMode; import mage.client.plugins.adapters.MageActionCallback; @@ -119,13 +118,11 @@ import mage.constants.Constants; import mage.constants.EnlargeMode; import mage.constants.PhaseStep; import mage.constants.PlayerAction; - import static mage.constants.PlayerAction.TRIGGER_AUTO_ORDER_ABILITY_FIRST; import static mage.constants.PlayerAction.TRIGGER_AUTO_ORDER_ABILITY_LAST; import static mage.constants.PlayerAction.TRIGGER_AUTO_ORDER_NAME_FIRST; import static mage.constants.PlayerAction.TRIGGER_AUTO_ORDER_NAME_LAST; import static mage.constants.PlayerAction.TRIGGER_AUTO_ORDER_RESET_ALL; - import mage.constants.Zone; import mage.game.events.PlayerQueryEvent; import mage.view.AbilityPickerView; @@ -534,8 +531,8 @@ public final class GamePanel extends javax.swing.JPanel { this.pnlReplay.setVisible(false); this.gameChatPanel.clear(); - SessionHandler.getGameChatId(gameId).ifPresent(uuid -> - this.gameChatPanel.connect(uuid)); + SessionHandler.getGameChatId(gameId).ifPresent(uuid + -> this.gameChatPanel.connect(uuid)); if (!SessionHandler.watchGame(gameId)) { removeGame(); } @@ -816,13 +813,15 @@ public final class GamePanel extends javax.swing.JPanel { cardsView.put(player.getTopCard().getId(), player.getTopCard()); handleGameInfoWindow(revealed, ShowType.REVEAL_TOP_LIBRARY, player.getName() + "'s top library card", cardsView); } - } else { + } else if (!players.isEmpty()) { logger.warn("Couldn't find player."); logger.warn(" uuid:" + player.getPlayerId()); logger.warn(" players:"); for (PlayAreaPanel p : players.values()) { logger.warn(String.valueOf(p)); } + } else { + // can happen at the game start before player list is initiated } } if (!menuNameSet) { @@ -1776,24 +1775,24 @@ public final class GamePanel extends javax.swing.JPanel { pnlReplay.setLayout(gl_pnlReplay); gl_pnlReplay.setHorizontalGroup( gl_pnlReplay.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(gl_pnlReplay.createSequentialGroup() - .addComponent(btnPreviousPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(btnStopReplay, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnNextPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnSkipForward, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(gl_pnlReplay.createSequentialGroup() + .addComponent(btnPreviousPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(btnStopReplay, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnNextPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnSkipForward, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)) ); gl_pnlReplay.setVerticalGroup( gl_pnlReplay.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(btnSkipForward, 0, 0, Short.MAX_VALUE) - .addComponent(btnNextPlay, 0, 0, Short.MAX_VALUE) - .addComponent(btnStopReplay, 0, 0, Short.MAX_VALUE) - .addComponent(btnPlay, 0, 0, Short.MAX_VALUE) - .addComponent(btnPreviousPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 31, Short.MAX_VALUE) + .addComponent(btnSkipForward, 0, 0, Short.MAX_VALUE) + .addComponent(btnNextPlay, 0, 0, Short.MAX_VALUE) + .addComponent(btnStopReplay, 0, 0, Short.MAX_VALUE) + .addComponent(btnPlay, 0, 0, Short.MAX_VALUE) + .addComponent(btnPreviousPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 31, Short.MAX_VALUE) ); // Game info panel (buttons on the right panel) @@ -1867,8 +1866,8 @@ public final class GamePanel extends javax.swing.JPanel { } }; String[] phases = {"Untap", "Upkeep", "Draw", "Main1", - "Combat_Start", "Combat_Attack", "Combat_Block", "Combat_Damage", "Combat_End", - "Main2", "Cleanup", "Next_Turn"}; + "Combat_Start", "Combat_Attack", "Combat_Block", "Combat_Damage", "Combat_End", + "Main2", "Cleanup", "Next_Turn"}; for (String name : phases) { createPhaseButton(name, phasesMouseAdapter); } @@ -1905,46 +1904,46 @@ public final class GamePanel extends javax.swing.JPanel { javax.swing.GroupLayout gl_helperHandButtonsStackArea = new javax.swing.GroupLayout(pnlHelperHandButtonsStackArea); gl_helperHandButtonsStackArea.setHorizontalGroup( gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING) - .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup() - // .addGap(0) - .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING) - .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup() - .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING) - .addComponent(helper, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(handContainer, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - ) - .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING) - .addComponent(pnlShortCuts, 410, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE) - .addComponent(stackObjects, 410, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE) - ) + .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup() + // .addGap(0) + .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING) + .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup() + .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING) + .addComponent(helper, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(handContainer, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ) - .addGap(0) - //.addComponent(jPhases, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup() - .addComponent(pnlBattlefield, GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE) - .addComponent(phasesContainer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - ))) + .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING) + .addComponent(pnlShortCuts, 410, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE) + .addComponent(stackObjects, 410, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE) + ) + ) + .addGap(0) + //.addComponent(jPhases, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup() + .addComponent(pnlBattlefield, GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE) + .addComponent(phasesContainer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + ))) ); gl_helperHandButtonsStackArea.setVerticalGroup( gl_helperHandButtonsStackArea.createParallelGroup(Alignment.TRAILING) - .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup() - .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING) - .addComponent(pnlBattlefield, GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE) - .addComponent(phasesContainer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup() + .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING) + .addComponent(pnlBattlefield, GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE) + .addComponent(phasesContainer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + ) + //.addPreferredGap(ComponentPlacement.RELATED) + .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING) + .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup() + .addGap(2) + .addComponent(pnlShortCuts, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(stackObjects, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) ) - //.addPreferredGap(ComponentPlacement.RELATED) - .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING) - .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup() - .addGap(2) - .addComponent(pnlShortCuts, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addComponent(stackObjects, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - ) - .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup() - .addComponent(helper, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addComponent(handContainer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - ) + .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup() + .addComponent(helper, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(handContainer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) ) ) + ) ); pnlHelperHandButtonsStackArea.setLayout(gl_helperHandButtonsStackArea); @@ -1977,11 +1976,11 @@ public final class GamePanel extends javax.swing.JPanel { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSplitPane0, javax.swing.GroupLayout.DEFAULT_SIZE, 1078, Short.MAX_VALUE) + .addComponent(jSplitPane0, javax.swing.GroupLayout.DEFAULT_SIZE, 1078, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSplitPane0, javax.swing.GroupLayout.DEFAULT_SIZE, 798, Short.MAX_VALUE) + .addComponent(jSplitPane0, javax.swing.GroupLayout.DEFAULT_SIZE, 798, Short.MAX_VALUE) ); } @@ -2188,7 +2187,7 @@ public final class GamePanel extends javax.swing.JPanel { public void installComponents() { jLayeredPane.setOpaque(false); - jLayeredPane.add(abilityPicker); + jLayeredPane.add(abilityPicker, JLayeredPane.MODAL_LAYER); jLayeredPane.add(DialogManager.getManager(gameId), JLayeredPane.MODAL_LAYER, 0); abilityPicker.setVisible(false); } @@ -2433,7 +2432,7 @@ class ReplayTask extends SwingWorker> { protected Void doInBackground() throws Exception { while (!isCancelled()) { SessionHandler.nextPlay(gameId); - Thread.sleep(1000); + TimeUnit.SECONDS.sleep(1); } return null; } diff --git a/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java b/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java index 0db517ded03..63866222351 100644 --- a/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java +++ b/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java @@ -27,11 +27,6 @@ */ package mage.client.remote; -import java.awt.event.KeyEvent; -import java.util.List; -import java.util.UUID; -import javax.swing.JOptionPane; -import javax.swing.SwingUtilities; import mage.cards.decks.Deck; import mage.client.MageFrame; import mage.client.SessionHandler; @@ -49,19 +44,15 @@ import mage.client.util.object.SaveObjectUtil; import mage.interfaces.callback.CallbackClient; import mage.interfaces.callback.ClientCallback; import mage.utils.CompressUtil; -import mage.view.AbilityPickerView; -import mage.view.ChatMessage; +import mage.view.*; import mage.view.ChatMessage.MessageType; -import mage.view.DeckView; -import mage.view.DraftClientMessage; -import mage.view.DraftView; -import mage.view.GameClientMessage; -import mage.view.GameEndView; -import mage.view.GameView; -import mage.view.TableClientMessage; -import mage.view.UserRequestMessage; import org.apache.log4j.Logger; +import javax.swing.*; +import java.awt.event.KeyEvent; +import java.util.List; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -79,38 +70,38 @@ public class CallbackClientImpl implements CallbackClient { @Override public synchronized void processCallback(final ClientCallback callback) { - SaveObjectUtil.saveObject(callback.getData(), callback.getMethod()); + SaveObjectUtil.saveObject(callback.getData(), callback.getMethod().toString()); callback.setData(CompressUtil.decompress(callback.getData())); SwingUtilities.invokeLater(() -> { try { logger.debug(callback.getMessageId() + " -- " + callback.getMethod()); switch (callback.getMethod()) { - case "startGame": { + case START_GAME: { TableClientMessage message = (TableClientMessage) callback.getData(); GameManager.instance.setCurrentPlayerUUID(message.getPlayerId()); gameStarted(message.getGameId(), message.getPlayerId()); break; } - case "startTournament": { + case START_TOURNAMENT: { TableClientMessage message = (TableClientMessage) callback.getData(); tournamentStarted(message.getGameId(), message.getPlayerId()); break; } - case "startDraft": { + case START_DRAFT: { TableClientMessage message = (TableClientMessage) callback.getData(); draftStarted(message.getGameId(), message.getPlayerId()); break; } - case "replayGame": + case REPLAY_GAME: replayGame(callback.getObjectId()); break; - case "showTournament": + case SHOW_TOURNAMENT: showTournament(callback.getObjectId()); break; - case "watchGame": + case WATCHGAME: watchGame(callback.getObjectId()); break; - case "chatMessage": { + case CHATMESSAGE: { ChatMessage message = (ChatMessage) callback.getData(); // Drop messages from ignored users @@ -154,7 +145,7 @@ public class CallbackClientImpl implements CallbackClient { } break; } - case "serverMessage": + case SERVER_MESSAGE: if (callback.getData() != null) { ChatMessage message = (ChatMessage) callback.getData(); if (message.getColor() == ChatMessage.MessageColor.RED) { @@ -164,50 +155,50 @@ public class CallbackClientImpl implements CallbackClient { } } break; - case "joinedTable": { + case JOINED_TABLE: { TableClientMessage message = (TableClientMessage) callback.getData(); joinedTable(message.getRoomId(), message.getTableId(), message.getFlag()); break; } - case "replayInit": { + case REPLAY_INIT: { GamePanel panel = MageFrame.getGame(callback.getObjectId()); if (panel != null) { panel.init((GameView) callback.getData()); } break; } - case "replayDone": { + case REPLAY_DONE: { GamePanel panel = MageFrame.getGame(callback.getObjectId()); if (panel != null) { panel.endMessage((String) callback.getData(), callback.getMessageId()); } break; } - case "replayUpdate": { + case REPLAY_UPDATE: { GamePanel panel = MageFrame.getGame(callback.getObjectId()); if (panel != null) { panel.updateGame((GameView) callback.getData()); } break; } - case "gameInit": { + case GAME_INIT: { GamePanel panel = MageFrame.getGame(callback.getObjectId()); if (panel != null) { panel.init((GameView) callback.getData()); } break; } - case "gameOver": { + case GAME_OVER: { GamePanel panel = MageFrame.getGame(callback.getObjectId()); if (panel != null) { panel.endMessage((String) callback.getData(), callback.getMessageId()); } break; } - case "gameError": + case GAME_ERROR: frame.showErrorDialog("Game Error", (String) callback.getData()); break; - case "gameAsk": { + case GAME_ASK: { GameClientMessage message = (GameClientMessage) callback.getData(); GamePanel panel = MageFrame.getGame(callback.getObjectId()); if (panel != null) { @@ -215,7 +206,7 @@ public class CallbackClientImpl implements CallbackClient { } break; } - case "gameTarget": // e.g. Pick triggered ability + case GAME_TARGET: // e.g. Pick triggered ability { GameClientMessage message = (GameClientMessage) callback.getData(); GamePanel panel = MageFrame.getGame(callback.getObjectId()); @@ -225,7 +216,7 @@ public class CallbackClientImpl implements CallbackClient { } break; } - case "gameSelect": { + case GAME_SELECT: { GameClientMessage message = (GameClientMessage) callback.getData(); GamePanel panel = MageFrame.getGame(callback.getObjectId()); if (panel != null) { @@ -233,14 +224,14 @@ public class CallbackClientImpl implements CallbackClient { } break; } - case "gameChooseAbility": { + case GAME_CHOOSE_ABILITY: { GamePanel panel = MageFrame.getGame(callback.getObjectId()); if (panel != null) { panel.pickAbility((AbilityPickerView) callback.getData()); } break; } - case "gameChoosePile": { + case GAME_CHOOSE_PILE: { GameClientMessage message = (GameClientMessage) callback.getData(); GamePanel panel = MageFrame.getGame(callback.getObjectId()); if (panel != null) { @@ -248,7 +239,7 @@ public class CallbackClientImpl implements CallbackClient { } break; } - case "gameChooseChoice": { + case GAME_CHOOSE_CHOICE: { GameClientMessage message = (GameClientMessage) callback.getData(); GamePanel panel = MageFrame.getGame(callback.getObjectId()); @@ -257,7 +248,7 @@ public class CallbackClientImpl implements CallbackClient { } break; } - case "gamePlayMana": { + case GAME_PLAY_MANA: { GameClientMessage message = (GameClientMessage) callback.getData(); GamePanel panel = MageFrame.getGame(callback.getObjectId()); if (panel != null) { @@ -265,7 +256,7 @@ public class CallbackClientImpl implements CallbackClient { } break; } - case "gamePlayXMana": { + case GAME_PLAY_XMANA: { GameClientMessage message = (GameClientMessage) callback.getData(); GamePanel panel = MageFrame.getGame(callback.getObjectId()); if (panel != null) { @@ -273,7 +264,7 @@ public class CallbackClientImpl implements CallbackClient { } break; } - case "gameSelectAmount": { + case GAME_GET_AMOUNT: { GameClientMessage message = (GameClientMessage) callback.getData(); GamePanel panel = MageFrame.getGame(callback.getObjectId()); if (panel != null) { @@ -281,23 +272,23 @@ public class CallbackClientImpl implements CallbackClient { } break; } - case "gameUpdate": { + case GAME_UPDATE: { GamePanel panel = MageFrame.getGame(callback.getObjectId()); if (panel != null) { panel.updateGame((GameView) callback.getData()); } break; } - case "endGameInfo": + case END_GAME_INFO: MageFrame.getInstance().showGameEndDialog((GameEndView) callback.getData()); break; - case "showUserMessage": + case SHOW_USERMESSAGE: List messageData = (List) callback.getData(); if (messageData.size() == 2) { JOptionPane.showMessageDialog(null, messageData.get(1), messageData.get(0), JOptionPane.WARNING_MESSAGE); } break; - case "gameInform": + case GAME_INFORM: if (callback.getMessageId() > gameInformMessageId) { { GameClientMessage message = (GameClientMessage) callback.getData(); @@ -313,7 +304,7 @@ public class CallbackClientImpl implements CallbackClient { } gameInformMessageId = messageId; break; - case "gameInformPersonal": { + case GAME_INFORM_PERSONAL: { GameClientMessage message = (GameClientMessage) callback.getData(); GamePanel panel = MageFrame.getGame(callback.getObjectId()); if (panel != null) { @@ -322,7 +313,7 @@ public class CallbackClientImpl implements CallbackClient { } break; } - case "sideboard": { + case SIDEBOARD: { TableClientMessage message = (TableClientMessage) callback.getData(); DeckView deckView = message.getDeck(); Deck deck = DeckUtil.construct(deckView); @@ -333,17 +324,17 @@ public class CallbackClientImpl implements CallbackClient { } break; } - case "construct": { + case CONSTRUCT: { TableClientMessage message = (TableClientMessage) callback.getData(); DeckView deckView = message.getDeck(); Deck deck = DeckUtil.construct(deckView); construct(deck, message.getTableId(), message.getTime()); break; } - case "draftOver": + case DRAFT_OVER: MageFrame.removeDraft(callback.getObjectId()); break; - case "draftPick": { + case DRAFT_PICK: { DraftClientMessage message = (DraftClientMessage) callback.getData(); DraftPanel panel = MageFrame.getDraft(callback.getObjectId()); if (panel != null) { @@ -351,14 +342,14 @@ public class CallbackClientImpl implements CallbackClient { } break; } - case "draftUpdate": { + case DRAFT_UPDATE: { DraftPanel panel = MageFrame.getDraft(callback.getObjectId()); if (panel != null) { panel.updateDraft((DraftView) callback.getData()); } break; } - case "draftInform": // if (callback.getMessageId() > messageId) { + case DRAFT_INFORM: // if (callback.getMessageId() > messageId) { { DraftClientMessage message = (DraftClientMessage) callback.getData(); } @@ -366,7 +357,7 @@ public class CallbackClientImpl implements CallbackClient { // logger.warn("message out of sequence - ignoring"); // } break; - case "draftInit": { + case DRAFT_INIT: { DraftClientMessage message = (DraftClientMessage) callback.getData(); DraftPanel panel = MageFrame.getDraft(callback.getObjectId()); if (panel != null) { @@ -374,9 +365,9 @@ public class CallbackClientImpl implements CallbackClient { } break; } - case "tournamentInit": + case TOURNAMENT_INIT: break; - case "userRequestDialog": + case USER_REQUEST_DIALOG: frame.showUserRequestDialog((UserRequestMessage) callback.getData()); break; } diff --git a/Mage.Client/src/main/java/mage/client/table/TablePlayerPanel.java b/Mage.Client/src/main/java/mage/client/table/TablePlayerPanel.java index 902aab84dd9..b0d64b6882c 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablePlayerPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/TablePlayerPanel.java @@ -34,17 +34,18 @@ package mage.client.table; -import java.io.IOException; -import java.util.UUID; -import javax.swing.DefaultComboBoxModel; import mage.cards.decks.importer.DeckImporterUtil; import mage.client.SessionHandler; import mage.client.util.Config; import mage.client.util.Event; import mage.client.util.Listener; +import mage.players.PlayerType; + +import javax.swing.*; +import java.io.IOException; +import java.util.UUID; /** - * * @author BetaSteward_at_googlemail.com */ public class TablePlayerPanel extends javax.swing.JPanel { @@ -52,38 +53,39 @@ public class TablePlayerPanel extends javax.swing.JPanel { protected final PlayerTypeEventSource playerTypeEventSource = new PlayerTypeEventSource(); - /** Creates new form TablePlayerPanel */ + /** + * Creates new form TablePlayerPanel + */ public TablePlayerPanel() { initComponents(); this.newPlayerPanel.setVisible(false); } - public void init(int playerNum, String playerType) { + public void init(int playerNum, PlayerType playerType) { cbPlayerType.setModel(new DefaultComboBoxModel(SessionHandler.getPlayerTypes())); this.lblPlayerNum.setText("Player " + playerNum); if (Config.defaultOtherPlayerIndex != null) { if (Integer.valueOf(Config.defaultOtherPlayerIndex) >= cbPlayerType.getItemCount()) { cbPlayerType.setSelectedIndex(cbPlayerType.getItemCount() - 1); - } - else { - Integer index = Integer.parseInt(Config.defaultOtherPlayerIndex); + } else { + Integer index = Integer.parseInt(Config.defaultOtherPlayerIndex); cbPlayerType.setSelectedIndex(index); } } if (playerType != null) { this.cbPlayerType.setSelectedItem(playerType); - } + } } public boolean joinTable(UUID roomId, UUID tableId) throws IOException, ClassNotFoundException { if (!this.cbPlayerType.getSelectedItem().equals("Human")) { - return SessionHandler.joinTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), (String)this.cbPlayerType.getSelectedItem(), this.newPlayerPanel.getLevel(), DeckImporterUtil.importDeck(this.newPlayerPanel.getDeckFile()),""); - } + return SessionHandler.joinTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), (PlayerType) this.cbPlayerType.getSelectedItem(), this.newPlayerPanel.getLevel(), DeckImporterUtil.importDeck(this.newPlayerPanel.getDeckFile()), ""); + } return true; } - public String getPlayerType() { - return (String) this.cbPlayerType.getSelectedItem(); + public PlayerType getPlayerType() { + return PlayerType.getByDescription(this.cbPlayerType.getSelectedItem().toString()); } public void addPlayerTypeEventListener(Listener listener) { @@ -95,7 +97,8 @@ public class TablePlayerPanel extends javax.swing.JPanel { } - /** This method is called from within the constructor to + /** + * This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. @@ -119,38 +122,37 @@ public class TablePlayerPanel extends javax.swing.JPanel { javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblPlayerNum) - .addGroup(layout.createSequentialGroup() - .addComponent(lbPlayerType) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(cbPlayerType, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(newPlayerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 318, Short.MAX_VALUE)) + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lblPlayerNum) + .addGroup(layout.createSequentialGroup() + .addComponent(lbPlayerType) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(cbPlayerType, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(newPlayerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 318, Short.MAX_VALUE)) ); layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(lblPlayerNum) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cbPlayerType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lbPlayerType))) - .addComponent(newPlayerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 43, Short.MAX_VALUE)) - .addContainerGap()) + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(lblPlayerNum) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(cbPlayerType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lbPlayerType))) + .addComponent(newPlayerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 43, Short.MAX_VALUE)) + .addContainerGap()) ); }// //GEN-END:initComponents private void cbPlayerTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbPlayerTypeActionPerformed - if (!this.cbPlayerType.getSelectedItem().equals("Human")) { + if (getPlayerType() != PlayerType.HUMAN) { this.newPlayerPanel.setVisible(true); - } - else { + } else { this.newPlayerPanel.setVisible(false); } this.revalidate(); diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPane.java b/Mage.Client/src/main/java/mage/client/table/TablesPane.java index 30600ae3c76..4c6fe75747c 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablesPane.java +++ b/Mage.Client/src/main/java/mage/client/table/TablesPane.java @@ -99,8 +99,8 @@ public class TablesPane extends MagePane { tablesPanel = new mage.client.table.TablesPanel(); - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(tablesPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 541, Short.MAX_VALUE) @@ -110,12 +110,11 @@ public class TablesPane extends MagePane { .addComponent(tablesPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 471, Short.MAX_VALUE) ); - pack(); }// //GEN-END:initComponents private void initComponents(JComponent container) { - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(container, javax.swing.GroupLayout.DEFAULT_SIZE, 541, Short.MAX_VALUE) @@ -124,7 +123,6 @@ public class TablesPane extends MagePane { layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(container, javax.swing.GroupLayout.DEFAULT_SIZE, 471, Short.MAX_VALUE) ); - pack(); } // Variables declaration - do not modify//GEN-BEGIN:variables diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java index 5a6be71f1a9..73ca9f0caed 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java @@ -33,69 +33,21 @@ */ package mage.client.table; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.HeadlessException; -import java.awt.Image; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.event.ActionEvent; -import java.beans.PropertyVetoException; -import java.io.File; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.CancellationException; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.Icon; -import javax.swing.ImageIcon; -import javax.swing.JComponent; -import javax.swing.JDesktopPane; -import javax.swing.JInternalFrame; -import javax.swing.JLayeredPane; -import javax.swing.JOptionPane; -import javax.swing.JPopupMenu; -import javax.swing.JToggleButton; -import javax.swing.RowFilter; -import javax.swing.SwingWorker; -import javax.swing.table.AbstractTableModel; import mage.cards.decks.importer.DeckImporterUtil; import mage.client.MageFrame; import mage.client.SessionHandler; import mage.client.chat.ChatPanelBasic; import mage.client.components.MageComponents; -import mage.client.dialog.JoinTableDialog; -import mage.client.dialog.NewTableDialog; -import mage.client.dialog.NewTournamentDialog; -import mage.client.dialog.PreferencesDialog; -import static mage.client.dialog.PreferencesDialog.KEY_TABLES_COLUMNS_ORDER; -import static mage.client.dialog.PreferencesDialog.KEY_TABLES_COLUMNS_WIDTH; -import mage.client.dialog.TableWaitingDialog; -import static mage.client.table.TablesPanel.PASSWORDED; +import mage.client.dialog.*; import mage.client.util.ButtonColumn; import mage.client.util.GUISizeHelper; import mage.client.util.IgnoreList; import mage.client.util.MageTableRowSorter; import mage.client.util.gui.GuiDisplayUtil; import mage.client.util.gui.TableUtil; -import mage.constants.MatchTimeLimit; -import mage.constants.MultiplayerAttackOption; -import mage.constants.PlayerAction; -import mage.constants.RangeOfInfluence; -import mage.constants.SkillLevel; +import mage.constants.*; import mage.game.match.MatchOptions; +import mage.players.PlayerType; import mage.remote.MageRemoteException; import mage.view.MatchView; import mage.view.RoomUsersView; @@ -103,6 +55,25 @@ import mage.view.TableView; import mage.view.UserRequestMessage; import org.apache.log4j.Logger; +import javax.swing.*; +import javax.swing.table.AbstractTableModel; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.beans.PropertyVetoException; +import java.io.File; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.List; +import java.util.concurrent.CancellationException; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +import static mage.client.dialog.PreferencesDialog.KEY_TABLES_COLUMNS_ORDER; +import static mage.client.dialog.PreferencesDialog.KEY_TABLES_COLUMNS_WIDTH; +import static mage.client.table.TablesPanel.PASSWORDED; + /** * * @author BetaSteward_at_googlemail.com @@ -216,7 +187,7 @@ public class TablesPanel extends javax.swing.JPanel { if (PASSWORDED.equals(pwdColumn)) { joinTableDialog.showDialog(roomId, tableId, true, deckType.startsWith("Limited")); } else { - SessionHandler.joinTournamentTable(roomId, tableId, SessionHandler.getUserName(), "Human", 1, null, ""); + SessionHandler.joinTournamentTable(roomId, tableId, SessionHandler.getUserName(), PlayerType.HUMAN, 1, null, ""); } } else { joinTableDialog.showDialog(roomId, tableId, true, deckType.startsWith("Limited")); @@ -1188,8 +1159,8 @@ public class TablesPanel extends javax.swing.JPanel { } MatchOptions options = new MatchOptions("1", "Two Player Duel", false, 2); - options.getPlayerTypes().add("Human"); - options.getPlayerTypes().add("Computer - mad"); + options.getPlayerTypes().add(PlayerType.HUMAN); + options.getPlayerTypes().add(PlayerType.COMPUTER_MAD); options.setDeckType("Limited"); options.setAttackOption(MultiplayerAttackOption.LEFT); options.setRange(RangeOfInfluence.ALL); @@ -1203,8 +1174,8 @@ public class TablesPanel extends javax.swing.JPanel { options.setBannedUsers(IgnoreList.ignoreList(serverAddress)); table = SessionHandler.createTable(roomId, options); - SessionHandler.joinTable(roomId, table.getTableId(), "Human", "Human", 1, DeckImporterUtil.importDeck("test.dck"), ""); - SessionHandler.joinTable(roomId, table.getTableId(), "Computer", "Computer - mad", 5, DeckImporterUtil.importDeck("test.dck"), ""); + SessionHandler.joinTable(roomId, table.getTableId(), "Human", PlayerType.HUMAN, 1, DeckImporterUtil.importDeck("test.dck"), ""); + SessionHandler.joinTable(roomId, table.getTableId(), "Computer", PlayerType.COMPUTER_MAD, 5, DeckImporterUtil.importDeck("test.dck"), ""); SessionHandler.startMatch(roomId, table.getTableId()); } catch (HeadlessException ex) { handleError(ex); @@ -1450,7 +1421,7 @@ class UpdateTablesTask extends SwingWorker> { if (!tables.isEmpty()) { this.publish(tables); } - Thread.sleep(3000); + TimeUnit.SECONDS.sleep(3); } return null; } @@ -1494,7 +1465,7 @@ class UpdatePlayersTask extends SwingWorker> { protected Void doInBackground() throws Exception { while (!isCancelled()) { this.publish(SessionHandler.getRoomUsers(roomId)); - Thread.sleep(3000); + TimeUnit.SECONDS.sleep(3); } return null; } @@ -1636,7 +1607,7 @@ class UpdateMatchesTask extends SwingWorker> { if (!matches.isEmpty()) { this.publish(matches); } - Thread.sleep(10000); + TimeUnit.SECONDS.sleep(10); } return null; } diff --git a/Mage.Client/src/main/java/mage/client/table/TournamentPlayerPanel.java b/Mage.Client/src/main/java/mage/client/table/TournamentPlayerPanel.java index 91796275a6a..9a6a65d89af 100644 --- a/Mage.Client/src/main/java/mage/client/table/TournamentPlayerPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/TournamentPlayerPanel.java @@ -36,6 +36,7 @@ package mage.client.table; import mage.cards.decks.DeckCardLists; import mage.client.SessionHandler; +import mage.players.PlayerType; import javax.swing.*; import java.util.UUID; @@ -68,8 +69,8 @@ public class TournamentPlayerPanel extends javax.swing.JPanel { roomId, tableId, this.txtPlayerName.getText(), - (String)this.cbPlayerType.getSelectedItem(), - (Integer)spnLevel.getValue(), + (PlayerType) this.cbPlayerType.getSelectedItem(), + (Integer) spnLevel.getValue(), deckCardLists, ""); } diff --git a/Mage.Client/src/main/java/mage/client/tournament/TournamentPane.java b/Mage.Client/src/main/java/mage/client/tournament/TournamentPane.java index fdba69bc2fd..31dd4e681ed 100644 --- a/Mage.Client/src/main/java/mage/client/tournament/TournamentPane.java +++ b/Mage.Client/src/main/java/mage/client/tournament/TournamentPane.java @@ -83,8 +83,8 @@ public class TournamentPane extends MagePane { tournamentPanel = new mage.client.tournament.TournamentPanel(); - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(tournamentPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 758, Short.MAX_VALUE) @@ -94,7 +94,6 @@ public class TournamentPane extends MagePane { .addComponent(tournamentPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 526, Short.MAX_VALUE) ); - pack(); }// //GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables diff --git a/Mage.Client/src/main/java/mage/client/tournament/TournamentPanel.java b/Mage.Client/src/main/java/mage/client/tournament/TournamentPanel.java index 27a93236c37..12367d4384c 100644 --- a/Mage.Client/src/main/java/mage/client/tournament/TournamentPanel.java +++ b/Mage.Client/src/main/java/mage/client/tournament/TournamentPanel.java @@ -44,13 +44,12 @@ import java.util.Optional; import java.util.UUID; import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.Icon; import javax.swing.SwingWorker; import javax.swing.table.AbstractTableModel; - -import mage.cards.o.Opt; import mage.client.MageFrame; import mage.client.SessionHandler; import mage.client.chat.ChatPanelBasic; @@ -730,7 +729,7 @@ class UpdateTournamentTask extends SwingWorker { protected Void doInBackground() throws Exception { while (!isCancelled()) { this.publish(SessionHandler.getTournament(tournamentId)); - Thread.sleep(2000); + TimeUnit.SECONDS.sleep(2); } return null; } diff --git a/Mage.Client/src/main/java/mage/client/util/audio/MusicPlayer.java b/Mage.Client/src/main/java/mage/client/util/audio/MusicPlayer.java index d77d81ef09d..3ce0b81d7ec 100644 --- a/Mage.Client/src/main/java/mage/client/util/audio/MusicPlayer.java +++ b/Mage.Client/src/main/java/mage/client/util/audio/MusicPlayer.java @@ -1,7 +1,8 @@ package mage.client.util.audio; -import java.io.File; import java.awt.List; +import java.io.File; +import java.util.concurrent.TimeUnit; import javax.sound.sampled.*; import mage.client.constants.Constants; import mage.client.dialog.PreferencesDialog; @@ -75,7 +76,7 @@ public class MusicPlayer { player.breaked_out = true; player.breaked = true; try { - Thread.sleep(100); + TimeUnit.MILLISECONDS.sleep(100); } catch (Exception e) { log.error("Thread error: " + e); } @@ -119,7 +120,7 @@ public class MusicPlayer { public void run() { try { - Thread.sleep(100); + TimeUnit.MILLISECONDS.sleep(100); } catch (Exception e) { } while (!stopped) { @@ -130,7 +131,7 @@ public class MusicPlayer { PlayThread.start(); while (!(breaked || breaked_out)) { try { - Thread.sleep(10); + TimeUnit.MILLISECONDS.sleep(10); } catch (Exception e) { log.error("Thread error: " + e); } diff --git a/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java b/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java index 97e2c45741c..83b586d04db 100644 --- a/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java +++ b/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java @@ -3,6 +3,7 @@ package mage.client.util.gui; import java.awt.*; import java.awt.image.BufferedImage; import java.awt.image.ImageObserver; +import java.util.concurrent.TimeUnit; /** * Utility class for creating BufferedImage object from Image instance. @@ -65,7 +66,7 @@ public class BufferedImageBuilder { }); while (!imageLoadStatus.widthDone && !imageLoadStatus.heightDone) { try { - Thread.sleep(300); + TimeUnit.MILLISECONDS.sleep(300); } catch (InterruptedException e) { } @@ -73,8 +74,9 @@ public class BufferedImageBuilder { } static class ImageLoadStatus { + public boolean widthDone = false; public boolean heightDone = false; } -} \ No newline at end of file +} diff --git a/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java b/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java index 4b37032e4c8..310613284d8 100644 --- a/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java +++ b/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java @@ -1,24 +1,8 @@ package mage.client.util.gui; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.GraphicsConfiguration; -import java.awt.Insets; -import java.awt.Point; -import java.awt.Rectangle; -import java.util.ArrayList; -import javax.swing.JButton; -import javax.swing.JLabel; -import javax.swing.SwingConstants; import mage.client.MageFrame; import mage.client.util.GUISizeHelper; -import mage.constants.CardType; -import mage.constants.MageObjectType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.utils.CardUtil; +import mage.constants.*; import mage.view.CardView; import mage.view.CounterView; import mage.view.PermanentView; @@ -26,6 +10,10 @@ import org.jdesktop.swingx.JXPanel; import org.mage.card.arcane.ManaSymbols; import org.mage.card.arcane.UI; +import javax.swing.*; +import java.awt.*; +import java.util.ArrayList; + public final class GuiDisplayUtil { private static final Font cardNameFont = new Font("Calibri", Font.BOLD, 15); @@ -280,9 +268,9 @@ public final class GuiDisplayUtil { buffer.append(""); String pt = ""; - if (CardUtil.isCreature(card)) { + if (card.isCreature()) { pt = card.getPower() + '/' + card.getToughness(); - } else if (CardUtil.isPlaneswalker(card)) { + } else if (card.isPlanesWalker()) { pt = card.getLoyalty(); } @@ -360,8 +348,8 @@ public final class GuiDisplayUtil { private static String getTypes(CardView card) { String types = ""; - for (String superType : card.getSuperTypes()) { - types += superType + ' '; + for (SuperType superType : card.getSuperTypes()) { + types += superType.toString() + ' '; } for (CardType cardType : card.getCardTypes()) { types += cardType.toString() + ' '; diff --git a/Mage.Client/src/main/java/mage/client/util/stats/UpdateMemUsageTask.java b/Mage.Client/src/main/java/mage/client/util/stats/UpdateMemUsageTask.java index cc6907b6145..61b28bda4ed 100644 --- a/Mage.Client/src/main/java/mage/client/util/stats/UpdateMemUsageTask.java +++ b/Mage.Client/src/main/java/mage/client/util/stats/UpdateMemUsageTask.java @@ -3,6 +3,7 @@ package mage.client.util.stats; import java.util.List; import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; import javax.swing.*; import org.apache.log4j.Logger; @@ -29,7 +30,7 @@ public class UpdateMemUsageTask extends SwingWorker { while (!isCancelled()) { float memUsage = MemoryUsageStatUtil.getMemoryFreeStatPercentage(); this.publish(memUsage >= 0 ? memUsage : null); - Thread.sleep(MEM_USAGE_UPDATE_TIME); + TimeUnit.MILLISECONDS.sleep(MEM_USAGE_UPDATE_TIME); } return null; } diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java index fd32e3d393c..4bfa5b1f7dc 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java @@ -1,27 +1,5 @@ package org.mage.card.arcane; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.event.ActionListener; -import java.awt.event.ComponentEvent; -import java.awt.event.ComponentListener; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.awt.event.MouseMotionListener; -import java.awt.event.MouseWheelEvent; -import java.awt.event.MouseWheelListener; -import java.awt.image.BufferedImage; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import javax.swing.ImageIcon; -import javax.swing.JButton; -import javax.swing.JPanel; -import javax.swing.JPopupMenu; import mage.cards.MagePermanent; import mage.cards.TextPopup; import mage.cards.action.ActionCallback; @@ -31,6 +9,7 @@ import mage.client.plugins.impl.Plugins; import mage.client.util.audio.AudioManager; import mage.constants.CardType; import mage.constants.EnlargeMode; +import mage.constants.SuperType; import mage.view.AbilityView; import mage.view.CardView; import mage.view.PermanentView; @@ -38,6 +17,14 @@ import mage.view.StackAbilityView; import org.apache.log4j.Logger; import org.mage.plugins.card.utils.impl.ImageManagerImpl; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +import java.awt.image.BufferedImage; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * Main class for drawing Mage card object. * @@ -680,8 +667,8 @@ public abstract class CardPanel extends MagePermanent implements MouseListener, protected final String getType(CardView card) { StringBuilder sbType = new StringBuilder(); - for (String superType : card.getSuperTypes()) { - sbType.append(superType).append(' '); + for (SuperType superType : card.getSuperTypes()) { + sbType.append(superType.toString()).append(' '); } for (CardType cardType : card.getCardTypes()) { @@ -713,9 +700,9 @@ public abstract class CardPanel extends MagePermanent implements MouseListener, if (card.getColor().hasColor()) { sb.append('\n').append(card.getColor().toString()); } - if (card.getCardTypes().contains(CardType.CREATURE)) { + if (card.isCreature()) { sb.append('\n').append(card.getPower()).append('/').append(card.getToughness()); - } else if (card.getCardTypes().contains(CardType.PLANESWALKER)) { + } else if (card.isPlanesWalker()) { sb.append('\n').append(card.getLoyalty()); } if (card.getRules() == null) { diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java index 5319493b3db..01c7a6db234 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java @@ -9,7 +9,6 @@ import mage.client.util.ImageHelper; import mage.components.ImagePanel; import mage.components.ImagePanelStyle; import mage.constants.AbilityType; -import mage.utils.CardUtil; import mage.view.CardView; import mage.view.CounterView; import mage.view.PermanentView; @@ -232,9 +231,9 @@ public class CardPanelComponentImpl extends CardPanel { // PT Text ptText = new GlowText(); - if (CardUtil.isCreature(gameCard)) { + if (gameCard.isCreature()) { ptText.setText(gameCard.getPower() + '/' + gameCard.getToughness()); - } else if (CardUtil.isPlaneswalker(gameCard)) { + } else if (gameCard.isPlanesWalker()) { ptText.setText(gameCard.getLoyalty()); } // ptText.setFont(getFont().deriveFont(Font.BOLD, fontSize)); @@ -424,7 +423,7 @@ public class CardPanelComponentImpl extends CardPanel { imagePanel.setLocation(cardXOffset + borderSize, cardYOffset + borderSize); imagePanel.setSize(cardWidth - borderSize * 2, cardHeight - borderSize * 2); - if (hasSickness() && CardUtil.isCreature(gameCard) && isPermanent()) { + if (hasSickness() && gameCard.isCreature() && isPermanent()) { overlayPanel.setLocation(cardXOffset + borderSize, cardYOffset + borderSize); overlayPanel.setSize(cardWidth - borderSize * 2, cardHeight - borderSize * 2); } else { @@ -571,11 +570,11 @@ public class CardPanelComponentImpl extends CardPanel { super.update(card); // Update card text - if (CardUtil.isCreature(card) && CardUtil.isPlaneswalker(card)) { + if (card.isCreature() && card.isPlanesWalker()) { ptText.setText(card.getPower() + '/' + card.getToughness() + " (" + card.getLoyalty() + ')'); - } else if (CardUtil.isCreature(card)) { + } else if (card.isCreature()) { ptText.setText(card.getPower() + '/' + card.getToughness()); - } else if (CardUtil.isPlaneswalker(card)) { + } else if (card.isPlanesWalker()) { ptText.setText(card.getLoyalty()); } else { ptText.setText(""); @@ -583,7 +582,7 @@ public class CardPanelComponentImpl extends CardPanel { setText(card); // Summoning Sickness overlay - if (hasSickness() && CardUtil.isCreature(gameCard) && isPermanent()) { + if (hasSickness() && card.isCreature() && isPermanent()) { overlayPanel.setVisible(true); } else { overlayPanel.setVisible(false); diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java index a5ff85e3b2a..11912aade90 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java @@ -3,6 +3,7 @@ package org.mage.card.arcane; import com.google.common.collect.MapMaker; import mage.cards.action.ActionCallback; import mage.constants.CardType; +import mage.constants.SuperType; import mage.view.CardView; import mage.view.CounterView; import mage.view.PermanentView; @@ -157,7 +158,7 @@ public class CardPanelRenderImpl extends CardPanel { for (CardType type : this.view.getCardTypes()) { sb.append((char) type.ordinal()); } - for (String s : this.view.getSuperTypes()) { + for (SuperType s : this.view.getSuperTypes()) { sb.append(s); } for (String s : this.view.getSubTypes()) { @@ -216,12 +217,16 @@ public class CardPanelRenderImpl extends CardPanel { } } + // Map of generated images private final static Map IMAGE_CACHE = new MapMaker().softValues().makeMap(); // The art image for the card, loaded in from the disk private BufferedImage artImage; + // Factory to generate card appropriate views + private CardRendererFactory cardRendererFactory = new CardRendererFactory(); + // The rendered card image, with or without the art image loaded yet // = null while invalid private BufferedImage cardImage; @@ -232,7 +237,7 @@ public class CardPanelRenderImpl extends CardPanel { super(newGameCard, gameId, loadImage, callback, foil, dimension); // Renderer - cardRenderer = new ModernCardRenderer(gameCard, isTransformed()); + cardRenderer = cardRendererFactory.create(gameCard, isTransformed()); // Draw the parts initialDraw(); @@ -268,6 +273,10 @@ public class CardPanelRenderImpl extends CardPanel { g.drawImage(cardImage, getCardXOffset(), getCardYOffset(), null); } + /** + * Create an appropriate card renderer for the + */ + /** * Render the card to a new BufferedImage at it's current dimensions * @@ -358,7 +367,7 @@ public class CardPanelRenderImpl extends CardPanel { // Update renderer cardImage = null; - cardRenderer = new ModernCardRenderer(gameCard, isTransformed()); + cardRenderer = cardRendererFactory.create(gameCard, isTransformed()); cardRenderer.setArtImage(artImage); // Repaint diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java index 477e27bbb7c..1f175411889 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java @@ -5,23 +5,22 @@ */ package org.mage.card.arcane; -import java.awt.BasicStroke; -import java.awt.Color; -import java.awt.Font; -import java.awt.Graphics2D; -import java.awt.Image; -import java.awt.Paint; -import java.awt.Polygon; -import java.awt.image.BufferedImage; -import java.util.ArrayList; +import mage.cards.ArtRect; import mage.client.dialog.PreferencesDialog; import mage.constants.AbilityType; import mage.constants.CardType; -import mage.utils.CardUtil; +import mage.constants.SuperType; import mage.view.CardView; import mage.view.CounterView; import mage.view.PermanentView; +import java.awt.*; +import java.awt.geom.Rectangle2D; +import java.awt.image.BufferedImage; +import java.awt.image.RasterFormatException; +import java.util.ArrayList; +import java.util.List; + /** * @author stravant@gmail.com * @@ -125,20 +124,29 @@ public abstract class CardRenderer { this.cardView = card; this.isTransformed = isTransformed; + if (card.getArtRect() == ArtRect.SPLIT_FUSED) { + parseRules(card.getLeftSplitRules(), textboxKeywords, textboxRules); + parseRules(card.getRightSplitRules(), textboxKeywords, textboxRules); + } else { + parseRules(card.getRules(), textboxKeywords, textboxRules); + } + } + + protected void parseRules(List stringRules, ArrayList keywords, ArrayList rules) { // Translate the textbox text - for (String rule : card.getRules()) { + for (String rule : stringRules) { // Kill reminder text if (PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CARD_RENDERING_REMINDER_TEXT, "false").equals("false")) { rule = CardRendererUtils.killReminderText(rule).trim(); } if (!rule.isEmpty()) { - TextboxRule tbRule = TextboxRuleParser.parse(card, rule); + TextboxRule tbRule = TextboxRuleParser.parse(cardView, rule); if (tbRule.type == TextboxRuleType.SIMPLE_KEYWORD) { - textboxKeywords.add(tbRule); + keywords.add(tbRule); } else if (tbRule.text.isEmpty()) { // Nothing to do, rule is empty } else { - textboxRules.add(tbRule); + rules.add(tbRule); } } } @@ -227,7 +235,7 @@ public abstract class CardRenderer { // Draw summoning sickness overlay, and possibly other overlays protected void drawOverlays(Graphics2D g) { - if (CardUtil.isCreature(cardView) && cardView instanceof PermanentView) { + if (cardView.isCreature() && cardView instanceof PermanentView) { if (((PermanentView) cardView).hasSummoningSickness()) { int x1 = (int) (0.2 * cardWidth); int x2 = (int) (0.8 * cardWidth); @@ -258,6 +266,39 @@ public abstract class CardRenderer { } } + protected void drawArtIntoRect(Graphics2D g, int x, int y, int w, int h, Rectangle2D artRect, boolean shouldPreserveAspect) { + // Perform a process to make sure that the art is scaled uniformly to fill the frame, cutting + // off the minimum amount necessary to make it completely fill the frame without "squashing" it. + double fullCardImgWidth = artImage.getWidth(); + double fullCardImgHeight = artImage.getHeight(); + double artWidth = artRect.getWidth() * fullCardImgWidth; + double artHeight = artRect.getHeight() * fullCardImgHeight; + double targetWidth = w; + double targetHeight = h; + double targetAspect = targetWidth / targetHeight; + if (!shouldPreserveAspect) { + // No adjustment to art + } else if (targetAspect * artHeight < artWidth) { + // Trim off some width + artWidth = targetAspect * artHeight; + } else { + // Trim off some height + artHeight = artWidth / targetAspect; + } + try { + BufferedImage subImg + = artImage.getSubimage( + (int) (artRect.getX() * fullCardImgWidth), (int) (artRect.getY() * fullCardImgHeight), + (int) artWidth, (int) artHeight); + g.drawImage(subImg, + x, y, + (int) targetWidth, (int) targetHeight, + null); + } catch (RasterFormatException e) { + // At very small card sizes we may encounter a problem with rounding error making the rect not fit + } + } + // Draw +1/+1 and other counters protected void drawCounters(Graphics2D g) { int xPos = (int) (0.65 * cardWidth); @@ -379,7 +420,7 @@ public abstract class CardRenderer { } } else { StringBuilder sbType = new StringBuilder(); - for (String superType : cardView.getSuperTypes()) { + for (SuperType superType : cardView.getSuperTypes()) { sbType.append(superType).append(' '); } for (CardType cardType : cardView.getCardTypes()) { diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererFactory.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererFactory.java new file mode 100644 index 00000000000..39ba0670aab --- /dev/null +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererFactory.java @@ -0,0 +1,23 @@ +package org.mage.card.arcane; + +import mage.cards.ArtRect; +import mage.view.CardView; + +/** + * Created by StravantUser on 2017-03-30. + */ +public class CardRendererFactory { + public CardRendererFactory() { + + } + + public CardRenderer create(CardView card, boolean isTransformed) { + if (card.isSplitCard() && card.getArtRect() != ArtRect.SPLIT_FUSED) { + // Split fused cards still render with the normal frame, showing all abilities + // from both halves in one frame. + return new ModernSplitCardRenderer(card, isTransformed); + } else { + return new ModernCardRenderer(card, isTransformed); + } + } +} diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererUtils.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererUtils.java index e5b6242dd53..89a6a5d173a 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererUtils.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererUtils.java @@ -57,7 +57,7 @@ public final class CardRendererUtils { // Draw a rounded box with a 2-pixel border // Used on various card parts. - public static void drawRoundedBox(Graphics2D g, int x, int y, int w, int h, int bevel, Paint border, Color fill) { + public static void drawRoundedBox(Graphics2D g, int x, int y, int w, int h, int bevel, Paint border, Paint fill) { g.setColor(new Color(0, 0, 0, 150)); g.drawOval(x - 1, y - 1, bevel * 2, h); g.setPaint(border); @@ -67,7 +67,7 @@ public final class CardRendererUtils { g.drawOval(x + 1 + w - bevel * 2, y + 1, bevel * 2 - 3, h - 3); g.drawRect(x + bevel, y, w - 2 * bevel, h - 1); g.drawRect(x + 1 + bevel, y + 1, w - 2 * bevel - 2, h - 3); - g.setColor(fill); + g.setPaint(fill); g.fillOval(x + 2, y + 2, bevel * 2 - 4, h - 4); g.fillOval(x + 2 + w - bevel * 2, y + 2, bevel * 2 - 4, h - 4); g.fillRect(x + bevel, y + 2, w - 2 * bevel, h - 4); diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java b/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java index fd843418975..740e4d73c28 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java @@ -6,9 +6,11 @@ package org.mage.card.arcane; import mage.ObjectColor; +import mage.cards.ArtRect; import mage.cards.FrameStyle; import mage.client.dialog.PreferencesDialog; import mage.constants.CardType; +import mage.constants.MageObjectType; import mage.view.CardView; import mage.view.PermanentView; import org.apache.log4j.Logger; @@ -18,8 +20,8 @@ import java.awt.*; import java.awt.font.*; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; -import java.awt.image.RasterFormatException; import java.io.IOException; +import java.io.InputStream; import java.net.URL; import java.text.AttributedCharacterIterator; import java.text.AttributedString; @@ -73,10 +75,9 @@ public class ModernCardRenderer extends CardRenderer { } private static Font loadFont(String name) { - try { + try(InputStream in = ModernCardRenderer.class.getResourceAsStream("/cardrender/" + name + ".ttf")) { return Font.createFont( - Font.TRUETYPE_FONT, - ModernCardRenderer.class.getResourceAsStream("/cardrender/" + name + ".ttf")); + Font.TRUETYPE_FONT,in); } catch (IOException e) { LOGGER.info("Failed to load font `" + name + "`, couldn't find resource."); } catch (FontFormatException e) { @@ -311,7 +312,7 @@ public class ModernCardRenderer extends CardRenderer { } else if (cardView.getFrameStyle().isFullArt() || (cardView.isToken())) { rect = new Rectangle2D.Float(.079f, .11f, .84f, .63f); } else { - rect = new Rectangle2D.Float(.079f, .11f, .84f, .42f); + rect = ArtRect.NORMAL.rect; } return rect; } @@ -346,45 +347,42 @@ public class ModernCardRenderer extends CardRenderer { @Override protected void drawArt(Graphics2D g) { if (artImage != null && !cardView.isFaceDown()) { - Rectangle2D artRect = getArtRect(); - - // Perform a process to make sure that the art is scaled uniformly to fill the frame, cutting - // off the minimum amount necessary to make it completely fill the frame without "squashing" it. - double fullCardImgWidth = artImage.getWidth(); - double fullCardImgHeight = artImage.getHeight(); - double artWidth = artRect.getWidth() * fullCardImgWidth; - double artHeight = artRect.getHeight() * fullCardImgHeight; - double targetWidth = contentWidth - 2; - double targetHeight = typeLineY - totalContentInset - boxHeight; - double targetAspect = targetWidth / targetHeight; + // Invention rendering, art fills the entire frame if (useInventionFrame()) { - // No adjustment to art - } else if (targetAspect * artHeight < artWidth) { - // Trim off some width - artWidth = targetAspect * artHeight; - } else { - // Trim off some height - artHeight = artWidth / targetAspect; + drawArtIntoRect(g, + borderWidth, borderWidth, + cardWidth - 2*borderWidth, cardHeight - 2*borderWidth, + getArtRect(), false); } - try { - BufferedImage subImg - = artImage.getSubimage( - (int) (artRect.getX() * fullCardImgWidth), (int) (artRect.getY() * fullCardImgHeight), - (int) artWidth, (int) artHeight); - if (useInventionFrame()) { - g.drawImage(subImg, - borderWidth, borderWidth, - cardWidth - 2 * borderWidth, cardHeight - 2 * borderWidth, - null); - } else { - g.drawImage(subImg, + + boolean shouldPreserveAspect = true; + Rectangle2D sourceRect = getArtRect(); + + if (cardView.getMageObjectType() == MageObjectType.SPELL) { + ArtRect rect = cardView.getArtRect(); + if (rect == ArtRect.SPLIT_FUSED) { + // Special handling for fused, draw the art from both halves stacked on top of one and other + // each filling half of the art rect + drawArtIntoRect(g, totalContentInset + 1, totalContentInset + boxHeight, - (int) targetWidth, (int) targetHeight, - null); + contentWidth - 2, (typeLineY - totalContentInset - boxHeight)/2, + ArtRect.SPLIT_LEFT.rect, useInventionFrame()); + drawArtIntoRect(g, + totalContentInset + 1, totalContentInset + boxHeight + (typeLineY - totalContentInset - boxHeight)/2, + contentWidth - 2, (typeLineY - totalContentInset - boxHeight)/2, + ArtRect.SPLIT_RIGHT.rect, useInventionFrame()); + return; + } else if (rect != ArtRect.NORMAL) { + sourceRect = rect.rect; + shouldPreserveAspect = false; } - } catch (RasterFormatException e) { - // At very small card sizes we may encounter a problem with rounding error making the rect not fit } + + // Normal drawing of art from a source part of the card frame into the rect + drawArtIntoRect(g, + totalContentInset + 1, totalContentInset + boxHeight, + contentWidth - 2, typeLineY - totalContentInset - boxHeight, + sourceRect, shouldPreserveAspect); } } @@ -427,7 +425,7 @@ public class ModernCardRenderer extends CardRenderer { contentWidth - 2, cardHeight - borderWidth * 3 - typeLineY - 1); // If it's a planeswalker, extend the textbox left border by some - if (cardView.getCardTypes().contains(CardType.PLANESWALKER)) { + if (cardView.isPlanesWalker()) { g.setPaint(borderPaint); g.fillRect( totalContentInset, typeLineY + boxHeight, @@ -478,17 +476,17 @@ public class ModernCardRenderer extends CardRenderer { int nameOffset = drawTransformationCircle(g, borderPaint); // Draw the name line - drawNameLine(g, + drawNameLine(g, cardView.getDisplayName(), manaCostString, totalContentInset + nameOffset, totalContentInset, contentWidth - nameOffset, boxHeight); // Draw the type line - drawTypeLine(g, + drawTypeLine(g, getCardTypeLine(), totalContentInset, typeLineY, contentWidth, boxHeight); // Draw the textbox rules - drawRulesText(g, + drawRulesText(g, textboxKeywords, textboxRules, totalContentInset + 2, typeLineY + boxHeight + 2, contentWidth - 4, cardHeight - typeLineY - boxHeight - 4 - borderWidth * 3); @@ -497,13 +495,13 @@ public class ModernCardRenderer extends CardRenderer { } // Draw the name line - protected void drawNameLine(Graphics2D g, int x, int y, int w, int h) { + protected void drawNameLine(Graphics2D g, String baseName, String manaCost, int x, int y, int w, int h) { // Width of the mana symbols int manaCostWidth; if (cardView.isAbility()) { manaCostWidth = 0; } else { - manaCostWidth = CardRendererUtils.getManaCostWidth(manaCostString, boxTextHeight); + manaCostWidth = CardRendererUtils.getManaCostWidth(manaCost, boxTextHeight); } // Available width for name. Add a little bit of slop so that one character @@ -519,7 +517,7 @@ public class ModernCardRenderer extends CardRenderer { nameStr = "Morph: " + cardView.getName(); } } else { - nameStr = cardView.getName(); + nameStr = baseName; } if (!nameStr.isEmpty()) { AttributedString str = new AttributedString(nameStr); @@ -541,12 +539,12 @@ public class ModernCardRenderer extends CardRenderer { // Draw the mana symbols if (!cardView.isAbility() && !cardView.isFaceDown()) { - ManaSymbols.draw(g, manaCostString, x + w - manaCostWidth, y + boxTextOffset, boxTextHeight); + ManaSymbols.draw(g, manaCost, x + w - manaCostWidth, y + boxTextOffset, boxTextHeight); } } // Draw the type line (color indicator, types, and expansion symbol) - protected void drawTypeLine(Graphics2D g, int x, int y, int w, int h) { + protected void drawTypeLine(Graphics2D g, String baseTypeLine, int x, int y, int w, int h) { // Draw expansion symbol int expansionSymbolWidth; if (PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CARD_RENDERING_SET_SYMBOL, "false").equals("false")) { @@ -561,7 +559,7 @@ public class ModernCardRenderer extends CardRenderer { // Draw type line text int availableWidth = w - expansionSymbolWidth + 1; - String types = getCardTypeLine(); + String types = baseTypeLine; g.setFont(boxTextFont); // Replace "Legendary" in type line if there's not enough space @@ -583,7 +581,7 @@ public class ModernCardRenderer extends CardRenderer { if (breakIndex > 0) { TextLayout layout = measure.getLayout(0, breakIndex); g.setColor(getBoxTextColor()); - layout.draw(g, x, y + boxTextOffset + boxTextHeight - 1); + layout.draw(g, x, y + (h - boxTextHeight) / 2 + boxTextHeight - 1); } } } @@ -603,7 +601,7 @@ public class ModernCardRenderer extends CardRenderer { // Is it a creature? boolean isVehicle = cardView.getSubTypes().contains("Vehicle"); - if (cardView.getCardTypes().contains(CardType.CREATURE) || isVehicle) { + if (cardView.isCreature() || isVehicle) { int x = cardWidth - borderWidth - partWidth; // Draw PT box @@ -623,7 +621,7 @@ public class ModernCardRenderer extends CardRenderer { // Draw text Color textColor; if (isVehicle) { - boolean isAnimated = !(cardView instanceof PermanentView) || cardView.getCardTypes().contains(CardType.CREATURE); + boolean isAnimated = !(cardView instanceof PermanentView) || cardView.isCreature(); if (isAnimated) { textColor = Color.white; } else { @@ -646,7 +644,7 @@ public class ModernCardRenderer extends CardRenderer { // Is it a walker? (But don't draw the box if it's a non-permanent view // of a walker without a starting loyalty (EG: Arlin Kord's flipped side). - if (cardView.getCardTypes().contains(CardType.PLANESWALKER) + if (cardView.isPlanesWalker() && (cardView instanceof PermanentView || !cardView.getStartingLoyalty().equals("0"))) { // Draw the PW loyalty box int w = partWidth; @@ -760,19 +758,19 @@ public class ModernCardRenderer extends CardRenderer { return layout; } - protected void drawRulesText(Graphics2D g, int x, int y, int w, int h) { + protected void drawRulesText(Graphics2D g, ArrayList keywords, ArrayList rules, int x, int y, int w, int h) { // Gather all rules to render - List allRules = new ArrayList<>(textboxRules); + List allRules = new ArrayList<>(rules); // Add the keyword rule if there are any keywords - if (!textboxKeywords.isEmpty()) { - String keywordRulesString = getKeywordRulesString(); + if (!keywords.isEmpty()) { + String keywordRulesString = getKeywordRulesString(keywords); TextboxRule keywordsRule = new TextboxRule(keywordRulesString, new ArrayList<>()); allRules.add(0, keywordsRule); } // Basic mana draw mana symbol in textbox (for basic lands) - if (allRules.size() == 1 && (allRules.get(0) instanceof TextboxBasicManaRule) && cardView.getCardTypes().contains(CardType.LAND)) { + if (allRules.size() == 1 && (allRules.get(0) instanceof TextboxBasicManaRule) && cardView.isLand()) { drawBasicManaTextbox(g, x, y, w, h, ((TextboxBasicManaRule) allRules.get(0)).getBasicManaSymbol()); return; } @@ -828,11 +826,11 @@ public class ModernCardRenderer extends CardRenderer { } // Get the first line of the textbox, the keyword string - private String getKeywordRulesString() { + private static String getKeywordRulesString(ArrayList keywords) { StringBuilder builder = new StringBuilder(); - for (int i = 0; i < textboxKeywords.size(); ++i) { - builder.append(textboxKeywords.get(i).text); - if (i != textboxKeywords.size() - 1) { + for (int i = 0; i < keywords.size(); ++i) { + builder.append(keywords.get(i).text); + if (i != keywords.size() - 1) { builder.append(", "); } } diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/ModernSplitCardRenderer.java b/Mage.Client/src/main/java/org/mage/card/arcane/ModernSplitCardRenderer.java new file mode 100644 index 00000000000..98d01254c6d --- /dev/null +++ b/Mage.Client/src/main/java/org/mage/card/arcane/ModernSplitCardRenderer.java @@ -0,0 +1,326 @@ +package org.mage.card.arcane; + +import mage.ObjectColor; +import mage.abilities.costs.mana.ManaCosts; +import mage.cards.ArtRect; +import mage.constants.CardType; +import mage.view.CardView; + +import java.awt.*; +import java.awt.geom.Rectangle2D; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by StravantUser on 2017-03-30. + */ +public class ModernSplitCardRenderer extends ModernCardRenderer { + + private class HalfCardProps { + int x, y, w, h, cw, ch; + + String name; + String typeLineString; + String manaCostString; + ObjectColor color; + ArrayList rules = new ArrayList<>(); + ArrayList keywords = new ArrayList<>(); + } + + private static ArrayList ONLY_LAND_TYPE = new ArrayList() {{add(CardType.LAND);}}; + + // Right and left halves of the card content + private HalfCardProps rightHalf = new HalfCardProps(); + private HalfCardProps leftHalf = new HalfCardProps(); + + // Where and how big is the divider between the card halves + private int dividerAt; + private int dividerSize; + + // Is fuse / aftermath + private boolean isFuse = false; + private boolean isAftermath = false; + + public ModernSplitCardRenderer(CardView view, boolean isTransformed) { + super(view, isTransformed); + + rightHalf.manaCostString = ManaSymbols.getStringManaCost(cardView.getRightSplitCosts().getSymbols()); + leftHalf.manaCostString = ManaSymbols.getStringManaCost(cardView.getLeftSplitCosts().getSymbols()); + + rightHalf.color = getColorFromManaCostHack(cardView.getRightSplitCosts()); + leftHalf.color = getColorFromManaCostHack(cardView.getLeftSplitCosts()); + + parseRules(view.getRightSplitRules(), rightHalf.keywords, rightHalf.rules); + parseRules(view.getLeftSplitRules(), leftHalf.keywords, leftHalf.rules); + + rightHalf.typeLineString = cardView.getRightSplitTypeLine(); + leftHalf.typeLineString = cardView.getLeftSplitTypeLine(); + + rightHalf.name = cardView.getRightSplitName(); + leftHalf.name = cardView.getLeftSplitName(); + + isFuse = view.getRules().stream().anyMatch(rule -> rule.contains("Fuse")); + isAftermath = view.getRightSplitRules().stream().anyMatch(rule -> rule.contains("Aftermath")); + + // It's easier for rendering to swap the card halves here because for aftermath cards + // they "rotate" in opposite directions making consquence and normal split cards + // have the "right" vs "left" as the top half. + if (!isAftermath()) { + HalfCardProps tmp = leftHalf; + leftHalf = rightHalf; + rightHalf = tmp; + } + } + + private boolean isAftermath() { + return isAftermath; + } + + private boolean isFuse() { + return isFuse; + } + + @Override + protected void layout(int cardWidth, int cardHeight) { + // Pass to parent + super.layout(cardWidth, cardHeight); + + // Decide size of divider + if (isAftermath()) { + dividerSize = borderWidth; + dividerAt = (int)(cardHeight*0.54); + } else { + int availHeight = cardHeight - totalContentInset - 3*borderWidth; + dividerSize = borderWidth*2; + dividerAt = (int)(totalContentInset + availHeight * 0.5 - borderWidth); + } + + // Decide size of each halves box + rightHalf.x = leftHalf.x = totalContentInset; + rightHalf.w = leftHalf.w = cardWidth - 2*totalContentInset; + leftHalf.y = totalContentInset; + leftHalf.h = dividerAt - totalContentInset; + rightHalf.y = dividerAt + dividerSize; + rightHalf.h = cardHeight - rightHalf.y - borderWidth*3; + + // Content width / height (Exchanged from width / height if the card part is rotated) + if (isAftermath()) { + leftHalf.cw = leftHalf.w; + leftHalf.ch = leftHalf.h; + } else { + leftHalf.cw = leftHalf.h; + leftHalf.ch = leftHalf.w; + } + rightHalf.cw = rightHalf.h; + rightHalf.ch = rightHalf.w; + + // Fuse space + if (isFuse()) { + rightHalf.ch -= boxHeight; + leftHalf.ch -= boxHeight; + } + } + + // Ugly hack used here because the card database doesn't actually store color + // for each half of split cards separately. + private ObjectColor getColorFromManaCostHack(ManaCosts costs) { + ObjectColor c = new ObjectColor(); + List symbols = costs.getSymbols(); + for (String symbol: symbols) { + if (symbol.contains("W")) { + c.setWhite(true); + } else if (symbol.contains("U")) { + c.setBlue(true); + } else if (symbol.contains("B")) { + c.setBlack(true); + } else if (symbol.contains("R")) { + c.setRed(true); + } else if (symbol.contains("G")) { + c.setGreen(true); + } + } + return c; + } + + @Override + protected void drawBackground(Graphics2D g) { + if (cardView.isFaceDown()) { + drawCardBack(g); + } else { + { // Left half background (top of the card) + // Set texture to paint the left with + g.setPaint(getBackgroundPaint(leftHalf.color, cardView.getCardTypes(), cardView.getSubTypes())); + + // Draw main part (most of card) + g.fillRoundRect( + borderWidth, borderWidth, + cardWidth - 2*borderWidth, leftHalf.h + contentInset - borderWidth - 2*cornerRadius + (cornerRadius - 1), + cornerRadius - 1, cornerRadius - 1); + + // Draw the M15 rounded "swoosh" at the bottom + g.fillRoundRect( + borderWidth, dividerAt - borderWidth - 4*cornerRadius, + cardWidth - 2*borderWidth, cornerRadius * 4, + cornerRadius * 2, cornerRadius * 2); + + // Draw the cutout into the "swoosh" for the textbox to lie over + g.fillRect( + borderWidth + contentInset, dividerAt - 2*borderWidth, + cardWidth - borderWidth * 2 - contentInset * 2, borderWidth * 2); + } + + { // Right half background (bottom half of the card) + // Set texture to paint the right with + g.setPaint(getBackgroundPaint(rightHalf.color, cardView.getCardTypes(), cardView.getSubTypes())); + + // Draw the M15 rounded "swoosh"es at the top and bottom + g.fillRoundRect( + borderWidth, dividerAt + dividerSize + borderWidth, + cardWidth - 2*borderWidth, rightHalf.h - 2*borderWidth, + cornerRadius*2, cornerRadius*2); + + // Draw the cutout into the "swoosh" for the textbox to lie over + g.fillRect( + borderWidth + contentInset, dividerAt + dividerSize, + cardWidth - borderWidth * 2 - contentInset * 2, rightHalf.h); + } + } + } + + @Override + protected void drawArt(Graphics2D g) { + if (artImage != null && !cardView.isFaceDown()) { + if (isAftermath()) { + Rectangle2D topRect = ArtRect.AFTERMATH_TOP.rect; + int topLineY = (int) (leftHalf.ch * TYPE_LINE_Y_FRAC); + drawArtIntoRect(g, + leftHalf.x, leftHalf.y + boxHeight, leftHalf.cw, topLineY - boxHeight, + topRect, false); + + Rectangle2D bottomRect = ArtRect.AFTERMATH_BOTTOM.rect; + int bottomLineY = (rightHalf.ch - boxHeight) / 2; + drawArtIntoRect(g, + rightHalf.x + rightHalf.w - bottomLineY, rightHalf.y, bottomLineY - boxHeight, rightHalf.h, + bottomRect, false); + + } else { + // NOTE: Art rects are reversed here, that is on purpose because we swap the left / right half + // of split cards for rendering for consistency between aftermath and normal split + Rectangle2D topRect = ArtRect.SPLIT_RIGHT.rect; + int topLineY = (int) (leftHalf.ch * TYPE_LINE_Y_FRAC); + drawArtIntoRect(g, + leftHalf.x + boxHeight, leftHalf.y, topLineY - boxHeight, leftHalf.h, + topRect, false); + + Rectangle2D bottomRect = ArtRect.SPLIT_LEFT.rect; + int bottomLineY = (int) (rightHalf.ch * TYPE_LINE_Y_FRAC); + drawArtIntoRect(g, + rightHalf.x + boxHeight, rightHalf.y, bottomLineY - boxHeight, rightHalf.h, + bottomRect, false); + } + } + } + + protected void drawSplitHalfFrame(Graphics2D g, HalfCardProps half, int typeLineY) { + // Get the border paint + Color boxColor = getBoxColor(half.color, cardView.getCardTypes(), isTransformed); + Paint textboxPaint = getTextboxPaint(half.color, cardView.getCardTypes(), cardWidth); + Paint borderPaint = getBorderPaint(half.color, cardView.getCardTypes(), cardWidth); + + // Draw main frame + g.setPaint(borderPaint); + g.drawRect( + 0, 0, + half.cw - 1, half.ch - 1); + + // Background of textbox + g.setPaint(textboxPaint); + g.fillRect( + 1, typeLineY, + half.cw - 2, half.ch - typeLineY - 1); + + // Draw the name line box + CardRendererUtils.drawRoundedBox(g, + -borderWidth, 0, + half.cw + 2 * borderWidth, boxHeight, + contentInset, + borderPaint, boxColor); + + // Draw the type line box + CardRendererUtils.drawRoundedBox(g, + -borderWidth, typeLineY, + half.cw + 2 * borderWidth, boxHeight - 4, + contentInset, + borderPaint, boxColor); + + // Draw the name line + drawNameLine(g, half.name, half.manaCostString, + 0, 0, + half.cw, boxHeight); + + // Draw the type line + drawTypeLine(g, half.typeLineString, + 0, typeLineY, + half.cw, boxHeight - 4); + + // Draw the textbox rules + drawRulesText(g, half.keywords, half.rules, + 2, typeLineY + boxHeight + 2 - 4, + half.cw - 4, half.ch - typeLineY - boxHeight); + } + + private Graphics2D getUnmodifiedHalfContext(Graphics2D g) { + Graphics2D g2 = (Graphics2D)g.create(); + g2.translate(leftHalf.x, leftHalf.y); + return g2; + } + + private Graphics2D getAftermathHalfContext(Graphics2D g) { + Graphics2D g2 = (Graphics2D)g.create(); + g2.translate(rightHalf.x, rightHalf.y); + g2.rotate(Math.PI / 2); + g2.translate(0, -rightHalf.w); + return g2; + } + + private Graphics2D getLeftHalfContext(Graphics2D g) { + Graphics2D g2 = (Graphics2D)g.create(); + g2.translate(leftHalf.x, leftHalf.y); + g2.rotate(-Math.PI / 2); + g2.translate(-leftHalf.cw, 0); + return g2; + } + + private Graphics2D getRightHalfContext(Graphics2D g) { + Graphics2D g2 = (Graphics2D)g.create(); + g2.translate(rightHalf.x, rightHalf.y); + g2.rotate(-Math.PI / 2); + g2.translate(-rightHalf.cw, 0); + return g2; + } + + @Override + protected void drawFrame(Graphics2D g) { + if (isAftermath()) { + drawSplitHalfFrame(getUnmodifiedHalfContext(g), leftHalf, (int)(leftHalf.ch * TYPE_LINE_Y_FRAC)); + drawSplitHalfFrame(getAftermathHalfContext(g), rightHalf, (rightHalf.ch - boxHeight) / 2); + } else { + drawSplitHalfFrame(getLeftHalfContext(g), leftHalf, (int)(leftHalf.ch * TYPE_LINE_Y_FRAC)); + drawSplitHalfFrame(getRightHalfContext(g), rightHalf, (int)(rightHalf.ch * TYPE_LINE_Y_FRAC)); + if (isFuse()) { + Graphics2D g2 = getRightHalfContext(g); + int totalFuseBoxWidth = rightHalf.cw * 2 + 2 * borderWidth + dividerSize; + Paint boxColor = getTextboxPaint(cardView.getColor(), ONLY_LAND_TYPE, totalFuseBoxWidth); + Paint borderPaint = getBorderPaint(cardView.getColor(), ONLY_LAND_TYPE, totalFuseBoxWidth); + CardRendererUtils.drawRoundedBox(g2, + -borderWidth, rightHalf.ch, + totalFuseBoxWidth, boxHeight, + contentInset, + borderPaint, boxColor); + drawNameLine(g2, "Fuse (You may cast both halves from your hand)", "", + 0, rightHalf.ch, + totalFuseBoxWidth - 2*borderWidth, boxHeight); + } + } + } +} diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRule.java b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRule.java index 093f5418462..9dafbcb32bd 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRule.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRule.java @@ -74,6 +74,9 @@ public class TextboxRule { private final List regions; protected TextboxRule(String text, List regions, TextboxRuleType type) { + if (text.isEmpty()) { + throw new IllegalArgumentException("Empty rule"); + } this.text = text; this.type = type; this.regions = regions; diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRuleParser.java b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRuleParser.java index 63c91b1490c..004ed7c7843 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRuleParser.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRuleParser.java @@ -13,6 +13,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import mage.view.CardView; import org.apache.log4j.Logger; +import org.apache.log4j.jmx.LoggerDynamicMBean; /** * diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/Util.java b/Mage.Client/src/main/java/org/mage/card/arcane/Util.java index 87d91920447..2c02a2d0c44 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/Util.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/Util.java @@ -11,20 +11,21 @@ import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; - import javax.swing.SwingUtilities; -@SuppressWarnings({ "rawtypes", "unchecked" }) +@SuppressWarnings({"rawtypes", "unchecked"}) public final class Util { + public static final boolean isMac = System.getProperty("os.name").toLowerCase().contains("mac"); public static final boolean isWindows = !System.getProperty("os.name").toLowerCase().contains("windows"); public static final ThreadPoolExecutor threadPool; static private int threadCount; + static { threadPool = new ThreadPoolExecutor(4, 4, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(), new ThreadFactory() { @Override - public Thread newThread (Runnable runnable) { + public Thread newThread(Runnable runnable) { threadCount++; Thread thread = new Thread(runnable, "Util" + threadCount); thread.setDaemon(true); @@ -34,14 +35,14 @@ public final class Util { threadPool.prestartAllCoreThreads(); } - public static void broadcast (byte[] data, int port) throws IOException { + public static void broadcast(byte[] data, int port) throws IOException { DatagramSocket socket = new DatagramSocket(); broadcast(socket, data, port, NetworkInterface.getNetworkInterfaces()); socket.close(); } - private static void broadcast (DatagramSocket socket, byte[] data, int port, Enumeration ifaces) - throws IOException { + private static void broadcast(DatagramSocket socket, byte[] data, int port, Enumeration ifaces) + throws IOException { for (NetworkInterface iface : Collections.list(ifaces)) { for (InetAddress address : Collections.list(iface.getInetAddresses())) { if (!address.isSiteLocalAddress()) { @@ -57,14 +58,14 @@ public final class Util { } } - public static void sleep (int millis) { + public static void sleep(int millis) { try { - Thread.sleep(millis); + TimeUnit.MILLISECONDS.sleep(millis); } catch (InterruptedException ignored) { } } - public static boolean classExists (String className) { + public static boolean classExists(String className) { try { Class.forName(className); return true; @@ -73,7 +74,7 @@ public final class Util { } } - public static void wait (Object lock) { + public static void wait(Object lock) { synchronized (lock) { try { lock.wait(); @@ -82,7 +83,7 @@ public final class Util { } } - public static void invokeAndWait (Runnable runnable) { + public static void invokeAndWait(Runnable runnable) { try { SwingUtilities.invokeAndWait(runnable); } catch (Exception ex) { diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java b/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java index cc75bff9cfc..ba7356c0733 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java @@ -1,20 +1,5 @@ package org.mage.plugins.card; -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.Frame; -import java.awt.Rectangle; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.image.BufferedImage; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import javax.swing.JComponent; -import javax.swing.JDialog; -import javax.swing.JLayeredPane; import mage.cards.MagePermanent; import mage.cards.action.ActionCallback; import mage.client.dialog.PreferencesDialog; @@ -30,10 +15,7 @@ import net.xeoh.plugins.base.annotations.events.Init; import net.xeoh.plugins.base.annotations.events.PluginLoaded; import net.xeoh.plugins.base.annotations.meta.Author; import org.apache.log4j.Logger; -import org.mage.card.arcane.Animation; -import org.mage.card.arcane.CardPanel; -import org.mage.card.arcane.CardPanelComponentImpl; -import org.mage.card.arcane.ManaSymbols; +import org.mage.card.arcane.*; import org.mage.plugins.card.dl.DownloadGui; import org.mage.plugins.card.dl.DownloadJob; import org.mage.plugins.card.dl.Downloader; @@ -43,7 +25,15 @@ import org.mage.plugins.card.dl.sources.GathererSets; import org.mage.plugins.card.dl.sources.GathererSymbols; import org.mage.plugins.card.images.ImageCache; import org.mage.plugins.card.info.CardInfoPaneImpl; -import org.mage.card.arcane.CardPanelRenderImpl; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.awt.image.BufferedImage; +import java.util.*; +import java.util.List; +import java.util.concurrent.TimeUnit; /** * {@link CardPlugin} implementation. @@ -108,14 +98,14 @@ public class CardPluginImpl implements CardPlugin { cardWidthMin = (int) GUISizeHelper.battlefieldCardMinDimension.getWidth(); cardWidthMax = (int) GUISizeHelper.battlefieldCardMaxDimension.getWidth(); } - + /** - * Temporary card rendering shim. Split card rendering isn't implemented yet, so - * use old component based rendering for the split cards. + * Temporary card rendering shim. Split card rendering isn't implemented + * yet, so use old component based rendering for the split cards. */ private CardPanel makePanel(CardView view, UUID gameId, boolean loadImage, ActionCallback callback, boolean isFoil, Dimension dimension) { String fallback = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CARD_RENDERING_FALLBACK, "false"); - if (view.isSplitCard() || fallback.equals("true")) { + if (fallback.equals("true")) { return new CardPanelComponentImpl(view, gameId, loadImage, callback, isFoil, dimension); } else { return new CardPanelRenderImpl(view, gameId, loadImage, callback, isFoil, dimension); @@ -584,7 +574,7 @@ public class CardPluginImpl implements CardPlugin { Animation.showCard(card, count > 0 ? count : 1); try { while ((card).getAlpha() + 0.05f < 1) { - Thread.sleep(30); + TimeUnit.MILLISECONDS.sleep(30); } } catch (Exception e) { e.printStackTrace(); @@ -598,7 +588,7 @@ public class CardPluginImpl implements CardPlugin { Animation.hideCard(card, count > 0 ? count : 1); try { while ((card).getAlpha() - 0.05f > 0) { - Thread.sleep(30); + TimeUnit.MILLISECONDS.sleep(30); } } catch (Exception e) { e.printStackTrace(); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java index 2799f503aa3..e7750f0801a 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java @@ -29,6 +29,7 @@ package org.mage.plugins.card.dl.sources; import java.io.IOException; import java.util.HashMap; +import java.util.concurrent.TimeUnit; import org.apache.log4j.Logger; import org.mage.plugins.card.images.CardDownloadData; @@ -1697,7 +1698,7 @@ public class GrabbagImageSource implements CardImageSource { public void doPause(String httpImageUrl) { if (!httpImageUrl.startsWith("/MTG")) { try { - Thread.sleep(2000); + TimeUnit.SECONDS.sleep(2); } catch (InterruptedException ex) { } } diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java index 23b9180d414..47661ee8d41 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java @@ -86,13 +86,14 @@ public class MythicspoilerComSource implements CardImageSource { cardNameAliases.put("THS-soldierofpantheon", "soldierofthepantheon"); cardNameAliases.put("THS-vulpinegolaith", "vulpinegoliath"); cardNameAliases.put("ORI-kothopedhoarderofsouls", "kothophedsoulhoarder"); - cardNameAliases.put("BFZ-unisonstrike", "tandemtactics"); - cardNameAliases.put("BFZ-eldrazidevastator", "eldrazidevastator"); cardNameAliases.put("BFZ-kozliekschanneler", "kozilekschanneler"); cardNameAliases.put("OGW-wastes", "wastes1"); cardNameAliases.put("OGW-wastes2", "wastes2"); - cardNameAliases.put("AER-locketofmyths", "lifecraftersbestiary"); cardNameAliases.put("AER-aegisautomation", "aegisautomaton"); + cardNameAliases.put("AKH-illusorywrappins", "illusorywrappings"); + cardNameAliases.put("AKH-reducerumble", "reducerubble"); + cardNameAliases.put("AKH-forsakethewordly", "forsaketheworldly"); + cardNameAliases.put("AKH-kefnatsmonument", "kefnetsmonument"); cardNameAliasesStart = new HashMap<>(); HashSet names = new HashSet<>(); @@ -182,14 +183,9 @@ public class MythicspoilerComSource implements CardImageSource { if (cardNameAliases.containsKey(cardSet + '-' + cardName)) { cardName = cardNameAliases.get(cardSet + '-' + cardName); } else if (cardName.endsWith("1") || cardName.endsWith("2") || cardName.endsWith("3") || cardName.endsWith("4") || cardName.endsWith("5")) { - if (!cardName.startsWith("forest") - && !cardName.startsWith("swamp") - && !cardName.startsWith("mountain") - && !cardName.startsWith("island") - && !cardName.startsWith("plains")) { - - cardName = cardName.substring(0, cardName.length() - 1); - } + cardName = cardName.substring(0, cardName.length() - 1); + } else if (cardName.endsWith("promo")) { + cardName = cardName.substring(0, cardName.length() - 5); } pageLinks.put(cardName, baseUrl + cardLink); } @@ -213,7 +209,8 @@ public class MythicspoilerComSource implements CardImageSource { .replaceAll(" ", "") .replaceAll("-", "") .replaceAll("'", "") - .replaceAll(",", ""); + .replaceAll(",", "") + .replaceAll("/", ""); String link = setLinks.get(searchName); return link; } diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java index 047bb90f240..d75337f6bb4 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java @@ -24,8 +24,7 @@ * The views and conclusions contained in the software and documentation are those of the * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. -*/ - + */ package org.mage.plugins.card.dl.sources; import java.io.BufferedReader; @@ -41,6 +40,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; import java.util.prefs.Preferences; import mage.client.MageFrame; import mage.client.dialog.PreferencesDialog; @@ -271,12 +271,12 @@ public class WizardCardsImageSource implements CardImageSource { public String getNextHttpImageUrl() { return null; } - + @Override public String getFileForHttpImage(String httpImageUrl) { return null; } - + private Map getSetLinks(String cardSet) { ConcurrentHashMap setLinks = new ConcurrentHashMap<>(); ExecutorService executor = Executors.newFixedThreadPool(10); @@ -289,7 +289,7 @@ public class WizardCardsImageSource implements CardImageSource { int firstMultiverseIdLastPage = 0; Pages: while (page < 999) { - String searchUrl = "http://gatherer.wizards.com/Pages/Search/Default.aspx?page=" + page +"&output=spoiler&method=visual&action=advanced&set=+[%22" + URLSetName + "%22]"; + String searchUrl = "http://gatherer.wizards.com/Pages/Search/Default.aspx?page=" + page + "&output=spoiler&method=visual&action=advanced&set=+[%22" + URLSetName + "%22]"; Document doc = getDocument(searchUrl); Elements cardsImages = doc.select("img[src^=../../Handlers/]"); if (cardsImages.isEmpty()) { @@ -320,7 +320,7 @@ public class WizardCardsImageSource implements CardImageSource { while (!executor.isTerminated()) { try { - Thread.sleep(1000); + TimeUnit.SECONDS.sleep(1); } catch (InterruptedException ie) { } } @@ -339,7 +339,7 @@ public class WizardCardsImageSource implements CardImageSource { int proxyPort = Integer.parseInt(prefs.get("proxyPort", "0")); URL url = new URL(urlString); Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyServer, proxyPort)); - HttpURLConnection uc = (HttpURLConnection)url.openConnection(proxy); + HttpURLConnection uc = (HttpURLConnection) url.openConnection(proxy); uc.connect(); @@ -359,7 +359,7 @@ public class WizardCardsImageSource implements CardImageSource { Document landDoc = getDocument(urlLandDocument); Elements variations = landDoc.select("a.variationlink"); Map links = new HashMap<>(); - if(!variations.isEmpty()) { + if (!variations.isEmpty()) { int landNumber = 1; for (Element variation : variations) { Integer landMultiverseId = Integer.parseInt(variation.attr("onclick").replaceAll("[^\\d]", "")); @@ -374,7 +374,7 @@ public class WizardCardsImageSource implements CardImageSource { } private static String generateLink(int landMultiverseId) { - return "/Handlers/Image.ashx?multiverseid=" +landMultiverseId + "&type=card"; + return "/Handlers/Image.ashx?multiverseid=" + landMultiverseId + "&type=card"; } private int getLocalizedMultiverseId(String preferedLanguage, Integer multiverseId) throws IOException { @@ -396,7 +396,7 @@ public class WizardCardsImageSource implements CardImageSource { Document cardLanguagesDoc = getDocument(cardLanguagesUrl); Elements languageTableRows = cardLanguagesDoc.select("tr.cardItem"); HashMap localizedIds = new HashMap<>(); - if(!languageTableRows.isEmpty()) { + if (!languageTableRows.isEmpty()) { for (Element languageTableRow : languageTableRows) { Elements languageTableColumns = languageTableRow.select("td"); Integer localizedId = Integer.parseInt(languageTableColumns.get(0).select("a").first().attr("href").replaceAll("[^\\d]", "")); @@ -408,14 +408,14 @@ public class WizardCardsImageSource implements CardImageSource { } private String normalizeName(String name) { - //Split card - if(name.contains("//")) { - name = name.substring(0, name.indexOf('(') - 1); - } - //Special timeshifted name - if(name.startsWith("XX")) { - name = name.substring(name.indexOf('(') + 1, name.length() - 1); - } + //Split card + if (name.contains("//")) { + name = name.substring(0, name.indexOf('(') - 1); + } + //Special timeshifted name + if (name.startsWith("XX")) { + name = name.substring(name.indexOf('(') + 1, name.length() - 1); + } return name.replace("\u2014", "-").replace("\u2019", "'") .replace("\u00C6", "AE").replace("\u00E6", "ae") .replace("\u00C3\u2020", "AE") @@ -445,7 +445,7 @@ public class WizardCardsImageSource implements CardImageSource { if (link == null) { int length = collectorId.length(); - if (Character.isLetter(collectorId.charAt(length -1))) { + if (Character.isLetter(collectorId.charAt(length - 1))) { length -= 1; } @@ -507,17 +507,17 @@ public class WizardCardsImageSource implements CardImageSource { } } - + @Override public int getTotalImages() { return -1; } - + @Override public boolean isTokenSource() { return false; } - + @Override public void doPause(String httpImageUrl) { } diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java index 22d2d9f5ba9..e93a4f881d4 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java @@ -1,5 +1,22 @@ package org.mage.plugins.card.images; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.*; +import java.net.*; +import java.nio.file.AccessDeniedException; +import java.util.*; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; +import javax.imageio.IIOImage; +import javax.imageio.ImageIO; +import javax.imageio.ImageWriteParam; +import javax.imageio.ImageWriter; +import javax.imageio.stream.FileImageOutputStream; +import javax.swing.*; import mage.cards.repository.CardInfo; import mage.client.constants.Constants; import mage.client.dialog.PreferencesDialog; @@ -15,23 +32,6 @@ import org.mage.plugins.card.dl.sources.*; import org.mage.plugins.card.properties.SettingsManager; import org.mage.plugins.card.utils.CardImageUtils; -import javax.imageio.IIOImage; -import javax.imageio.ImageIO; -import javax.imageio.ImageWriteParam; -import javax.imageio.ImageWriter; -import javax.imageio.stream.FileImageOutputStream; -import javax.swing.*; -import java.awt.*; -import java.awt.image.BufferedImage; -import java.io.*; -import java.net.*; -import java.nio.file.AccessDeniedException; -import java.util.*; -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.atomic.AtomicBoolean; - public class DownloadPictures extends DefaultBoundedRangeModel implements Runnable { private static final Logger logger = Logger.getLogger(DownloadPictures.class); @@ -316,7 +316,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab List cardsToDownload = Collections.synchronizedList(new ArrayList<>()); allCardsUrls.parallelStream().forEach(card -> { TFile file = new TFile(CardImageUtils.generateImagePath(card)); - logger.debug(card.getName() + " (is_token=" + card.isToken() + "). Image is here:" + file.getAbsolutePath() + " (exists=" + file.exists() +')'); + logger.debug(card.getName() + " (is_token=" + card.isToken() + "). Image is here:" + file.getAbsolutePath() + " (exists=" + file.exists() + ')'); if (!file.exists()) { logger.debug("Missing: " + file.getAbsolutePath()); cardsToDownload.add(card); @@ -345,9 +345,8 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab return list; } - - try(InputStreamReader input = new InputStreamReader(in); - BufferedReader reader = new BufferedReader(input)) { + try (InputStreamReader input = new InputStreamReader(in); + BufferedReader reader = new BufferedReader(input)) { String line = reader.readLine(); while (line != null) { @@ -486,7 +485,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab executor.shutdown(); while (!executor.isTerminated()) { try { - Thread.sleep(1000); + TimeUnit.SECONDS.sleep(1); } catch (InterruptedException ie) { } } diff --git a/Mage.Client/src/main/resources/card-pictures-tok.txt b/Mage.Client/src/main/resources/card-pictures-tok.txt index b242976bacb..68c2d0e5d27 100644 --- a/Mage.Client/src/main/resources/card-pictures-tok.txt +++ b/Mage.Client/src/main/resources/card-pictures-tok.txt @@ -1,3 +1,52 @@ + +|Generate|TOK:AKH|Angel of Sanctions|| +|Generate|TOK:AKH|Anointer Priest|| +|Generate|TOK:AKH|Aven Initiate|| +|Generate|TOK:AKH|Aven Wind Guide|| +|Generate|TOK:AKH|Beast|| +|Generate|TOK:AKH|Cat|| +|Generate|TOK:AKH|Drake|| +|Generate|TOK:AKH|Glyph Keeper|| +|Generate|TOK:AKH|Heart-Piercer Manticore|| +|Generate|TOK:AKH|Hippo|| +|Generate|TOK:AKH|Honored Hydra|| +|Generate|TOK:AKH|Insect|| +|Generate|TOK:AKH|Labyrinth Guardian|| +|Generate|TOK:AKH|Oketra's Attendant|| +|Generate|TOK:AKH|Sacred Cat|| +|Generate|TOK:AKH|Snake|| +|Generate|TOK:AKH|Tah-Crop Skirmisher|| +|Generate|TOK:AKH|Temmet, Vizier of Naktamun|| +|Generate|TOK:AKH|Trueheart Duelist|| +|Generate|TOK:AKH|Unwavering Initiate|| +|Generate|TOK:AKH|Vizier of Many Faces|| +|Generate|TOK:AKH|Warrior|| +|Generate|TOK:AKH|Wurm|| +|Generate|TOK:AKH|Zombie|| +|Generate|EMBLEM!:AKH|Emblem Gideon|| + +|Generate|TOK:MM3|Angel|| +|Generate|TOK:MM3|Beast|1| +|Generate|TOK:MM3|Beast|2| +|Generate|TOK:MM3|Bird|| +|Generate|TOK:MM3|Centaur|| +|Generate|TOK:MM3|Dragon|| +|Generate|TOK:MM3|Elemental|| +|Generate|TOK:MM3|Elephant|| +|Generate|TOK:MM3|Giant Warrior|| +|Generate|TOK:MM3|Goblin|| +|Generate|TOK:MM3|Goblin Warrior|| +|Generate|TOK:MM3|Golem|| +|Generate|TOK:MM3|Ooze|| +|Generate|TOK:MM3|Saproling|| +|Generate|TOK:MM3|Soldier|1| +|Generate|TOK:MM3|Soldier|2| +|Generate|TOK:MM3|Spider|| +|Generate|TOK:MM3|Spirit|| +|Generate|TOK:MM3|Wurm|| +|Generate|TOK:MM3|Zombie|| +|Generate|EMBLEM!:MM3|Emblem Domri|| + |Generate|TOK:C16|Beast|| |Generate|TOK:C16|Bird|1| |Generate|TOK:C16|Bird|2| diff --git a/Mage.Client/src/main/resources/image.url.properties b/Mage.Client/src/main/resources/image.url.properties index 2d32397f850..9f5e89bcde7 100644 --- a/Mage.Client/src/main/resources/image.url.properties +++ b/Mage.Client/src/main/resources/image.url.properties @@ -74,6 +74,6 @@ dd3evg=ddaevg dd3gvl=ddagvl dd3jvc=ddajvc # Remove setname as soon as the images can be downloaded -ignore.urls=TOK,PCA,DDS,ANB,AKH,HOU +ignore.urls=TOK,PCA,ANB,HOU # sets ordered by release time (newest goes first) token.lookup.order=ANB,HOU,MM3,DDS,AKH,DD3DVD,DD3EVG,DD3GVL,DD3JVC,H09,AER,PCA,C16,V16,MPS,KLD,DDR,CN2,EMN,EMA,SOI,DDQ,CP,CMA,ARENA,SUS,APAC,EURO,UGIN,C15,OGW,EXP,DDP,BFZ,DRB,V09,V10,V11,V12,V13,V14,V15,TPR,MPRP,DD3,DDO,ORI,MM2,PTC,DTK,FRF,KTK,M15,VMA,CNS,JOU,BNG,THS,DDL,M14,MMA,DGM,GTC,RTR,M13,AVR,DDI,DKA,ISD,M12,NPH,MBS,SOM,M11,ROE,DDE,WWK,ZEN,M10,GVL,ARB,DVD,CFX,JVC,ALA,EVE,SHM,EVG,MOR,LRW,10E,CLS,CHK,GRC \ No newline at end of file diff --git a/Mage.Client/src/test/java/mage/client/game/MultiConnectTest.java b/Mage.Client/src/test/java/mage/client/game/MultiConnectTest.java index 51d99cfe165..1974187c4d4 100644 --- a/Mage.Client/src/test/java/mage/client/game/MultiConnectTest.java +++ b/Mage.Client/src/test/java/mage/client/game/MultiConnectTest.java @@ -1,5 +1,8 @@ package mage.client.game; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import javax.swing.*; import mage.client.components.MageUI; import mage.interfaces.MageClient; import mage.interfaces.callback.ClientCallback; @@ -10,9 +13,6 @@ import mage.utils.MageVersion; import org.apache.log4j.Logger; import org.junit.Ignore; -import javax.swing.*; -import java.util.concurrent.CountDownLatch; - /** * Test for emulating the connection from multi mage clients. * @@ -30,7 +30,7 @@ public class MultiConnectTest { private static final CountDownLatch latch = new CountDownLatch(USER_CONNECT_COUNT); - private static final MageVersion version = new MageVersion(MageVersion.MAGE_VERSION_MAJOR, MageVersion.MAGE_VERSION_MINOR, MageVersion.MAGE_VERSION_PATCH, MageVersion.MAGE_VERSION_MINOR_PATCH, MageVersion.MAGE_VERSION_INFO); + private static final MageVersion version = new MageVersion(MageVersion.MAGE_VERSION_MAJOR, MageVersion.MAGE_VERSION_MINOR, MageVersion.MAGE_VERSION_PATCH, MageVersion.MAGE_VERSION_MINOR_PATCH, MageVersion.MAGE_VERSION_INFO); private static volatile int connected; @@ -116,7 +116,7 @@ public class MultiConnectTest { private void sleep(int ms) { try { - Thread.sleep(ms); + TimeUnit.MILLISECONDS.sleep(ms); } catch (Exception e) { e.printStackTrace(); } diff --git a/Mage.Client/src/test/java/mage/client/game/StartMultiGamesTest.java b/Mage.Client/src/test/java/mage/client/game/StartMultiGamesTest.java index f5dea6e8c51..e8ec74705c0 100644 --- a/Mage.Client/src/test/java/mage/client/game/StartMultiGamesTest.java +++ b/Mage.Client/src/test/java/mage/client/game/StartMultiGamesTest.java @@ -1,13 +1,13 @@ package mage.client.game; +import java.util.concurrent.TimeUnit; +import javax.swing.*; import mage.client.MageFrame; import mage.client.components.MageComponents; import mage.client.components.MageUI; import org.apache.log4j.Logger; import org.junit.Ignore; -import javax.swing.*; - /** * @author ayratn */ @@ -68,7 +68,7 @@ public class StartMultiGamesTest { private void sleep(int ms) { try { - Thread.sleep(ms); + TimeUnit.MILLISECONDS.sleep(ms); } catch (Exception e) { e.printStackTrace(); } diff --git a/Mage.Client/src/test/java/mage/client/util/CardHelperTest.java b/Mage.Client/src/test/java/mage/client/util/CardHelperTest.java deleted file mode 100644 index 6e6a3b3be11..00000000000 --- a/Mage.Client/src/test/java/mage/client/util/CardHelperTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package mage.client.util; - -import mage.client.deckeditor.table.CardHelper; -import mage.constants.CardType; -import mage.view.CardView; -import org.junit.Assert; -import org.junit.Test; - -import static org.hamcrest.core.Is.is; - -/** - * Created by IGOUDT on 3-3-2017. - */ -public class CardHelperTest { - - @Test - public void testCardTypeOrder() { - CardView v = new CardView(true); - v.getCardTypes().add(CardType.CREATURE); - v.getCardTypes().add(CardType.ARTIFACT); - String cardtypeText = CardHelper.getType(v); - Assert.assertThat(cardtypeText, is("Artifact Creature")); - - } - - -} diff --git a/Mage.Common/pom.xml b/Mage.Common/pom.xml index d7a8a3623be..6a63908dcd0 100644 --- a/Mage.Common/pom.xml +++ b/Mage.Common/pom.xml @@ -7,7 +7,7 @@ org.mage mage-root - 1.4.22 + 1.4.23 mage-common diff --git a/Mage.Common/src/mage/cards/MagePermanent.java b/Mage.Common/src/mage/cards/MagePermanent.java index a209b5d36c6..acbcd5de07f 100644 --- a/Mage.Common/src/mage/cards/MagePermanent.java +++ b/Mage.Common/src/mage/cards/MagePermanent.java @@ -1,11 +1,13 @@ package mage.cards; -import java.util.List; import mage.view.PermanentView; +import java.util.List; + public abstract class MagePermanent extends MageCard { private static final long serialVersionUID = -3469258620601702171L; public abstract List getLinks(); public abstract void update(PermanentView card); public abstract PermanentView getOriginalPermanent(); + } diff --git a/Mage.Common/src/mage/interfaces/MageServer.java b/Mage.Common/src/mage/interfaces/MageServer.java index bf144fa7150..2b505a128ad 100644 --- a/Mage.Common/src/mage/interfaces/MageServer.java +++ b/Mage.Common/src/mage/interfaces/MageServer.java @@ -27,10 +27,6 @@ */ package mage.interfaces; -import java.util.List; -import java.util.Optional; -import java.util.Set; -import java.util.UUID; import mage.MageException; import mage.cards.decks.DeckCardLists; import mage.cards.repository.CardInfo; @@ -40,15 +36,15 @@ import mage.constants.PlayerAction; import mage.game.GameException; import mage.game.match.MatchOptions; import mage.game.tournament.TournamentOptions; +import mage.players.PlayerType; import mage.players.net.UserData; import mage.utils.MageVersion; -import mage.view.DraftPickView; -import mage.view.GameView; -import mage.view.MatchView; -import mage.view.RoomUsersView; -import mage.view.TableView; -import mage.view.TournamentView; -import mage.view.UserView; +import mage.view.*; + +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; /** * @@ -94,9 +90,9 @@ public interface MageServer { TableView createTournamentTable(String sessionId, UUID roomId, TournamentOptions tournamentOptions) throws MageException; - boolean joinTable(String sessionId, UUID roomId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws MageException, GameException; + boolean joinTable(String sessionId, UUID roomId, UUID tableId, String name, PlayerType playerType, int skill, DeckCardLists deckList, String password) throws MageException, GameException; - boolean joinTournamentTable(String sessionId, UUID roomId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws MageException, GameException; + boolean joinTournamentTable(String sessionId, UUID roomId, UUID tableId, String name, PlayerType playerType, int skill, DeckCardLists deckList, String password) throws MageException, GameException; boolean submitDeck(String sessionId, UUID tableId, DeckCardLists deckList) throws MageException, GameException; diff --git a/Mage.Common/src/mage/interfaces/ServerState.java b/Mage.Common/src/mage/interfaces/ServerState.java index 8208b44f037..02f2c4a8d25 100644 --- a/Mage.Common/src/mage/interfaces/ServerState.java +++ b/Mage.Common/src/mage/interfaces/ServerState.java @@ -28,15 +28,15 @@ package mage.interfaces; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - +import mage.players.PlayerType; import mage.utils.MageVersion; import mage.view.GameTypeView; import mage.view.TournamentTypeView; +import java.io.Serializable; +import java.util.List; +import java.util.stream.Collectors; + /** * @author BetaSteward_at_googlemail.com */ @@ -44,7 +44,7 @@ public class ServerState implements Serializable { private final List gameTypes; private final List tournamentTypes; - private final String[] playerTypes; + private final PlayerType[] playerTypes; private final String[] deckTypes; private final String[] draftCubes; private final boolean testMode; @@ -53,7 +53,7 @@ public class ServerState implements Serializable { private final long expansionsContentVersion; public ServerState(List gameTypes, List tournamentTypes, - String[] playerTypes, String[] deckTypes, String[] draftCubes, boolean testMode, + PlayerType[] playerTypes, String[] deckTypes, String[] draftCubes, boolean testMode, MageVersion version, long cardsContentVersion, long expansionsContentVersion) { this.gameTypes = gameTypes; this.tournamentTypes = tournamentTypes; @@ -81,7 +81,7 @@ public class ServerState implements Serializable { return tournamentTypes; } - public String[] getPlayerTypes() { + public PlayerType[] getPlayerTypes() { return playerTypes; } diff --git a/Mage.Common/src/mage/interfaces/callback/ClientCallback.java b/Mage.Common/src/mage/interfaces/callback/ClientCallback.java index 366045102f9..868d70e065d 100644 --- a/Mage.Common/src/mage/interfaces/callback/ClientCallback.java +++ b/Mage.Common/src/mage/interfaces/callback/ClientCallback.java @@ -39,18 +39,18 @@ public class ClientCallback implements Serializable { private UUID objectId; private Object data; - private String method; + private ClientCallbackMethod method; private int messageId; public ClientCallback() {} - public ClientCallback(String method, UUID objectId, Object data) { + public ClientCallback(ClientCallbackMethod method, UUID objectId, Object data) { this.method = method; this.objectId = objectId; this.data = data; } - public ClientCallback(String method, UUID objectId) { + public ClientCallback(ClientCallbackMethod method, UUID objectId) { this(method, objectId, null); } @@ -75,11 +75,11 @@ public class ClientCallback implements Serializable { this.data = data; } - public String getMethod() { + public ClientCallbackMethod getMethod() { return method; } - public void setMethod(String method) { + public void setMethod(ClientCallbackMethod method) { this.method = method; } diff --git a/Mage.Common/src/mage/interfaces/callback/ClientCallbackMethod.java b/Mage.Common/src/mage/interfaces/callback/ClientCallbackMethod.java new file mode 100644 index 00000000000..9e3180f3a8b --- /dev/null +++ b/Mage.Common/src/mage/interfaces/callback/ClientCallbackMethod.java @@ -0,0 +1,46 @@ +package mage.interfaces.callback; + +/** + * Created by IGOUDT on 4-4-2017. + */ +public enum ClientCallbackMethod { + + CHATMESSAGE("chatMessage"), + TOURNAMENT_INIT("tournamentInit"), + TOURNAMENT_UPDATE("tournamentUpdate"), + TOURNAMENT_OVER("tournamentOver"), + JOINED_TABLE("joinedTable"), + START_DRAFT("startDraft"), + START_TOURNAMENT("startTournament"), + SIDEBOARD("sideboard"), + CONSTRUCT("construct"), + SHOW_USERMESSAGE("showUserMessage"), + WATCHGAME("watchGame"), + REPLAY_GAME("replayGame"), + START_GAME("startGame"), + SHOW_TOURNAMENT("showTournament"), + SHOW_GAME_END_DIALOG("showGameEndDialog"), + SERVER_MESSAGE("serverMessage"), + GAME_INIT("gameInit"), + GAME_OVER("gameOver"), + GAME_INFORM("gameInform"), + GAME_INFORM_PERSONAL("gameInformPersonal"), + GAME_ERROR("gameError"), + GAME_UPDATE("gameUpdate"), + DRAFT_OVER("draftOver"), + REPLAY_DONE("replayDone"), + USER_REQUEST_DIALOG("userRequestDialog"), + REPLAY_UPDATE("replayUpdate"), + REPLAY_INIT("replayInit"), + END_GAME_INFO("endGameInfo"), + GAME_TARGET("gameTarget"), + GAME_CHOOSE_ABILITY("gameChooseAbility"), + GAME_CHOOSE_PILE("gameChoosePile"), + GAME_CHOOSE_CHOICE("gameChooseChoice"), GAME_ASK("gameAsk"), GAME_SELECT("gameSelect"), GAME_PLAY_MANA("gamePlayMana"), GAME_PLAY_XMANA("gamePlayXMana"), GAME_GET_AMOUNT("gameSelectAmount"), DRAFT_INIT("draftInit"), DRAFT_INFORM("draftInform"), DRAFT_PICK("draftPick"), DRAFT_UPDATE("draftUpdate"); + + String value; + + ClientCallbackMethod(String value){ + this.value = value; + } +} diff --git a/Mage.Common/src/mage/remote/Connection.java b/Mage.Common/src/mage/remote/Connection.java index a5cac723360..cfd27d18121 100644 --- a/Mage.Common/src/mage/remote/Connection.java +++ b/Mage.Common/src/mage/remote/Connection.java @@ -56,6 +56,7 @@ public class Connection { private int clientCardDatabaseVersion; private boolean forceDBComparison; private String userIdStr; + private int socketWriteTimeout; private UserData userData; @@ -76,6 +77,7 @@ public class Connection { public Connection(String parameter) { this.parameter = parameter; + socketWriteTimeout = 10000; } @Override @@ -258,6 +260,24 @@ public class Connection { return null; } + public static String getMAC() throws SocketException { + StringBuilder allMACs = new StringBuilder(); + for (Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); interfaces.hasMoreElements();) { + NetworkInterface iface = interfaces.nextElement(); + byte[] mac = iface.getHardwareAddress(); + + if (mac != null) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < mac.length; i++) { + sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "")); + } + sb.append(';'); + allMACs.append(sb.toString()); + } + } + return allMACs.toString(); + } + public void setUserData(UserData userData) { this.userData = userData; } @@ -273,4 +293,8 @@ public class Connection { public void setForceDBComparison(boolean forceDBComparison) { this.forceDBComparison = forceDBComparison; } + + public int getSocketWriteTimeout() { + return socketWriteTimeout; + } } diff --git a/Mage.Common/src/mage/remote/SessionImpl.java b/Mage.Common/src/mage/remote/SessionImpl.java index 46d6cc8aa40..90e68afb91c 100644 --- a/Mage.Common/src/mage/remote/SessionImpl.java +++ b/Mage.Common/src/mage/remote/SessionImpl.java @@ -32,8 +32,7 @@ import java.lang.reflect.UndeclaredThrowableException; import java.net.*; import java.util.*; import java.util.concurrent.TimeUnit; -import javax.swing.JOptionPane; - +import javax.swing.*; import mage.MageException; import mage.cards.decks.DeckCardLists; import mage.cards.decks.InvalidDeckException; @@ -50,6 +49,7 @@ import mage.interfaces.MageClient; import mage.interfaces.MageServer; import mage.interfaces.ServerState; import mage.interfaces.callback.ClientCallback; +import mage.players.PlayerType; import mage.players.net.UserData; import mage.utils.CompressUtil; import mage.view.*; @@ -219,34 +219,35 @@ public class SessionImpl implements Session { public synchronized boolean connect(final Connection connection) { return establishJBossRemotingConnection(connection) && handleRemotingTaskExceptions(new RemotingTask() { - @Override - public boolean run() throws Throwable { - logger.info("Trying to log-in as " + getUserName() + " to XMAGE server at " + connection.getHost() + ':' + connection.getPort()); - boolean registerResult; - if (connection.getAdminPassword() == null) { - // for backward compatibility. don't remove twice call - first one does nothing but for version checking - registerResult = server.connectUser(connection.getUsername(), connection.getPassword(), sessionId, client.getVersion(), connection.getUserIdStr()); - if (registerResult) { - server.setUserData(connection.getUsername(), sessionId, connection.getUserData(), client.getVersion().toString(), connection.getUserIdStr()); + @Override + public boolean run() throws Throwable { + logger.info("Trying to log-in as " + getUserName() + " to XMAGE server at " + connection.getHost() + ':' + connection.getPort()); + boolean registerResult; + if (connection.getAdminPassword() == null) { + // for backward compatibility. don't remove twice call - first one does nothing but for version checking + registerResult = server.connectUser(connection.getUsername(), connection.getPassword(), sessionId, client.getVersion(), connection.getUserIdStr()); + if (registerResult) { + server.setUserData(connection.getUsername(), sessionId, connection.getUserData(), client.getVersion().toString(), connection.getUserIdStr()); + } + } else { + registerResult = server.connectAdmin(connection.getAdminPassword(), sessionId, client.getVersion()); + } + if (registerResult) { + serverState = server.getServerState(); + if (!connection.getUsername().equals("Admin")) { + updateDatabase(connection.isForceDBComparison(), serverState); + } + logger.info("Logged-in as " + getUserName() + " to MAGE server at " + connection.getHost() + ':' + connection.getPort()); + client.connected(getUserName() + '@' + connection.getHost() + ':' + connection.getPort() + ' '); + return true; + } + disconnect(false); + return false; } - } else { - registerResult = server.connectAdmin(connection.getAdminPassword(), sessionId, client.getVersion()); - } - if (registerResult) { - serverState = server.getServerState(); - if (!connection.getUsername().equals("Admin")) { - updateDatabase(connection.isForceDBComparison(), serverState); - } - logger.info("Logged-in as " + getUserName() + " to MAGE server at " + connection.getHost() + ':' + connection.getPort()); - client.connected(getUserName() + '@' + connection.getHost() + ':' + connection.getPort() + ' '); - return true; - } - disconnect(false); - return false; - } - }); + }); } + @Override public Optional getServerHostname() { return isConnected() ? Optional.of(connection.getHost()) : Optional.empty(); } @@ -304,14 +305,14 @@ public class SessionImpl implements Session { to a value greater than 1, an invocation interrupted by a write timeout can be retried. Note. The write timeout facility applies to writing of both invocations and responses. It applies to push callbacks as well. */ - metadata.put(SocketWrapper.WRITE_TIMEOUT, "2000"); + metadata.put(SocketWrapper.WRITE_TIMEOUT, String.valueOf(connection.getSocketWriteTimeout())); metadata.put("generalizeSocketException", "true"); server = (MageServer) TransporterClient.createTransporterClient(clientLocator.getLocatorURI(), MageServer.class, metadata); // http://docs.jboss.org/jbossremoting/docs/guide/2.5/html_single/#d0e1057 Map clientMetadata = new HashMap<>(); - clientMetadata.put(SocketWrapper.WRITE_TIMEOUT, "2000"); + clientMetadata.put(SocketWrapper.WRITE_TIMEOUT, String.valueOf(connection.getSocketWriteTimeout())); /* generalizeSocketException * If set to false, a failed invocation will be retried in the case of * SocketExceptions. If set to true, a failed invocation will be retried in the case of @@ -472,7 +473,7 @@ public class SessionImpl implements Session { /** * @param askForReconnect - true = connection was lost because of error and - * ask the user if he want to try to reconnect + * ask the user if he want to try to reconnect */ @Override public synchronized void disconnect(boolean askForReconnect) { @@ -550,7 +551,7 @@ public class SessionImpl implements Session { } @Override - public String[] getPlayerTypes() { + public PlayerType[] getPlayerTypes() { return serverState.getPlayerTypes(); } @@ -680,7 +681,7 @@ public class SessionImpl implements Session { } @Override - public boolean joinTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deckList, String password) { + public boolean joinTable(UUID roomId, UUID tableId, String playerName, PlayerType playerType, int skill, DeckCardLists deckList, String password) { try { if (isConnected()) { // Workaround to fix Can't join table problem @@ -703,7 +704,7 @@ public class SessionImpl implements Session { } @Override - public boolean joinTournamentTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deckList, String password) { + public boolean joinTournamentTable(UUID roomId, UUID tableId, String playerName, PlayerType playerType, int skill, DeckCardLists deckList, String password) { try { if (isConnected()) { // Workaround to fix Can't join table problem @@ -966,7 +967,6 @@ public class SessionImpl implements Session { return false; } - @Override public boolean joinGame(UUID gameId) { try { diff --git a/Mage.Common/src/mage/remote/interfaces/GameTypes.java b/Mage.Common/src/mage/remote/interfaces/GameTypes.java index d1845d7b386..dc3c90f3502 100644 --- a/Mage.Common/src/mage/remote/interfaces/GameTypes.java +++ b/Mage.Common/src/mage/remote/interfaces/GameTypes.java @@ -28,6 +28,8 @@ package mage.remote.interfaces; import java.util.List; + +import mage.players.PlayerType; import mage.view.GameTypeView; import mage.view.TournamentTypeView; @@ -36,7 +38,7 @@ import mage.view.TournamentTypeView; */ public interface GameTypes { - String[] getPlayerTypes(); + PlayerType[] getPlayerTypes(); List getGameTypes(); List getTournamentGameTypes(); diff --git a/Mage.Common/src/mage/remote/interfaces/PlayerActions.java b/Mage.Common/src/mage/remote/interfaces/PlayerActions.java index dd80ae37b6b..72818ca2f3f 100644 --- a/Mage.Common/src/mage/remote/interfaces/PlayerActions.java +++ b/Mage.Common/src/mage/remote/interfaces/PlayerActions.java @@ -30,6 +30,7 @@ package mage.remote.interfaces; import mage.cards.decks.DeckCardLists; import mage.game.match.MatchOptions; import mage.game.tournament.TournamentOptions; +import mage.players.PlayerType; import mage.remote.MageRemoteException; import mage.view.TableView; import mage.view.TournamentView; @@ -64,13 +65,13 @@ public interface PlayerActions { // boolean startChallenge(UUID roomId, UUID tableId, UUID challengeId); - boolean joinTournamentTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deckList, String password); + boolean joinTournamentTable(UUID roomId, UUID tableId, String playerName, PlayerType playerType, int skill, DeckCardLists deckList, String password); boolean watchTable(UUID roomId, UUID tableId); boolean watchTournamentTable(UUID tableId); - boolean joinTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deckList, String password); + boolean joinTable(UUID roomId, UUID tableId, String playerName, PlayerType playerType, int skill, DeckCardLists deckList, String password); Optional getTable(UUID roomId, UUID tableId); diff --git a/Mage.Common/src/mage/utils/CardUtil.java b/Mage.Common/src/mage/utils/CardUtil.java index 258393b04ef..da99b4de7fc 100644 --- a/Mage.Common/src/mage/utils/CardUtil.java +++ b/Mage.Common/src/mage/utils/CardUtil.java @@ -1,12 +1,12 @@ package mage.utils; -import java.util.List; import mage.ObjectColor; -import mage.cards.Card; import mage.cards.MagePermanent; import mage.constants.CardType; import mage.view.CardView; +import java.util.List; + /** * Utility class for {@link CardView} * @@ -21,17 +21,8 @@ public final class CardUtil { private static final String regexGreen = ".*\\x7b.{0,2}G.{0,2}\\x7d.*"; private static final String regexWhite = ".*\\x7b.{0,2}W.{0,2}\\x7d.*"; - public static boolean isCreature(CardView card) { - return is(card, CardType.CREATURE); - } - public static boolean isPlaneswalker(CardView card) { - return is(card, CardType.PLANESWALKER); - } - public static boolean isLand(CardView card) { - return is(card, CardType.LAND); - } public static boolean isCreature(MagePermanent card) { return is(card.getOriginal(), CardType.CREATURE); @@ -49,14 +40,6 @@ public final class CardUtil { return card.getCardTypes().contains(type); } - public static boolean isBasicLand(Card card) { - return card.getSupertype().contains("Basic"); - } - - public static boolean isLand(Card card) { - return card.getCardType().contains(CardType.LAND); - } - public static int getColorIdentitySortValue(List manaCost, ObjectColor originalColor, List rules) { ObjectColor color = new ObjectColor(originalColor); for (String rule : rules) { diff --git a/Mage.Common/src/mage/utils/DeckBuilder.java b/Mage.Common/src/mage/utils/DeckBuilder.java index 55760f7d28d..19922120b3c 100644 --- a/Mage.Common/src/mage/utils/DeckBuilder.java +++ b/Mage.Common/src/mage/utils/DeckBuilder.java @@ -1,21 +1,14 @@ package mage.utils; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - import mage.Mana; import mage.cards.Card; import mage.cards.decks.Deck; -import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.interfaces.rate.RateCallback; import mage.util.RandomUtil; +import java.util.*; + /** * Builds deck from provided card pool. * @@ -246,13 +239,13 @@ public final class DeckBuilder { this.card = card; int type; - if (card.getCardType().contains(CardType.CREATURE)) { + if (card.isCreature()) { type = 10; } else if (card.getSubtype(null).contains("Equipment")) { type = 8; } else if (card.getSubtype(null).contains("Aura")) { type = 5; - } else if (card.getCardType().contains(CardType.INSTANT)) { + } else if (card.isInstant()) { type = 7; } else { type = 6; diff --git a/Mage.Common/src/mage/utils/MageVersion.java b/Mage.Common/src/mage/utils/MageVersion.java index 3d065060b60..35385b2faeb 100644 --- a/Mage.Common/src/mage/utils/MageVersion.java +++ b/Mage.Common/src/mage/utils/MageVersion.java @@ -40,8 +40,8 @@ public class MageVersion implements Serializable, Comparable { */ public final static int MAGE_VERSION_MAJOR = 1; public final static int MAGE_VERSION_MINOR = 4; - public final static int MAGE_VERSION_PATCH = 22; - public final static String MAGE_VERSION_MINOR_PATCH = "V0"; + public final static int MAGE_VERSION_PATCH = 23; + public final static String MAGE_VERSION_MINOR_PATCH = "V1"; public final static String MAGE_VERSION_INFO = ""; private final int major; diff --git a/Mage.Common/src/mage/view/AbilityView.java b/Mage.Common/src/mage/view/AbilityView.java index 2c6b61bfe83..c95d00de745 100644 --- a/Mage.Common/src/mage/view/AbilityView.java +++ b/Mage.Common/src/mage/view/AbilityView.java @@ -31,6 +31,7 @@ package mage.view; import mage.ObjectColor; import mage.abilities.Ability; import mage.constants.CardType; +import mage.constants.SuperType; import java.util.ArrayList; import java.util.EnumSet; @@ -57,7 +58,7 @@ public class AbilityView extends CardView { this.loyalty = ""; this.cardTypes = EnumSet.noneOf(CardType.class); this.subTypes = new ArrayList<>(); - this.superTypes = new ArrayList<>(); + this.superTypes =EnumSet.noneOf(SuperType.class); this.color = new ObjectColor(); this.manaCost = ability.getManaCosts().getSymbols(); } diff --git a/Mage.Common/src/mage/view/CardView.java b/Mage.Common/src/mage/view/CardView.java index 82d6c397c55..8b567d89da8 100644 --- a/Mage.Common/src/mage/view/CardView.java +++ b/Mage.Common/src/mage/view/CardView.java @@ -28,20 +28,16 @@ package mage.view; import java.util.*; - import mage.MageObject; import mage.ObjectColor; +import mage.abilities.Abilities; +import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.SpellAbility; import mage.abilities.costs.mana.ManaCosts; -import mage.cards.Card; -import mage.cards.FrameStyle; -import mage.cards.SplitCard; -import mage.constants.AbilityType; -import mage.constants.CardType; -import mage.constants.MageObjectType; -import mage.constants.Rarity; -import mage.constants.Zone; +import mage.abilities.keyword.AftermathAbility; +import mage.cards.*; +import mage.constants.*; import mage.counters.Counter; import mage.counters.CounterType; import mage.designations.Designation; @@ -72,7 +68,7 @@ public class CardView extends SimpleCardView { protected String startingLoyalty; protected EnumSet cardTypes; protected List subTypes; - protected List superTypes; + protected EnumSet superTypes; protected ObjectColor color; protected ObjectColor frameColor; protected FrameStyle frameStyle; @@ -103,9 +99,13 @@ public class CardView extends SimpleCardView { protected String leftSplitName; protected ManaCosts leftSplitCosts; protected List leftSplitRules; + protected String leftSplitTypeLine; protected String rightSplitName; protected ManaCosts rightSplitCosts; protected List rightSplitRules; + protected String rightSplitTypeLine; + + protected ArtRect artRect = ArtRect.NORMAL; protected List targets; @@ -183,14 +183,17 @@ public class CardView extends SimpleCardView { this.alternateName = cardView.alternateName; this.originalName = cardView.originalName; + this.artRect = cardView.artRect; this.isSplitCard = cardView.isSplitCard; this.leftSplitName = cardView.leftSplitName; this.leftSplitCosts = cardView.leftSplitCosts; this.leftSplitRules = null; + this.leftSplitTypeLine = cardView.leftSplitTypeLine; this.rightSplitName = cardView.rightSplitName; this.rightSplitCosts = cardView.rightSplitCosts; this.rightSplitRules = null; + this.rightSplitTypeLine = cardView.rightSplitTypeLine; this.targets = null; @@ -212,7 +215,6 @@ public class CardView extends SimpleCardView { } /** - * * @param card * @param game * @param controlled is the card view created for the card controller - used @@ -223,8 +225,24 @@ public class CardView extends SimpleCardView { this(card, game, controlled, false, false); } + private static String getCardTypeLine(Game game, Card card) { + StringBuilder sbType = new StringBuilder(); + for (SuperType superType : card.getSuperType()) { + sbType.append(superType).append(' '); + } + for (CardType cardType : card.getCardType()) { + sbType.append(cardType.toString()).append(' '); + } + if (!card.getSubtype(game).isEmpty()) { + sbType.append("- "); + for (String subType : card.getSubtype(game)) { + sbType.append(subType).append(' '); + } + } + return sbType.toString(); + } + /** - * * @param card * @param game * @param controlled is the card view created for the card controller - used @@ -284,13 +302,17 @@ public class CardView extends SimpleCardView { SplitCard splitCard = null; if (card.isSplitCard()) { splitCard = (SplitCard) card; - rotate = true; + rotate = (((SplitCard) card).getSpellAbility().getSpellAbilityType()) != SpellAbilityType.SPLIT_AFTERMATH; } else if (card instanceof Spell) { switch (((Spell) card).getSpellAbility().getSpellAbilityType()) { case SPLIT_FUSED: splitCard = (SplitCard) ((Spell) card).getCard(); rotate = true; break; + case SPLIT_AFTERMATH: + splitCard = (SplitCard) ((Spell) card).getCard(); + rotate = false; + break; case SPLIT_LEFT: case SPLIT_RIGHT: rotate = true; @@ -302,9 +324,11 @@ public class CardView extends SimpleCardView { leftSplitName = splitCard.getLeftHalfCard().getName(); leftSplitCosts = splitCard.getLeftHalfCard().getManaCost(); leftSplitRules = splitCard.getLeftHalfCard().getRules(game); + leftSplitTypeLine = getCardTypeLine(game, splitCard.getLeftHalfCard()); rightSplitName = splitCard.getRightHalfCard().getName(); rightSplitCosts = splitCard.getRightHalfCard().getManaCost(); rightSplitRules = splitCard.getRightHalfCard().getRules(game); + rightSplitTypeLine = getCardTypeLine(game, splitCard.getRightHalfCard()); } this.name = card.getImageName(); @@ -349,7 +373,7 @@ public class CardView extends SimpleCardView { this.toughness = Integer.toString(card.getToughness().getValue()); this.cardTypes = card.getCardType(); this.subTypes = card.getSubtype(game); - this.superTypes = card.getSupertype(); + this.superTypes = card.getSuperType(); this.color = card.getColor(game); this.transformable = card.isTransformable(); this.flipCard = card.isFlipCard(); @@ -401,6 +425,31 @@ public class CardView extends SimpleCardView { } } } + + // Determine what part of the art to slice out for spells on the stack which originate + // from a split, fuse, or aftermath split card. + SpellAbilityType ty = spell.getSpellAbility().getSpellAbilityType(); + if (ty == SpellAbilityType.SPLIT_RIGHT || ty == SpellAbilityType.SPLIT_LEFT || ty == SpellAbilityType.SPLIT_FUSED) { + // Needs a special art rect + if (ty == SpellAbilityType.SPLIT_FUSED) { + artRect = ArtRect.SPLIT_FUSED; + } else if (spell.getCard() != null) { + SplitCard wholeCard = ((SplitCardHalf) spell.getCard()).getParentCard(); + Abilities aftermathHalfAbilities = wholeCard.getRightHalfCard().getAbilities(); + if (aftermathHalfAbilities.stream().anyMatch(ability -> ability instanceof AftermathAbility)) { + if (ty == SpellAbilityType.SPLIT_RIGHT) { + artRect = ArtRect.AFTERMATH_BOTTOM; + } else { + artRect = ArtRect.AFTERMATH_TOP; + } + } else if (ty == SpellAbilityType.SPLIT_RIGHT) { + artRect = ArtRect.SPLIT_RIGHT; + } else { + artRect = ArtRect.SPLIT_LEFT; + } + } + } + // show for modal spell, which mode was choosen if (spell.getSpellAbility().isModal()) { for (UUID modeId : spell.getSpellAbility().getModes().getSelectedModes()) { @@ -436,7 +485,7 @@ public class CardView extends SimpleCardView { } this.cardTypes = object.getCardType(); this.subTypes = object.getSubtype(null); - this.superTypes = object.getSupertype(); + this.superTypes = object.getSuperType(); this.color = object.getColor(null); this.manaCost = object.getManaCost().getSymbols(); this.convertedManaCost = object.getManaCost().convertedManaCost(); @@ -520,7 +569,7 @@ public class CardView extends SimpleCardView { this.startingLoyalty = ""; this.cardTypes = EnumSet.noneOf(CardType.class); this.subTypes = new ArrayList<>(); - this.superTypes = new ArrayList<>(); + this.superTypes = EnumSet.noneOf(SuperType.class); this.color = new ObjectColor(); this.frameColor = new ObjectColor(); this.frameStyle = FrameStyle.M15_NORMAL; @@ -567,7 +616,7 @@ public class CardView extends SimpleCardView { this.startingLoyalty = ""; this.cardTypes = token.getCardType(); this.subTypes = token.getSubtype(null); - this.superTypes = token.getSupertype(); + this.superTypes = token.getSuperType(); this.color = token.getColor(null); this.frameColor = token.getFrameColor(null); this.frameStyle = token.getFrameStyle(); @@ -647,7 +696,7 @@ public class CardView extends SimpleCardView { return subTypes; } - public List getSuperTypes() { + public EnumSet getSuperTypes() { return superTypes; } @@ -785,6 +834,10 @@ public class CardView extends SimpleCardView { return leftSplitRules; } + public String getLeftSplitTypeLine() { + return leftSplitTypeLine; + } + public String getRightSplitName() { return rightSplitName; } @@ -797,6 +850,14 @@ public class CardView extends SimpleCardView { return rightSplitRules; } + public String getRightSplitTypeLine() { + return rightSplitTypeLine; + } + + public ArtRect getArtRect() { + return artRect; + } + public CardView getSecondCardFace() { return this.secondCardFace; } @@ -893,4 +954,78 @@ public class CardView extends SimpleCardView { this.canAttack = canAttack; } + public boolean isCreature() { + return cardTypes.contains(CardType.CREATURE); + } + + public boolean isPlanesWalker() { + return cardTypes.contains(CardType.PLANESWALKER); + } + + public String getColorText() { + if (getColor().getColorCount() == 0) { + return "Colorless"; + } else if (getColor().getColorCount() > 1) { + return "Gold"; + } else if (getColor().isBlack()) { + return "Black"; + } else if (getColor().isBlue()) { + return "Blue"; + } else if (getColor().isWhite()) { + return "White"; + } else if (getColor().isGreen()) { + return "Green"; + } else if (getColor().isRed()) { + return "Red"; + } + return ""; + } + + public String getTypeText() { + StringBuilder type = new StringBuilder(); + for (SuperType superType : getSuperTypes()) { + type.append(superType.toString()); + type.append(' '); + } + for (CardType cardType : getCardTypes()) { + type.append(cardType.toString()); + type.append(' '); + } + if (!getSubTypes().isEmpty()) { + type.append("- "); + for (String subType : getSubTypes()) { + type.append(subType); + type.append(' '); + } + } + if (type.length() > 0) { + // remove trailing space + type.deleteCharAt(type.length() - 1); + } + return type.toString(); + } + + public boolean isLand() { + return cardTypes.contains(CardType.LAND); + } + + public boolean isInstant() { + return cardTypes.contains(CardType.INSTANT); + } + + public boolean isSorcery() { + return cardTypes.contains(CardType.SORCERY); + } + + public boolean isEnchantment() { + return cardTypes.contains(CardType.ENCHANTMENT); + } + + public boolean isArtifact() { + return cardTypes.contains(CardType.ARTIFACT); + } + + public boolean isTribal() { + return cardTypes.contains(CardType.TRIBAL); + } } diff --git a/Mage.Common/src/mage/view/SeatView.java b/Mage.Common/src/mage/view/SeatView.java index dff17d5e08c..a5e83fd580a 100644 --- a/Mage.Common/src/mage/view/SeatView.java +++ b/Mage.Common/src/mage/view/SeatView.java @@ -27,10 +27,12 @@ */ package mage.view; +import mage.game.Seat; +import mage.players.PlayerType; +import mage.players.net.UserData; + import java.io.Serializable; import java.util.UUID; -import mage.game.Seat; -import mage.players.net.UserData; /** * @@ -43,7 +45,7 @@ public class SeatView implements Serializable { private final String flagName; private UUID playerId; private final String playerName; - private final String playerType; + private final PlayerType playerType; private final String history; private final int generalRating; private final int constructedRating; @@ -86,7 +88,7 @@ public class SeatView implements Serializable { return playerName; } - public String getPlayerType() { + public PlayerType getPlayerType() { return playerType; } diff --git a/Mage.Common/src/mage/view/StackAbilityView.java b/Mage.Common/src/mage/view/StackAbilityView.java index a34de5abf5b..92cbc8b6c51 100644 --- a/Mage.Common/src/mage/view/StackAbilityView.java +++ b/Mage.Common/src/mage/view/StackAbilityView.java @@ -65,12 +65,12 @@ public class StackAbilityView extends CardView { this.cardTypes = ability.getCardType(); this.subTypes = ability.getSubtype(game); - this.superTypes = ability.getSupertype(); + this.superTypes = ability.getSuperType(); this.color = ability.getColor(game); this.manaCost = ability.getManaCost().getSymbols(); this.cardTypes = ability.getCardType(); this.subTypes = ability.getSubtype(game); - this.superTypes = ability.getSupertype(); + this.superTypes = ability.getSuperType(); this.color = ability.getColor(game); this.manaCost = ability.getManaCost().getSymbols(); this.power = ability.getPower().toString(); diff --git a/Mage.Plugins/Mage.Counter.Plugin/pom.xml b/Mage.Plugins/Mage.Counter.Plugin/pom.xml index ce49c32ce21..ee30c83624d 100644 --- a/Mage.Plugins/Mage.Counter.Plugin/pom.xml +++ b/Mage.Plugins/Mage.Counter.Plugin/pom.xml @@ -7,7 +7,7 @@ org.mage mage-plugins - 1.4.22 + 1.4.23 mage-counter-plugin diff --git a/Mage.Plugins/pom.xml b/Mage.Plugins/pom.xml index 2a68bba9ff1..c9e95ef2a7e 100644 --- a/Mage.Plugins/pom.xml +++ b/Mage.Plugins/pom.xml @@ -7,7 +7,7 @@ org.mage mage-root - 1.4.22 + 1.4.23 mage-plugins diff --git a/Mage.Server.Console/pom.xml b/Mage.Server.Console/pom.xml index 25338d9613b..825e53abe0b 100644 --- a/Mage.Server.Console/pom.xml +++ b/Mage.Server.Console/pom.xml @@ -6,7 +6,7 @@ org.mage mage-root - 1.4.22 + 1.4.23 org.mage diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/pom.xml b/Mage.Server.Plugins/Mage.Deck.Constructed/pom.xml index 62f28f4ed22..f07ae6dc47d 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/pom.xml +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-deck-constructed diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java index fbc137c0913..23e6ee2ec1d 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java @@ -27,11 +27,6 @@ */ package mage.deck; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.CanBeYourCommanderAbility; @@ -42,11 +37,12 @@ import mage.cards.ExpansionSet; import mage.cards.Sets; import mage.cards.decks.Constructed; import mage.cards.decks.Deck; -import mage.constants.CardType; import mage.constants.SetType; import mage.filter.FilterMana; import mage.util.CardUtil; +import java.util.*; + /** * * @author Plopman @@ -146,8 +142,8 @@ public class Commander extends Constructed { invalid.put("Commander", "Commander banned (" + commander.getName() + ')'); valid = false; } - if ((!commander.getCardType().contains(CardType.CREATURE) || !commander.getSupertype().contains("Legendary")) - && (!commander.getCardType().contains(CardType.PLANESWALKER) || !commander.getAbilities().contains(CanBeYourCommanderAbility.getInstance()))) { + if ((!commander.isCreature() || !commander.isLegendary()) + && (!commander.isPlaneswalker() || !commander.getAbilities().contains(CanBeYourCommanderAbility.getInstance()))) { invalid.put("Commander", "Commander invalid (" + commander.getName() + ')'); valid = false; } @@ -501,7 +497,7 @@ public class Commander extends Constructed { thisMaxPower = Math.max(thisMaxPower, 1); } - if (card.getCardType().contains(CardType.PLANESWALKER)) { + if (card.isPlaneswalker()) { if (card.getName().toLowerCase().equals("jace, the mind sculptor")) { thisMaxPower = Math.max(thisMaxPower, 6); } @@ -511,7 +507,7 @@ public class Commander extends Constructed { thisMaxPower = Math.max(thisMaxPower, 4); } - if (card.getCardType().contains(CardType.LAND)) { + if (card.isLand()) { thisMaxPower = 0; } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/DuelCommander.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/DuelCommander.java index 76419b3b550..facc01acea6 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/DuelCommander.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/DuelCommander.java @@ -40,6 +40,7 @@ public class DuelCommander extends Commander { banned.add("Back to Basics"); banned.add("Black Lotus"); banned.add("Channel"); + banned.add("Chrome Mox"); banned.add("Dig Through Time"); banned.add("Entomb"); banned.add("Fastbond"); @@ -58,6 +59,7 @@ public class DuelCommander extends Commander { banned.add("Mana Vault"); banned.add("Mind Twist"); banned.add("Mishra’s Workshop"); + banned.add("Mox Diamond"); banned.add("Mox Emerald"); banned.add("Mox Jet"); banned.add("Mox Pearl"); @@ -80,6 +82,7 @@ public class DuelCommander extends Commander { banned.add("Treasure Cruise"); banned.add("Vampiric Tutor"); + bannedCommander.add("Breya, Etherium Shaper"); bannedCommander.add("Derevi, Empyrial Tactician"); bannedCommander.add("Edric, Spymaster of Trest"); bannedCommander.add("Erayo, Soratami Ascendant"); @@ -87,7 +90,7 @@ public class DuelCommander extends Commander { bannedCommander.add("Oloro, Ageless Ascetic"); bannedCommander.add("Rofellos, Llanowar Emissary"); bannedCommander.add("Tasigur, the Golden Fang"); - bannedCommander.add("Yisan, the Wanderer Bard"); + bannedCommander.add("Vial Smasher the Fierce"); bannedCommander.add("Zur the Enchanter"); } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/TinyLeaders.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/TinyLeaders.java index ab3b3ec42fd..6fb852e129c 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/TinyLeaders.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/TinyLeaders.java @@ -174,8 +174,8 @@ public class TinyLeaders extends Constructed { } return false; } - if ((commander.getCardType().contains(CardType.CREATURE) && commander.getSupertype().contains("Legendary")) - || (commander.getCardType().contains(CardType.PLANESWALKER) && commander.getAbilities().contains(CanBeYourCommanderAbility.getInstance()))) { + if ((commander.isCreature() && commander.isLegendary()) + || (commander.isPlaneswalker() && commander.getAbilities().contains(CanBeYourCommanderAbility.getInstance()))) { if (!bannedCommander.contains(commander.getName())) { FilterMana color = CardUtil.getColorIdentity(commander); for (Card card : deck.getCards()) { diff --git a/Mage.Server.Plugins/Mage.Deck.Limited/pom.xml b/Mage.Server.Plugins/Mage.Deck.Limited/pom.xml index 744fe8a2e00..1125d536bde 100644 --- a/Mage.Server.Plugins/Mage.Deck.Limited/pom.xml +++ b/Mage.Server.Plugins/Mage.Deck.Limited/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-deck-limited diff --git a/Mage.Server.Plugins/Mage.Game.CanadianHighlanderDuel/pom.xml b/Mage.Server.Plugins/Mage.Game.CanadianHighlanderDuel/pom.xml index e334cea9a4a..e6e40f6eb41 100644 --- a/Mage.Server.Plugins/Mage.Game.CanadianHighlanderDuel/pom.xml +++ b/Mage.Server.Plugins/Mage.Game.CanadianHighlanderDuel/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-game-canadianhighlanderduel diff --git a/Mage.Server.Plugins/Mage.Game.CommanderDuel/pom.xml b/Mage.Server.Plugins/Mage.Game.CommanderDuel/pom.xml index c2c3feb6f1c..a2b1e3e5817 100644 --- a/Mage.Server.Plugins/Mage.Game.CommanderDuel/pom.xml +++ b/Mage.Server.Plugins/Mage.Game.CommanderDuel/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-game-commanderduel diff --git a/Mage.Server.Plugins/Mage.Game.CommanderFreeForAll/pom.xml b/Mage.Server.Plugins/Mage.Game.CommanderFreeForAll/pom.xml index 280efb453b8..b375807fcbe 100644 --- a/Mage.Server.Plugins/Mage.Game.CommanderFreeForAll/pom.xml +++ b/Mage.Server.Plugins/Mage.Game.CommanderFreeForAll/pom.xml @@ -6,7 +6,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-game-commanderfreeforall diff --git a/Mage.Server.Plugins/Mage.Game.FreeForAll/pom.xml b/Mage.Server.Plugins/Mage.Game.FreeForAll/pom.xml index e3572327116..d812155dc9e 100644 --- a/Mage.Server.Plugins/Mage.Game.FreeForAll/pom.xml +++ b/Mage.Server.Plugins/Mage.Game.FreeForAll/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-game-freeforall diff --git a/Mage.Server.Plugins/Mage.Game.MomirDuel/pom.xml b/Mage.Server.Plugins/Mage.Game.MomirDuel/pom.xml index a34076a763b..4d27e25c556 100644 --- a/Mage.Server.Plugins/Mage.Game.MomirDuel/pom.xml +++ b/Mage.Server.Plugins/Mage.Game.MomirDuel/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-game-momirduel diff --git a/Mage.Server.Plugins/Mage.Game.TinyLeadersDuel/pom.xml b/Mage.Server.Plugins/Mage.Game.TinyLeadersDuel/pom.xml index 3b6edde8917..56bec2a4160 100644 --- a/Mage.Server.Plugins/Mage.Game.TinyLeadersDuel/pom.xml +++ b/Mage.Server.Plugins/Mage.Game.TinyLeadersDuel/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-game-tinyleadersduel diff --git a/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/pom.xml b/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/pom.xml index f55b40cde6a..beb8636331b 100644 --- a/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/pom.xml +++ b/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-game-twoplayerduel diff --git a/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml b/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml index 809fe363f17..3c85e47b5c4 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml +++ b/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-player-ai-draftbot diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/pom.xml b/Mage.Server.Plugins/Mage.Player.AI.MA/pom.xml index 0ee73a7e628..e9d83120f5e 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/pom.xml +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-player-ai-ma diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java index 04ed14327fd..d5ad689c8f3 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java @@ -1,6 +1,5 @@ package mage.player.ai.ma; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.keyword.HasteAbility; @@ -11,6 +10,8 @@ import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * @author ubeefx, nantuko */ @@ -27,7 +28,7 @@ public final class ArtificialScoringSystem { public static int getCardDefinitionScore(final Game game, final Card card) { int value = 3; //TODO: add new rating system card value - if (card.getCardType().contains(CardType.LAND)) { + if (card.isLand()) { int score = (int) ((value / 2.0f) * 50); //TODO: check this for "any color" lands //TODO: check this for dual and filter lands diff --git a/Mage.Server.Plugins/Mage.Player.AI/pom.xml b/Mage.Server.Plugins/Mage.Player.AI/pom.xml index 6920179bac7..8674a99ec47 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/pom.xml +++ b/Mage.Server.Plugins/Mage.Player.AI/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-player-ai diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java index 0f12ea92442..4fe28205543 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java @@ -27,6 +27,10 @@ */ package mage.player.ai; +import java.io.IOException; +import java.io.Serializable; +import java.util.*; +import java.util.Map.Entry; import mage.MageObject; import mage.Mana; import mage.abilities.*; @@ -77,11 +81,6 @@ import mage.util.TournamentUtil; import mage.util.TreeNode; import org.apache.log4j.Logger; -import java.io.IOException; -import java.io.Serializable; -import java.util.*; -import java.util.Map.Entry; - /** * * suitable for two player games and some multiplayer games @@ -1480,6 +1479,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { switch (ability.getSpellAbilityType()) { case SPLIT: case SPLIT_FUSED: + case SPLIT_AFTERMATH: MageObject object = game.getObject(ability.getSourceId()); if (object != null) { LinkedHashMap useableAbilities = getSpellAbilities(object, game.getState().getZone(object.getId()), game); @@ -1608,7 +1608,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { int cardNum = 0; while (deck.getCards().size() < 23 && sortedCards.size() > cardNum) { Card card = sortedCards.get(cardNum); - if (!card.getSupertype().contains("Basic")) { + if (!card.isBasic()) { deck.getCards().add(card); deck.getSideboard().remove(card); } diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java index bdd761b68d0..bfb41b55fe4 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java @@ -4,7 +4,6 @@ import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.Card; -import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Outcome; import mage.target.Target; @@ -57,15 +56,15 @@ public final class RateCard { return rate; } int type; - if (card.getCardType().contains(CardType.PLANESWALKER)) { + if (card.isPlaneswalker()) { type = 15; - } else if (card.getCardType().contains(CardType.CREATURE)) { + } else if (card.isCreature()) { type = 10; } else if (card.getSubtype(null).contains("Equipment")) { type = 8; } else if (card.getSubtype(null).contains("Aura")) { type = 5; - } else if (card.getCardType().contains(CardType.INSTANT)) { + } else if (card.isInstant()) { type = 7; } else { type = 6; @@ -78,8 +77,7 @@ public final class RateCard { } private static int isRemoval(Card card) { - if (card.getSubtype(null).contains("Aura") || card.getCardType().contains(CardType.INSTANT) - || card.getCardType().contains(CardType.SORCERY)) { + if (card.getSubtype(null).contains("Aura") || card.isInstant() || card.isSorcery()) { for (Ability ability : card.getAbilities()) { for (Effect effect : ability.getEffects()) { diff --git a/Mage.Server.Plugins/Mage.Player.AIMCTS/pom.xml b/Mage.Server.Plugins/Mage.Player.AIMCTS/pom.xml index 6144703ad63..5e3e0c0bee3 100644 --- a/Mage.Server.Plugins/Mage.Player.AIMCTS/pom.xml +++ b/Mage.Server.Plugins/Mage.Player.AIMCTS/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-player-ai-mcts diff --git a/Mage.Server.Plugins/Mage.Player.AIMinimax/pom.xml b/Mage.Server.Plugins/Mage.Player.AIMinimax/pom.xml index 92135473697..53d79731bce 100644 --- a/Mage.Server.Plugins/Mage.Player.AIMinimax/pom.xml +++ b/Mage.Server.Plugins/Mage.Player.AIMinimax/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-player-aiminimax diff --git a/Mage.Server.Plugins/Mage.Player.Human/pom.xml b/Mage.Server.Plugins/Mage.Player.Human/pom.xml index 1ad084c6c21..1188707f5e1 100644 --- a/Mage.Server.Plugins/Mage.Player.Human/pom.xml +++ b/Mage.Server.Plugins/Mage.Player.Human/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-player-human diff --git a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java index afc14c45f35..38b239cb6e8 100644 --- a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java @@ -28,29 +28,14 @@ package mage.player.human; import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; +import java.util.*; import mage.MageObject; -import mage.abilities.Ability; -import mage.abilities.ActivatedAbility; -import mage.abilities.Mode; -import mage.abilities.Modes; -import mage.abilities.PlayLandAbility; -import mage.abilities.SpecialAction; -import mage.abilities.SpellAbility; -import mage.abilities.TriggeredAbility; +import mage.abilities.*; import mage.abilities.costs.VariableCost; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCost; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.costs.mana.PhyrexianManaCost; import mage.abilities.effects.RequirementEffect; import mage.abilities.mana.ActivatedManaAbilityImpl; import mage.cards.Card; @@ -58,22 +43,9 @@ import mage.cards.Cards; import mage.cards.decks.Deck; import mage.choices.Choice; import mage.choices.ChoiceImpl; -import mage.constants.AbilityType; -import mage.constants.CardType; -import mage.constants.Constants; -import mage.constants.ManaType; -import mage.constants.Outcome; -import mage.constants.PhaseStep; -import mage.constants.PlayerAction; -import static mage.constants.PlayerAction.HOLD_PRIORITY; -import static mage.constants.PlayerAction.REQUEST_AUTO_ANSWER_ID_NO; +import mage.constants.*; import static mage.constants.PlayerAction.REQUEST_AUTO_ANSWER_RESET_ALL; -import static mage.constants.PlayerAction.TRIGGER_AUTO_ORDER_NAME_LAST; import static mage.constants.PlayerAction.TRIGGER_AUTO_ORDER_RESET_ALL; -import mage.constants.RangeOfInfluence; -import static mage.constants.SpellAbilityType.SPLIT; -import static mage.constants.SpellAbilityType.SPLIT_FUSED; -import mage.constants.Zone; import mage.filter.common.FilterAttackingCreature; import mage.filter.common.FilterBlockingCreature; import mage.filter.common.FilterCreatureForCombat; @@ -183,7 +155,7 @@ public class HumanPlayer extends PlayerImpl { @Override public boolean chooseUse(Outcome outcome, String message, Ability source, Game game) { - return this.chooseUse(outcome, message, null, null, null, source, game); + return this.chooseUse(outcome, message, null, "Yes", "No", source, game); } @Override @@ -326,7 +298,8 @@ public class HumanPlayer extends PlayerImpl { public boolean choose(Outcome outcome, Target target, UUID sourceId, Game game, Map options) { updateGameStatePriority("choose(5)", game); UUID abilityControllerId = playerId; - if (target.getTargetController() != null && target.getAbilityController() != null) { + if (target.getTargetController() != null + && target.getAbilityController() != null) { abilityControllerId = target.getAbilityController(); } if (options == null) { @@ -334,7 +307,8 @@ public class HumanPlayer extends PlayerImpl { } while (!abort) { Set targetIds = target.possibleTargets(sourceId, abilityControllerId, game); - if (targetIds == null || targetIds.isEmpty()) { + if (targetIds == null + || targetIds.isEmpty()) { return target.getTargets().size() >= target.getNumberOfTargets(); } boolean required = target.isRequired(sourceId, game); @@ -405,7 +379,8 @@ public class HumanPlayer extends PlayerImpl { while (!abort) { Set possibleTargets = target.possibleTargets(source == null ? null : source.getSourceId(), abilityControllerId, game); boolean required = target.isRequired(source != null ? source.getSourceId() : null, game); - if (possibleTargets.isEmpty() || target.getTargets().size() >= target.getNumberOfTargets()) { + if (possibleTargets.isEmpty() + || target.getTargets().size() >= target.getNumberOfTargets()) { required = false; } @@ -440,7 +415,8 @@ public class HumanPlayer extends PlayerImpl { if (options == null) { options = new HashMap<>(); } - if (target.getTargets().size() >= target.getNumberOfTargets() && !options.containsKey("UI.right.btn.text")) { + if (target.getTargets().size() >= target.getNumberOfTargets() + && !options.containsKey("UI.right.btn.text")) { options.put("UI.right.btn.text", "Done"); } options.put("targetZone", target.getZone()); @@ -593,19 +569,22 @@ public class HumanPlayer extends PlayerImpl { } } if (getJustActivatedType() != null && !holdingPriority) { - if (controllingPlayer.getUserData().isPassPriorityCast() && getJustActivatedType() == AbilityType.SPELL) { + if (controllingPlayer.getUserData().isPassPriorityCast() + && getJustActivatedType() == AbilityType.SPELL) { setJustActivatedType(null); pass(game); return false; } - if (controllingPlayer.getUserData().isPassPriorityActivation() && getJustActivatedType() == AbilityType.ACTIVATED) { + if (controllingPlayer.getUserData().isPassPriorityActivation() + && getJustActivatedType() == AbilityType.ACTIVATED) { setJustActivatedType(null); pass(game); return false; } } if (isGameUnderControl()) { // Use the skip actions only if the player itself controls its turn - if (passedAllTurns || passedTurnSkipStack) { + if (passedAllTurns + || passedTurnSkipStack) { if (passWithManaPoolCheck(game)) { return false; } @@ -628,15 +607,19 @@ public class HumanPlayer extends PlayerImpl { if (game.getStack().isEmpty()) { passedUntilStackResolved = false; boolean dontCheckPassStep = false; - if (passedTurn || passedTurnSkipStack) { + if (passedTurn + || passedTurnSkipStack) { if (passWithManaPoolCheck(game)) { return false; } } if (passedUntilNextMain) { - if (game.getTurn().getStepType() == PhaseStep.POSTCOMBAT_MAIN || game.getTurn().getStepType() == PhaseStep.PRECOMBAT_MAIN) { + if (game.getTurn().getStepType() == PhaseStep.POSTCOMBAT_MAIN + || game.getTurn().getStepType() == PhaseStep.PRECOMBAT_MAIN) { // it's a main phase - if (!skippedAtLeastOnce || (!playerId.equals(game.getActivePlayerId()) && !this.getUserData().getUserSkipPrioritySteps().isStopOnAllMainPhases())) { + if (!skippedAtLeastOnce + || (!playerId.equals(game.getActivePlayerId()) + && !this.getUserData().getUserSkipPrioritySteps().isStopOnAllMainPhases())) { skippedAtLeastOnce = true; if (passWithManaPoolCheck(game)) { return false; @@ -655,7 +638,9 @@ public class HumanPlayer extends PlayerImpl { if (passedUntilEndOfTurn) { if (game.getTurn().getStepType() == PhaseStep.END_TURN) { // It's end of turn phase - if (!skippedAtLeastOnce || (playerId.equals(game.getActivePlayerId()) && !this.getUserData().getUserSkipPrioritySteps().isStopOnAllEndPhases())) { + if (!skippedAtLeastOnce + || (playerId.equals(game.getActivePlayerId()) + && !this.getUserData().getUserSkipPrioritySteps().isStopOnAllEndPhases())) { skippedAtLeastOnce = true; if (passWithManaPoolCheck(game)) { return false; @@ -671,7 +656,8 @@ public class HumanPlayer extends PlayerImpl { } } } - if (!dontCheckPassStep && checkPassStep(game, controllingPlayer)) { + if (!dontCheckPassStep + && checkPassStep(game, controllingPlayer)) { if (passWithManaPoolCheck(game)) { return false; } @@ -695,7 +681,8 @@ public class HumanPlayer extends PlayerImpl { if (game.executingRollback()) { return true; } - if (response.getBoolean() != null || response.getInteger() != null) { + if (response.getBoolean() != null + || response.getInteger() != null) { if (passWithManaPoolCheck(game)) { return false; } else { @@ -705,7 +692,8 @@ public class HumanPlayer extends PlayerImpl { break; } - if (response.getString() != null && response.getString().equals("special")) { + if (response.getString() != null + && response.getString().equals("special")) { specialAction(game); } else if (response.getUUID() != null) { boolean result = false; @@ -726,7 +714,8 @@ public class HumanPlayer extends PlayerImpl { } if (actingPlayer != null) { LinkedHashMap useableAbilities = actingPlayer.getUseableActivatedAbilities(object, zone, game); - if (useableAbilities != null && !useableAbilities.isEmpty()) { + if (useableAbilities != null + && !useableAbilities.isEmpty()) { activateAbility(useableAbilities, object, game); result = true; } @@ -795,7 +784,8 @@ public class HumanPlayer extends PlayerImpl { if (abilitiesWithNoOrderSet.isEmpty()) { return abilityOrderLast; } - if (abilitiesWithNoOrderSet.size() == 1 || autoOrderUse) { + if (abilitiesWithNoOrderSet.size() == 1 + || autoOrderUse) { return abilitiesWithNoOrderSet.iterator().next(); } updateGameStatePriority("chooseTriggeredAbility", game); @@ -832,7 +822,8 @@ public class HumanPlayer extends PlayerImpl { return false; } else if (response.getUUID() != null) { playManaAbilities(abilityToCast, unpaid, game); - } else if (response.getString() != null && response.getString().equals("special")) { + } else if (response.getString() != null + && response.getString().equals("special")) { if (unpaid instanceof ManaCostsImpl) { specialManaAction(unpaid, game); } @@ -863,8 +854,10 @@ public class HumanPlayer extends PlayerImpl { do { game.fireGetAmountEvent(playerId, message, min, max); waitForResponse(game); - } while (response.getInteger() == null && !abort); - if (response != null && response.getInteger() != null) { + } while (response.getInteger() == null + && !abort); + if (response != null + && response.getInteger() != null) { xValue = response.getInteger(); } return xValue; @@ -877,8 +870,10 @@ public class HumanPlayer extends PlayerImpl { do { game.fireGetAmountEvent(playerId, message, min, max); waitForResponse(game); - } while (response.getInteger() == null && !abort); - if (response != null && response.getInteger() != null) { + } while (response.getInteger() == null + && !abort); + if (response != null + && response.getInteger() != null) { xValue = response.getInteger(); } return xValue; @@ -891,14 +886,16 @@ public class HumanPlayer extends PlayerImpl { return; } Spell spell = game.getStack().getSpell(abilityToCast.getSourceId()); - if (spell != null && spell.isDoneActivatingManaAbilities()) { + if (spell != null + && spell.isDoneActivatingManaAbilities()) { game.informPlayer(this, "You can no longer use activated mana abilities to pay for the current spell. Cancel and recast the spell and activate mana abilities first."); return; } Zone zone = game.getState().getZone(object.getId()); if (zone != null) { LinkedHashMap useableAbilities = getUseableManaAbilities(object, zone, game); - if (useableAbilities != null && !useableAbilities.isEmpty()) { + if (useableAbilities != null + && !useableAbilities.isEmpty()) { useableAbilities = ManaUtil.tryToAutoPay(unpaid, useableAbilities); // eliminates other abilities if one fits perfectly currentlyUnpaidMana = unpaid; activateAbility(useableAbilities, object, game); @@ -913,8 +910,13 @@ public class HumanPlayer extends PlayerImpl { FilterCreatureForCombat filter = filterCreatureForCombat.copy(); filter.add(new ControllerIdPredicate(attackingPlayerId)); while (!abort) { - if (passedAllTurns || passedUntilEndStepBeforeMyTurn - || (!getUserData().getUserSkipPrioritySteps().isStopOnDeclareAttackersDuringSkipAction() && (passedTurn || passedTurnSkipStack || passedUntilEndOfTurn || passedUntilNextMain))) { + if (passedAllTurns + || passedUntilEndStepBeforeMyTurn + || (!getUserData().getUserSkipPrioritySteps().isStopOnDeclareAttackersDuringSkipAction() + && (passedTurn + || passedTurnSkipStack + || passedUntilEndOfTurn + || passedUntilNextMain))) { return; } Map options = new HashMap<>(); @@ -932,7 +934,8 @@ public class HumanPlayer extends PlayerImpl { game.fireSelectEvent(playerId, "Select attackers", options); waitForResponse(game); - if (response.getString() != null && response.getString().equals("special")) { // All attack + if (response.getString() != null + && response.getString().equals("special")) { // All attack setStoredBookmark(game.bookmarkState()); UUID attackedDefender = null; if (game.getCombat().getDefenders().size() > 1) { @@ -967,7 +970,8 @@ public class HumanPlayer extends PlayerImpl { boolean validForcedAttacker = false; if (game.getCombat().getAttackers().contains(creatureId)) { Set possibleDefender = game.getCombat().getCreaturesForcedToAttack().get(creatureId); - if (possibleDefender.isEmpty() || possibleDefender.contains(game.getCombat().getDefenderId(creatureId))) { + if (possibleDefender.isEmpty() + || possibleDefender.contains(game.getCombat().getDefenderId(creatureId))) { validForcedAttacker = true; } } @@ -995,10 +999,6 @@ public class HumanPlayer extends PlayerImpl { } return; } else if (response.getInteger() != null) { - //if (response.getInteger() == -9999) { - // passedAllTurns = true; - //} - //passedTurn = true; return; } else if (response.getUUID() != null) { Permanent attacker = game.getPermanent(response.getUUID()); @@ -1017,7 +1017,8 @@ public class HumanPlayer extends PlayerImpl { for (Map.Entry entry : game.getContinuousEffects().getApplicableRequirementEffects(attacker, game).entrySet()) { RequirementEffect effect = (RequirementEffect) entry.getKey(); if (effect.mustAttack(game)) { - if (game.getCombat().getMaxAttackers() >= game.getCombat().getCreaturesForcedToAttack().size() && game.getCombat().getDefenders().size() == 1) { + if (game.getCombat().getMaxAttackers() >= game.getCombat().getCreaturesForcedToAttack().size() + && game.getCombat().getDefenders().size() == 1) { return; // we can't change creatures forced to attack if only one possible defender exists and all forced creatures can attack } } @@ -1039,7 +1040,8 @@ public class HumanPlayer extends PlayerImpl { if (possibleDefender != null) { forcedToAttack = true; } - if (possibleDefender == null || possibleDefender.isEmpty()) { + if (possibleDefender == null + || possibleDefender.isEmpty()) { possibleDefender = defenders; } if (possibleDefender.size() == 1) { @@ -1085,7 +1087,8 @@ public class HumanPlayer extends PlayerImpl { updateGameStatePriority("selectBlockers", game); FilterCreatureForCombatBlock filter = filterCreatureForCombatBlock.copy(); filter.add(new ControllerIdPredicate(defendingPlayerId)); - if (game.getBattlefield().count(filter, null, playerId, game) == 0 && !getUserData().getUserSkipPrioritySteps().isStopOnDeclareBlockerIfNoneAvailable()) { + if (game.getBattlefield().count(filter, null, playerId, game) == 0 + && !getUserData().getUserSkipPrioritySteps().isStopOnDeclareBlockerIfNoneAvailable()) { return; } while (!abort) { @@ -1102,7 +1105,8 @@ public class HumanPlayer extends PlayerImpl { // does not block yet and can block or can block more attackers if (filter.match(blocker, null, playerId, game)) { selectCombatGroup(defendingPlayerId, blocker.getId(), game); - } else if (filterBlock.match(blocker, null, playerId, game) && game.getStack().isEmpty()) { + } else if (filterBlock.match(blocker, null, playerId, game) + && game.getStack().isEmpty()) { removeBlocker = true; } @@ -1266,16 +1270,20 @@ public class HumanPlayer extends PlayerImpl { protected void activateAbility(LinkedHashMap abilities, MageObject object, Game game) { updateGameStatePriority("activateAbility", game); - if (abilities.size() == 1 && suppressAbilityPicker(abilities.values().iterator().next())) { + if (abilities.size() == 1 + && suppressAbilityPicker(abilities.values().iterator().next())) { ActivatedAbility ability = abilities.values().iterator().next(); if (!ability.getTargets().isEmpty() - || !(ability.getCosts().size() == 1 && ability.getCosts().get(0) instanceof SacrificeSourceCost) - || !(ability.getCosts().size() == 2 && ability.getCosts().get(0) instanceof TapSourceCost && ability.getCosts().get(0) instanceof SacrificeSourceCost)) { + || !(ability.getCosts().size() == 1 + && ability.getCosts().get(0) instanceof SacrificeSourceCost) + || !(ability.getCosts().size() == 2 + && ability.getCosts().get(0) instanceof TapSourceCost + && ability.getCosts().get(0) instanceof SacrificeSourceCost)) { activateAbility(ability, game); return; } } - if (userData.isUseFirstManaAbility() && object instanceof Permanent && object.getCardType().contains(CardType.LAND)) { + if (userData.isUseFirstManaAbility() && object instanceof Permanent && object.isLand()) { ActivatedAbility ability = abilities.values().iterator().next(); if (ability instanceof ActivatedManaAbilityImpl) { activateAbility(ability, game); @@ -1298,7 +1306,8 @@ public class HumanPlayer extends PlayerImpl { if (ability instanceof PlayLandAbility) { return true; } - if (!ability.getSourceId().equals(getCastSourceIdWithAlternateMana()) && ability.getManaCostsToPay().convertedManaCost() > 0) { + if (!ability.getSourceId().equals(getCastSourceIdWithAlternateMana()) + && ability.getManaCostsToPay().convertedManaCost() > 0) { return true; } return ability instanceof ActivatedManaAbilityImpl; @@ -1311,12 +1320,15 @@ public class HumanPlayer extends PlayerImpl { switch (ability.getSpellAbilityType()) { case SPLIT: case SPLIT_FUSED: + case SPLIT_AFTERMATH: MageObject object = game.getObject(ability.getSourceId()); if (object != null) { LinkedHashMap useableAbilities = getSpellAbilities(object, game.getState().getZone(object.getId()), game); - if (useableAbilities != null && useableAbilities.size() == 1) { + if (useableAbilities != null + && useableAbilities.size() == 1) { return (SpellAbility) useableAbilities.values().iterator().next(); - } else if (useableAbilities != null && !useableAbilities.isEmpty()) { + } else if (useableAbilities != null + && !useableAbilities.isEmpty()) { game.fireGetChoiceEvent(playerId, name, object, new ArrayList<>(useableAbilities.values())); waitForResponse(game); if (response.getUUID() != null) { @@ -1593,7 +1605,7 @@ public class HumanPlayer extends PlayerImpl { if (!isGameUnderControl()) { priorityPlayerText = " / priority " + game.getPlayer(game.getPriorityPlayerId()).getName(); } - if (!chooseUse(Outcome.Detriment, GameLog.getPlayerConfirmColoredText("You have still mana in your mana pool. Pass regardless?") + if (!chooseUse(Outcome.Detriment, GameLog.getPlayerConfirmColoredText("You still have mana in your mana pool. Pass regardless?") + GameLog.getSmallSecondLineText(activePlayerText + " / " + game.getStep().getType().toString() + priorityPlayerText), null, game)) { sendPlayerAction(PlayerAction.PASS_PRIORITY_CANCEL_ALL_ACTIONS, game, null); return false; diff --git a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/pom.xml b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/pom.xml index 9e79eced5c0..93ff0ffda37 100644 --- a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/pom.xml +++ b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-tournament-boosterdraft diff --git a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/CubeFromDeck.java b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/CubeFromDeck.java index ef34d70b6e8..6c8198d584a 100644 --- a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/CubeFromDeck.java +++ b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/CubeFromDeck.java @@ -49,7 +49,7 @@ public class CubeFromDeck extends DraftCube { if (cards != null) { for (DeckCardInfo card : cards.getCards()) { - cubeCards.add(new CardIdentity(card.getCardName(), "")); + cubeCards.add(new CardIdentity(card.getCardName(), card.getSetCode())); } } } diff --git a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/LegacyCubeApril2017.java b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/LegacyCubeApril2017.java new file mode 100644 index 00000000000..2713f607606 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/LegacyCubeApril2017.java @@ -0,0 +1,642 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.tournament.cubes; + +import mage.game.draft.DraftCube; + +/** + * + * @author fireshoes + */ + +public class LegacyCubeApril2017 extends DraftCube { + + public LegacyCubeApril2017() { + super("MTGO Legacy Cube April 2017 (600 cards)"); + cubeCards.add(new DraftCube.CardIdentity("Abbot of Keral Keep","")); + cubeCards.add(new DraftCube.CardIdentity("Abrupt Decay","")); + cubeCards.add(new DraftCube.CardIdentity("Abyssal Persecutor","")); + cubeCards.add(new DraftCube.CardIdentity("Accorder Paladin","")); + cubeCards.add(new DraftCube.CardIdentity("Acidic Slime","")); + cubeCards.add(new DraftCube.CardIdentity("Act of Aggression","")); + cubeCards.add(new DraftCube.CardIdentity("Ajani Goldmane","")); + cubeCards.add(new DraftCube.CardIdentity("Ajani Vengeant","")); + cubeCards.add(new DraftCube.CardIdentity("Ajani, Caller of the Pride","")); + cubeCards.add(new DraftCube.CardIdentity("Anafenza, Kin-Tree Spirit","")); + cubeCards.add(new DraftCube.CardIdentity("Ancestral Vision","")); + cubeCards.add(new DraftCube.CardIdentity("Ancient Tomb","")); + cubeCards.add(new DraftCube.CardIdentity("Angel of Invention","")); + cubeCards.add(new DraftCube.CardIdentity("Angel of Serenity","")); + cubeCards.add(new DraftCube.CardIdentity("Anger of the Gods","")); + cubeCards.add(new DraftCube.CardIdentity("Anguished Unmaking","")); + cubeCards.add(new DraftCube.CardIdentity("Animate Dead","")); + cubeCards.add(new DraftCube.CardIdentity("Arbor Elf","")); + cubeCards.add(new DraftCube.CardIdentity("Arc Trail","")); + cubeCards.add(new DraftCube.CardIdentity("Archangel Avacyn","")); + cubeCards.add(new DraftCube.CardIdentity("Arid Mesa","")); + cubeCards.add(new DraftCube.CardIdentity("Armageddon","")); + cubeCards.add(new DraftCube.CardIdentity("Ashiok, Nightmare Weaver","")); + cubeCards.add(new DraftCube.CardIdentity("Assemble the Legion","")); + cubeCards.add(new DraftCube.CardIdentity("Augur of Bolas","")); + cubeCards.add(new DraftCube.CardIdentity("Avacyn's Pilgrim","")); + cubeCards.add(new DraftCube.CardIdentity("Avalanche Riders","")); + cubeCards.add(new DraftCube.CardIdentity("Avenger of Zendikar","")); + cubeCards.add(new DraftCube.CardIdentity("Badlands","")); + cubeCards.add(new DraftCube.CardIdentity("Baleful Strix","")); + cubeCards.add(new DraftCube.CardIdentity("Banefire","")); + cubeCards.add(new DraftCube.CardIdentity("Baneslayer Angel","")); + cubeCards.add(new DraftCube.CardIdentity("Banisher Priest","")); + cubeCards.add(new DraftCube.CardIdentity("Banishing Light","")); + cubeCards.add(new DraftCube.CardIdentity("Baral, Chief of Compliance","")); + cubeCards.add(new DraftCube.CardIdentity("Batterskull","")); + cubeCards.add(new DraftCube.CardIdentity("Bayou","")); + cubeCards.add(new DraftCube.CardIdentity("Beast Within","")); + cubeCards.add(new DraftCube.CardIdentity("Bedlam Reveler","")); + cubeCards.add(new DraftCube.CardIdentity("Beetleback Chief","")); + cubeCards.add(new DraftCube.CardIdentity("Birds of Paradise","")); + cubeCards.add(new DraftCube.CardIdentity("Birthing Pod","")); + cubeCards.add(new DraftCube.CardIdentity("Bitterblossom","")); + cubeCards.add(new DraftCube.CardIdentity("Blackcleave Cliffs","")); + cubeCards.add(new DraftCube.CardIdentity("Blade Splicer","")); + cubeCards.add(new DraftCube.CardIdentity("Blood Artist","")); + cubeCards.add(new DraftCube.CardIdentity("Blood Crypt","")); + cubeCards.add(new DraftCube.CardIdentity("Bloodbraid Elf","")); + cubeCards.add(new DraftCube.CardIdentity("Bloodghast","")); + cubeCards.add(new DraftCube.CardIdentity("Bloodstained Mire","")); + cubeCards.add(new DraftCube.CardIdentity("Bloom Tender","")); + cubeCards.add(new DraftCube.CardIdentity("Blooming Marsh","")); + cubeCards.add(new DraftCube.CardIdentity("Bogardan Hellkite","")); + cubeCards.add(new DraftCube.CardIdentity("Bomat Courier","")); + cubeCards.add(new DraftCube.CardIdentity("Bone Shredder","")); + cubeCards.add(new DraftCube.CardIdentity("Bonfire of the Damned","")); + cubeCards.add(new DraftCube.CardIdentity("Boros Charm","")); + cubeCards.add(new DraftCube.CardIdentity("Boros Reckoner","")); + cubeCards.add(new DraftCube.CardIdentity("Botanical Sanctum","")); + cubeCards.add(new DraftCube.CardIdentity("Brainstorm","")); + cubeCards.add(new DraftCube.CardIdentity("Breeding Pool","")); + cubeCards.add(new DraftCube.CardIdentity("Brimaz, King of Oreskos","")); + cubeCards.add(new DraftCube.CardIdentity("Brimstone Volley","")); + cubeCards.add(new DraftCube.CardIdentity("Bruna, the Fading Light","")); + cubeCards.add(new DraftCube.CardIdentity("Buried Alive","")); + cubeCards.add(new DraftCube.CardIdentity("Burst Lightning","")); + cubeCards.add(new DraftCube.CardIdentity("Careful Consideration","")); + cubeCards.add(new DraftCube.CardIdentity("Careful Study","")); + cubeCards.add(new DraftCube.CardIdentity("Cathartic Reunion","")); + cubeCards.add(new DraftCube.CardIdentity("Celestial Colonnade","")); + cubeCards.add(new DraftCube.CardIdentity("Chain Lightning","")); + cubeCards.add(new DraftCube.CardIdentity("Chainer's Edict","")); + cubeCards.add(new DraftCube.CardIdentity("Champion of the Parish","")); + cubeCards.add(new DraftCube.CardIdentity("Chandra's Phoenix","")); + cubeCards.add(new DraftCube.CardIdentity("Chandra, Fire of Kaladesh","")); + cubeCards.add(new DraftCube.CardIdentity("Chandra, Flamecaller","")); + cubeCards.add(new DraftCube.CardIdentity("Chandra, Pyromaster","")); + cubeCards.add(new DraftCube.CardIdentity("Chandra, Torch of Defiance","")); + cubeCards.add(new DraftCube.CardIdentity("Char","")); + cubeCards.add(new DraftCube.CardIdentity("Chord of Calling","")); + cubeCards.add(new DraftCube.CardIdentity("Chromatic Lantern","")); + cubeCards.add(new DraftCube.CardIdentity("City of Brass","")); + cubeCards.add(new DraftCube.CardIdentity("Clifftop Retreat","")); + cubeCards.add(new DraftCube.CardIdentity("Cloudgoat Ranger","")); + cubeCards.add(new DraftCube.CardIdentity("Coalition Relic","")); + cubeCards.add(new DraftCube.CardIdentity("Coldsteel Heart","")); + cubeCards.add(new DraftCube.CardIdentity("Collective Brutality","")); + cubeCards.add(new DraftCube.CardIdentity("Collective Defiance","")); + cubeCards.add(new DraftCube.CardIdentity("Collective Effort","")); + cubeCards.add(new DraftCube.CardIdentity("Compulsive Research","")); + cubeCards.add(new DraftCube.CardIdentity("Concealed Courtyard","")); + cubeCards.add(new DraftCube.CardIdentity("Condemn","")); + cubeCards.add(new DraftCube.CardIdentity("Consecrated Sphinx","")); + cubeCards.add(new DraftCube.CardIdentity("Control Magic","")); + cubeCards.add(new DraftCube.CardIdentity("Copperline Gorge","")); + cubeCards.add(new DraftCube.CardIdentity("Council's Judgment","")); + cubeCards.add(new DraftCube.CardIdentity("Counterspell","")); + cubeCards.add(new DraftCube.CardIdentity("Courser of Kruphix","")); + cubeCards.add(new DraftCube.CardIdentity("Crater's Claws","")); + cubeCards.add(new DraftCube.CardIdentity("Craterhoof Behemoth","")); + cubeCards.add(new DraftCube.CardIdentity("Creeping Tar Pit","")); + cubeCards.add(new DraftCube.CardIdentity("Crux of Fate","")); + cubeCards.add(new DraftCube.CardIdentity("Cryptic Command","")); + cubeCards.add(new DraftCube.CardIdentity("Cultivate","")); + cubeCards.add(new DraftCube.CardIdentity("Cunning Sparkmage","")); + cubeCards.add(new DraftCube.CardIdentity("Cyclonic Rift","")); + cubeCards.add(new DraftCube.CardIdentity("Damnation","")); + cubeCards.add(new DraftCube.CardIdentity("Dark Confidant","")); + cubeCards.add(new DraftCube.CardIdentity("Dark Petition","")); + cubeCards.add(new DraftCube.CardIdentity("Dark Ritual","")); + cubeCards.add(new DraftCube.CardIdentity("Darkslick Shores","")); + cubeCards.add(new DraftCube.CardIdentity("Day of Judgment","")); + cubeCards.add(new DraftCube.CardIdentity("Daze","")); + cubeCards.add(new DraftCube.CardIdentity("Deathrite Shaman","")); + cubeCards.add(new DraftCube.CardIdentity("Deceiver Exarch","")); + cubeCards.add(new DraftCube.CardIdentity("Declaration in Stone","")); + cubeCards.add(new DraftCube.CardIdentity("Deep Analysis","")); + cubeCards.add(new DraftCube.CardIdentity("Delver of Secrets","")); + cubeCards.add(new DraftCube.CardIdentity("Den Protector","")); + cubeCards.add(new DraftCube.CardIdentity("Deranged Hermit","")); + cubeCards.add(new DraftCube.CardIdentity("Desecration Demon","")); + cubeCards.add(new DraftCube.CardIdentity("Devil's Play","")); + cubeCards.add(new DraftCube.CardIdentity("Devoted Druid","")); + cubeCards.add(new DraftCube.CardIdentity("Disallow","")); + cubeCards.add(new DraftCube.CardIdentity("Disfigure","")); + cubeCards.add(new DraftCube.CardIdentity("Dismember","")); + cubeCards.add(new DraftCube.CardIdentity("Dismiss","")); + cubeCards.add(new DraftCube.CardIdentity("Dissipate","")); + cubeCards.add(new DraftCube.CardIdentity("Dissolve","")); + cubeCards.add(new DraftCube.CardIdentity("Distended Mindbender","")); + cubeCards.add(new DraftCube.CardIdentity("Domri Rade","")); + cubeCards.add(new DraftCube.CardIdentity("Doom Blade","")); + cubeCards.add(new DraftCube.CardIdentity("Dragonlord Atarka","")); + cubeCards.add(new DraftCube.CardIdentity("Dragonlord Dromoka","")); + cubeCards.add(new DraftCube.CardIdentity("Dragonlord Ojutai","")); + cubeCards.add(new DraftCube.CardIdentity("Dragonlord Silumgar","")); + cubeCards.add(new DraftCube.CardIdentity("Dragonskull Summit","")); + cubeCards.add(new DraftCube.CardIdentity("Drana, Liberator of Malakir","")); + cubeCards.add(new DraftCube.CardIdentity("Dread Return","")); + cubeCards.add(new DraftCube.CardIdentity("Dreadbore","")); + cubeCards.add(new DraftCube.CardIdentity("Dromoka's Command","")); + cubeCards.add(new DraftCube.CardIdentity("Drowned Catacomb","")); + cubeCards.add(new DraftCube.CardIdentity("Dualcaster Mage","")); + cubeCards.add(new DraftCube.CardIdentity("Dungeon Geists","")); + cubeCards.add(new DraftCube.CardIdentity("Duplicant","")); + cubeCards.add(new DraftCube.CardIdentity("Duress","")); + cubeCards.add(new DraftCube.CardIdentity("Duskwatch Recruiter","")); + cubeCards.add(new DraftCube.CardIdentity("Edric, Spymaster of Trest","")); + cubeCards.add(new DraftCube.CardIdentity("Elder Deep-Fiend","")); + cubeCards.add(new DraftCube.CardIdentity("Electrolyze","")); + cubeCards.add(new DraftCube.CardIdentity("Elesh Norn, Grand Cenobite","")); + cubeCards.add(new DraftCube.CardIdentity("Elspeth Tirel","")); + cubeCards.add(new DraftCube.CardIdentity("Elspeth, Knight-Errant","")); + cubeCards.add(new DraftCube.CardIdentity("Elspeth, Sun's Champion","")); + cubeCards.add(new DraftCube.CardIdentity("Elves of Deep Shadow","")); + cubeCards.add(new DraftCube.CardIdentity("Elvish Mystic","")); + cubeCards.add(new DraftCube.CardIdentity("Emeria Angel","")); + cubeCards.add(new DraftCube.CardIdentity("Emrakul, the Aeons Torn","")); + cubeCards.add(new DraftCube.CardIdentity("Emrakul, the Promised End","")); + cubeCards.add(new DraftCube.CardIdentity("Engineered Explosives","")); + cubeCards.add(new DraftCube.CardIdentity("Entomb","")); + cubeCards.add(new DraftCube.CardIdentity("Entreat the Angels","")); + cubeCards.add(new DraftCube.CardIdentity("Erebos, God of the Dead","")); + cubeCards.add(new DraftCube.CardIdentity("Eternal Witness","")); + cubeCards.add(new DraftCube.CardIdentity("Ever After","")); + cubeCards.add(new DraftCube.CardIdentity("Exhume","")); + cubeCards.add(new DraftCube.CardIdentity("Explore","")); + cubeCards.add(new DraftCube.CardIdentity("Exquisite Firecraft","")); + cubeCards.add(new DraftCube.CardIdentity("Fact or Fiction","")); + cubeCards.add(new DraftCube.CardIdentity("Faith's Fetters","")); + cubeCards.add(new DraftCube.CardIdentity("Falkenrath Gorger","")); + cubeCards.add(new DraftCube.CardIdentity("Far // Away","")); + cubeCards.add(new DraftCube.CardIdentity("Farseek","")); + cubeCards.add(new DraftCube.CardIdentity("Fatal Push","")); + cubeCards.add(new DraftCube.CardIdentity("Fauna Shaman","")); + cubeCards.add(new DraftCube.CardIdentity("Fertile Ground","")); + cubeCards.add(new DraftCube.CardIdentity("Fiend Hunter","")); + cubeCards.add(new DraftCube.CardIdentity("Fiery Confluence","")); + cubeCards.add(new DraftCube.CardIdentity("Fire // Ice","")); + cubeCards.add(new DraftCube.CardIdentity("Firebolt","")); + cubeCards.add(new DraftCube.CardIdentity("Firefist Striker","")); + cubeCards.add(new DraftCube.CardIdentity("Flame Slash","")); + cubeCards.add(new DraftCube.CardIdentity("Flametongue Kavu","")); + cubeCards.add(new DraftCube.CardIdentity("Flickerwisp","")); + cubeCards.add(new DraftCube.CardIdentity("Flooded Strand","")); + cubeCards.add(new DraftCube.CardIdentity("Forbid","")); + cubeCards.add(new DraftCube.CardIdentity("Force of Will","")); + cubeCards.add(new DraftCube.CardIdentity("Force Spike","")); + cubeCards.add(new DraftCube.CardIdentity("Forked Bolt","")); + cubeCards.add(new DraftCube.CardIdentity("Frost Titan","")); + cubeCards.add(new DraftCube.CardIdentity("Future Sight","")); + cubeCards.add(new DraftCube.CardIdentity("Fyndhorn Elves","")); + cubeCards.add(new DraftCube.CardIdentity("Gaea's Cradle","")); + cubeCards.add(new DraftCube.CardIdentity("Garruk Relentless","")); + cubeCards.add(new DraftCube.CardIdentity("Garruk Wildspeaker","")); + cubeCards.add(new DraftCube.CardIdentity("Garruk, Apex Predator","")); + cubeCards.add(new DraftCube.CardIdentity("Garruk, Primal Hunter","")); + cubeCards.add(new DraftCube.CardIdentity("Gatekeeper of Malakir","")); + cubeCards.add(new DraftCube.CardIdentity("Geist of Saint Traft","")); + cubeCards.add(new DraftCube.CardIdentity("Genesis Wave","")); + cubeCards.add(new DraftCube.CardIdentity("Geralf's Messenger","")); + cubeCards.add(new DraftCube.CardIdentity("Ghor-Clan Rampager","")); + cubeCards.add(new DraftCube.CardIdentity("Gideon Jura","")); + cubeCards.add(new DraftCube.CardIdentity("Gideon, Ally of Zendikar","")); + cubeCards.add(new DraftCube.CardIdentity("Gifted Aetherborn","")); + cubeCards.add(new DraftCube.CardIdentity("Gifts Ungiven","")); + cubeCards.add(new DraftCube.CardIdentity("Gilded Lotus","")); + cubeCards.add(new DraftCube.CardIdentity("Gilt-Leaf Winnower","")); + cubeCards.add(new DraftCube.CardIdentity("Gisela, the Broken Blade","")); + cubeCards.add(new DraftCube.CardIdentity("Gitaxian Probe","")); + cubeCards.add(new DraftCube.CardIdentity("Glacial Fortress","")); + cubeCards.add(new DraftCube.CardIdentity("Glen Elendra Archmage","")); + cubeCards.add(new DraftCube.CardIdentity("Glorious Anthem","")); + cubeCards.add(new DraftCube.CardIdentity("Go for the Throat","")); + cubeCards.add(new DraftCube.CardIdentity("Goblin Bombardment","")); + cubeCards.add(new DraftCube.CardIdentity("Goblin Dark-Dwellers","")); + cubeCards.add(new DraftCube.CardIdentity("Goblin Guide","")); + cubeCards.add(new DraftCube.CardIdentity("Goblin Rabblemaster","")); + cubeCards.add(new DraftCube.CardIdentity("Godless Shrine","")); + cubeCards.add(new DraftCube.CardIdentity("Gonti, Lord of Luxury","")); + cubeCards.add(new DraftCube.CardIdentity("Gore-House Chainwalker","")); + cubeCards.add(new DraftCube.CardIdentity("Grafted Wargear","")); + cubeCards.add(new DraftCube.CardIdentity("Grave Titan","")); + cubeCards.add(new DraftCube.CardIdentity("Gray Merchant of Asphodel","")); + cubeCards.add(new DraftCube.CardIdentity("Greater Gargadon","")); + cubeCards.add(new DraftCube.CardIdentity("Green Sun's Zenith","")); + cubeCards.add(new DraftCube.CardIdentity("Greenwarden of Murasa","")); + cubeCards.add(new DraftCube.CardIdentity("Grim Lavamancer","")); + cubeCards.add(new DraftCube.CardIdentity("Griselbrand","")); + cubeCards.add(new DraftCube.CardIdentity("Gurmag Angler","")); + cubeCards.add(new DraftCube.CardIdentity("Hallowed Fountain","")); + cubeCards.add(new DraftCube.CardIdentity("Hallowed Spiritkeeper","")); + cubeCards.add(new DraftCube.CardIdentity("Hangarback Walker","")); + cubeCards.add(new DraftCube.CardIdentity("Harbinger of the Tides","")); + cubeCards.add(new DraftCube.CardIdentity("Harmonize","")); + cubeCards.add(new DraftCube.CardIdentity("Hellrider","")); + cubeCards.add(new DraftCube.CardIdentity("Hero of Bladehold","")); + cubeCards.add(new DraftCube.CardIdentity("Hero's Downfall","")); + cubeCards.add(new DraftCube.CardIdentity("Hidden Dragonslayer","")); + cubeCards.add(new DraftCube.CardIdentity("Hinterland Harbor","")); + cubeCards.add(new DraftCube.CardIdentity("Hissing Quagmire","")); + cubeCards.add(new DraftCube.CardIdentity("Honor of the Pure","")); + cubeCards.add(new DraftCube.CardIdentity("Hordeling Outburst","")); + cubeCards.add(new DraftCube.CardIdentity("Hornet Queen","")); + cubeCards.add(new DraftCube.CardIdentity("Huntmaster of the Fells","")); + cubeCards.add(new DraftCube.CardIdentity("Hymn to Tourach","")); + cubeCards.add(new DraftCube.CardIdentity("Hypnotic Specter","")); + cubeCards.add(new DraftCube.CardIdentity("Icefall Regent","")); + cubeCards.add(new DraftCube.CardIdentity("Imperial Recruiter","")); + cubeCards.add(new DraftCube.CardIdentity("Impulse","")); + cubeCards.add(new DraftCube.CardIdentity("Incendiary Flow","")); + cubeCards.add(new DraftCube.CardIdentity("Incinerate","")); + cubeCards.add(new DraftCube.CardIdentity("Inferno Titan","")); + cubeCards.add(new DraftCube.CardIdentity("Inquisition of Kozilek","")); + cubeCards.add(new DraftCube.CardIdentity("Inspiring Vantage","")); + cubeCards.add(new DraftCube.CardIdentity("Into the Roil","")); + cubeCards.add(new DraftCube.CardIdentity("Ire Shaman","")); + cubeCards.add(new DraftCube.CardIdentity("Isamaru, Hound of Konda","")); + cubeCards.add(new DraftCube.CardIdentity("Isolated Chapel","")); + cubeCards.add(new DraftCube.CardIdentity("Izzet Charm","")); + cubeCards.add(new DraftCube.CardIdentity("Jace Beleren","")); + cubeCards.add(new DraftCube.CardIdentity("Jace, Architect of Thought","")); + cubeCards.add(new DraftCube.CardIdentity("Jace, the Mind Sculptor","")); + cubeCards.add(new DraftCube.CardIdentity("Jace, Vryn's Prodigy","")); + cubeCards.add(new DraftCube.CardIdentity("Jackal Pup","")); + cubeCards.add(new DraftCube.CardIdentity("Joraga Treespeaker","")); + cubeCards.add(new DraftCube.CardIdentity("Journey to Nowhere","")); + cubeCards.add(new DraftCube.CardIdentity("Kalitas, Traitor of Ghet","")); + cubeCards.add(new DraftCube.CardIdentity("Karmic Guide","")); + cubeCards.add(new DraftCube.CardIdentity("Karn Liberated","")); + cubeCards.add(new DraftCube.CardIdentity("Keiga, the Tide Star","")); + cubeCards.add(new DraftCube.CardIdentity("Keranos, God of Storms","")); + cubeCards.add(new DraftCube.CardIdentity("Kiki-Jiki, Mirror Breaker","")); + cubeCards.add(new DraftCube.CardIdentity("Kiln Fiend","")); + cubeCards.add(new DraftCube.CardIdentity("Kiora's Follower","")); + cubeCards.add(new DraftCube.CardIdentity("Kiora, the Crashing Wave","")); + cubeCards.add(new DraftCube.CardIdentity("Kira, Great Glass-Spinner","")); + cubeCards.add(new DraftCube.CardIdentity("Kitchen Finks","")); + cubeCards.add(new DraftCube.CardIdentity("Knight of the Reliquary","")); + cubeCards.add(new DraftCube.CardIdentity("Kodama's Reach","")); + cubeCards.add(new DraftCube.CardIdentity("Kokusho, the Evening Star","")); + cubeCards.add(new DraftCube.CardIdentity("Kolaghan's Command","")); + cubeCards.add(new DraftCube.CardIdentity("Koth of the Hammer","")); + cubeCards.add(new DraftCube.CardIdentity("Kytheon, Hero of Akros","")); + cubeCards.add(new DraftCube.CardIdentity("Land Tax","")); + cubeCards.add(new DraftCube.CardIdentity("Languish","")); + cubeCards.add(new DraftCube.CardIdentity("Lavaclaw Reaches","")); + cubeCards.add(new DraftCube.CardIdentity("Legacy's Allure","")); + cubeCards.add(new DraftCube.CardIdentity("Leonin Relic-Warder","")); + cubeCards.add(new DraftCube.CardIdentity("Lightning Bolt","")); + cubeCards.add(new DraftCube.CardIdentity("Lightning Greaves","")); + cubeCards.add(new DraftCube.CardIdentity("Lightning Helix","")); + cubeCards.add(new DraftCube.CardIdentity("Lightning Mauler","")); + cubeCards.add(new DraftCube.CardIdentity("Lightning Strike","")); + cubeCards.add(new DraftCube.CardIdentity("Liliana of the Veil","")); + cubeCards.add(new DraftCube.CardIdentity("Liliana Vess","")); + cubeCards.add(new DraftCube.CardIdentity("Liliana, Heretical Healer","")); + cubeCards.add(new DraftCube.CardIdentity("Liliana, the Last Hope","")); + cubeCards.add(new DraftCube.CardIdentity("Lingering Souls","")); + cubeCards.add(new DraftCube.CardIdentity("Linvala, Keeper of Silence","")); + cubeCards.add(new DraftCube.CardIdentity("Linvala, the Preserver","")); + cubeCards.add(new DraftCube.CardIdentity("Living Death","")); + cubeCards.add(new DraftCube.CardIdentity("Llanowar Elves","")); + cubeCards.add(new DraftCube.CardIdentity("Looter il-Kor","")); + cubeCards.add(new DraftCube.CardIdentity("Lotus Cobra","")); + cubeCards.add(new DraftCube.CardIdentity("Lumbering Falls","")); + cubeCards.add(new DraftCube.CardIdentity("Maelstrom Pulse","")); + cubeCards.add(new DraftCube.CardIdentity("Magma Jet","")); + cubeCards.add(new DraftCube.CardIdentity("Magus of the Wheel","")); + cubeCards.add(new DraftCube.CardIdentity("Makeshift Mannequin","")); + cubeCards.add(new DraftCube.CardIdentity("Malicious Affliction","")); + cubeCards.add(new DraftCube.CardIdentity("Man-o'-War","")); + cubeCards.add(new DraftCube.CardIdentity("Mana Confluence","")); + cubeCards.add(new DraftCube.CardIdentity("Mana Tithe","")); + cubeCards.add(new DraftCube.CardIdentity("Managorger Hydra","")); + cubeCards.add(new DraftCube.CardIdentity("Manic Vandal","")); + cubeCards.add(new DraftCube.CardIdentity("Marsh Flats","")); + cubeCards.add(new DraftCube.CardIdentity("Martial Coup","")); + cubeCards.add(new DraftCube.CardIdentity("Massacre Wurm","")); + cubeCards.add(new DraftCube.CardIdentity("Master of the Wild Hunt","")); + cubeCards.add(new DraftCube.CardIdentity("Master of Waves","")); + cubeCards.add(new DraftCube.CardIdentity("Maze of Ith","")); + cubeCards.add(new DraftCube.CardIdentity("Meloku the Clouded Mirror","")); + cubeCards.add(new DraftCube.CardIdentity("Mentor of the Meek","")); + cubeCards.add(new DraftCube.CardIdentity("Merfolk Looter","")); + cubeCards.add(new DraftCube.CardIdentity("Mimic Vat","")); + cubeCards.add(new DraftCube.CardIdentity("Mind Stone","")); + cubeCards.add(new DraftCube.CardIdentity("Mirari's Wake","")); + cubeCards.add(new DraftCube.CardIdentity("Mirran Crusader","")); + cubeCards.add(new DraftCube.CardIdentity("Mirror Entity","")); + cubeCards.add(new DraftCube.CardIdentity("Miscalculation","")); + cubeCards.add(new DraftCube.CardIdentity("Mishra's Factory","")); + cubeCards.add(new DraftCube.CardIdentity("Misty Rainforest","")); + cubeCards.add(new DraftCube.CardIdentity("Mizzium Mortars","")); + cubeCards.add(new DraftCube.CardIdentity("Mogg War Marshal","")); + cubeCards.add(new DraftCube.CardIdentity("Monastery Mentor","")); + cubeCards.add(new DraftCube.CardIdentity("Monastery Swiftspear","")); + cubeCards.add(new DraftCube.CardIdentity("Mother of Runes","")); + cubeCards.add(new DraftCube.CardIdentity("Mulldrifter","")); + cubeCards.add(new DraftCube.CardIdentity("Murderous Cut","")); + cubeCards.add(new DraftCube.CardIdentity("Murderous Redcap","")); + cubeCards.add(new DraftCube.CardIdentity("Mutavault","")); + cubeCards.add(new DraftCube.CardIdentity("Myr Battlesphere","")); + cubeCards.add(new DraftCube.CardIdentity("Mystic Snake","")); + cubeCards.add(new DraftCube.CardIdentity("Nahiri, the Harbinger","")); + cubeCards.add(new DraftCube.CardIdentity("Natural Order","")); + cubeCards.add(new DraftCube.CardIdentity("Nature's Lore","")); + cubeCards.add(new DraftCube.CardIdentity("Necromancy","")); + cubeCards.add(new DraftCube.CardIdentity("Needle Spires","")); + cubeCards.add(new DraftCube.CardIdentity("Negate","")); + cubeCards.add(new DraftCube.CardIdentity("Nekrataal","")); + cubeCards.add(new DraftCube.CardIdentity("Nevinyrral's Disk","")); + cubeCards.add(new DraftCube.CardIdentity("Nicol Bolas, Planeswalker","")); + cubeCards.add(new DraftCube.CardIdentity("Nightveil Specter","")); + cubeCards.add(new DraftCube.CardIdentity("Nissa, Vastwood Seer","")); + cubeCards.add(new DraftCube.CardIdentity("Nissa, Vital Force","")); + cubeCards.add(new DraftCube.CardIdentity("Nissa, Voice of Zendikar","")); + cubeCards.add(new DraftCube.CardIdentity("Nissa, Worldwaker","")); + cubeCards.add(new DraftCube.CardIdentity("Noble Hierarch","")); + cubeCards.add(new DraftCube.CardIdentity("Noxious Gearhulk","")); + cubeCards.add(new DraftCube.CardIdentity("Nykthos, Shrine to Nyx","")); + cubeCards.add(new DraftCube.CardIdentity("Oath of Nissa","")); + cubeCards.add(new DraftCube.CardIdentity("Ob Nixilis Reignited","")); + cubeCards.add(new DraftCube.CardIdentity("Oblivion Ring","")); + cubeCards.add(new DraftCube.CardIdentity("Oblivion Stone","")); + cubeCards.add(new DraftCube.CardIdentity("Obstinate Baloth","")); + cubeCards.add(new DraftCube.CardIdentity("Old Man of the Sea","")); + cubeCards.add(new DraftCube.CardIdentity("Olivia Voldaren","")); + cubeCards.add(new DraftCube.CardIdentity("Oona's Prowler","")); + cubeCards.add(new DraftCube.CardIdentity("Ophiomancer","")); + cubeCards.add(new DraftCube.CardIdentity("Opposition","")); + cubeCards.add(new DraftCube.CardIdentity("Oracle of Mul Daya","")); + cubeCards.add(new DraftCube.CardIdentity("Oust","")); + cubeCards.add(new DraftCube.CardIdentity("Outpost Siege","")); + cubeCards.add(new DraftCube.CardIdentity("Overgrown Battlement","")); + cubeCards.add(new DraftCube.CardIdentity("Overgrown Tomb","")); + cubeCards.add(new DraftCube.CardIdentity("Pack Rat","")); + cubeCards.add(new DraftCube.CardIdentity("Pact of Negation","")); + cubeCards.add(new DraftCube.CardIdentity("Panharmonicon","")); + cubeCards.add(new DraftCube.CardIdentity("Parallax Wave","")); + cubeCards.add(new DraftCube.CardIdentity("Part the Waterveil","")); + cubeCards.add(new DraftCube.CardIdentity("Path to Exile","")); + cubeCards.add(new DraftCube.CardIdentity("Pernicious Deed","")); + cubeCards.add(new DraftCube.CardIdentity("Pestermite","")); + cubeCards.add(new DraftCube.CardIdentity("Phantasmal Image","")); + cubeCards.add(new DraftCube.CardIdentity("Phyrexian Arena","")); + cubeCards.add(new DraftCube.CardIdentity("Phyrexian Metamorph","")); + cubeCards.add(new DraftCube.CardIdentity("Phyrexian Obliterator","")); + cubeCards.add(new DraftCube.CardIdentity("Phyrexian Rager","")); + cubeCards.add(new DraftCube.CardIdentity("Phyrexian Revoker","")); + cubeCards.add(new DraftCube.CardIdentity("Pia and Kiran Nalaar","")); + cubeCards.add(new DraftCube.CardIdentity("Pillar of Flame","")); + cubeCards.add(new DraftCube.CardIdentity("Plateau","")); + cubeCards.add(new DraftCube.CardIdentity("Polluted Delta","")); + cubeCards.add(new DraftCube.CardIdentity("Polukranos, World Eater","")); + cubeCards.add(new DraftCube.CardIdentity("Ponder","")); + cubeCards.add(new DraftCube.CardIdentity("Porcelain Legionnaire","")); + cubeCards.add(new DraftCube.CardIdentity("Precinct Captain","")); + cubeCards.add(new DraftCube.CardIdentity("Preordain","")); + cubeCards.add(new DraftCube.CardIdentity("Primal Command","")); + cubeCards.add(new DraftCube.CardIdentity("Primeval Titan","")); + cubeCards.add(new DraftCube.CardIdentity("Profane Command","")); + cubeCards.add(new DraftCube.CardIdentity("Purphoros, God of the Forge","")); + cubeCards.add(new DraftCube.CardIdentity("Pyroclasm","")); + cubeCards.add(new DraftCube.CardIdentity("Qasali Pridemage","")); + cubeCards.add(new DraftCube.CardIdentity("Quarantine Field","")); + cubeCards.add(new DraftCube.CardIdentity("Raging Ravine","")); + cubeCards.add(new DraftCube.CardIdentity("Raise the Alarm","")); + cubeCards.add(new DraftCube.CardIdentity("Rakdos's Return","")); + cubeCards.add(new DraftCube.CardIdentity("Ral Zarek","")); + cubeCards.add(new DraftCube.CardIdentity("Rampaging Baloths","")); + cubeCards.add(new DraftCube.CardIdentity("Rampant Growth","")); + cubeCards.add(new DraftCube.CardIdentity("Ranger of Eos","")); + cubeCards.add(new DraftCube.CardIdentity("Ratchet Bomb","")); + cubeCards.add(new DraftCube.CardIdentity("Ravages of War","")); + cubeCards.add(new DraftCube.CardIdentity("Razorverge Thicket","")); + cubeCards.add(new DraftCube.CardIdentity("Read the Bones","")); + cubeCards.add(new DraftCube.CardIdentity("Reanimate","")); + cubeCards.add(new DraftCube.CardIdentity("Reckless Bushwhacker","")); + cubeCards.add(new DraftCube.CardIdentity("Reclamation Sage","")); + cubeCards.add(new DraftCube.CardIdentity("Recruiter of the Guard","")); + cubeCards.add(new DraftCube.CardIdentity("Recurring Nightmare","")); + cubeCards.add(new DraftCube.CardIdentity("Reflecting Pool","")); + cubeCards.add(new DraftCube.CardIdentity("Reflector Mage","")); + cubeCards.add(new DraftCube.CardIdentity("Regrowth","")); + cubeCards.add(new DraftCube.CardIdentity("Relic of Progenitus","")); + cubeCards.add(new DraftCube.CardIdentity("Remand","")); + cubeCards.add(new DraftCube.CardIdentity("Remove Soul","")); + cubeCards.add(new DraftCube.CardIdentity("Repeal","")); + cubeCards.add(new DraftCube.CardIdentity("Restoration Angel","")); + cubeCards.add(new DraftCube.CardIdentity("Reveillark","")); + cubeCards.add(new DraftCube.CardIdentity("Rift Bolt","")); + cubeCards.add(new DraftCube.CardIdentity("Riftwing Cloudskate","")); + cubeCards.add(new DraftCube.CardIdentity("Rishadan Port","")); + cubeCards.add(new DraftCube.CardIdentity("Rishkar, Peema Renegade","")); + cubeCards.add(new DraftCube.CardIdentity("Roast","")); + cubeCards.add(new DraftCube.CardIdentity("Rofellos, Llanowar Emissary","")); + cubeCards.add(new DraftCube.CardIdentity("Rootbound Crag","")); + cubeCards.add(new DraftCube.CardIdentity("Rune-Scarred Demon","")); + cubeCards.add(new DraftCube.CardIdentity("Sacred Foundry","")); + cubeCards.add(new DraftCube.CardIdentity("Sakura-Tribe Elder","")); + cubeCards.add(new DraftCube.CardIdentity("Sarkhan, the Dragonspeaker","")); + cubeCards.add(new DraftCube.CardIdentity("Savannah","")); + cubeCards.add(new DraftCube.CardIdentity("Scalding Tarn","")); + cubeCards.add(new DraftCube.CardIdentity("Scavenging Ooze","")); + cubeCards.add(new DraftCube.CardIdentity("Scrapheap Scrounger","")); + cubeCards.add(new DraftCube.CardIdentity("Scrubland","")); + cubeCards.add(new DraftCube.CardIdentity("Sea Gate Oracle","")); + cubeCards.add(new DraftCube.CardIdentity("Seachrome Coast","")); + cubeCards.add(new DraftCube.CardIdentity("Seal of Fire","")); + cubeCards.add(new DraftCube.CardIdentity("Search for Tomorrow","")); + cubeCards.add(new DraftCube.CardIdentity("Searing Spear","")); + cubeCards.add(new DraftCube.CardIdentity("Secure the Wastes","")); + cubeCards.add(new DraftCube.CardIdentity("Seeker of the Way","")); + cubeCards.add(new DraftCube.CardIdentity("Selfless Spirit","")); + cubeCards.add(new DraftCube.CardIdentity("Selvala, Heart of the Wilds","")); + cubeCards.add(new DraftCube.CardIdentity("Sensei's Divining Top","")); + cubeCards.add(new DraftCube.CardIdentity("Serendib Efreet","")); + cubeCards.add(new DraftCube.CardIdentity("Serum Visions","")); + cubeCards.add(new DraftCube.CardIdentity("Shadowmage Infiltrator","")); + cubeCards.add(new DraftCube.CardIdentity("Shaman of Forgotten Ways","")); + cubeCards.add(new DraftCube.CardIdentity("Shambling Vent","")); + cubeCards.add(new DraftCube.CardIdentity("Shardless Agent","")); + cubeCards.add(new DraftCube.CardIdentity("Shelldock Isle","")); + cubeCards.add(new DraftCube.CardIdentity("Sheoldred, Whispering One","")); + cubeCards.add(new DraftCube.CardIdentity("Show and Tell","")); + cubeCards.add(new DraftCube.CardIdentity("Shriekmaw","")); + cubeCards.add(new DraftCube.CardIdentity("Sidisi, Undead Vizier","")); + cubeCards.add(new DraftCube.CardIdentity("Siege-Gang Commander","")); + cubeCards.add(new DraftCube.CardIdentity("Silverblade Paladin","")); + cubeCards.add(new DraftCube.CardIdentity("Skinrender","")); + cubeCards.add(new DraftCube.CardIdentity("Slagstorm","")); + cubeCards.add(new DraftCube.CardIdentity("Slaughter Pact","")); + cubeCards.add(new DraftCube.CardIdentity("Smuggler's Copter","")); + cubeCards.add(new DraftCube.CardIdentity("Snapcaster Mage","")); + cubeCards.add(new DraftCube.CardIdentity("Sneak Attack","")); + cubeCards.add(new DraftCube.CardIdentity("Soldier of the Pantheon","")); + cubeCards.add(new DraftCube.CardIdentity("Solemn Simulacrum","")); + cubeCards.add(new DraftCube.CardIdentity("Song of the Dryads","")); + cubeCards.add(new DraftCube.CardIdentity("Sorin Markov","")); + cubeCards.add(new DraftCube.CardIdentity("Sorin, Solemn Visitor","")); + cubeCards.add(new DraftCube.CardIdentity("Soulfire Grand Master","")); + cubeCards.add(new DraftCube.CardIdentity("Sower of Temptation","")); + cubeCards.add(new DraftCube.CardIdentity("Spear of Heliod","")); + cubeCards.add(new DraftCube.CardIdentity("Spectral Procession","")); + cubeCards.add(new DraftCube.CardIdentity("Spell Pierce","")); + cubeCards.add(new DraftCube.CardIdentity("Spell Queller","")); + cubeCards.add(new DraftCube.CardIdentity("Spellskite","")); + cubeCards.add(new DraftCube.CardIdentity("Sphinx's Revelation","")); + cubeCards.add(new DraftCube.CardIdentity("Spirebluff Canal","")); + cubeCards.add(new DraftCube.CardIdentity("Splinter Twin","")); + cubeCards.add(new DraftCube.CardIdentity("Staggershock","")); + cubeCards.add(new DraftCube.CardIdentity("Steam Vents","")); + cubeCards.add(new DraftCube.CardIdentity("Stirring Wildwood","")); + cubeCards.add(new DraftCube.CardIdentity("Stoke the Flames","")); + cubeCards.add(new DraftCube.CardIdentity("Stomping Ground","")); + cubeCards.add(new DraftCube.CardIdentity("Stoneforge Mystic","")); + cubeCards.add(new DraftCube.CardIdentity("Stormbreath Dragon","")); + cubeCards.add(new DraftCube.CardIdentity("Stormchaser Mage","")); + cubeCards.add(new DraftCube.CardIdentity("Stratus Dancer","")); + cubeCards.add(new DraftCube.CardIdentity("Stroke of Genius","")); + cubeCards.add(new DraftCube.CardIdentity("Stromkirk Noble","")); + cubeCards.add(new DraftCube.CardIdentity("Student of Warfare","")); + cubeCards.add(new DraftCube.CardIdentity("Sublime Archangel","")); + cubeCards.add(new DraftCube.CardIdentity("Sulfur Falls","")); + cubeCards.add(new DraftCube.CardIdentity("Summoning Trap","")); + cubeCards.add(new DraftCube.CardIdentity("Sun Titan","")); + cubeCards.add(new DraftCube.CardIdentity("Sundering Titan","")); + cubeCards.add(new DraftCube.CardIdentity("Sunpetal Grove","")); + cubeCards.add(new DraftCube.CardIdentity("Supreme Verdict","")); + cubeCards.add(new DraftCube.CardIdentity("Surrak, the Hunt Caller","")); + cubeCards.add(new DraftCube.CardIdentity("Sword of Body and Mind","")); + cubeCards.add(new DraftCube.CardIdentity("Sword of Feast and Famine","")); + cubeCards.add(new DraftCube.CardIdentity("Sword of Fire and Ice","")); + cubeCards.add(new DraftCube.CardIdentity("Sword of Light and Shadow","")); + cubeCards.add(new DraftCube.CardIdentity("Sword of War and Peace","")); + cubeCards.add(new DraftCube.CardIdentity("Swords to Plowshares","")); + cubeCards.add(new DraftCube.CardIdentity("Sylvan Advocate","")); + cubeCards.add(new DraftCube.CardIdentity("Sylvan Caryatid","")); + cubeCards.add(new DraftCube.CardIdentity("Sylvan Library","")); + cubeCards.add(new DraftCube.CardIdentity("Taiga","")); + cubeCards.add(new DraftCube.CardIdentity("Talrand, Sky Summoner","")); + cubeCards.add(new DraftCube.CardIdentity("Tamiyo, the Moon Sage","")); + cubeCards.add(new DraftCube.CardIdentity("Tangle Wire","")); + cubeCards.add(new DraftCube.CardIdentity("Tarmogoyf","")); + cubeCards.add(new DraftCube.CardIdentity("Tasigur, the Golden Fang","")); + cubeCards.add(new DraftCube.CardIdentity("Teferi, Mage of Zhalfir","")); + cubeCards.add(new DraftCube.CardIdentity("Temple Garden","")); + cubeCards.add(new DraftCube.CardIdentity("Terastodon","")); + cubeCards.add(new DraftCube.CardIdentity("Terminate","")); + cubeCards.add(new DraftCube.CardIdentity("Terminus","")); + cubeCards.add(new DraftCube.CardIdentity("Thalia, Guardian of Thraben","")); + cubeCards.add(new DraftCube.CardIdentity("Thalia, Heretic Cathar","")); + cubeCards.add(new DraftCube.CardIdentity("Thassa, God of the Sea","")); + cubeCards.add(new DraftCube.CardIdentity("Thing in the Ice","")); + cubeCards.add(new DraftCube.CardIdentity("Thirst for Knowledge","")); + cubeCards.add(new DraftCube.CardIdentity("Thoughtseize","")); + cubeCards.add(new DraftCube.CardIdentity("Thragtusk","")); + cubeCards.add(new DraftCube.CardIdentity("Thrun, the Last Troll","")); + cubeCards.add(new DraftCube.CardIdentity("Thunderbreak Regent","")); + cubeCards.add(new DraftCube.CardIdentity("Thundermaw Hellkite","")); + cubeCards.add(new DraftCube.CardIdentity("Tidehollow Sculler","")); + cubeCards.add(new DraftCube.CardIdentity("Time Warp","")); + cubeCards.add(new DraftCube.CardIdentity("Tireless Tracker","")); + cubeCards.add(new DraftCube.CardIdentity("Tooth and Nail","")); + cubeCards.add(new DraftCube.CardIdentity("Torch Fiend","")); + cubeCards.add(new DraftCube.CardIdentity("Tower of the Magistrate","")); + cubeCards.add(new DraftCube.CardIdentity("Toxic Deluge","")); + cubeCards.add(new DraftCube.CardIdentity("Treachery","")); + cubeCards.add(new DraftCube.CardIdentity("Tropical Island","")); + cubeCards.add(new DraftCube.CardIdentity("Trygon Predator","")); + cubeCards.add(new DraftCube.CardIdentity("Tundra","")); + cubeCards.add(new DraftCube.CardIdentity("Ugin, the Spirit Dragon","")); + cubeCards.add(new DraftCube.CardIdentity("Ulamog, the Ceaseless Hunger","")); + cubeCards.add(new DraftCube.CardIdentity("Ultimate Price","")); + cubeCards.add(new DraftCube.CardIdentity("Umezawa's Jitte","")); + cubeCards.add(new DraftCube.CardIdentity("Unburial Rites","")); + cubeCards.add(new DraftCube.CardIdentity("Underground Sea","")); + cubeCards.add(new DraftCube.CardIdentity("Underworld Connections","")); + cubeCards.add(new DraftCube.CardIdentity("Unexpectedly Absent","")); + cubeCards.add(new DraftCube.CardIdentity("Upheaval","")); + cubeCards.add(new DraftCube.CardIdentity("Utopia Sprawl","")); + cubeCards.add(new DraftCube.CardIdentity("Vampire Hexmage","")); + cubeCards.add(new DraftCube.CardIdentity("Vampire Nighthawk","")); + cubeCards.add(new DraftCube.CardIdentity("Vendilion Clique","")); + cubeCards.add(new DraftCube.CardIdentity("Venser, Shaper Savant","")); + cubeCards.add(new DraftCube.CardIdentity("Verdant Catacombs","")); + cubeCards.add(new DraftCube.CardIdentity("Verdurous Gearhulk","")); + cubeCards.add(new DraftCube.CardIdentity("Victimize","")); + cubeCards.add(new DraftCube.CardIdentity("Vindicate","")); + cubeCards.add(new DraftCube.CardIdentity("Volcanic Island","")); + cubeCards.add(new DraftCube.CardIdentity("Volrath's Stronghold","")); + cubeCards.add(new DraftCube.CardIdentity("Vorinclex, Voice of Hunger","")); + cubeCards.add(new DraftCube.CardIdentity("Vraska the Unseen","")); + cubeCards.add(new DraftCube.CardIdentity("Wake Thrasher","")); + cubeCards.add(new DraftCube.CardIdentity("Walking Ballista","")); + cubeCards.add(new DraftCube.CardIdentity("Wall of Blossoms","")); + cubeCards.add(new DraftCube.CardIdentity("Wall of Omens","")); + cubeCards.add(new DraftCube.CardIdentity("Wandering Fumarole","")); + cubeCards.add(new DraftCube.CardIdentity("Wasteland","")); + cubeCards.add(new DraftCube.CardIdentity("Watery Grave","")); + cubeCards.add(new DraftCube.CardIdentity("Whip of Erebos","")); + cubeCards.add(new DraftCube.CardIdentity("Whirler Rogue","")); + cubeCards.add(new DraftCube.CardIdentity("Whisperwood Elemental","")); + cubeCards.add(new DraftCube.CardIdentity("Wickerbough Elder","")); + cubeCards.add(new DraftCube.CardIdentity("Windbrisk Heights","")); + cubeCards.add(new DraftCube.CardIdentity("Windswept Heath","")); + cubeCards.add(new DraftCube.CardIdentity("Wolfir Silverheart","")); + cubeCards.add(new DraftCube.CardIdentity("Wood Elves","")); + cubeCards.add(new DraftCube.CardIdentity("Wooded Foothills","")); + cubeCards.add(new DraftCube.CardIdentity("Woodfall Primus","")); + cubeCards.add(new DraftCube.CardIdentity("Woodland Cemetery","")); + cubeCards.add(new DraftCube.CardIdentity("Wrath of God","")); + cubeCards.add(new DraftCube.CardIdentity("Wretched Confluence","")); + cubeCards.add(new DraftCube.CardIdentity("Wurmcoil Engine","")); + cubeCards.add(new DraftCube.CardIdentity("Xenagos, the Reveler","")); + cubeCards.add(new DraftCube.CardIdentity("Yavimaya Elder","")); + cubeCards.add(new DraftCube.CardIdentity("Yosei, the Morning Star","")); + cubeCards.add(new DraftCube.CardIdentity("Young Pyromancer","")); + cubeCards.add(new DraftCube.CardIdentity("Zealous Conscripts","")); + } +} diff --git a/Mage.Server.Plugins/Mage.Tournament.Constructed/pom.xml b/Mage.Server.Plugins/Mage.Tournament.Constructed/pom.xml index d67232ea2a5..0238ba6ea3e 100644 --- a/Mage.Server.Plugins/Mage.Tournament.Constructed/pom.xml +++ b/Mage.Server.Plugins/Mage.Tournament.Constructed/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-tournament-constructed diff --git a/Mage.Server.Plugins/Mage.Tournament.Sealed/pom.xml b/Mage.Server.Plugins/Mage.Tournament.Sealed/pom.xml index b1b5149927c..7abb9bbc966 100644 --- a/Mage.Server.Plugins/Mage.Tournament.Sealed/pom.xml +++ b/Mage.Server.Plugins/Mage.Tournament.Sealed/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.4.22 + 1.4.23 mage-tournament-sealed diff --git a/Mage.Server.Plugins/pom.xml b/Mage.Server.Plugins/pom.xml index 2fdf714fc1c..545f67a4c51 100644 --- a/Mage.Server.Plugins/pom.xml +++ b/Mage.Server.Plugins/pom.xml @@ -6,7 +6,7 @@ org.mage mage-root - 1.4.22 + 1.4.23 mage-server-plugins diff --git a/Mage.Server/config/config.xml b/Mage.Server/config/config.xml index 5ca1ea36fab..88b18aa2161 100644 --- a/Mage.Server/config/config.xml +++ b/Mage.Server/config/config.xml @@ -12,6 +12,7 @@ leasePeriod - To turn on server side connection failure detection of remoting clients, it is necessary to satisfy two criteria. The first is that the client lease period is set and is a value greater than 0. The value is represented in milliseconds. The client lease period can be set by either the 'clientLeasePeriod' attribute within the Connector configuration or by calling the Connector method + socketWriteTimeout - All write operations will time out if they do not complete within the configured period. maxGameThreads - Number of games that can be started simultanously on the server maxSecondsIdle - Number of seconds after that a game is auto conceded by the player that was idle for such a time minUserNameLength - minmal allowed length of a user name to connect to the server @@ -40,6 +41,7 @@ numAcceptThreads="2" maxPoolSize="300" leasePeriod="5000" + socketWriteTimeout="10000" maxGameThreads="10" maxSecondsIdle="600" minUserNameLength="3" @@ -49,7 +51,7 @@ maxPasswordLength="100" maxAiOpponents="15" saveGameActivated="false" - authenticationActivated="true" + authenticationActivated="false" googleAccount="" mailgunApiKey="key-d93e81f19a9c9ed243ebb7cc9381385c" mailgunDomain="sandbox401a433f30d445309a5e86b6c53f7812.mailgun.org" @@ -109,6 +111,7 @@ + diff --git a/Mage.Server/pom.xml b/Mage.Server/pom.xml index e1dcd5516f5..5d240e2cc5b 100644 --- a/Mage.Server/pom.xml +++ b/Mage.Server/pom.xml @@ -6,7 +6,7 @@ org.mage mage-root - 1.4.22 + 1.4.23 mage-server diff --git a/Mage.Server/release/config/config.xml b/Mage.Server/release/config/config.xml index eecf4818630..03b66244b09 100644 --- a/Mage.Server/release/config/config.xml +++ b/Mage.Server/release/config/config.xml @@ -12,6 +12,7 @@ leasePeriod - To turn on server side connection failure detection of remoting clients, it is necessary to satisfy two criteria. The first is that the client lease period is set and is a value greater than 0. The value is represented in milliseconds. The client lease period can be set by either the 'clientLeasePeriod' attribute within the Connector configuration or by calling the Connector method + socketWriteTimeout - All write operations will time out if they do not complete within the configured period. maxGameThreads - Number of games that can be started simultanously on the server maxSecondsIdle - Number of seconds after that a game is auto conceded by the player that was idle for such a time minUserNameLength - minmal allowed length of a user name to connect to the server @@ -39,6 +40,7 @@ numAcceptThreads="2" maxPoolSize="300" leasePeriod="5000" + socketWriteTimeout="10000" maxGameThreads="10" maxSecondsIdle="600" minUserNameLength="3" @@ -106,6 +108,7 @@ + diff --git a/Mage.Server/src/main/java/mage/server/ChatManager.java b/Mage.Server/src/main/java/mage/server/ChatManager.java index e77b9b12dd1..e7f921de2b5 100644 --- a/Mage.Server/src/main/java/mage/server/ChatManager.java +++ b/Mage.Server/src/main/java/mage/server/ChatManager.java @@ -27,6 +27,10 @@ */ package mage.server; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import mage.cards.repository.CardInfo; import mage.cards.repository.CardRepository; import mage.server.exceptions.UserNotFoundException; @@ -36,11 +40,6 @@ import mage.view.ChatMessage.MessageType; import mage.view.ChatMessage.SoundToPlay; import org.apache.log4j.Logger; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - /** * @author BetaSteward_at_googlemail.com */ @@ -50,7 +49,6 @@ public enum ChatManager { private static final Logger logger = Logger.getLogger(ChatManager.class); private static final HashMap userMessages = new HashMap<>(); - private final ConcurrentHashMap chatSessions = new ConcurrentHashMap<>(); public UUID createChatSession(String info) { @@ -115,7 +113,7 @@ public enum ChatManager { } } - if (messageType != MessageType.GAME) { + if (messageType != MessageType.GAME && !userName.isEmpty()) { Optional u = UserManager.instance.getUserByName(userName); if (u.isPresent()) { @@ -159,7 +157,6 @@ public enum ChatManager { userMessages.put(userName, message); - if (messageType == MessageType.TALK) { if (user.getChatLockedUntil() != null) { if (user.getChatLockedUntil().compareTo(Calendar.getInstance().getTime()) > 0) { @@ -173,8 +170,8 @@ public enum ChatManager { } } - chatSession.broadcast(userName, message, color, withTime, messageType, soundToPlay); } + chatSession.broadcast(userName, message, color, withTime, messageType, soundToPlay); } } @@ -255,11 +252,11 @@ public enum ChatManager { } public void sendReconnectMessage(UUID userId) { - UserManager.instance.getUser(userId).ifPresent(user -> - chatSessions.values() - .stream() - .filter(chat -> chat.hasUser(userId)) - .forEach(chatSession -> chatSession.broadcast(null, user.getName() + " has reconnected", MessageColor.BLUE, true, MessageType.STATUS, null))); + UserManager.instance.getUser(userId).ifPresent(user + -> chatSessions.values() + .stream() + .filter(chat -> chat.hasUser(userId)) + .forEach(chatSession -> chatSession.broadcast(null, user.getName() + " has reconnected", MessageColor.BLUE, true, MessageType.STATUS, null))); } @@ -275,6 +272,4 @@ public enum ChatManager { return new ArrayList<>(chatSessions.values()); } - } - diff --git a/Mage.Server/src/main/java/mage/server/ChatSession.java b/Mage.Server/src/main/java/mage/server/ChatSession.java index 8abfdce3344..f7a9c969fbb 100644 --- a/Mage.Server/src/main/java/mage/server/ChatSession.java +++ b/Mage.Server/src/main/java/mage/server/ChatSession.java @@ -28,6 +28,7 @@ package mage.server; import mage.interfaces.callback.ClientCallback; +import mage.interfaces.callback.ClientCallbackMethod; import mage.view.ChatMessage; import mage.view.ChatMessage.MessageColor; import mage.view.ChatMessage.MessageType; @@ -61,14 +62,14 @@ public class ChatSession { } public void join(UUID userId) { - UserManager.instance.getUser(userId).ifPresent(user-> { - if (!clients.containsKey(userId)) { - String userName = user.getName(); - clients.put(userId, userName); - broadcast(null, userName + " has joined (" + user.getClientVersion() + ')', MessageColor.BLUE, true, MessageType.STATUS, null); - logger.trace(userName + " joined chat " + chatId); - } - }); + UserManager.instance.getUser(userId).ifPresent(user -> { + if (!clients.containsKey(userId)) { + String userName = user.getName(); + clients.put(userId, userName); + broadcast(null, userName + " has joined (" + user.getClientVersion() + ')', MessageColor.BLUE, true, MessageType.STATUS, null); + logger.trace(userName + " joined chat " + chatId); + } + }); } public void kill(UUID userId, DisconnectReason reason) { @@ -84,30 +85,9 @@ public class ChatSession { clients.remove(userId); logger.debug(userName + '(' + reason.toString() + ')' + " removed from chatId " + chatId); } - String message; - switch (reason) { - case Disconnected: - message = " has left XMage"; - break; - case LostConnection: - message = " has lost connection"; - break; - case SessionExpired: - message = " session expired"; - break; - case AdminDisconnect: - message = " was disconnected by the Admin"; - break; - case ConnectingOtherInstance: - message = " reconnected and replaced still active old session"; - break; - case CleaningUp: - message = null; - break; - default: - message = " left (" + reason.toString() + ')'; - } - if (message != null) { + String message = reason.getMessage(); + + if (!message.isEmpty()) { broadcast(null, userName + message, MessageColor.BLUE, true, MessageType.STATUS, null); } } @@ -118,7 +98,7 @@ public class ChatSession { public boolean broadcastInfoToUser(User toUser, String message) { if (clients.containsKey(toUser.getId())) { - toUser.fireCallback(new ClientCallback("chatMessage", chatId, new ChatMessage(null, message, timeFormatter.format(new Date()), MessageColor.BLUE, MessageType.USER_INFO, null))); + toUser.fireCallback(new ClientCallback(ClientCallbackMethod.CHATMESSAGE, chatId, new ChatMessage(null, message, timeFormatter.format(new Date()), MessageColor.BLUE, MessageType.USER_INFO, null))); return true; } return false; @@ -126,10 +106,10 @@ public class ChatSession { public boolean broadcastWhisperToUser(User fromUser, User toUser, String message) { if (clients.containsKey(toUser.getId())) { - toUser.fireCallback(new ClientCallback("chatMessage", chatId, + toUser.fireCallback(new ClientCallback(ClientCallbackMethod.CHATMESSAGE, chatId, new ChatMessage(fromUser.getName(), message, timeFormatter.format(new Date()), MessageColor.YELLOW, MessageType.WHISPER_FROM, SoundToPlay.PlayerWhispered))); if (clients.containsKey(fromUser.getId())) { - fromUser.fireCallback(new ClientCallback("chatMessage", chatId, + fromUser.fireCallback(new ClientCallback(ClientCallbackMethod.CHATMESSAGE, chatId, new ChatMessage(toUser.getName(), message, timeFormatter.format(new Date()), MessageColor.YELLOW, MessageType.WHISPER_TO, null))); return true; } @@ -139,24 +119,20 @@ public class ChatSession { public void broadcast(String userName, String message, MessageColor color, boolean withTime, MessageType messageType, SoundToPlay soundToPlay) { if (!message.isEmpty()) { - HashSet clientsToRemove = null; - ClientCallback clientCallback = new ClientCallback("chatMessage", chatId, new ChatMessage(userName, message, (withTime ? timeFormatter.format(new Date()) : ""), color, messageType, soundToPlay)); + HashSet clientsToRemove = new HashSet<>(); + ClientCallback clientCallback = new ClientCallback(ClientCallbackMethod.CHATMESSAGE, chatId, new ChatMessage(userName, message, (withTime ? timeFormatter.format(new Date()) : ""), color, messageType, soundToPlay)); for (UUID userId : clients.keySet()) { Optional user = UserManager.instance.getUser(userId); if (user.isPresent()) { user.get().fireCallback(clientCallback); } else { - if (clientsToRemove == null) { - clientsToRemove = new HashSet<>(); - } clientsToRemove.add(userId); } } - if (clientsToRemove != null) { - for (UUID userIdToRemove : clientsToRemove) { - clients.remove(userIdToRemove); - } + for (UUID userIdToRemove : clientsToRemove) { + clients.remove(userIdToRemove); } + } } diff --git a/Mage.Server/src/main/java/mage/server/DisconnectReason.java b/Mage.Server/src/main/java/mage/server/DisconnectReason.java index c751814f7bb..576c64f2c7e 100644 --- a/Mage.Server/src/main/java/mage/server/DisconnectReason.java +++ b/Mage.Server/src/main/java/mage/server/DisconnectReason.java @@ -6,5 +6,20 @@ package mage.server; */ public enum DisconnectReason { - LostConnection, Disconnected, CleaningUp, ConnectingOtherInstance, AdminDisconnect, SessionExpired, Undefined + LostConnection(" has lost connection"), + Disconnected(" has left XMage"), + CleaningUp(" [cleaning up]"), + ConnectingOtherInstance(" reconnected and replaced still active old session"), + AdminDisconnect(" was disconnected by the Admin"), + SessionExpired(" session expired"), + Undefined(""); + + String message; + DisconnectReason(String message){ + this.message = message; + } + + public String getMessage(){ + return message; + } } diff --git a/Mage.Server/src/main/java/mage/server/MageServerImpl.java b/Mage.Server/src/main/java/mage/server/MageServerImpl.java index 0c28c809177..0d756821670 100644 --- a/Mage.Server/src/main/java/mage/server/MageServerImpl.java +++ b/Mage.Server/src/main/java/mage/server/MageServerImpl.java @@ -27,6 +27,10 @@ */ package mage.server; +import java.security.SecureRandom; +import java.util.*; +import java.util.concurrent.ExecutorService; +import javax.management.timer.Timer; import mage.MageException; import mage.cards.decks.DeckCardLists; import mage.cards.repository.CardInfo; @@ -45,6 +49,8 @@ import mage.interfaces.ActionWithResult; import mage.interfaces.MageServer; import mage.interfaces.ServerState; import mage.interfaces.callback.ClientCallback; +import mage.interfaces.callback.ClientCallbackMethod; +import mage.players.PlayerType; import mage.players.net.UserData; import mage.remote.MageVersionException; import mage.server.draft.CubeFactory; @@ -63,18 +69,13 @@ import mage.view.ChatMessage.MessageColor; import org.apache.commons.lang3.StringEscapeUtils; import org.apache.log4j.Logger; -import javax.management.timer.Timer; -import java.security.SecureRandom; -import java.util.*; -import java.util.concurrent.ExecutorService; - /** * @author BetaSteward_at_googlemail.com, noxx */ public class MageServerImpl implements MageServer { private static final Logger logger = Logger.getLogger(MageServerImpl.class); - private static final ExecutorService callExecutor = ThreadExecutor.getInstance().getCallExecutor(); + private static final ExecutorService callExecutor = ThreadExecutor.instance.getCallExecutor(); private static final SecureRandom RANDOM = new SecureRandom(); private final String adminPassword; @@ -161,7 +162,7 @@ public class MageServerImpl implements MageServer { public boolean connectUser(String userName, String password, String sessionId, MageVersion version, String userIdStr) throws MageException { try { if (version.compareTo(Main.getVersion()) != 0) { - logger.info("MageVersionException: userName=" + userName + ", version=" + version); + logger.info("MageVersionException: userName=" + userName + ", version=" + version + " sessionId=" + sessionId); throw new MageVersionException(version, Main.getVersion()); } return SessionManager.instance.connectUser(sessionId, userName, password, userIdStr); @@ -233,8 +234,8 @@ public class MageServerImpl implements MageServer { String maxAiOpponents = ConfigSettings.instance.getMaxAiOpponents(); if (maxAiOpponents != null) { int aiPlayers = 0; - for (String playerType : options.getPlayerTypes()) { - if (!playerType.equals("Human")) { + for (PlayerType playerType : options.getPlayerTypes()) { + if (playerType != PlayerType.HUMAN) { aiPlayers++; } } @@ -282,7 +283,7 @@ public class MageServerImpl implements MageServer { } @Override - public boolean joinTable(final String sessionId, final UUID roomId, final UUID tableId, final String name, final String playerType, final int skill, final DeckCardLists deckList, final String password) throws MageException, GameException { + public boolean joinTable(final String sessionId, final UUID roomId, final UUID tableId, final String name, final PlayerType playerType, final int skill, final DeckCardLists deckList, final String password) throws MageException, GameException { return executeWithResult("joinTable", sessionId, new ActionWithBooleanResult() { @Override public Boolean execute() throws MageException { @@ -309,7 +310,7 @@ public class MageServerImpl implements MageServer { } @Override - public boolean joinTournamentTable(final String sessionId, final UUID roomId, final UUID tableId, final String name, final String playerType, final int skill, final DeckCardLists deckList, final String password) throws MageException, GameException { + public boolean joinTournamentTable(final String sessionId, final UUID roomId, final UUID tableId, final String name, final PlayerType playerType, final int skill, final DeckCardLists deckList, final String password) throws MageException, GameException { return executeWithResult("joinTournamentTable", sessionId, new ActionWithBooleanResult() { @Override public Boolean execute() throws MageException { @@ -989,11 +990,11 @@ public class MageServerImpl implements MageServer { public ServerState getServerState() throws MageException { try { return new ServerState( - GameFactory.getInstance().getGameTypes(), - TournamentFactory.getInstance().getTournamentTypes(), - PlayerFactory.getInstance().getPlayerTypes().toArray(new String[PlayerFactory.getInstance().getPlayerTypes().size()]), - DeckValidatorFactory.getInstance().getDeckTypes().toArray(new String[DeckValidatorFactory.getInstance().getDeckTypes().size()]), - CubeFactory.getInstance().getDraftCubes().toArray(new String[CubeFactory.getInstance().getDraftCubes().size()]), + GameFactory.instance.getGameTypes(), + TournamentFactory.instance.getTournamentTypes(), + PlayerFactory.instance.getPlayerTypes().toArray(new PlayerType[PlayerFactory.instance.getPlayerTypes().size()]), + DeckValidatorFactory.instance.getDeckTypes().toArray(new String[DeckValidatorFactory.instance.getDeckTypes().size()]), + CubeFactory.instance.getDraftCubes().toArray(new String[CubeFactory.instance.getDraftCubes().size()]), testMode, Main.getVersion(), CardRepository.instance.getContentVersionConstant(), @@ -1116,14 +1117,14 @@ public class MageServerImpl implements MageServer { @Override public void toggleActivation(final String sessionId, final String userName) throws MageException { - execute("toggleActivation", sessionId, () -> - UserManager.instance.getUserByName(userName).ifPresent(user -> - { - user.setActive(!user.isActive()); - if (!user.isActive() && user.isConnected()) { - SessionManager.instance.disconnectUser(sessionId, user.getSessionId()); - } - })); + execute("toggleActivation", sessionId, () + -> UserManager.instance.getUserByName(userName).ifPresent(user + -> { + user.setActive(!user.isActive()); + if (!user.isActive() && user.isConnected()) { + SessionManager.instance.disconnectUser(sessionId, user.getSessionId()); + } + })); } @Override @@ -1156,11 +1157,9 @@ public class MageServerImpl implements MageServer { @Override public void sendFeedbackMessage(final String sessionId, final String username, final String title, final String type, final String message, final String email) throws MageException { if (title != null && message != null) { - execute("sendFeedbackMessage", sessionId, () -> - SessionManager.instance.getSession(sessionId).ifPresent( - session -> FeedbackServiceImpl.instance.feedback(username, title, type, message, email, session.getHost()) - - + execute("sendFeedbackMessage", sessionId, () + -> SessionManager.instance.getSession(sessionId).ifPresent( + session -> FeedbackServiceImpl.instance.feedback(username, title, type, message, email, session.getHost()) )); } } @@ -1171,9 +1170,9 @@ public class MageServerImpl implements MageServer { execute("sendBroadcastMessage", sessionId, () -> { for (User user : UserManager.instance.getUsers()) { if (message.toLowerCase(Locale.ENGLISH).startsWith("warn")) { - user.fireCallback(new ClientCallback("serverMessage", null, new ChatMessage("SERVER", message, null, MessageColor.RED))); + user.fireCallback(new ClientCallback(ClientCallbackMethod.SERVER_MESSAGE, null, new ChatMessage("SERVER", message, null, MessageColor.RED))); } else { - user.fireCallback(new ClientCallback("serverMessage", null, new ChatMessage("SERVER", message, null, MessageColor.BLUE))); + user.fireCallback(new ClientCallback(ClientCallbackMethod.SERVER_MESSAGE, null, new ChatMessage("SERVER", message, null, MessageColor.BLUE))); } } }, true); @@ -1251,6 +1250,7 @@ public class MageServerImpl implements MageServer { } private static class MyActionWithNullNegativeResult extends ActionWithNullNegativeResult { + @Override public Object execute() throws MageException { return CompressUtil.compress(ServerMessagesUtil.instance.getMessages()); @@ -1258,6 +1258,7 @@ public class MageServerImpl implements MageServer { } private static class ListActionWithNullNegativeResult extends ActionWithNullNegativeResult> { + @Override public List execute() throws MageException { List users = new ArrayList<>(); @@ -1280,6 +1281,7 @@ public class MageServerImpl implements MageServer { } private static class GameViewActionWithNullNegativeResult extends ActionWithNullNegativeResult { + private final String sessionId; private final UUID gameId; private final UUID playerId; @@ -1304,6 +1306,7 @@ public class MageServerImpl implements MageServer { } private static class MyActionWithBooleanResult extends ActionWithBooleanResult { + private final String sessionId; private final UUID tableId; @@ -1326,6 +1329,7 @@ public class MageServerImpl implements MageServer { } private static class DraftPickViewActionWithNullNegativeResult extends ActionWithNullNegativeResult { + private final String sessionId; private final UUID draftId; private final UUID cardPick; @@ -1351,6 +1355,7 @@ public class MageServerImpl implements MageServer { } private static class MyActionWithTableViewResult extends ActionWithTableViewResult { + private final String sessionId; private final MatchOptions options; private final UUID roomId; diff --git a/Mage.Server/src/main/java/mage/server/Main.java b/Mage.Server/src/main/java/mage/server/Main.java index 233649b2f3f..6bdf365894e 100644 --- a/Mage.Server/src/main/java/mage/server/Main.java +++ b/Mage.Server/src/main/java/mage/server/Main.java @@ -27,6 +27,12 @@ */ package mage.server; +import java.io.File; +import java.io.IOException; +import java.net.InetAddress; +import java.net.MalformedURLException; +import java.util.*; +import javax.management.MBeanServer; import mage.cards.ExpansionSet; import mage.cards.Sets; import mage.cards.repository.CardScanner; @@ -59,14 +65,6 @@ import org.jboss.remoting.transporter.TransporterClient; import org.jboss.remoting.transporter.TransporterServer; import org.w3c.dom.Element; -import javax.management.MBeanServer; -import java.io.File; -import java.io.IOException; -import java.lang.reflect.InvocationTargetException; -import java.net.InetAddress; -import java.net.MalformedURLException; -import java.util.*; - /** * @author BetaSteward_at_googlemail.com */ @@ -164,31 +162,31 @@ public final class Main { deleteSavedGames(); ConfigSettings config = ConfigSettings.instance; for (GamePlugin plugin : config.getGameTypes()) { - GameFactory.getInstance().addGameType(plugin.getName(), loadGameType(plugin), loadPlugin(plugin)); + GameFactory.instance.addGameType(plugin.getName(), loadGameType(plugin), loadPlugin(plugin)); } for (GamePlugin plugin : config.getTournamentTypes()) { - TournamentFactory.getInstance().addTournamentType(plugin.getName(), loadTournamentType(plugin), loadPlugin(plugin)); + TournamentFactory.instance.addTournamentType(plugin.getName(), loadTournamentType(plugin), loadPlugin(plugin)); } for (Plugin plugin : config.getPlayerTypes()) { - PlayerFactory.getInstance().addPlayerType(plugin.getName(), loadPlugin(plugin)); + PlayerFactory.instance.addPlayerType(plugin.getName(), loadPlugin(plugin)); } for (Plugin plugin : config.getDraftCubes()) { - CubeFactory.getInstance().addDraftCube(plugin.getName(), loadPlugin(plugin)); + CubeFactory.instance.addDraftCube(plugin.getName(), loadPlugin(plugin)); } for (Plugin plugin : config.getDeckTypes()) { - DeckValidatorFactory.getInstance().addDeckType(plugin.getName(), loadPlugin(plugin)); + DeckValidatorFactory.instance.addDeckType(plugin.getName(), loadPlugin(plugin)); } for (ExtensionPackage pkg : extensions) { Map draftCubes = pkg.getDraftCubes(); for (String name : draftCubes.keySet()) { logger.info("Loading extension: [" + name + "] " + draftCubes.get(name).toString()); - CubeFactory.getInstance().addDraftCube(name, draftCubes.get(name)); + CubeFactory.instance.addDraftCube(name, draftCubes.get(name)); } Map deckTypes = pkg.getDeckTypes(); for (String name : deckTypes.keySet()) { logger.info("Loading extension: [" + name + "] " + deckTypes.get(name)); - DeckValidatorFactory.getInstance().addDeckType(name, deckTypes.get(name)); + DeckValidatorFactory.instance.addDeckType(name, deckTypes.get(name)); } } @@ -203,6 +201,7 @@ public final class Main { logger.info("Config - save game active: " + (config.isSaveGameActivated() ? "true" : "false")); logger.info("Config - backlog size : " + config.getBacklogSize()); logger.info("Config - lease period : " + config.getLeasePeriod()); + logger.info("Config - sock wrt timeout: " + config.getSocketWriteTimeout()); logger.info("Config - max pool size : " + config.getMaxPoolSize()); logger.info("Config - num accp.threads: " + config.getNumAcceptThreads()); logger.info("Config - second.bind port: " + config.getSecondaryBindPort()); @@ -245,7 +244,7 @@ public final class Main { static boolean isAlreadyRunning(InvokerLocator serverLocator) { Map metadata = new HashMap<>(); - metadata.put(SocketWrapper.WRITE_TIMEOUT, "2000"); + metadata.put(SocketWrapper.WRITE_TIMEOUT, String.valueOf(ConfigSettings.instance.getSocketWriteTimeout())); metadata.put("generalizeSocketException", "true"); try { MageServer testServer = (MageServer) TransporterClient.createTransporterClient(serverLocator.getLocatorURI(), MageServer.class, metadata); @@ -266,7 +265,7 @@ public final class Main { String sessionId = client.getSessionId(); Optional session = SessionManager.instance.getSession(sessionId); if (!session.isPresent()) { - logger.error("Session not found : " + sessionId); + logger.trace("Session not found : " + sessionId); } else { UUID userId = session.get().getUserId(); StringBuilder sessionInfo = new StringBuilder(); diff --git a/Mage.Server/src/main/java/mage/server/Session.java b/Mage.Server/src/main/java/mage/server/Session.java index a96129aa3b0..fe01b269c01 100644 --- a/Mage.Server/src/main/java/mage/server/Session.java +++ b/Mage.Server/src/main/java/mage/server/Session.java @@ -30,6 +30,7 @@ package mage.server; import mage.MageException; import mage.constants.Constants; import mage.interfaces.callback.ClientCallback; +import mage.interfaces.callback.ClientCallbackMethod; import mage.players.net.UserData; import mage.players.net.UserGroup; import mage.server.game.GamesRoom; @@ -423,14 +424,14 @@ public class Session { List messageData = new LinkedList<>(); messageData.add("Error while connecting to server"); messageData.add(message); - fireCallback(new ClientCallback("showUserMessage", null, messageData)); + fireCallback(new ClientCallback(ClientCallbackMethod.SHOW_USERMESSAGE, null, messageData)); } public void sendInfoMessageToClient(String message) { List messageData = new LinkedList<>(); messageData.add("Information about connecting to the server"); messageData.add(message); - fireCallback(new ClientCallback("showUserMessage", null, messageData)); + fireCallback(new ClientCallback(ClientCallbackMethod.SHOW_USERMESSAGE, null, messageData)); } public static Throwable getBasicCause(Throwable cause) { diff --git a/Mage.Server/src/main/java/mage/server/SessionManager.java b/Mage.Server/src/main/java/mage/server/SessionManager.java index b1df7969f38..5ddc333875e 100644 --- a/Mage.Server/src/main/java/mage/server/SessionManager.java +++ b/Mage.Server/src/main/java/mage/server/SessionManager.java @@ -31,14 +31,12 @@ import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; - +import javax.annotation.Nonnull; import mage.MageException; import mage.players.net.UserData; import org.apache.log4j.Logger; import org.jboss.remoting.callback.InvokerCallbackHandler; -import javax.annotation.Nonnull; - /** * @author BetaSteward_at_googlemail.com */ @@ -46,13 +44,12 @@ public enum SessionManager { instance; private static final Logger logger = Logger.getLogger(SessionManager.class); - private final ConcurrentHashMap sessions = new ConcurrentHashMap<>(); public Optional getSession(@Nonnull String sessionId) { Session session = sessions.get(sessionId); - if(session == null){ - logger.error("Session with sessionId " + sessionId + " is not found"); + if (session == null) { + logger.trace("Session with sessionId " + sessionId + " is not found"); return Optional.empty(); } if (session.getUserId() != null && UserManager.instance.getUser(session.getUserId()) == null) { @@ -136,8 +133,10 @@ public enum SessionManager { logger.debug("DISCONNECT " + reason.toString() + " - sessionId: " + sessionId); sessions.remove(sessionId); switch (reason) { - case Disconnected: // regular session end - session.kill(reason); + case Disconnected: // regular session end or wrong client version + if (session.getUserId() != null) { // if wrong client version no userId is set + session.kill(reason); + } break; case SessionExpired: // session ends after no reconnect happens in the defined time span session.kill(reason); @@ -173,7 +172,7 @@ public enum SessionManager { public void disconnectUser(String sessionId, String userSessionId) { if (isAdmin(sessionId)) { getUserFromSession(sessionId).ifPresent(admin -> { - Optional u = getUserFromSession(userSessionId); + Optional u = getUserFromSession(userSessionId); if (u.isPresent()) { User user = u.get(); user.showUserMessage("Admin operation", "Your session was disconnected by Admin."); diff --git a/Mage.Server/src/main/java/mage/server/TableController.java b/Mage.Server/src/main/java/mage/server/TableController.java index e45b0ed816e..be9854ae522 100644 --- a/Mage.Server/src/main/java/mage/server/TableController.java +++ b/Mage.Server/src/main/java/mage/server/TableController.java @@ -45,6 +45,7 @@ import mage.game.tournament.Tournament; import mage.game.tournament.TournamentOptions; import mage.game.tournament.TournamentPlayer; import mage.players.Player; +import mage.players.PlayerType; import mage.server.draft.DraftManager; import mage.server.game.DeckValidatorFactory; import mage.server.game.GameFactory; @@ -87,12 +88,12 @@ public class TableController { private Tournament tournament; private ScheduledFuture futureTimeout; - protected static final ScheduledExecutorService timeoutExecutor = ThreadExecutor.getInstance().getTimeoutExecutor(); + protected static final ScheduledExecutorService timeoutExecutor = ThreadExecutor.instance.getTimeoutExecutor(); public TableController(UUID roomId, UUID userId, MatchOptions options) { this.userId = userId; this.options = options; - match = GameFactory.getInstance().createMatch(options.getGameType(), options); + match = GameFactory.instance.createMatch(options.getGameType(), options); if (userId != null) { Optional user = UserManager.instance.getUser(userId); // TODO: Handle if user == null @@ -100,14 +101,14 @@ public class TableController { } else { controllerName = "System"; } - table = new Table(roomId, options.getGameType(), options.getName(), controllerName, DeckValidatorFactory.getInstance().createDeckValidator(options.getDeckType()), options.getPlayerTypes(), TableRecorderImpl.getInstance(), match, options.getBannedUsers()); + table = new Table(roomId, options.getGameType(), options.getName(), controllerName, DeckValidatorFactory.instance.createDeckValidator(options.getDeckType()), options.getPlayerTypes(), TableRecorderImpl.instance, match, options.getBannedUsers()); chatId = ChatManager.instance.createChatSession("Match Table " + table.getId()); init(); } public TableController(UUID roomId, UUID userId, TournamentOptions options) { this.userId = userId; - tournament = TournamentFactory.getInstance().createTournament(options.getTournamentType(), options); + tournament = TournamentFactory.instance.createTournament(options.getTournamentType(), options); if (userId != null) { Optional user = UserManager.instance.getUser(userId); if (!user.isPresent()) { @@ -119,7 +120,7 @@ public class TableController { } else { controllerName = "System"; } - table = new Table(roomId, options.getTournamentType(), options.getName(), controllerName, DeckValidatorFactory.getInstance().createDeckValidator(options.getMatchOptions().getDeckType()), options.getPlayerTypes(), TableRecorderImpl.getInstance(), tournament, options.getMatchOptions().getBannedUsers()); + table = new Table(roomId, options.getTournamentType(), options.getName(), controllerName, DeckValidatorFactory.instance.createDeckValidator(options.getMatchOptions().getDeckType()), options.getPlayerTypes(), TableRecorderImpl.instance, tournament, options.getMatchOptions().getBannedUsers()); chatId = ChatManager.instance.createChatSession("Tourn. table " + table.getId()); } @@ -139,7 +140,7 @@ public class TableController { ); } - public synchronized boolean joinTournament(UUID userId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws GameException { + public synchronized boolean joinTournament(UUID userId, String name, PlayerType playerType, int skill, DeckCardLists deckList, String password) throws GameException { if (table.getState() != TableState.WAITING) { return false; } @@ -155,13 +156,13 @@ public class TableController { } User user = _user.get(); // check password - if (!table.getTournament().getOptions().getPassword().isEmpty() && playerType.equals("Human")) { + if (!table.getTournament().getOptions().getPassword().isEmpty() && playerType == PlayerType.HUMAN) { if (!table.getTournament().getOptions().getPassword().equals(password)) { user.showUserMessage("Join Table", "Wrong password."); return false; } } - if (userPlayerMap.containsKey(userId) && playerType.equals("Human")) { + if (userPlayerMap.containsKey(userId) && playerType == PlayerType.HUMAN) { user.showUserMessage("Join Table", "You can join a table only one time."); return false; } @@ -228,7 +229,7 @@ public class TableController { return userPlayerMap.containsKey(userId); } - public synchronized boolean replaceDraftPlayer(Player oldPlayer, String name, String playerType, int skill) { + public synchronized boolean replaceDraftPlayer(Player oldPlayer, String name, PlayerType playerType, int skill) { Optional newPlayerOpt = createPlayer(name, playerType, skill); if (!newPlayerOpt.isPresent() || table.getState() != TableState.DRAFTING) { return false; @@ -246,13 +247,13 @@ public class TableController { return true; } - public synchronized boolean joinTable(UUID userId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws MageException { + public synchronized boolean joinTable(UUID userId, String name, PlayerType playerType, int skill, DeckCardLists deckList, String password) throws MageException { Optional _user = UserManager.instance.getUser(userId); if (!_user.isPresent()) { return false; } User user = _user.get(); - if (userPlayerMap.containsKey(userId) && playerType.equals("Human")) { + if (userPlayerMap.containsKey(userId) && playerType == PlayerType.HUMAN) { user.showUserMessage("Join Table", new StringBuilder("You can join a table only one time.").toString()); return false; } @@ -261,7 +262,7 @@ public class TableController { return false; } // check password - if (!table.getMatch().getOptions().getPassword().isEmpty() && playerType.equals("Human")) { + if (!table.getMatch().getOptions().getPassword().isEmpty() && playerType == PlayerType.HUMAN) { if (!table.getMatch().getOptions().getPassword().equals(password)) { user.showUserMessage("Join Table", "Wrong password."); return false; @@ -370,7 +371,7 @@ public class TableController { return true; } - public void addPlayer(UUID userId, Player player, String playerType, Deck deck) throws GameException { + public void addPlayer(UUID userId, Player player, PlayerType playerType, Deck deck) throws GameException { if (table.getState() != TableState.WAITING) { return; } @@ -480,12 +481,12 @@ public class TableController { // ReplayManager.instance.replayGame(table.getId(), userId); // return true; // } - private Optional createPlayer(String name, String playerType, int skill) { + private Optional createPlayer(String name, PlayerType playerType, int skill) { Optional playerOpt; if (options == null) { - playerOpt = PlayerFactory.getInstance().createPlayer(playerType, name, RangeOfInfluence.ALL, skill); + playerOpt = PlayerFactory.instance.createPlayer(playerType, name, RangeOfInfluence.ALL, skill); } else { - playerOpt = PlayerFactory.getInstance().createPlayer(playerType, name, options.getRange(), skill); + playerOpt = PlayerFactory.instance.createPlayer(playerType, name, options.getRange(), skill); } if (playerOpt.isPresent()) { Player player = playerOpt.get(); @@ -526,7 +527,7 @@ public class TableController { match.quitMatch(playerId); } Optional user = UserManager.instance.getUser(userId); - if (!user.isPresent()) { + if (user.isPresent()) { ChatManager.instance.broadcast(chatId, user.get().getName(), "has left the table", ChatMessage.MessageColor.BLUE, true, ChatMessage.MessageType.STATUS, ChatMessage.SoundToPlay.PlayerLeft); if (!table.isTournamentSubTable()) { user.get().removeTable(playerId); @@ -876,7 +877,7 @@ public class TableController { if (table.getState() == TableState.READY_TO_START) { if (seatNum1 >= 0 && seatNum2 >= 0 && seatNum1 < table.getSeats().length && seatNum2 < table.getSeats().length) { Player swapPlayer = table.getSeats()[seatNum1].getPlayer(); - String swapType = table.getSeats()[seatNum1].getPlayerType(); + PlayerType swapType = table.getSeats()[seatNum1].getPlayerType(); table.getSeats()[seatNum1].setPlayer(table.getSeats()[seatNum2].getPlayer()); table.getSeats()[seatNum1].setPlayerType(table.getSeats()[seatNum2].getPlayerType()); table.getSeats()[seatNum2].setPlayer(swapPlayer); diff --git a/Mage.Server/src/main/java/mage/server/TableManager.java b/Mage.Server/src/main/java/mage/server/TableManager.java index a8f0bd5f377..047639386ff 100644 --- a/Mage.Server/src/main/java/mage/server/TableManager.java +++ b/Mage.Server/src/main/java/mage/server/TableManager.java @@ -28,17 +28,7 @@ package mage.server; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.Map.Entry; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; - import mage.MageException; -import mage.cards.decks.Deck; import mage.cards.decks.DeckCardLists; import mage.constants.TableState; import mage.game.Game; @@ -50,13 +40,22 @@ import mage.game.match.MatchOptions; import mage.game.tournament.Tournament; import mage.game.tournament.TournamentOptions; import mage.game.tournament.TournamentPlayer; -import mage.players.Player; +import mage.players.PlayerType; import mage.server.game.GameController; import mage.server.game.GameManager; import mage.server.game.GamesRoomManager; import mage.server.util.ThreadExecutor; import org.apache.log4j.Logger; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.Map.Entry; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + /** * @author BetaSteward_at_googlemail.com */ @@ -133,14 +132,14 @@ public enum TableManager { return Optional.empty(); } - public boolean joinTable(UUID userId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws MageException { + public boolean joinTable(UUID userId, UUID tableId, String name, PlayerType playerType, int skill, DeckCardLists deckList, String password) throws MageException { if (controllers.containsKey(tableId)) { return controllers.get(tableId).joinTable(userId, name, playerType, skill, deckList, password); } return false; } - public boolean joinTournament(UUID userId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws GameException { + public boolean joinTournament(UUID userId, UUID tableId, String name, PlayerType playerType, int skill, DeckCardLists deckList, String password) throws GameException { if (controllers.containsKey(tableId)) { return controllers.get(tableId).joinTournament(userId, name, playerType, skill, deckList, password); } @@ -376,7 +375,7 @@ public enum TableManager { logger.debug(chatSession.getChatId() + " " + formatter.format(chatSession.getCreateTime()) + ' ' + chatSession.getInfo() + ' ' + chatSession.getClients().values().toString()); } logger.debug("------- Games: " + GameManager.instance.getNumberActiveGames() + " --------------------------------------------"); - logger.debug(" Active Game Worker: " + ThreadExecutor.getInstance().getActiveThreads(ThreadExecutor.getInstance().getGameExecutor())); + logger.debug(" Active Game Worker: " + ThreadExecutor.instance.getActiveThreads(ThreadExecutor.instance.getGameExecutor())); for (Entry entry : GameManager.instance.getGameController().entrySet()) { logger.debug(entry.getKey() + entry.getValue().getPlayerNameList()); } diff --git a/Mage.Server/src/main/java/mage/server/User.java b/Mage.Server/src/main/java/mage/server/User.java index 78fe8309932..ee7e96fd715 100644 --- a/Mage.Server/src/main/java/mage/server/User.java +++ b/Mage.Server/src/main/java/mage/server/User.java @@ -27,10 +27,6 @@ */ package mage.server; -import java.util.*; -import java.util.Map.Entry; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.TimeUnit; import mage.cards.decks.Deck; import mage.constants.ManaType; import mage.constants.TableState; @@ -38,6 +34,7 @@ import mage.game.Table; import mage.game.result.ResultProtos; import mage.game.tournament.TournamentPlayer; import mage.interfaces.callback.ClientCallback; +import mage.interfaces.callback.ClientCallbackMethod; import mage.players.net.UserData; import mage.server.draft.DraftSession; import mage.server.game.GameManager; @@ -54,6 +51,11 @@ import mage.server.util.SystemUtil; import mage.view.TableClientMessage; import org.apache.log4j.Logger; +import java.util.*; +import java.util.Map.Entry; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; + /** * @author BetaSteward_at_googlemail.com */ @@ -247,52 +249,52 @@ public class User { } public void ccJoinedTable(final UUID roomId, final UUID tableId, boolean isTournament) { - fireCallback(new ClientCallback("joinedTable", tableId, new TableClientMessage(roomId, tableId, isTournament))); + fireCallback(new ClientCallback(ClientCallbackMethod.JOINED_TABLE, tableId, new TableClientMessage(roomId, tableId, isTournament))); } public void ccGameStarted(final UUID gameId, final UUID playerId) { - fireCallback(new ClientCallback("startGame", gameId, new TableClientMessage(gameId, playerId))); + fireCallback(new ClientCallback(ClientCallbackMethod.START_GAME, gameId, new TableClientMessage(gameId, playerId))); } public void ccDraftStarted(final UUID draftId, final UUID playerId) { - fireCallback(new ClientCallback("startDraft", draftId, new TableClientMessage(draftId, playerId))); + fireCallback(new ClientCallback(ClientCallbackMethod.START_DRAFT, draftId, new TableClientMessage(draftId, playerId))); } public void ccTournamentStarted(final UUID tournamentId, final UUID playerId) { - fireCallback(new ClientCallback("startTournament", tournamentId, new TableClientMessage(tournamentId, playerId))); + fireCallback(new ClientCallback(ClientCallbackMethod.START_TOURNAMENT, tournamentId, new TableClientMessage(tournamentId, playerId))); } public void ccSideboard(final Deck deck, final UUID tableId, final int time, boolean limited) { - fireCallback(new ClientCallback("sideboard", tableId, new TableClientMessage(deck, tableId, time, limited))); + fireCallback(new ClientCallback(ClientCallbackMethod.SIDEBOARD, tableId, new TableClientMessage(deck, tableId, time, limited))); sideboarding.put(tableId, deck); } public void ccConstruct(final Deck deck, final UUID tableId, final int time) { - fireCallback(new ClientCallback("construct", tableId, new TableClientMessage(deck, tableId, time))); + fireCallback(new ClientCallback(ClientCallbackMethod.CONSTRUCT, tableId, new TableClientMessage(deck, tableId, time))); } public void ccShowTournament(final UUID tournamentId) { - fireCallback(new ClientCallback("showTournament", tournamentId)); + fireCallback(new ClientCallback(ClientCallbackMethod.SHOW_TOURNAMENT, tournamentId)); } public void ccShowGameEndDialog(final UUID gameId) { - fireCallback(new ClientCallback("showGameEndDialog", gameId)); + fireCallback(new ClientCallback(ClientCallbackMethod.SHOW_GAME_END_DIALOG, gameId)); } public void showUserMessage(final String titel, String message) { List messageData = new LinkedList<>(); messageData.add(titel); messageData.add(message); - fireCallback(new ClientCallback("showUserMessage", null, messageData)); + fireCallback(new ClientCallback(ClientCallbackMethod.SHOW_USERMESSAGE, null, messageData)); } public boolean ccWatchGame(final UUID gameId) { - fireCallback(new ClientCallback("watchGame", gameId)); + fireCallback(new ClientCallback(ClientCallbackMethod.WATCHGAME, gameId)); return true; } public void ccReplayGame(final UUID gameId) { - fireCallback(new ClientCallback("replayGame", gameId)); + fireCallback(new ClientCallback(ClientCallbackMethod.REPLAY_GAME, gameId)); } public void sendPlayerUUID(final UUID gameId, final UUID data) { diff --git a/Mage.Server/src/main/java/mage/server/UserManager.java b/Mage.Server/src/main/java/mage/server/UserManager.java index 18d45fb7fac..0aaab44e743 100644 --- a/Mage.Server/src/main/java/mage/server/UserManager.java +++ b/Mage.Server/src/main/java/mage/server/UserManager.java @@ -51,7 +51,7 @@ public enum UserManager { private final ConcurrentHashMap users = new ConcurrentHashMap<>(); - private static final ExecutorService USER_EXECUTOR = ThreadExecutor.getInstance().getCallExecutor(); + private static final ExecutorService USER_EXECUTOR = ThreadExecutor.instance.getCallExecutor(); UserManager() { expireExecutor.scheduleAtFixedRate(this::checkExpired, 60, 60, TimeUnit.SECONDS); diff --git a/Mage.Server/src/main/java/mage/server/challenge/ChallengeManager.java b/Mage.Server/src/main/java/mage/server/challenge/ChallengeManager.java index e239dbbb817..1c9b4f57777 100644 --- a/Mage.Server/src/main/java/mage/server/challenge/ChallengeManager.java +++ b/Mage.Server/src/main/java/mage/server/challenge/ChallengeManager.java @@ -1,10 +1,11 @@ package mage.server.challenge; +import mage.constants.Zone; +import mage.game.match.Match; + import java.util.HashMap; import java.util.Map; import java.util.UUID; -import mage.constants.Zone; -import mage.game.match.Match; /** * C U R R E N T L Y U N U S E D @@ -12,13 +13,9 @@ import mage.game.match.Match; * Loads challenges from scenarios. * Configure games by initializing starting game board. */ -public class ChallengeManager { +public enum ChallengeManager { - public static final ChallengeManager instance = new ChallengeManager(); - - public static ChallengeManager getInstance() { - return instance; - } + instance; public void prepareChallenge(UUID playerId, Match match) { Map commands = new HashMap<>(); diff --git a/Mage.Server/src/main/java/mage/server/draft/CubeFactory.java b/Mage.Server/src/main/java/mage/server/draft/CubeFactory.java index 939b36598e7..0897905532f 100644 --- a/Mage.Server/src/main/java/mage/server/draft/CubeFactory.java +++ b/Mage.Server/src/main/java/mage/server/draft/CubeFactory.java @@ -27,30 +27,27 @@ */ package mage.server.draft; +import mage.cards.decks.Deck; +import mage.game.draft.DraftCube; +import org.apache.log4j.Logger; + import java.lang.reflect.Constructor; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; -import mage.cards.decks.Deck; -import mage.game.draft.DraftCube; -import org.apache.log4j.Logger; /** * * @author LevelX2 */ -public class CubeFactory { +public enum CubeFactory { - private static final CubeFactory INSTANCE = new CubeFactory(); + instance; private static final Logger logger = Logger.getLogger(CubeFactory.class); private final Map draftCubes = new LinkedHashMap<>(); - public static CubeFactory getInstance() { - return INSTANCE; - } - private CubeFactory() {} public DraftCube createDraftCube(String draftCubeName) { diff --git a/Mage.Server/src/main/java/mage/server/draft/DraftController.java b/Mage.Server/src/main/java/mage/server/draft/DraftController.java index b89624fc812..68071b08968 100644 --- a/Mage.Server/src/main/java/mage/server/draft/DraftController.java +++ b/Mage.Server/src/main/java/mage/server/draft/DraftController.java @@ -28,12 +28,6 @@ package mage.server.draft; -import java.io.File; -import java.util.Map.Entry; -import java.util.Optional; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; import mage.MageException; import mage.game.draft.Draft; import mage.game.draft.DraftPlayer; @@ -48,6 +42,13 @@ import mage.server.util.ThreadExecutor; import mage.view.DraftPickView; import org.apache.log4j.Logger; +import java.io.File; +import java.util.Map.Entry; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; + /** * * @author BetaSteward_at_googlemail.com @@ -152,7 +153,7 @@ public class DraftController { private synchronized void checkStart() { if (!draft.isStarted() && allJoined()) { draft.setStarted(); - ThreadExecutor.getInstance().getCallExecutor().execute(this::startDraft); + ThreadExecutor.instance.getCallExecutor().execute(this::startDraft); } } diff --git a/Mage.Server/src/main/java/mage/server/draft/DraftSession.java b/Mage.Server/src/main/java/mage/server/draft/DraftSession.java index 9b25134c4b6..3992af7ca25 100644 --- a/Mage.Server/src/main/java/mage/server/draft/DraftSession.java +++ b/Mage.Server/src/main/java/mage/server/draft/DraftSession.java @@ -28,16 +28,9 @@ package mage.server.draft; -import java.rmi.RemoteException; -import java.util.Optional; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.TimeUnit; - import mage.game.draft.Draft; import mage.interfaces.callback.ClientCallback; +import mage.interfaces.callback.ClientCallbackMethod; import mage.server.User; import mage.server.UserManager; import mage.server.util.ThreadExecutor; @@ -46,6 +39,14 @@ import mage.view.DraftPickView; import mage.view.DraftView; import org.apache.log4j.Logger; +import java.rmi.RemoteException; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; + /** * @author BetaSteward_at_googlemail.com */ @@ -60,7 +61,7 @@ public class DraftSession { protected UUID markedCard; private ScheduledFuture futureTimeout; - protected static final ScheduledExecutorService timeoutExecutor = ThreadExecutor.getInstance().getTimeoutExecutor(); + protected static final ScheduledExecutorService timeoutExecutor = ThreadExecutor.instance.getTimeoutExecutor(); public DraftSession(Draft draft, UUID userId, UUID playerId) { this.userId = userId; @@ -75,7 +76,7 @@ public class DraftSession { if (user.isPresent()) { if (futureTimeout != null && !futureTimeout.isDone()) { int remaining = (int) futureTimeout.getDelay(TimeUnit.SECONDS); - user.get().fireCallback(new ClientCallback("draftInit", draft.getId(), new DraftClientMessage(getDraftPickView(remaining)))); + user.get().fireCallback(new ClientCallback(ClientCallbackMethod.DRAFT_INIT, draft.getId(), new DraftClientMessage(getDraftPickView(remaining)))); } return true; } @@ -88,7 +89,7 @@ public class DraftSession { UserManager.instance .getUser(userId). ifPresent(user -> user.fireCallback( - new ClientCallback("draftUpdate", draft.getId(), getDraftView()))); + new ClientCallback(ClientCallbackMethod.DRAFT_UPDATE, draft.getId(), getDraftView()))); } } @@ -98,7 +99,7 @@ public class DraftSession { if (!killed) { UserManager.instance .getUser(userId) - .ifPresent(user -> user.fireCallback(new ClientCallback("draftInform", draft.getId(), new DraftClientMessage(getDraftView(), message)))); + .ifPresent(user -> user.fireCallback(new ClientCallback(ClientCallbackMethod.DRAFT_INFORM, draft.getId(), new DraftClientMessage(getDraftView(), message)))); } } @@ -107,7 +108,7 @@ public class DraftSession { if (!killed) { UserManager.instance .getUser(userId) - .ifPresent(user -> user.fireCallback(new ClientCallback("draftOver", draft.getId()))); + .ifPresent(user -> user.fireCallback(new ClientCallback(ClientCallbackMethod.DRAFT_OVER, draft.getId()))); } } @@ -117,7 +118,7 @@ public class DraftSession { setupTimeout(timeout); UserManager.instance .getUser(userId) - .ifPresent(user -> user.fireCallback(new ClientCallback("draftPick", draft.getId(), new DraftClientMessage(getDraftPickView(timeout))))); + .ifPresent(user -> user.fireCallback(new ClientCallback(ClientCallbackMethod.DRAFT_PICK, draft.getId(), new DraftClientMessage(getDraftPickView(timeout))))); } } diff --git a/Mage.Server/src/main/java/mage/server/game/DeckValidatorFactory.java b/Mage.Server/src/main/java/mage/server/game/DeckValidatorFactory.java index 168c025fb9d..ad3fbc5e307 100644 --- a/Mage.Server/src/main/java/mage/server/game/DeckValidatorFactory.java +++ b/Mage.Server/src/main/java/mage/server/game/DeckValidatorFactory.java @@ -28,27 +28,26 @@ package mage.server.game; +import mage.cards.decks.DeckValidator; +import org.apache.log4j.Logger; + import java.lang.reflect.Constructor; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; -import mage.cards.decks.DeckValidator; -import org.apache.log4j.Logger; /** * * @author BetaSteward_at_googlemail.com */ -public class DeckValidatorFactory { +public enum DeckValidatorFactory { - private static final DeckValidatorFactory INSTANCE = new DeckValidatorFactory(); + instance; private static final Logger logger = Logger.getLogger(DeckValidatorFactory.class); private final Map deckTypes = new LinkedHashMap<>(); - public static DeckValidatorFactory getInstance() { - return INSTANCE; - } + private DeckValidatorFactory() {} diff --git a/Mage.Server/src/main/java/mage/server/game/GameController.java b/Mage.Server/src/main/java/mage/server/game/GameController.java index 4ed4720c7fc..5c1e38ba58b 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameController.java +++ b/Mage.Server/src/main/java/mage/server/game/GameController.java @@ -27,23 +27,6 @@ */ package mage.server.game; -import java.io.BufferedOutputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.ObjectOutput; -import java.io.ObjectOutputStream; -import java.io.OutputStream; -import java.io.Serializable; -import java.util.*; -import java.util.Map.Entry; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.TimeUnit; -import java.util.zip.GZIPOutputStream; import mage.MageException; import mage.abilities.Ability; import mage.cards.Card; @@ -66,37 +49,35 @@ import mage.game.events.TableEvent; import mage.game.permanent.Permanent; import mage.interfaces.Action; import mage.players.Player; -import mage.server.ChatManager; -import mage.server.Main; -import mage.server.TableManager; -import mage.server.User; -import mage.server.UserManager; +import mage.server.*; import mage.server.util.ConfigSettings; import mage.server.util.Splitter; import mage.server.util.SystemUtil; import mage.server.util.ThreadExecutor; import mage.utils.timer.PriorityTimer; -import mage.view.AbilityPickerView; -import mage.view.CardsView; -import mage.view.ChatMessage; +import mage.view.*; import mage.view.ChatMessage.MessageColor; import mage.view.ChatMessage.MessageType; -import mage.view.GameView; -import mage.view.PermanentView; import org.apache.log4j.Logger; +import java.io.*; +import java.util.*; +import java.util.Map.Entry; +import java.util.concurrent.*; +import java.util.zip.GZIPOutputStream; + /** * @author BetaSteward_at_googlemail.com */ public class GameController implements GameCallback { - private static final ExecutorService gameExecutor = ThreadExecutor.getInstance().getGameExecutor(); + private static final ExecutorService gameExecutor = ThreadExecutor.instance.getGameExecutor(); private static final Logger logger = Logger.getLogger(GameController.class); protected final ScheduledExecutorService joinWaitingExecutor = Executors.newSingleThreadScheduledExecutor(); private ScheduledFuture futureTimeout; - protected static final ScheduledExecutorService timeoutIdleExecutor = ThreadExecutor.getInstance().getTimeoutIdleExecutor(); + protected static final ScheduledExecutorService timeoutIdleExecutor = ThreadExecutor.instance.getTimeoutIdleExecutor(); private final ConcurrentHashMap gameSessions = new ConcurrentHashMap<>(); private final ConcurrentHashMap watchers = new ConcurrentHashMap<>(); @@ -388,7 +369,7 @@ public class GameController implements GameCallback { private void checkStart() { if (allJoined()) { joinWaitingExecutor.shutdownNow(); - ThreadExecutor.getInstance().getCallExecutor().execute(this::startGame); + ThreadExecutor.instance.getCallExecutor().execute(this::startGame); } } diff --git a/Mage.Server/src/main/java/mage/server/game/GameFactory.java b/Mage.Server/src/main/java/mage/server/game/GameFactory.java index f31f3ee7cdd..f19f67217aa 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameFactory.java +++ b/Mage.Server/src/main/java/mage/server/game/GameFactory.java @@ -28,24 +28,25 @@ package mage.server.game; -import java.lang.reflect.Constructor; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import mage.game.match.Match; import mage.game.match.MatchOptions; import mage.game.match.MatchType; import mage.view.GameTypeView; import org.apache.log4j.Logger; +import java.lang.reflect.Constructor; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * * @author BetaSteward_at_googlemail.com */ -public class GameFactory { +public enum GameFactory { - private static final GameFactory INSTANCE = new GameFactory(); + instance; private static final Logger logger = Logger.getLogger(GameFactory.class); private final Map> games = new HashMap<>(); @@ -53,9 +54,6 @@ public class GameFactory { private final List gameTypeViews = new ArrayList<>(); - public static GameFactory getInstance() { - return INSTANCE; - } private GameFactory() {} diff --git a/Mage.Server/src/main/java/mage/server/game/GameSessionPlayer.java b/Mage.Server/src/main/java/mage/server/game/GameSessionPlayer.java index f3f1146967c..e5fab18b434 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameSessionPlayer.java +++ b/Mage.Server/src/main/java/mage/server/game/GameSessionPlayer.java @@ -38,6 +38,7 @@ import mage.constants.PlayerAction; import mage.game.Game; import mage.game.Table; import mage.interfaces.callback.ClientCallback; +import mage.interfaces.callback.ClientCallbackMethod; import mage.players.Player; import mage.server.User; import mage.server.UserManager; @@ -54,7 +55,7 @@ public class GameSessionPlayer extends GameSessionWatcher { private final UUID playerId; - private static final ExecutorService callExecutor = ThreadExecutor.getInstance().getCallExecutor(); + private static final ExecutorService callExecutor = ThreadExecutor.instance.getCallExecutor(); public GameSessionPlayer(Game game, UUID userId, UUID playerId) { super(userId, game, true); @@ -68,7 +69,7 @@ public class GameSessionPlayer extends GameSessionWatcher { public void ask(final String question, final Map options) { if (!killed) { - UserManager.instance.getUser(userId).ifPresent(user -> user.fireCallback(new ClientCallback("gameAsk", game.getId(), new GameClientMessage(getGameView(), question, options))) + UserManager.instance.getUser(userId).ifPresent(user -> user.fireCallback(new ClientCallback(ClientCallbackMethod.GAME_ASK, game.getId(), new GameClientMessage(getGameView(), question, options))) ); } } @@ -76,7 +77,7 @@ public class GameSessionPlayer extends GameSessionWatcher { public void target(final String question, final CardsView cardView, final Set targets, final boolean required, final Map options) { if (!killed) { UserManager.instance.getUser(userId).ifPresent(user -> { - user.fireCallback(new ClientCallback("gameTarget", game.getId(), new GameClientMessage(getGameView(), question, cardView, targets, required, options))); + user.fireCallback(new ClientCallback(ClientCallbackMethod.GAME_TARGET, game.getId(), new GameClientMessage(getGameView(), question, cardView, targets, required, options))); }); } @@ -84,14 +85,14 @@ public class GameSessionPlayer extends GameSessionWatcher { public void select(final String message, final Map options) { if (!killed) { - UserManager.instance.getUser(userId).ifPresent(user -> user.fireCallback(new ClientCallback("gameSelect", game.getId(), new GameClientMessage(getGameView(), message, options)))); + UserManager.instance.getUser(userId).ifPresent(user -> user.fireCallback(new ClientCallback(ClientCallbackMethod.GAME_SELECT, game.getId(), new GameClientMessage(getGameView(), message, options)))); } } public void chooseAbility(final AbilityPickerView abilities) { if (!killed) { UserManager.instance.getUser(userId).ifPresent(user - -> user.fireCallback(new ClientCallback("gameChooseAbility", game.getId(), abilities))); + -> user.fireCallback(new ClientCallback(ClientCallbackMethod.GAME_CHOOSE_ABILITY, game.getId(), abilities))); } } @@ -99,7 +100,7 @@ public class GameSessionPlayer extends GameSessionWatcher { public void choosePile(final String message, final CardsView pile1, final CardsView pile2) { if (!killed) { UserManager.instance.getUser(userId).ifPresent(user - -> user.fireCallback(new ClientCallback("gameChoosePile", game.getId(), new GameClientMessage(message, pile1, pile2)))); + -> user.fireCallback(new ClientCallback(ClientCallbackMethod.GAME_CHOOSE_PILE, game.getId(), new GameClientMessage(message, pile1, pile2)))); } } @@ -107,7 +108,7 @@ public class GameSessionPlayer extends GameSessionWatcher { public void chooseChoice(final Choice choice) { if (!killed) { UserManager.instance.getUser(userId).ifPresent(user - -> user.fireCallback(new ClientCallback("gameChooseChoice", game.getId(), new GameClientMessage(choice)))); + -> user.fireCallback(new ClientCallback(ClientCallbackMethod.GAME_CHOOSE_CHOICE, game.getId(), new GameClientMessage(choice)))); } } @@ -115,14 +116,14 @@ public class GameSessionPlayer extends GameSessionWatcher { public void playMana(final String message, final Map options) { if (!killed) { UserManager.instance.getUser(userId).ifPresent(user - -> user.fireCallback(new ClientCallback("gamePlayMana", game.getId(), new GameClientMessage(getGameView(), message, options)))); + -> user.fireCallback(new ClientCallback(ClientCallbackMethod.GAME_PLAY_MANA, game.getId(), new GameClientMessage(getGameView(), message, options)))); } } public void playXMana(final String message) { if (!killed) { UserManager.instance.getUser(userId).ifPresent(user - -> user.fireCallback(new ClientCallback("gamePlayXMana", game.getId(), new GameClientMessage(getGameView(), message)))); + -> user.fireCallback(new ClientCallback(ClientCallbackMethod.GAME_PLAY_XMANA, game.getId(), new GameClientMessage(getGameView(), message)))); } } @@ -130,14 +131,14 @@ public class GameSessionPlayer extends GameSessionWatcher { public void getAmount(final String message, final int min, final int max) { if (!killed) { UserManager.instance.getUser(userId).ifPresent(user -> { - user.fireCallback(new ClientCallback("gameSelectAmount", game.getId(), new GameClientMessage(message, min, max))); + user.fireCallback(new ClientCallback(ClientCallbackMethod.GAME_GET_AMOUNT, game.getId(), new GameClientMessage(message, min, max))); }); } } public void endGameInfo(Table table) { if (!killed) { - UserManager.instance.getUser(userId).ifPresent(user -> user.fireCallback(new ClientCallback("endGameInfo", game.getId(), getGameEndView(playerId, table)))); + UserManager.instance.getUser(userId).ifPresent(user -> user.fireCallback(new ClientCallback(ClientCallbackMethod.END_GAME_INFO, game.getId(), getGameEndView(playerId, table)))); } } @@ -164,7 +165,7 @@ public class GameSessionPlayer extends GameSessionWatcher { userRequestMessage.setGameId(game.getId()); userRequestMessage.setButton1("Accept", PlayerAction.ADD_PERMISSION_TO_ROLLBACK_TURN); userRequestMessage.setButton2("Deny", PlayerAction.DENY_PERMISSON_TO_ROLLBACK_TURN); - requestedUser.get().fireCallback(new ClientCallback("userRequestDialog", game.getId(), userRequestMessage)); + requestedUser.get().fireCallback(new ClientCallback(ClientCallbackMethod.USER_REQUEST_DIALOG, game.getId(), userRequestMessage)); } } } @@ -182,7 +183,7 @@ public class GameSessionPlayer extends GameSessionWatcher { userRequestMessage.setGameId(game.getId()); userRequestMessage.setButton1("Accept", PlayerAction.ADD_PERMISSION_TO_SEE_HAND_CARDS); userRequestMessage.setButton2("Reject", null); - user.get().fireCallback(new ClientCallback("userRequestDialog", game.getId(), userRequestMessage)); + user.get().fireCallback(new ClientCallback(ClientCallbackMethod.USER_REQUEST_DIALOG, game.getId(), userRequestMessage)); } } } diff --git a/Mage.Server/src/main/java/mage/server/game/GameSessionWatcher.java b/Mage.Server/src/main/java/mage/server/game/GameSessionWatcher.java index 59c77189297..f9eabe88575 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameSessionWatcher.java +++ b/Mage.Server/src/main/java/mage/server/game/GameSessionWatcher.java @@ -28,14 +28,10 @@ package mage.server.game; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; -import java.util.UUID; - import mage.game.Game; import mage.game.Table; import mage.interfaces.callback.ClientCallback; +import mage.interfaces.callback.ClientCallbackMethod; import mage.players.Player; import mage.server.User; import mage.server.UserManager; @@ -45,6 +41,11 @@ import mage.view.GameView; import mage.view.SimpleCardsView; import org.apache.log4j.Logger; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; + /** * @author BetaSteward_at_googlemail.com */ @@ -67,7 +68,7 @@ public class GameSessionWatcher { if (!killed) { Optional user = UserManager.instance.getUser(userId); if (user.isPresent()) { - user.get().fireCallback(new ClientCallback("gameInit", game.getId(), getGameView())); + user.get().fireCallback(new ClientCallback(ClientCallbackMethod.GAME_INIT, game.getId(), getGameView())); return true; } } @@ -76,21 +77,21 @@ public class GameSessionWatcher { public void update() { if (!killed) { - UserManager.instance.getUser(userId).ifPresent(user -> user.fireCallback(new ClientCallback("gameUpdate", game.getId(), getGameView()))); + UserManager.instance.getUser(userId).ifPresent(user -> user.fireCallback(new ClientCallback(ClientCallbackMethod.GAME_UPDATE, game.getId(), getGameView()))); } } public void inform(final String message) { if (!killed) { - UserManager.instance.getUser(userId).ifPresent(user -> user.fireCallback(new ClientCallback("gameInform", game.getId(), new GameClientMessage(getGameView(), message)))); + UserManager.instance.getUser(userId).ifPresent(user -> user.fireCallback(new ClientCallback(ClientCallbackMethod.GAME_INFORM, game.getId(), new GameClientMessage(getGameView(), message)))); } } public void informPersonal(final String message) { if (!killed) { - UserManager.instance.getUser(userId).ifPresent(user -> user.fireCallback(new ClientCallback("gameInformPersonal", game.getId(), new GameClientMessage(getGameView(), message)))); + UserManager.instance.getUser(userId).ifPresent(user -> user.fireCallback(new ClientCallback(ClientCallbackMethod.GAME_INFORM_PERSONAL, game.getId(), new GameClientMessage(getGameView(), message)))); } } @@ -99,7 +100,7 @@ public class GameSessionWatcher { if (!killed) { UserManager.instance.getUser(userId).ifPresent(user -> { user.removeGameWatchInfo(game.getId()); - user.fireCallback(new ClientCallback("gameOver", game.getId(), message)); + user.fireCallback(new ClientCallback(ClientCallbackMethod.GAME_OVER, game.getId(), message)); }); } } @@ -113,7 +114,7 @@ public class GameSessionWatcher { public void gameError(final String message) { if (!killed) { - UserManager.instance.getUser(userId).ifPresent(user -> user.fireCallback(new ClientCallback("gameError", game.getId(), message))); + UserManager.instance.getUser(userId).ifPresent(user -> user.fireCallback(new ClientCallback(ClientCallbackMethod.GAME_ERROR, game.getId(), message))); } } diff --git a/Mage.Server/src/main/java/mage/server/game/GamesRoom.java b/Mage.Server/src/main/java/mage/server/game/GamesRoom.java index 8e62b5dcc9f..e01d8fec850 100644 --- a/Mage.Server/src/main/java/mage/server/game/GamesRoom.java +++ b/Mage.Server/src/main/java/mage/server/game/GamesRoom.java @@ -28,19 +28,21 @@ package mage.server.game; -import java.util.List; -import java.util.Optional; -import java.util.UUID; import mage.MageException; import mage.cards.decks.DeckCardLists; import mage.game.GameException; import mage.game.match.MatchOptions; import mage.game.tournament.TournamentOptions; +import mage.players.PlayerType; import mage.server.Room; import mage.view.MatchView; import mage.view.RoomUsersView; import mage.view.TableView; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -50,8 +52,8 @@ public interface GamesRoom extends Room { List getTables(); List getFinished(); List getRoomUsersInfo(); - boolean joinTable(UUID userId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws MageException; - boolean joinTournamentTable(UUID userId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws GameException; + boolean joinTable(UUID userId, UUID tableId, String name, PlayerType playerType, int skill, DeckCardLists deckList, String password) throws MageException; + boolean joinTournamentTable(UUID userId, UUID tableId, String name, PlayerType playerType, int skill, DeckCardLists deckList, String password) throws GameException; TableView createTable(UUID userId, MatchOptions options); TableView createTournamentTable(UUID userId, TournamentOptions options); void removeTable(UUID userId, UUID tableId); diff --git a/Mage.Server/src/main/java/mage/server/game/GamesRoomImpl.java b/Mage.Server/src/main/java/mage/server/game/GamesRoomImpl.java index e9b6bc74d2d..762f33374de 100644 --- a/Mage.Server/src/main/java/mage/server/game/GamesRoomImpl.java +++ b/Mage.Server/src/main/java/mage/server/game/GamesRoomImpl.java @@ -27,13 +27,6 @@ */ package mage.server.game; -import java.io.Serializable; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; - import mage.MageException; import mage.cards.decks.DeckCardLists; import mage.constants.TableState; @@ -41,6 +34,7 @@ import mage.game.GameException; import mage.game.Table; import mage.game.match.MatchOptions; import mage.game.tournament.TournamentOptions; +import mage.players.PlayerType; import mage.server.RoomImpl; import mage.server.TableManager; import mage.server.User; @@ -54,6 +48,13 @@ import mage.view.TableView; import mage.view.UsersView; import org.apache.log4j.Logger; +import java.io.Serializable; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + /** * @author BetaSteward_at_googlemail.com */ @@ -133,7 +134,7 @@ public class GamesRoomImpl extends RoomImpl implements GamesRoom, Serializable { List roomUserInfo = new ArrayList<>(); roomUserInfo.add(new RoomUsersView(users, GameManager.instance.getNumberActiveGames(), - ThreadExecutor.getInstance().getActiveThreads(ThreadExecutor.getInstance().getGameExecutor()), + ThreadExecutor.instance.getActiveThreads(ThreadExecutor.instance.getGameExecutor()), ConfigSettings.instance.getMaxGameThreads() )); roomUsersView = roomUserInfo; @@ -145,7 +146,7 @@ public class GamesRoomImpl extends RoomImpl implements GamesRoom, Serializable { } @Override - public boolean joinTable(UUID userId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws MageException { + public boolean joinTable(UUID userId, UUID tableId, String name, PlayerType playerType, int skill, DeckCardLists deckList, String password) throws MageException { if (tables.containsKey(tableId)) { return TableManager.instance.joinTable(userId, tableId, name, playerType, skill, deckList, password); } else { @@ -161,7 +162,7 @@ public class GamesRoomImpl extends RoomImpl implements GamesRoom, Serializable { } @Override - public boolean joinTournamentTable(UUID userId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws GameException { + public boolean joinTournamentTable(UUID userId, UUID tableId, String name, PlayerType playerType, int skill, DeckCardLists deckList, String password) throws GameException { if (tables.containsKey(tableId)) { return TableManager.instance.joinTournament(userId, tableId, name, playerType, skill, deckList, password); } else { diff --git a/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java b/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java index 7b43c65ce52..51a2edd0da9 100644 --- a/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java +++ b/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java @@ -30,32 +30,26 @@ package mage.server.game; import mage.constants.RangeOfInfluence; import mage.players.Player; +import mage.players.PlayerType; import org.apache.log4j.Logger; import java.lang.reflect.Constructor; -import java.util.LinkedHashMap; -import java.util.Map; +import java.util.EnumMap; import java.util.Optional; import java.util.Set; /** - * * @author BetaSteward_at_googlemail.com */ -public class PlayerFactory { +public enum PlayerFactory { - private static final PlayerFactory INSTANCE = new PlayerFactory(); + instance; private static final Logger logger = Logger.getLogger(PlayerFactory.class); - private final Map playerTypes = new LinkedHashMap<>(); + private final EnumMap playerTypes = new EnumMap<>(PlayerType.class); - public static PlayerFactory getInstance() { - return INSTANCE; - } - private PlayerFactory() {} - - public Optional createPlayer(String playerType, String name, RangeOfInfluence range, int skill) { + public Optional createPlayer(PlayerType playerType, String name, RangeOfInfluence range, int skill) { try { Class playerTypeClass = playerTypes.get(playerType); if (playerTypeClass != null) { @@ -63,8 +57,7 @@ public class PlayerFactory { Player player = (Player) con.newInstance(name, range, skill); logger.trace("Player created: " + name + " - " + player.getId()); return Optional.of(player); - } - else { + } else { logger.fatal("Unknown player type: " + playerType); } } catch (Exception ex) { @@ -73,13 +66,16 @@ public class PlayerFactory { return Optional.empty(); } - public Set getPlayerTypes() { + public Set getPlayerTypes() { return playerTypes.keySet(); } public void addPlayerType(String name, Class playerType) { - if (playerType != null) { - this.playerTypes.put(name, playerType); + PlayerType type = PlayerType.getByDescription(name); + if (type != null) { + if (playerType != null) { + this.playerTypes.put(type, playerType); + } } } diff --git a/Mage.Server/src/main/java/mage/server/game/ReplaySession.java b/Mage.Server/src/main/java/mage/server/game/ReplaySession.java index c19d9a1788c..a61bca68943 100644 --- a/Mage.Server/src/main/java/mage/server/game/ReplaySession.java +++ b/Mage.Server/src/main/java/mage/server/game/ReplaySession.java @@ -33,6 +33,7 @@ import java.util.UUID; import mage.game.Game; import mage.game.GameState; import mage.interfaces.callback.ClientCallback; +import mage.interfaces.callback.ClientCallbackMethod; import mage.server.UserManager; import mage.view.GameView; @@ -52,7 +53,7 @@ public class ReplaySession implements GameCallback { public void replay() { replay.start(); UserManager.instance.getUser(userId).ifPresent(user -> - user.fireCallback(new ClientCallback("replayInit", replay.getGame().getId(), new GameView(replay.next(), replay.getGame(), null, null)))); + user.fireCallback(new ClientCallback(ClientCallbackMethod.REPLAY_INIT, replay.getGame().getId(), new GameView(replay.next(), replay.getGame(), null, null)))); } @@ -78,7 +79,7 @@ public class ReplaySession implements GameCallback { @Override public void gameResult(final String result) { UserManager.instance.getUser(userId).ifPresent(user -> - user.fireCallback(new ClientCallback("replayDone", replay.getGame().getId(), result))); + user.fireCallback(new ClientCallback(ClientCallbackMethod.REPLAY_DONE, replay.getGame().getId(), result))); ReplayManager.instance.endReplay(replay.getGame().getId(), userId); } @@ -88,7 +89,7 @@ public class ReplaySession implements GameCallback { gameResult("game ended"); } else { UserManager.instance.getUser(userId).ifPresent(user -> - user.fireCallback(new ClientCallback("replayUpdate", replay.getGame().getId(), new GameView(state, game, null, null)))); + user.fireCallback(new ClientCallback(ClientCallbackMethod.REPLAY_UPDATE, replay.getGame().getId(), new GameView(state, game, null, null)))); } } diff --git a/Mage.Server/src/main/java/mage/server/record/TableRecorderImpl.java b/Mage.Server/src/main/java/mage/server/record/TableRecorderImpl.java index 119ea846a8f..cfcc360ed34 100644 --- a/Mage.Server/src/main/java/mage/server/record/TableRecorderImpl.java +++ b/Mage.Server/src/main/java/mage/server/record/TableRecorderImpl.java @@ -5,13 +5,9 @@ import mage.game.Table.TableRecorder; import mage.game.result.ResultProtos.TableProto; import mage.server.UserManager; -public class TableRecorderImpl implements TableRecorder { +public enum TableRecorderImpl implements TableRecorder { - private final static TableRecorderImpl INSTANCE = new TableRecorderImpl(); - - public static TableRecorderImpl getInstance() { - return INSTANCE; - } + instance; @Override public void record(Table table) { diff --git a/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java b/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java index d8ec2b52baf..43177268540 100644 --- a/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java +++ b/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java @@ -27,6 +27,10 @@ */ package mage.server.tournament; +import java.util.Map.Entry; +import java.util.Optional; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; import mage.MageException; import mage.cards.decks.Deck; import mage.constants.TableState; @@ -37,17 +41,19 @@ import mage.game.draft.Draft; import mage.game.events.Listener; import mage.game.events.PlayerQueryEvent; import mage.game.events.TableEvent; -import mage.game.match.Match; import mage.game.match.MatchOptions; import mage.game.result.ResultProtos.TourneyQuitStatus; import mage.game.tournament.MultiplayerRound; import mage.game.tournament.Tournament; import mage.game.tournament.TournamentPairing; import mage.game.tournament.TournamentPlayer; -import mage.server.*; +import mage.players.PlayerType; +import mage.server.ChatManager; +import mage.server.TableManager; +import mage.server.User; +import mage.server.UserManager; import mage.server.draft.DraftController; import mage.server.draft.DraftManager; -import mage.server.draft.DraftSession; import mage.server.game.GamesRoomManager; import mage.server.util.ThreadExecutor; import mage.view.ChatMessage.MessageColor; @@ -56,11 +62,6 @@ import mage.view.ChatMessage.SoundToPlay; import mage.view.TournamentView; import org.apache.log4j.Logger; -import java.util.Map.Entry; -import java.util.Optional; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; - /** * @author BetaSteward_at_googlemail.com */ @@ -156,8 +157,8 @@ public class TournamentController { UUID playerId = userPlayerMap.get(userId); if (playerId == null) { if (logger.isDebugEnabled()) { - UserManager.instance.getUser(userId).ifPresent(user -> - logger.debug(user.getName() + " shows tournament panel tournamentId: " + tournament.getId())); + UserManager.instance.getUser(userId).ifPresent(user + -> logger.debug(user.getName() + " shows tournament panel tournamentId: " + tournament.getId())); } return; @@ -198,7 +199,7 @@ public class TournamentController { private void checkStart() { if (!started && allJoined()) { - ThreadExecutor.getInstance().getCallExecutor().execute(this::startTournament); + ThreadExecutor.instance.getCallExecutor().execute(this::startTournament); } } @@ -249,21 +250,35 @@ public class TournamentController { table.setState(TableState.WAITING); TournamentPlayer player1 = pair.getPlayer1(); TournamentPlayer player2 = pair.getPlayer2(); - Optional user1Id = getPlayerUserId(player1.getPlayer().getId()); - Optional user2Id = getPlayerUserId(player2.getPlayer().getId()); - if (user1Id.isPresent() && user2Id.isPresent()) { - tableManager.addPlayer(getPlayerUserId(player1.getPlayer().getId()).get(), table.getId(), player1); - tableManager.addPlayer(getPlayerUserId(player2.getPlayer().getId()).get(), table.getId(), player2); - table.setState(TableState.STARTING); - tableManager.startTournamentSubMatch(null, table.getId()); - tableManager.getMatch(table.getId()).ifPresent(match -> { - match.setTableId(tableId); - pair.setMatch(match); - pair.setTableId(table.getId()); - player1.setState(TournamentPlayerState.DUELING); - player2.setState(TournamentPlayerState.DUELING); - }); + UUID user1Uuid = null; + UUID user2Uuid = null; + if (player1.getPlayerType() == PlayerType.HUMAN) { + Optional user1Id = getPlayerUserId(player1.getPlayer().getId()); + if (!user1Id.isPresent()) { + logger.fatal("Player 1 not found"); + } else { + user1Uuid = user1Id.get(); + } } + if (player2.getPlayerType() == PlayerType.HUMAN) { + Optional user2Id = getPlayerUserId(player2.getPlayer().getId()); + if (!user2Id.isPresent()) { + logger.fatal("Player 2 not found"); + } else { + user2Uuid = user2Id.get(); + } + } + tableManager.addPlayer(user1Uuid, table.getId(), player1); + tableManager.addPlayer(user2Uuid, table.getId(), player2); + table.setState(TableState.STARTING); + tableManager.startTournamentSubMatch(null, table.getId()); + tableManager.getMatch(table.getId()).ifPresent(match -> { + match.setTableId(tableId); + pair.setMatch(match); + pair.setTableId(table.getId()); + player1.setState(TournamentPlayerState.DUELING); + player2.setState(TournamentPlayerState.DUELING); + }); } catch (GameException ex) { logger.fatal("TournamentController startMatch error", ex); } @@ -347,8 +362,8 @@ public class TournamentController { tournament.autoSubmit(userPlayerMap.get(userId), tournamentPlayer.generateDeck()); } else { StringBuilder sb = new StringBuilder(); - UserManager.instance.getUser(userId).ifPresent(user -> - sb.append(user.getName())); + UserManager.instance.getUser(userId).ifPresent(user + -> sb.append(user.getName())); sb.append(" - no deck found for auto submit"); logger.fatal(sb); @@ -397,8 +412,8 @@ public class TournamentController { this.abortDraftTournament(); } else { DraftManager.instance.getController(tableId).ifPresent(draftController -> { - draftController.getDraftSession(playerId).ifPresent(draftSession -> - DraftManager.instance.kill(draftSession.getDraftId(), userId)); + draftController.getDraftSession(playerId).ifPresent(draftSession + -> DraftManager.instance.kill(draftSession.getDraftId(), userId)); }); } @@ -434,7 +449,7 @@ public class TournamentController { if (user.isPresent()) { replacePlayerName = "Draftbot (" + user.get().getName() + ')'; } - tableController.replaceDraftPlayer(leavingPlayer.getPlayer(), replacePlayerName, "Computer - draftbot", 5); + tableController.replaceDraftPlayer(leavingPlayer.getPlayer(), replacePlayerName, PlayerType.COMPUTER_DRAFT_BOT, 5); if (user.isPresent()) { user.get().removeDraft(leavingPlayer.getPlayer().getId()); user.get().removeTable(leavingPlayer.getPlayer().getId()); diff --git a/Mage.Server/src/main/java/mage/server/tournament/TournamentFactory.java b/Mage.Server/src/main/java/mage/server/tournament/TournamentFactory.java index d6c0d1b554c..33683f454f5 100644 --- a/Mage.Server/src/main/java/mage/server/tournament/TournamentFactory.java +++ b/Mage.Server/src/main/java/mage/server/tournament/TournamentFactory.java @@ -28,12 +28,6 @@ package mage.server.tournament; -import java.lang.reflect.Constructor; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; import mage.cards.Sets; import mage.game.draft.DraftCube; import mage.game.tournament.Tournament; @@ -43,23 +37,22 @@ import mage.server.draft.CubeFactory; import mage.view.TournamentTypeView; import org.apache.log4j.Logger; +import java.lang.reflect.Constructor; +import java.util.*; + /** * * @author BetaSteward_at_googlemail.com */ -public class TournamentFactory { - private static final TournamentFactory INSTANCE = new TournamentFactory(); +public enum TournamentFactory { + instance; private static final Logger logger = Logger.getLogger(TournamentFactory.class); private final Map> tournaments = new HashMap<>(); private final Map tournamentTypes = new HashMap<>(); private final List tournamentTypeViews = new ArrayList<>(); - public static TournamentFactory getInstance() { - return INSTANCE; - } - private TournamentFactory() {} public Tournament createTournament(String tournamentType, TournamentOptions options) { @@ -81,9 +74,9 @@ public class TournamentFactory { DraftCube draftCube; if (tournament.getOptions().getLimitedOptions().getCubeFromDeck() != null) { - draftCube = CubeFactory.getInstance().createDeckDraftCube(tournament.getOptions().getLimitedOptions().getDraftCubeName(), tournament.getOptions().getLimitedOptions().getCubeFromDeck()); + draftCube = CubeFactory.instance.createDeckDraftCube(tournament.getOptions().getLimitedOptions().getDraftCubeName(), tournament.getOptions().getLimitedOptions().getCubeFromDeck()); } else { - draftCube = CubeFactory.getInstance().createDraftCube(tournament.getOptions().getLimitedOptions().getDraftCubeName()); + draftCube = CubeFactory.instance.createDraftCube(tournament.getOptions().getLimitedOptions().getDraftCubeName()); } tournament.getOptions().getLimitedOptions().setDraftCube(draftCube); tournament.setBoosterInfo(tournament.getOptions().getLimitedOptions().getDraftCubeName()); diff --git a/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java b/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java index 89eda7df685..446b3fe6883 100644 --- a/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java +++ b/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java @@ -31,6 +31,7 @@ package mage.server.tournament; import mage.cards.decks.Deck; import mage.game.tournament.Tournament; import mage.interfaces.callback.ClientCallback; +import mage.interfaces.callback.ClientCallbackMethod; import mage.server.User; import mage.server.UserManager; import mage.server.util.ThreadExecutor; @@ -56,7 +57,7 @@ public class TournamentSession { protected boolean killed = false; private ScheduledFuture futureTimeout; - protected static final ScheduledExecutorService timeoutExecutor = ThreadExecutor.getInstance().getTimeoutExecutor(); + protected static final ScheduledExecutorService timeoutExecutor = ThreadExecutor.instance.getTimeoutExecutor(); public TournamentSession(Tournament tournament, UUID userId, UUID tableId, UUID playerId) { this.userId = userId; @@ -69,7 +70,7 @@ public class TournamentSession { if (!killed) { Optional user = UserManager.instance.getUser(userId); if (user.isPresent()) { - user.get().fireCallback(new ClientCallback("tournamentInit", tournament.getId(), getTournamentView())); + user.get().fireCallback(new ClientCallback(ClientCallbackMethod.TOURNAMENT_INIT, tournament.getId(), getTournamentView())); return true; } } @@ -79,7 +80,7 @@ public class TournamentSession { public void update() { if (!killed) { UserManager.instance.getUser(userId).ifPresent(user -> - user.fireCallback(new ClientCallback("tournamentUpdate", tournament.getId(), getTournamentView()))); + user.fireCallback(new ClientCallback(ClientCallbackMethod.TOURNAMENT_UPDATE, tournament.getId(), getTournamentView()))); } } @@ -87,7 +88,7 @@ public class TournamentSession { public void gameOver(final String message) { if (!killed) { UserManager.instance.getUser(userId).ifPresent(user -> - user.fireCallback(new ClientCallback("tournamentOver", tournament.getId(), message))); + user.fireCallback(new ClientCallback(ClientCallbackMethod.TOURNAMENT_OVER, tournament.getId(), message))); } } diff --git a/Mage.Server/src/main/java/mage/server/util/ConfigSettings.java b/Mage.Server/src/main/java/mage/server/util/ConfigSettings.java index 4acf8c98b05..a4e8e9d6101 100644 --- a/Mage.Server/src/main/java/mage/server/util/ConfigSettings.java +++ b/Mage.Server/src/main/java/mage/server/util/ConfigSettings.java @@ -24,8 +24,7 @@ * The views and conclusions contained in the software and documentation are those of the * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. -*/ - + */ package mage.server.util; import java.io.File; @@ -33,7 +32,6 @@ import java.util.List; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; - import mage.server.util.config.Config; import mage.server.util.config.GamePlugin; import mage.server.util.config.Plugin; @@ -48,7 +46,6 @@ public enum ConfigSettings { private Config config; - ConfigSettings() { try { JAXBContext jaxbContext = JAXBContext.newInstance("mage.server.util.config"); @@ -79,6 +76,10 @@ public enum ConfigSettings { return config.getServer().getLeasePeriod().intValue(); } + public int getSocketWriteTimeout() { + return config.getServer().getSocketWriteTimeout().intValue(); + } + public int getMaxPoolSize() { return config.getServer().getMaxPoolSize().intValue(); } diff --git a/Mage.Server/src/main/java/mage/server/util/ThreadExecutor.java b/Mage.Server/src/main/java/mage/server/util/ThreadExecutor.java index 3517add4550..586e759faac 100644 --- a/Mage.Server/src/main/java/mage/server/util/ThreadExecutor.java +++ b/Mage.Server/src/main/java/mage/server/util/ThreadExecutor.java @@ -38,8 +38,8 @@ import java.util.concurrent.TimeUnit; * * @author BetaSteward_at_googlemail.com */ -public class ThreadExecutor { - +public enum ThreadExecutor { +instance; private static final ExecutorService callExecutor = Executors.newCachedThreadPool(); private static final ExecutorService userExecutor = Executors.newCachedThreadPool(); private static final ExecutorService gameExecutor = Executors.newFixedThreadPool(ConfigSettings.instance.getMaxGameThreads()); @@ -74,14 +74,6 @@ public class ThreadExecutor { ((ThreadPoolExecutor) timeoutIdleExecutor).setThreadFactory(new XMageThreadFactory("TIMEOUT_IDLE")); } - private static final ThreadExecutor INSTANCE = new ThreadExecutor(); - - public static ThreadExecutor getInstance() { - return INSTANCE; - } - - private ThreadExecutor() { - } public int getActiveThreads(ExecutorService executerService) { if (executerService instanceof ThreadPoolExecutor) { diff --git a/Mage.Server/src/main/java/mage/server/util/resources/config.xml b/Mage.Server/src/main/java/mage/server/util/resources/config.xml index f5696f65228..a351f218a7e 100644 --- a/Mage.Server/src/main/java/mage/server/util/resources/config.xml +++ b/Mage.Server/src/main/java/mage/server/util/resources/config.xml @@ -9,6 +9,7 @@ numAcceptThreads="2" maxPoolSize="300" leasePeriod="5000" + socketWriteTimeout="10000" maxGameThreads="10" maxSecondsIdle="600" minUserNameLength="3" diff --git a/Mage.Server/src/main/xml-resources/jaxb/Config/Config.xsd b/Mage.Server/src/main/xml-resources/jaxb/Config/Config.xsd index 0a82ec9bae5..ac33721e7cb 100644 --- a/Mage.Server/src/main/xml-resources/jaxb/Config/Config.xsd +++ b/Mage.Server/src/main/xml-resources/jaxb/Config/Config.xsd @@ -2,102 +2,103 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + diff --git a/Mage.Sets/pom.xml b/Mage.Sets/pom.xml index a615415a5d6..3e3f9379a96 100644 --- a/Mage.Sets/pom.xml +++ b/Mage.Sets/pom.xml @@ -7,7 +7,7 @@ org.mage mage-root - 1.4.22 + 1.4.23 org.mage diff --git a/Mage.Sets/src/mage/cards/a/AAT1.java b/Mage.Sets/src/mage/cards/a/AAT1.java index 7f3ba047c4e..f28ed341dd5 100644 --- a/Mage.Sets/src/mage/cards/a/AAT1.java +++ b/Mage.Sets/src/mage/cards/a/AAT1.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/ATST.java b/Mage.Sets/src/mage/cards/a/ATST.java index a0dfc5abcb0..ff6646cddb5 100644 --- a/Mage.Sets/src/mage/cards/a/ATST.java +++ b/Mage.Sets/src/mage/cards/a/ATST.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AWing.java b/Mage.Sets/src/mage/cards/a/AWing.java index 59a655ae90f..e88009c1ad2 100644 --- a/Mage.Sets/src/mage/cards/a/AWing.java +++ b/Mage.Sets/src/mage/cards/a/AWing.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AbandonHope.java b/Mage.Sets/src/mage/cards/a/AbandonHope.java index 1ef14327139..b7b2f336406 100644 --- a/Mage.Sets/src/mage/cards/a/AbandonHope.java +++ b/Mage.Sets/src/mage/cards/a/AbandonHope.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.DiscardTargetCost; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.target.TargetPlayer; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AbandonReason.java b/Mage.Sets/src/mage/cards/a/AbandonReason.java index ee4ce79c19d..bdeec55106e 100644 --- a/Mage.Sets/src/mage/cards/a/AbandonReason.java +++ b/Mage.Sets/src/mage/cards/a/AbandonReason.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AbandonedOutpost.java b/Mage.Sets/src/mage/cards/a/AbandonedOutpost.java index 7260d310589..207ed623f2d 100644 --- a/Mage.Sets/src/mage/cards/a/AbandonedOutpost.java +++ b/Mage.Sets/src/mage/cards/a/AbandonedOutpost.java @@ -28,7 +28,6 @@ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -38,6 +37,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/a/AbattoirGhoul.java b/Mage.Sets/src/mage/cards/a/AbattoirGhoul.java index cf980e7d650..ca00c4836eb 100644 --- a/Mage.Sets/src/mage/cards/a/AbattoirGhoul.java +++ b/Mage.Sets/src/mage/cards/a/AbattoirGhoul.java @@ -29,18 +29,21 @@ package mage.cards.a; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.keyword.FirstStrikeAbility; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.constants.*; -import mage.game.Game; -import java.util.UUID; import mage.abilities.common.DealtDamageAndDiedTriggeredAbility; import mage.abilities.effects.OneShotEffect; +import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author Alvin diff --git a/Mage.Sets/src/mage/cards/a/AbbeyGargoyles.java b/Mage.Sets/src/mage/cards/a/AbbeyGargoyles.java index f80410fa386..1d41b84ddf8 100644 --- a/Mage.Sets/src/mage/cards/a/AbbeyGargoyles.java +++ b/Mage.Sets/src/mage/cards/a/AbbeyGargoyles.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.FlyingAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Sir-Speshkitty diff --git a/Mage.Sets/src/mage/cards/a/AbbeyGriffin.java b/Mage.Sets/src/mage/cards/a/AbbeyGriffin.java index 5fb8f880db3..1bf179083a8 100644 --- a/Mage.Sets/src/mage/cards/a/AbbeyGriffin.java +++ b/Mage.Sets/src/mage/cards/a/AbbeyGriffin.java @@ -28,13 +28,14 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AbbeyMatron.java b/Mage.Sets/src/mage/cards/a/AbbeyMatron.java index c85d1cea253..8a009d0baee 100644 --- a/Mage.Sets/src/mage/cards/a/AbbeyMatron.java +++ b/Mage.Sets/src/mage/cards/a/AbbeyMatron.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Sir-Speshkitty diff --git a/Mage.Sets/src/mage/cards/a/AbbotOfKeralKeep.java b/Mage.Sets/src/mage/cards/a/AbbotOfKeralKeep.java index 3d356f51ef6..2eccf3acc64 100644 --- a/Mage.Sets/src/mage/cards/a/AbbotOfKeralKeep.java +++ b/Mage.Sets/src/mage/cards/a/AbbotOfKeralKeep.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -48,6 +47,8 @@ import mage.players.Library; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/Abduction.java b/Mage.Sets/src/mage/cards/a/Abduction.java index 61ae91b0b9d..1c7384c176c 100644 --- a/Mage.Sets/src/mage/cards/a/Abduction.java +++ b/Mage.Sets/src/mage/cards/a/Abduction.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/a/AberrantResearcher.java b/Mage.Sets/src/mage/cards/a/AberrantResearcher.java index 30cc88245da..40b134eec56 100644 --- a/Mage.Sets/src/mage/cards/a/AberrantResearcher.java +++ b/Mage.Sets/src/mage/cards/a/AberrantResearcher.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -35,10 +34,10 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TransformAbility; -import mage.cards.p.PerfectedForm; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.p.PerfectedForm; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; @@ -46,6 +45,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/Abeyance.java b/Mage.Sets/src/mage/cards/a/Abeyance.java index 1ef21f26fde..a2a4402eb19 100644 --- a/Mage.Sets/src/mage/cards/a/Abeyance.java +++ b/Mage.Sets/src/mage/cards/a/Abeyance.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; @@ -42,6 +41,9 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.target.TargetPlayer; +import java.util.Optional; +import java.util.UUID; + /** * * @author fireshoes @@ -109,8 +111,8 @@ class AbeyanceEffect extends ContinuousRuleModifyingEffectImpl { } } if (event.getType() == GameEvent.EventType.ACTIVATE_ABILITY) { - Ability ability = game.getAbility(event.getTargetId(), event.getSourceId()); - if (ability != null && !(ability instanceof ActivatedManaAbilityImpl)) { + Optional ability = game.getAbility(event.getTargetId(), event.getSourceId()); + if (ability.isPresent() && !(ability.get() instanceof ActivatedManaAbilityImpl)) { return true; } } diff --git a/Mage.Sets/src/mage/cards/a/AbhorrentOverlord.java b/Mage.Sets/src/mage/cards/a/AbhorrentOverlord.java index f7800b70ff6..c65135e0124 100644 --- a/Mage.Sets/src/mage/cards/a/AbhorrentOverlord.java +++ b/Mage.Sets/src/mage/cards/a/AbhorrentOverlord.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,6 +43,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Abjure.java b/Mage.Sets/src/mage/cards/a/Abjure.java index 2c4e0026978..0b08752be80 100644 --- a/Mage.Sets/src/mage/cards/a/Abjure.java +++ b/Mage.Sets/src/mage/cards/a/Abjure.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.CounterTargetEffect; @@ -39,6 +38,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetSpell; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author djbrez diff --git a/Mage.Sets/src/mage/cards/a/Abolish.java b/Mage.Sets/src/mage/cards/a/Abolish.java index 0217ff0c995..45bb47ca802 100644 --- a/Mage.Sets/src/mage/cards/a/Abolish.java +++ b/Mage.Sets/src/mage/cards/a/Abolish.java @@ -27,19 +27,20 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.DiscardTargetCost; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AbolisherOfBloodlines.java b/Mage.Sets/src/mage/cards/a/AbolisherOfBloodlines.java index 7a4d30ee5b2..3bf504c388b 100644 --- a/Mage.Sets/src/mage/cards/a/AbolisherOfBloodlines.java +++ b/Mage.Sets/src/mage/cards/a/AbolisherOfBloodlines.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.SacrificeEffect; @@ -44,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.target.Target; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/Abomination.java b/Mage.Sets/src/mage/cards/a/Abomination.java index e49d8f6af2f..ea1b9c9ec42 100644 --- a/Mage.Sets/src/mage/cards/a/Abomination.java +++ b/Mage.Sets/src/mage/cards/a/Abomination.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AbominationOfGudul.java b/Mage.Sets/src/mage/cards/a/AbominationOfGudul.java index 7ebcaebfc39..8fa4089c9b3 100644 --- a/Mage.Sets/src/mage/cards/a/AbominationOfGudul.java +++ b/Mage.Sets/src/mage/cards/a/AbominationOfGudul.java @@ -27,18 +27,19 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawDiscardControllerEffect; +import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.MorphAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Aboroth.java b/Mage.Sets/src/mage/cards/a/Aboroth.java index f1ccef6cbb1..faf43473de4 100644 --- a/Mage.Sets/src/mage/cards/a/Aboroth.java +++ b/Mage.Sets/src/mage/cards/a/Aboroth.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.costs.Cost; @@ -40,6 +39,8 @@ import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AboshanCephalidEmperor.java b/Mage.Sets/src/mage/cards/a/AboshanCephalidEmperor.java index 50e639a3010..cccd1cc477e 100644 --- a/Mage.Sets/src/mage/cards/a/AboshanCephalidEmperor.java +++ b/Mage.Sets/src/mage/cards/a/AboshanCephalidEmperor.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; @@ -48,6 +48,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author cbt33 @@ -64,7 +66,7 @@ static { public AboshanCephalidEmperor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Cephalid"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/a/AboshansDesire.java b/Mage.Sets/src/mage/cards/a/AboshansDesire.java index 0bf131a0f75..bf4e6b6eacd 100644 --- a/Mage.Sets/src/mage/cards/a/AboshansDesire.java +++ b/Mage.Sets/src/mage/cards/a/AboshansDesire.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.CardsInControllerGraveCondition; @@ -39,15 +38,12 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AbilityWord; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/a/AboutFace.java b/Mage.Sets/src/mage/cards/a/AboutFace.java index d8667f7eaa2..928e5c94d54 100644 --- a/Mage.Sets/src/mage/cards/a/AboutFace.java +++ b/Mage.Sets/src/mage/cards/a/AboutFace.java @@ -27,15 +27,15 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.SwitchPowerToughnessTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AbruptDecay.java b/Mage.Sets/src/mage/cards/a/AbruptDecay.java index 2599f33fe7a..f165f1d5b3a 100644 --- a/Mage.Sets/src/mage/cards/a/AbruptDecay.java +++ b/Mage.Sets/src/mage/cards/a/AbruptDecay.java @@ -27,8 +27,8 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CantBeCounteredSourceEffect; @@ -37,11 +37,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterNonlandPermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetNonlandPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -51,7 +52,7 @@ public class AbruptDecay extends CardImpl { private static final FilterNonlandPermanent filter = new FilterNonlandPermanent("nonland permanent with converted mana cost 3 or less"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public AbruptDecay(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/a/AbsoluteGrace.java b/Mage.Sets/src/mage/cards/a/AbsoluteGrace.java index b88ebeeb7a2..96eb95c4361 100644 --- a/Mage.Sets/src/mage/cards/a/AbsoluteGrace.java +++ b/Mage.Sets/src/mage/cards/a/AbsoluteGrace.java @@ -28,10 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -39,8 +35,13 @@ import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AbsoluteLaw.java b/Mage.Sets/src/mage/cards/a/AbsoluteLaw.java index 7431c972c74..a30567d637a 100644 --- a/Mage.Sets/src/mage/cards/a/AbsoluteLaw.java +++ b/Mage.Sets/src/mage/cards/a/AbsoluteLaw.java @@ -28,10 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -39,8 +35,13 @@ import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AbsolverThrull.java b/Mage.Sets/src/mage/cards/a/AbsolverThrull.java index bdc2559b42e..a7eaea850a3 100644 --- a/Mage.Sets/src/mage/cards/a/AbsolverThrull.java +++ b/Mage.Sets/src/mage/cards/a/AbsolverThrull.java @@ -27,16 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.HauntAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Absorb.java b/Mage.Sets/src/mage/cards/a/Absorb.java index 57e014a5017..94d0741e770 100644 --- a/Mage.Sets/src/mage/cards/a/Absorb.java +++ b/Mage.Sets/src/mage/cards/a/Absorb.java @@ -27,14 +27,15 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AbsorbVis.java b/Mage.Sets/src/mage/cards/a/AbsorbVis.java index 3a445d1aabb..dd3b787f31d 100644 --- a/Mage.Sets/src/mage/cards/a/AbsorbVis.java +++ b/Mage.Sets/src/mage/cards/a/AbsorbVis.java @@ -28,16 +28,17 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.keyword.BasicLandcyclingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AbstruseInterference.java b/Mage.Sets/src/mage/cards/a/AbstruseInterference.java index f8a6362048c..9ebdb57af45 100644 --- a/Mage.Sets/src/mage/cards/a/AbstruseInterference.java +++ b/Mage.Sets/src/mage/cards/a/AbstruseInterference.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CounterUnlessPaysEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.game.permanent.token.EldraziScionToken; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AbuJafar.java b/Mage.Sets/src/mage/cards/a/AbuJafar.java index 4f35755a9d3..18d94d0c18d 100644 --- a/Mage.Sets/src/mage/cards/a/AbuJafar.java +++ b/Mage.Sets/src/mage/cards/a/AbuJafar.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.DestroyAllEffect; @@ -39,6 +38,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.BlockedByIdPredicate; import mage.filter.predicate.permanent.BlockingAttackerIdPredicate; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/a/AbunaAcolyte.java b/Mage.Sets/src/mage/cards/a/AbunaAcolyte.java index fe11e771244..38c665fb309 100644 --- a/Mage.Sets/src/mage/cards/a/AbunaAcolyte.java +++ b/Mage.Sets/src/mage/cards/a/AbunaAcolyte.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,6 +34,9 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.PreventDamageToTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCreatureOrPlayer; diff --git a/Mage.Sets/src/mage/cards/a/AbunasChant.java b/Mage.Sets/src/mage/cards/a/AbunasChant.java index 16ab5f19c4a..71e78f9180e 100644 --- a/Mage.Sets/src/mage/cards/a/AbunasChant.java +++ b/Mage.Sets/src/mage/cards/a/AbunasChant.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.PreventDamageToTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/Abundance.java b/Mage.Sets/src/mage/cards/a/Abundance.java index cf999559242..c8b72c86d57 100644 --- a/Mage.Sets/src/mage/cards/a/Abundance.java +++ b/Mage.Sets/src/mage/cards/a/Abundance.java @@ -27,16 +27,11 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; @@ -48,6 +43,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AbundantGrowth.java b/Mage.Sets/src/mage/cards/a/AbundantGrowth.java index 3857ba9afa1..7405e6976af 100644 --- a/Mage.Sets/src/mage/cards/a/AbundantGrowth.java +++ b/Mage.Sets/src/mage/cards/a/AbundantGrowth.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -47,6 +46,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/a/AbundantMaw.java b/Mage.Sets/src/mage/cards/a/AbundantMaw.java index 6b4a39b378a..c7474aeb8ec 100644 --- a/Mage.Sets/src/mage/cards/a/AbundantMaw.java +++ b/Mage.Sets/src/mage/cards/a/AbundantMaw.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/a/AbyssalGatekeeper.java b/Mage.Sets/src/mage/cards/a/AbyssalGatekeeper.java index 962e20cd9c6..31a2981773d 100644 --- a/Mage.Sets/src/mage/cards/a/AbyssalGatekeeper.java +++ b/Mage.Sets/src/mage/cards/a/AbyssalGatekeeper.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.SacrificeAllEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author daagar diff --git a/Mage.Sets/src/mage/cards/a/AbyssalHorror.java b/Mage.Sets/src/mage/cards/a/AbyssalHorror.java index 790b7f77b53..2ee06bbfa6a 100644 --- a/Mage.Sets/src/mage/cards/a/AbyssalHorror.java +++ b/Mage.Sets/src/mage/cards/a/AbyssalHorror.java @@ -28,8 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,8 +35,11 @@ import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AbyssalHunter.java b/Mage.Sets/src/mage/cards/a/AbyssalHunter.java index 550629cbafc..81a402cd113 100644 --- a/Mage.Sets/src/mage/cards/a/AbyssalHunter.java +++ b/Mage.Sets/src/mage/cards/a/AbyssalHunter.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/a/AbyssalNightstalker.java b/Mage.Sets/src/mage/cards/a/AbyssalNightstalker.java index ecd2235bd35..682950dd2c8 100644 --- a/Mage.Sets/src/mage/cards/a/AbyssalNightstalker.java +++ b/Mage.Sets/src/mage/cards/a/AbyssalNightstalker.java @@ -27,14 +27,15 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; +import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.discard.DiscardTargetEffect; -import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AbyssalNocturnus.java b/Mage.Sets/src/mage/cards/a/AbyssalNocturnus.java index 47b444b8795..5b1b2aec524 100644 --- a/Mage.Sets/src/mage/cards/a/AbyssalNocturnus.java +++ b/Mage.Sets/src/mage/cards/a/AbyssalNocturnus.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiscardsACardOpponentTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/a/AbyssalPersecutor.java b/Mage.Sets/src/mage/cards/a/AbyssalPersecutor.java index 0a8891f2eb8..ce7ae8bbf1c 100644 --- a/Mage.Sets/src/mage/cards/a/AbyssalPersecutor.java +++ b/Mage.Sets/src/mage/cards/a/AbyssalPersecutor.java @@ -27,11 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -40,10 +35,16 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AbyssalSpecter.java b/Mage.Sets/src/mage/cards/a/AbyssalSpecter.java index d522f6306a7..f9b5de2d920 100644 --- a/Mage.Sets/src/mage/cards/a/AbyssalSpecter.java +++ b/Mage.Sets/src/mage/cards/a/AbyssalSpecter.java @@ -27,14 +27,15 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DealsDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AbzanAdvantage.java b/Mage.Sets/src/mage/cards/a/AbzanAdvantage.java index 0428d851d3b..77275231d56 100644 --- a/Mage.Sets/src/mage/cards/a/AbzanAdvantage.java +++ b/Mage.Sets/src/mage/cards/a/AbzanAdvantage.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.SacrificeEffect; import mage.abilities.effects.keyword.BolsterEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterEnchantmentPermanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AbzanAscendancy.java b/Mage.Sets/src/mage/cards/a/AbzanAscendancy.java index 863e651d5ad..7ec501a7e66 100644 --- a/Mage.Sets/src/mage/cards/a/AbzanAscendancy.java +++ b/Mage.Sets/src/mage/cards/a/AbzanAscendancy.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -44,6 +43,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.permanent.token.SpiritWhiteToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AbzanBanner.java b/Mage.Sets/src/mage/cards/a/AbzanBanner.java index bd74c429f18..aac283f6298 100644 --- a/Mage.Sets/src/mage/cards/a/AbzanBanner.java +++ b/Mage.Sets/src/mage/cards/a/AbzanBanner.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -42,6 +41,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AbzanBattlePriest.java b/Mage.Sets/src/mage/cards/a/AbzanBattlePriest.java index 352591272a4..6464a6e21c8 100644 --- a/Mage.Sets/src/mage/cards/a/AbzanBattlePriest.java +++ b/Mage.Sets/src/mage/cards/a/AbzanBattlePriest.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -46,6 +45,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.CounterPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AbzanBeastmaster.java b/Mage.Sets/src/mage/cards/a/AbzanBeastmaster.java index 57b347675b8..f1b14cc54f1 100644 --- a/Mage.Sets/src/mage/cards/a/AbzanBeastmaster.java +++ b/Mage.Sets/src/mage/cards/a/AbzanBeastmaster.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.ControlsCreatureGreatestToughnessCondition; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AbzanCharm.java b/Mage.Sets/src/mage/cards/a/AbzanCharm.java index 9f81c50d365..7883fd582a6 100644 --- a/Mage.Sets/src/mage/cards/a/AbzanCharm.java +++ b/Mage.Sets/src/mage/cards/a/AbzanCharm.java @@ -27,7 +27,7 @@ */ package mage.cards.a; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.ExileTargetEffect; @@ -37,12 +37,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanentAmount; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,7 +53,7 @@ public class AbzanCharm extends CardImpl { private static final FilterCreaturePermanent FILTER = new FilterCreaturePermanent("creature with power 3 or greater"); static { - FILTER.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2)); + FILTER.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); } public AbzanCharm(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/a/AbzanFalconer.java b/Mage.Sets/src/mage/cards/a/AbzanFalconer.java index aae186c2e5b..088a1dc15b8 100644 --- a/Mage.Sets/src/mage/cards/a/AbzanFalconer.java +++ b/Mage.Sets/src/mage/cards/a/AbzanFalconer.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ColoredManaCost; @@ -36,17 +35,15 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.OutlastAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.CounterPredicate; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AbzanGuide.java b/Mage.Sets/src/mage/cards/a/AbzanGuide.java index 4c5aa5c3a0c..c5a33e585af 100644 --- a/Mage.Sets/src/mage/cards/a/AbzanGuide.java +++ b/Mage.Sets/src/mage/cards/a/AbzanGuide.java @@ -27,15 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.LifelinkAbility; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.MorphAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AbzanKinGuard.java b/Mage.Sets/src/mage/cards/a/AbzanKinGuard.java index 499297a6de2..ffbef435a90 100644 --- a/Mage.Sets/src/mage/cards/a/AbzanKinGuard.java +++ b/Mage.Sets/src/mage/cards/a/AbzanKinGuard.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AbzanRunemark.java b/Mage.Sets/src/mage/cards/a/AbzanRunemark.java index 5f89e929623..fbc8336e0cf 100644 --- a/Mage.Sets/src/mage/cards/a/AbzanRunemark.java +++ b/Mage.Sets/src/mage/cards/a/AbzanRunemark.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -40,17 +39,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AbzanSkycaptain.java b/Mage.Sets/src/mage/cards/a/AbzanSkycaptain.java index f73e06939e8..850cabcec2b 100644 --- a/Mage.Sets/src/mage/cards/a/AbzanSkycaptain.java +++ b/Mage.Sets/src/mage/cards/a/AbzanSkycaptain.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.keyword.BolsterEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AcademyElite.java b/Mage.Sets/src/mage/cards/a/AcademyElite.java index 90de9a89081..4e7551c48d2 100644 --- a/Mage.Sets/src/mage/cards/a/AcademyElite.java +++ b/Mage.Sets/src/mage/cards/a/AcademyElite.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterInstantOrSorceryCard; +import java.util.UUID; + /** * * @author andyfries diff --git a/Mage.Sets/src/mage/cards/a/AcademyRaider.java b/Mage.Sets/src/mage/cards/a/AcademyRaider.java index 2616949ed45..3f2eb5ab1c4 100644 --- a/Mage.Sets/src/mage/cards/a/AcademyRaider.java +++ b/Mage.Sets/src/mage/cards/a/AcademyRaider.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.costs.common.DiscardCardCost; @@ -38,6 +37,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AcademyRector.java b/Mage.Sets/src/mage/cards/a/AcademyRector.java index 9edfb7452fc..3fde8f27543 100644 --- a/Mage.Sets/src/mage/cards/a/AcademyRector.java +++ b/Mage.Sets/src/mage/cards/a/AcademyRector.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.costs.common.ExileSourceFromGraveCost; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.filter.common.FilterEnchantmentCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AcademyResearchers.java b/Mage.Sets/src/mage/cards/a/AcademyResearchers.java index 9ba8e5afe0a..e3437097adc 100644 --- a/Mage.Sets/src/mage/cards/a/AcademyResearchers.java +++ b/Mage.Sets/src/mage/cards/a/AcademyResearchers.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AcademyRuins.java b/Mage.Sets/src/mage/cards/a/AcademyRuins.java index 6b0a0bad4fb..06da8f877b8 100644 --- a/Mage.Sets/src/mage/cards/a/AcademyRuins.java +++ b/Mage.Sets/src/mage/cards/a/AcademyRuins.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -37,10 +36,13 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterArtifactCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Plopman @@ -49,7 +51,7 @@ public class AcademyRuins extends CardImpl { public AcademyRuins(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/a/Accelerate.java b/Mage.Sets/src/mage/cards/a/Accelerate.java index 801f23facaa..65e68263ec8 100644 --- a/Mage.Sets/src/mage/cards/a/Accelerate.java +++ b/Mage.Sets/src/mage/cards/a/Accelerate.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.HasteAbility; @@ -38,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/a/AcceleratedMutation.java b/Mage.Sets/src/mage/cards/a/AcceleratedMutation.java index 055eaf61252..88bc283a214 100644 --- a/Mage.Sets/src/mage/cards/a/AcceleratedMutation.java +++ b/Mage.Sets/src/mage/cards/a/AcceleratedMutation.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.HighestConvertedManaCostValue; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -38,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/a/AcceptableLosses.java b/Mage.Sets/src/mage/cards/a/AcceptableLosses.java index e69881643b1..6405b028b95 100644 --- a/Mage.Sets/src/mage/cards/a/AcceptableLosses.java +++ b/Mage.Sets/src/mage/cards/a/AcceptableLosses.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; @@ -36,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AccomplishedAutomaton.java b/Mage.Sets/src/mage/cards/a/AccomplishedAutomaton.java index dc29c320e58..701c7e9c08d 100644 --- a/Mage.Sets/src/mage/cards/a/AccomplishedAutomaton.java +++ b/Mage.Sets/src/mage/cards/a/AccomplishedAutomaton.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FabricateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AccorderPaladin.java b/Mage.Sets/src/mage/cards/a/AccorderPaladin.java index 7b62b11e4e6..72554b2758c 100644 --- a/Mage.Sets/src/mage/cards/a/AccorderPaladin.java +++ b/Mage.Sets/src/mage/cards/a/AccorderPaladin.java @@ -28,12 +28,13 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.BattleCryAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AccordersShield.java b/Mage.Sets/src/mage/cards/a/AccordersShield.java index 745d4c34b01..d94e839a7b4 100644 --- a/Mage.Sets/src/mage/cards/a/AccordersShield.java +++ b/Mage.Sets/src/mage/cards/a/AccordersShield.java @@ -28,10 +28,6 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.BoostEquippedEffect; @@ -41,7 +37,11 @@ import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AttachmentType; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AccumulatedKnowledge.java b/Mage.Sets/src/mage/cards/a/AccumulatedKnowledge.java index ce34cccbf8c..a104301395b 100644 --- a/Mage.Sets/src/mage/cards/a/AccumulatedKnowledge.java +++ b/Mage.Sets/src/mage/cards/a/AccumulatedKnowledge.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.dynamicvalue.common.CardsInAllGraveyardsCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.NamePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AccursedCentaur.java b/Mage.Sets/src/mage/cards/a/AccursedCentaur.java index 29de8863c04..faacb1e1745 100644 --- a/Mage.Sets/src/mage/cards/a/AccursedCentaur.java +++ b/Mage.Sets/src/mage/cards/a/AccursedCentaur.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.SacrificeControllerEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Sir-Speshkitty diff --git a/Mage.Sets/src/mage/cards/a/AccursedSpirit.java b/Mage.Sets/src/mage/cards/a/AccursedSpirit.java index d090d5fc2f6..b3828b56207 100644 --- a/Mage.Sets/src/mage/cards/a/AccursedSpirit.java +++ b/Mage.Sets/src/mage/cards/a/AccursedSpirit.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.IntimidateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AccursedWitch.java b/Mage.Sets/src/mage/cards/a/AccursedWitch.java index 3535e8dda6d..cf910a5458e 100644 --- a/Mage.Sets/src/mage/cards/a/AccursedWitch.java +++ b/Mage.Sets/src/mage/cards/a/AccursedWitch.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -37,21 +36,19 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.abilities.keyword.TransformAbility; -import mage.cards.i.InfectiousCurse; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.cards.i.InfectiousCurse; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.Target; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author halljared diff --git a/Mage.Sets/src/mage/cards/a/AcidRain.java b/Mage.Sets/src/mage/cards/a/AcidRain.java index 40f0ab77558..ca7bb414e48 100644 --- a/Mage.Sets/src/mage/cards/a/AcidRain.java +++ b/Mage.Sets/src/mage/cards/a/AcidRain.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/a/AcidSpewerDragon.java b/Mage.Sets/src/mage/cards/a/AcidSpewerDragon.java index 867f9627abf..ecd6c1c9e10 100644 --- a/Mage.Sets/src/mage/cards/a/AcidSpewerDragon.java +++ b/Mage.Sets/src/mage/cards/a/AcidSpewerDragon.java @@ -27,13 +27,12 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.counter.AddCountersAllEffect; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.DeathtouchAbility; +import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.MorphAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -43,6 +42,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AcidWebSpider.java b/Mage.Sets/src/mage/cards/a/AcidWebSpider.java index cca0442f447..478f0647e09 100644 --- a/Mage.Sets/src/mage/cards/a/AcidWebSpider.java +++ b/Mage.Sets/src/mage/cards/a/AcidWebSpider.java @@ -28,8 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,10 +35,13 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AcidicSlime.java b/Mage.Sets/src/mage/cards/a/AcidicSlime.java index 51710d51b56..2cf813b62f7 100644 --- a/Mage.Sets/src/mage/cards/a/AcidicSlime.java +++ b/Mage.Sets/src/mage/cards/a/AcidicSlime.java @@ -28,8 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,12 +35,15 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.DeathtouchAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AcidicSliver.java b/Mage.Sets/src/mage/cards/a/AcidicSliver.java index f2aaca177f9..7a4f65a38fe 100644 --- a/Mage.Sets/src/mage/cards/a/AcidicSliver.java +++ b/Mage.Sets/src/mage/cards/a/AcidicSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.filter.StaticFilters; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/a/AcidicSoil.java b/Mage.Sets/src/mage/cards/a/AcidicSoil.java index 183358cf823..28587b2cad8 100644 --- a/Mage.Sets/src/mage/cards/a/AcidicSoil.java +++ b/Mage.Sets/src/mage/cards/a/AcidicSoil.java @@ -27,20 +27,20 @@ */ package mage.cards.a; -import java.util.List; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.common.FilterLandPermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.List; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AcklayOfTheArena.java b/Mage.Sets/src/mage/cards/a/AcklayOfTheArena.java index 95f9067dda2..5e8c98b1fef 100644 --- a/Mage.Sets/src/mage/cards/a/AcklayOfTheArena.java +++ b/Mage.Sets/src/mage/cards/a/AcklayOfTheArena.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesMonstrousTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponentsCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AcolyteOfTheInferno.java b/Mage.Sets/src/mage/cards/a/AcolyteOfTheInferno.java index 8ba1a4a5ad9..92cae0d8f95 100644 --- a/Mage.Sets/src/mage/cards/a/AcolyteOfTheInferno.java +++ b/Mage.Sets/src/mage/cards/a/AcolyteOfTheInferno.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesBlockedByCreatureTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Wehk diff --git a/Mage.Sets/src/mage/cards/a/AcolyteOfXathrid.java b/Mage.Sets/src/mage/cards/a/AcolyteOfXathrid.java index 321e528d750..d7b980b9d16 100644 --- a/Mage.Sets/src/mage/cards/a/AcolyteOfXathrid.java +++ b/Mage.Sets/src/mage/cards/a/AcolyteOfXathrid.java @@ -28,9 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,8 +36,12 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AcolytesReward.java b/Mage.Sets/src/mage/cards/a/AcolytesReward.java index e56a4fbb330..b9f3241ac99 100644 --- a/Mage.Sets/src/mage/cards/a/AcolytesReward.java +++ b/Mage.Sets/src/mage/cards/a/AcolytesReward.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.common.DevotionCount; import mage.abilities.effects.PreventionEffectImpl; @@ -43,6 +42,8 @@ import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AcornCatapult.java b/Mage.Sets/src/mage/cards/a/AcornCatapult.java index 34e7cf959c4..7c2a968c417 100644 --- a/Mage.Sets/src/mage/cards/a/AcornCatapult.java +++ b/Mage.Sets/src/mage/cards/a/AcornCatapult.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -45,6 +44,8 @@ import mage.game.permanent.token.SquirrelToken; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AcornHarvest.java b/Mage.Sets/src/mage/cards/a/AcornHarvest.java index 8a585312ed7..0a0e69443ab 100644 --- a/Mage.Sets/src/mage/cards/a/AcornHarvest.java +++ b/Mage.Sets/src/mage/cards/a/AcornHarvest.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.common.PayLifeCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.TimingRule; import mage.game.permanent.token.SquirrelToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Acquire.java b/Mage.Sets/src/mage/cards/a/Acquire.java index 9e60b967309..d2211a3320b 100644 --- a/Mage.Sets/src/mage/cards/a/Acquire.java +++ b/Mage.Sets/src/mage/cards/a/Acquire.java @@ -1,6 +1,5 @@ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -16,6 +15,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * @author andyfries */ diff --git a/Mage.Sets/src/mage/cards/a/AcquireTarget.java b/Mage.Sets/src/mage/cards/a/AcquireTarget.java index 67237398314..803d8554313 100644 --- a/Mage.Sets/src/mage/cards/a/AcquireTarget.java +++ b/Mage.Sets/src/mage/cards/a/AcquireTarget.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; @@ -40,6 +39,8 @@ import mage.target.TargetPlayer; import mage.target.common.TargetOpponentsCreaturePermanent; import mage.target.targetpointer.SecondTargetPointer; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/Acridian.java b/Mage.Sets/src/mage/cards/a/Acridian.java index aa19e50e160..0b25241fd20 100644 --- a/Mage.Sets/src/mage/cards/a/Acridian.java +++ b/Mage.Sets/src/mage/cards/a/Acridian.java @@ -28,12 +28,13 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.EchoAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AcrobaticManeuver.java b/Mage.Sets/src/mage/cards/a/AcrobaticManeuver.java index f5cc01b33f2..b1338a5ec4c 100644 --- a/Mage.Sets/src/mage/cards/a/AcrobaticManeuver.java +++ b/Mage.Sets/src/mage/cards/a/AcrobaticManeuver.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.ExileTargetForSourceEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ActOfAggression.java b/Mage.Sets/src/mage/cards/a/ActOfAggression.java index f8e9df80eed..96b34508054 100644 --- a/Mage.Sets/src/mage/cards/a/ActOfAggression.java +++ b/Mage.Sets/src/mage/cards/a/ActOfAggression.java @@ -27,20 +27,21 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/ActOfAuthority.java b/Mage.Sets/src/mage/cards/a/ActOfAuthority.java index bb4419754b3..d66ae095a23 100644 --- a/Mage.Sets/src/mage/cards/a/ActOfAuthority.java +++ b/Mage.Sets/src/mage/cards/a/ActOfAuthority.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -38,18 +37,15 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; +import mage.constants.*; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ActOfTreason.java b/Mage.Sets/src/mage/cards/a/ActOfTreason.java index 278e06a5048..8aaa9854fdc 100644 --- a/Mage.Sets/src/mage/cards/a/ActOfTreason.java +++ b/Mage.Sets/src/mage/cards/a/ActOfTreason.java @@ -28,17 +28,18 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; +import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect; -import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/ActOnImpulse.java b/Mage.Sets/src/mage/cards/a/ActOnImpulse.java index 8fba52dd918..1755538578c 100644 --- a/Mage.Sets/src/mage/cards/a/ActOnImpulse.java +++ b/Mage.Sets/src/mage/cards/a/ActOnImpulse.java @@ -27,24 +27,21 @@ */ package mage.cards.a; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.AsThoughEffectImpl; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Library; import mage.players.Player; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/a/ActiveVolcano.java b/Mage.Sets/src/mage/cards/a/ActiveVolcano.java index edd7d3f55bf..b260c74dc90 100644 --- a/Mage.Sets/src/mage/cards/a/ActiveVolcano.java +++ b/Mage.Sets/src/mage/cards/a/ActiveVolcano.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; @@ -40,6 +39,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AdNauseam.java b/Mage.Sets/src/mage/cards/a/AdNauseam.java index 9afb29c2392..12da870b7ed 100644 --- a/Mage.Sets/src/mage/cards/a/AdNauseam.java +++ b/Mage.Sets/src/mage/cards/a/AdNauseam.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -41,6 +39,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * @author North */ diff --git a/Mage.Sets/src/mage/cards/a/AdamaroFirstToDesire.java b/Mage.Sets/src/mage/cards/a/AdamaroFirstToDesire.java index 90249c07de5..532e7c38bcd 100644 --- a/Mage.Sets/src/mage/cards/a/AdamaroFirstToDesire.java +++ b/Mage.Sets/src/mage/cards/a/AdamaroFirstToDesire.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -38,10 +37,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -50,7 +52,7 @@ public class AdamaroFirstToDesire extends CardImpl { public AdamaroFirstToDesire(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(0); diff --git a/Mage.Sets/src/mage/cards/a/AdaptiveAutomaton.java b/Mage.Sets/src/mage/cards/a/AdaptiveAutomaton.java index 2cd05794a68..f31cec391e2 100644 --- a/Mage.Sets/src/mage/cards/a/AdaptiveAutomaton.java +++ b/Mage.Sets/src/mage/cards/a/AdaptiveAutomaton.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AsEntersBattlefieldAbility; @@ -38,19 +37,14 @@ import mage.abilities.effects.common.continuous.BoostAllOfChosenSubtypeEffect; import mage.abilities.effects.common.enterAttribute.EnterAttributeAddChosenSubtypeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.EnterEventType; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/a/AdaptiveSnapjaw.java b/Mage.Sets/src/mage/cards/a/AdaptiveSnapjaw.java index e07cf113ad6..3eaaa275611 100644 --- a/Mage.Sets/src/mage/cards/a/AdaptiveSnapjaw.java +++ b/Mage.Sets/src/mage/cards/a/AdaptiveSnapjaw.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.EvolveAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AdarkarSentinel.java b/Mage.Sets/src/mage/cards/a/AdarkarSentinel.java index ec8accb442d..e32f2c94cd2 100644 --- a/Mage.Sets/src/mage/cards/a/AdarkarSentinel.java +++ b/Mage.Sets/src/mage/cards/a/AdarkarSentinel.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Sir-Speshkitty diff --git a/Mage.Sets/src/mage/cards/a/AdarkarValkyrie.java b/Mage.Sets/src/mage/cards/a/AdarkarValkyrie.java index 3f6dcfe43c6..93d0db0abbb 100644 --- a/Mage.Sets/src/mage/cards/a/AdarkarValkyrie.java +++ b/Mage.Sets/src/mage/cards/a/AdarkarValkyrie.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -39,10 +38,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; @@ -53,6 +49,8 @@ import mage.target.Target; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -67,7 +65,7 @@ public class AdarkarValkyrie extends CardImpl { public AdarkarValkyrie(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{W}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Angel"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/a/AdarkarWastes.java b/Mage.Sets/src/mage/cards/a/AdarkarWastes.java index 71d9e9f9c54..1034b3a646b 100644 --- a/Mage.Sets/src/mage/cards/a/AdarkarWastes.java +++ b/Mage.Sets/src/mage/cards/a/AdarkarWastes.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AdarkarWindform.java b/Mage.Sets/src/mage/cards/a/AdarkarWindform.java index a5fed04149f..9e4f345d458 100644 --- a/Mage.Sets/src/mage/cards/a/AdarkarWindform.java +++ b/Mage.Sets/src/mage/cards/a/AdarkarWindform.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +37,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -49,7 +51,7 @@ public class AdarkarWindform extends CardImpl { public AdarkarWindform(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Illusion"); this.power = new MageInt(3); this.toughness = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/a/AdderStaffBoggart.java b/Mage.Sets/src/mage/cards/a/AdderStaffBoggart.java index 68daeda3cf7..b65937dfd92 100644 --- a/Mage.Sets/src/mage/cards/a/AdderStaffBoggart.java +++ b/Mage.Sets/src/mage/cards/a/AdderStaffBoggart.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DoIfClashWonEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Addle.java b/Mage.Sets/src/mage/cards/a/Addle.java index afd3f43a090..1db6100ce0f 100644 --- a/Mage.Sets/src/mage/cards/a/Addle.java +++ b/Mage.Sets/src/mage/cards/a/Addle.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.Effect; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AdmiralAckbar.java b/Mage.Sets/src/mage/cards/a/AdmiralAckbar.java index 4a9688b3928..823dc3b0f41 100644 --- a/Mage.Sets/src/mage/cards/a/AdmiralAckbar.java +++ b/Mage.Sets/src/mage/cards/a/AdmiralAckbar.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.AttacksWithCreaturesTriggeredAbility; @@ -41,6 +40,7 @@ import mage.abilities.keyword.SpaceflightAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; @@ -49,6 +49,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Styxo @@ -63,7 +65,7 @@ public class AdmiralAckbar extends CardImpl { public AdmiralAckbar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Calamari"); this.subtype.add("Rebel"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/a/AdmonitionAngel.java b/Mage.Sets/src/mage/cards/a/AdmonitionAngel.java index fe6aa2b967f..c6405997cbd 100644 --- a/Mage.Sets/src/mage/cards/a/AdmonitionAngel.java +++ b/Mage.Sets/src/mage/cards/a/AdmonitionAngel.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbility; @@ -40,6 +37,7 @@ import mage.abilities.effects.common.ReturnFromExileForSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; @@ -47,6 +45,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AdrianaCaptainOfTheGuard.java b/Mage.Sets/src/mage/cards/a/AdrianaCaptainOfTheGuard.java index 7fd967d6764..a62199e0be4 100644 --- a/Mage.Sets/src/mage/cards/a/AdrianaCaptainOfTheGuard.java +++ b/Mage.Sets/src/mage/cards/a/AdrianaCaptainOfTheGuard.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -36,9 +35,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo @@ -47,7 +49,7 @@ public class AdrianaCaptainOfTheGuard extends CardImpl { public AdrianaCaptainOfTheGuard(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Knight"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/a/AdroitHateflayer.java b/Mage.Sets/src/mage/cards/a/AdroitHateflayer.java index f99bd5c9ce5..4dadec6e038 100644 --- a/Mage.Sets/src/mage/cards/a/AdroitHateflayer.java +++ b/Mage.Sets/src/mage/cards/a/AdroitHateflayer.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.LoseLifeOpponentsEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AdunOakenshield.java b/Mage.Sets/src/mage/cards/a/AdunOakenshield.java index 27732956e3a..f6dcf22cd11 100644 --- a/Mage.Sets/src/mage/cards/a/AdunOakenshield.java +++ b/Mage.Sets/src/mage/cards/a/AdunOakenshield.java @@ -27,17 +27,18 @@ */ package mage.cards.a; +import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; -import mage.MageInt; import mage.target.common.TargetCardInYourGraveyard; import java.util.UUID; @@ -52,7 +53,7 @@ public class AdunOakenshield extends CardImpl { public AdunOakenshield(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Knight"); diff --git a/Mage.Sets/src/mage/cards/a/AdvanceScout.java b/Mage.Sets/src/mage/cards/a/AdvanceScout.java index 35d01e0dae5..9386a4ecb01 100644 --- a/Mage.Sets/src/mage/cards/a/AdvanceScout.java +++ b/Mage.Sets/src/mage/cards/a/AdvanceScout.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,8 +35,14 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AdvancedHoverguard.java b/Mage.Sets/src/mage/cards/a/AdvancedHoverguard.java index 47dfcaf289a..f8356de3543 100644 --- a/Mage.Sets/src/mage/cards/a/AdvancedHoverguard.java +++ b/Mage.Sets/src/mage/cards/a/AdvancedHoverguard.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AdvancedStitchwing.java b/Mage.Sets/src/mage/cards/a/AdvancedStitchwing.java index caa84f1d10f..d42bc2ed03f 100644 --- a/Mage.Sets/src/mage/cards/a/AdvancedStitchwing.java +++ b/Mage.Sets/src/mage/cards/a/AdvancedStitchwing.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AdventOfTheWurm.java b/Mage.Sets/src/mage/cards/a/AdventOfTheWurm.java index 6b0c2920ea2..f6449dec773 100644 --- a/Mage.Sets/src/mage/cards/a/AdventOfTheWurm.java +++ b/Mage.Sets/src/mage/cards/a/AdventOfTheWurm.java @@ -28,13 +28,14 @@ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.WurmToken2; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AdventuringGear.java b/Mage.Sets/src/mage/cards/a/AdventuringGear.java index 4eb8369ea9d..12223692029 100644 --- a/Mage.Sets/src/mage/cards/a/AdventuringGear.java +++ b/Mage.Sets/src/mage/cards/a/AdventuringGear.java @@ -28,21 +28,22 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; import mage.abilities.common.LandfallAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AdverseConditions.java b/Mage.Sets/src/mage/cards/a/AdverseConditions.java index bbb6f28945f..8e24bf293fa 100644 --- a/Mage.Sets/src/mage/cards/a/AdverseConditions.java +++ b/Mage.Sets/src/mage/cards/a/AdverseConditions.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.game.permanent.token.EldraziScionToken; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AdviceFromTheFae.java b/Mage.Sets/src/mage/cards/a/AdviceFromTheFae.java index 49927fb1500..fdc7dd46074 100644 --- a/Mage.Sets/src/mage/cards/a/AdviceFromTheFae.java +++ b/Mage.Sets/src/mage/cards/a/AdviceFromTheFae.java @@ -27,17 +27,10 @@ */ package mage.cards.a; -import java.util.Objects; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -49,6 +42,10 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.Objects; +import java.util.Set; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AdvocateOfTheBeast.java b/Mage.Sets/src/mage/cards/a/AdvocateOfTheBeast.java index d9d0880178c..20a547dfcf6 100644 --- a/Mage.Sets/src/mage/cards/a/AdvocateOfTheBeast.java +++ b/Mage.Sets/src/mage/cards/a/AdvocateOfTheBeast.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AegisAngel.java b/Mage.Sets/src/mage/cards/a/AegisAngel.java index 27340f8a861..c5afe3ec76d 100644 --- a/Mage.Sets/src/mage/cards/a/AegisAngel.java +++ b/Mage.Sets/src/mage/cards/a/AegisAngel.java @@ -27,10 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,10 +37,14 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.FilterPermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/AegisAutomaton.java b/Mage.Sets/src/mage/cards/a/AegisAutomaton.java index 2f5422b4524..3c14534ad38 100644 --- a/Mage.Sets/src/mage/cards/a/AegisAutomaton.java +++ b/Mage.Sets/src/mage/cards/a/AegisAutomaton.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AegisOfHonor.java b/Mage.Sets/src/mage/cards/a/AegisOfHonor.java index 930dc4e5e30..46abf0ff92c 100644 --- a/Mage.Sets/src/mage/cards/a/AegisOfHonor.java +++ b/Mage.Sets/src/mage/cards/a/AegisOfHonor.java @@ -30,7 +30,6 @@ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -47,6 +46,8 @@ import mage.game.stack.Spell; import mage.game.stack.StackObject; import mage.target.TargetPlayer; +import java.util.UUID; + /** * @author cbt33 / LevelX2 */ diff --git a/Mage.Sets/src/mage/cards/a/AegisOfTheGods.java b/Mage.Sets/src/mage/cards/a/AegisOfTheGods.java index 0dc9cecc592..fe416284e6c 100644 --- a/Mage.Sets/src/mage/cards/a/AegisOfTheGods.java +++ b/Mage.Sets/src/mage/cards/a/AegisOfTheGods.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControllerEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AegisOfTheMeek.java b/Mage.Sets/src/mage/cards/a/AegisOfTheMeek.java index 83434483563..cf272661ea4 100644 --- a/Mage.Sets/src/mage/cards/a/AegisOfTheMeek.java +++ b/Mage.Sets/src/mage/cards/a/AegisOfTheMeek.java @@ -27,8 +27,8 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,12 +38,13 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Leathios @@ -53,8 +54,8 @@ public class AegisOfTheMeek extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("1/1 creature"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.Equal, 1)); - filter.add(new ToughnessPredicate(Filter.ComparisonType.Equal, 1)); + filter.add(new PowerPredicate(ComparisonType.EQUAL_TO, 1)); + filter.add(new ToughnessPredicate(ComparisonType.EQUAL_TO, 1)); } public AegisOfTheMeek(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/a/Aeolipile.java b/Mage.Sets/src/mage/cards/a/Aeolipile.java index 65f30d2b696..2585584d07a 100644 --- a/Mage.Sets/src/mage/cards/a/Aeolipile.java +++ b/Mage.Sets/src/mage/cards/a/Aeolipile.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AeonChronicler.java b/Mage.Sets/src/mage/cards/a/AeonChronicler.java index 021ad499ac6..da2c876c7a2 100644 --- a/Mage.Sets/src/mage/cards/a/AeonChronicler.java +++ b/Mage.Sets/src/mage/cards/a/AeonChronicler.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.Objects; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; @@ -47,6 +45,9 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.Objects; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AerathiBerserker.java b/Mage.Sets/src/mage/cards/a/AerathiBerserker.java index c29d62c28a0..7e17be1e9cd 100644 --- a/Mage.Sets/src/mage/cards/a/AerathiBerserker.java +++ b/Mage.Sets/src/mage/cards/a/AerathiBerserker.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.RampageAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AerialFormation.java b/Mage.Sets/src/mage/cards/a/AerialFormation.java index 8d9b3e390f9..4e3f082941b 100644 --- a/Mage.Sets/src/mage/cards/a/AerialFormation.java +++ b/Mage.Sets/src/mage/cards/a/AerialFormation.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.abilityword.StriveAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AerialManeuver.java b/Mage.Sets/src/mage/cards/a/AerialManeuver.java index c7b10b65de9..91d17acee47 100644 --- a/Mage.Sets/src/mage/cards/a/AerialManeuver.java +++ b/Mage.Sets/src/mage/cards/a/AerialManeuver.java @@ -27,17 +27,18 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AerialModification.java b/Mage.Sets/src/mage/cards/a/AerialModification.java index 95e85f7a146..b68f29e0dc8 100644 --- a/Mage.Sets/src/mage/cards/a/AerialModification.java +++ b/Mage.Sets/src/mage/cards/a/AerialModification.java @@ -27,12 +27,11 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.continuous.BecomesCreatureIfVehicleEffect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; @@ -41,19 +40,16 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AttachmentType; import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; import mage.constants.Outcome; -import mage.constants.SubLayer; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.Game; -import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Styxo @@ -101,35 +97,3 @@ public class AerialModification extends CardImpl { return new AerialModification(this); } } - -class BecomesCreatureIfVehicleEffect extends ContinuousEffectImpl { - - private CardType addedType = CardType.CREATURE; - - public BecomesCreatureIfVehicleEffect() { - super(Duration.WhileOnBattlefield, Layer.TypeChangingEffects_4, SubLayer.NA, Outcome.Benefit); - this.staticText = "As long as enchanted permanent is a Vehicle, it's a creature in addition to its other types"; - } - - public BecomesCreatureIfVehicleEffect(final BecomesCreatureIfVehicleEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source) { - Permanent aura = game.getPermanent(source.getSourceId()); - if (aura != null && aura.getAttachedTo() != null) { - Permanent enchanted = game.getPermanent(aura.getAttachedTo()); - if (enchanted != null && enchanted.getSubtype(game).contains("Vehicle")) { - enchanted.getCardType().add(addedType); - } - } - - return true; - } - - @Override - public BecomesCreatureIfVehicleEffect copy() { - return new BecomesCreatureIfVehicleEffect(this); - } -} diff --git a/Mage.Sets/src/mage/cards/a/AerialPredation.java b/Mage.Sets/src/mage/cards/a/AerialPredation.java index c8998f22d64..33ad05abd0b 100644 --- a/Mage.Sets/src/mage/cards/a/AerialPredation.java +++ b/Mage.Sets/src/mage/cards/a/AerialPredation.java @@ -29,17 +29,18 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AerialResponder.java b/Mage.Sets/src/mage/cards/a/AerialResponder.java index f3ff4c0651e..58c6a4c0b80 100644 --- a/Mage.Sets/src/mage/cards/a/AerialResponder.java +++ b/Mage.Sets/src/mage/cards/a/AerialResponder.java @@ -27,15 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; -import mage.abilities.keyword.VigilanceAbility; import mage.abilities.keyword.LifelinkAbility; +import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AerialVolley.java b/Mage.Sets/src/mage/cards/a/AerialVolley.java index c09b2378308..85d194ba865 100644 --- a/Mage.Sets/src/mage/cards/a/AerialVolley.java +++ b/Mage.Sets/src/mage/cards/a/AerialVolley.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageMultiEffect; import mage.abilities.keyword.FlyingAbility; @@ -38,6 +37,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanentAmount; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AerieBowmasters.java b/Mage.Sets/src/mage/cards/a/AerieBowmasters.java index a62e07d94a3..bef91f7cfb8 100644 --- a/Mage.Sets/src/mage/cards/a/AerieBowmasters.java +++ b/Mage.Sets/src/mage/cards/a/AerieBowmasters.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.MorphAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AerieMystics.java b/Mage.Sets/src/mage/cards/a/AerieMystics.java index f5bf3e0d16b..ae180b510a9 100644 --- a/Mage.Sets/src/mage/cards/a/AerieMystics.java +++ b/Mage.Sets/src/mage/cards/a/AerieMystics.java @@ -28,10 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,8 +36,13 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AerieOuphes.java b/Mage.Sets/src/mage/cards/a/AerieOuphes.java index d9ac6d7d403..211f8d0a46c 100644 --- a/Mage.Sets/src/mage/cards/a/AerieOuphes.java +++ b/Mage.Sets/src/mage/cards/a/AerieOuphes.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AerieWorshippers.java b/Mage.Sets/src/mage/cards/a/AerieWorshippers.java index 336b0edfb4a..54f1123d2fb 100644 --- a/Mage.Sets/src/mage/cards/a/AerieWorshippers.java +++ b/Mage.Sets/src/mage/cards/a/AerieWorshippers.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AeronautAdmiral.java b/Mage.Sets/src/mage/cards/a/AeronautAdmiral.java index 1ed4b188133..c055ab8db1c 100644 --- a/Mage.Sets/src/mage/cards/a/AeronautAdmiral.java +++ b/Mage.Sets/src/mage/cards/a/AeronautAdmiral.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledArtifactPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author JRHerlehy diff --git a/Mage.Sets/src/mage/cards/a/AeronautTinkerer.java b/Mage.Sets/src/mage/cards/a/AeronautTinkerer.java index e78f583770d..1bff0073d67 100644 --- a/Mage.Sets/src/mage/cards/a/AeronautTinkerer.java +++ b/Mage.Sets/src/mage/cards/a/AeronautTinkerer.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledArtifactPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AesthirGlider.java b/Mage.Sets/src/mage/cards/a/AesthirGlider.java index a33ef3abddf..6c5e702ae6e 100644 --- a/Mage.Sets/src/mage/cards/a/AesthirGlider.java +++ b/Mage.Sets/src/mage/cards/a/AesthirGlider.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CantBlockAbility; import mage.abilities.keyword.FlyingAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Sir-Speshkitty diff --git a/Mage.Sets/src/mage/cards/a/AetherAdept.java b/Mage.Sets/src/mage/cards/a/AetherAdept.java index 8a36af63abc..0dcb96adae8 100644 --- a/Mage.Sets/src/mage/cards/a/AetherAdept.java +++ b/Mage.Sets/src/mage/cards/a/AetherAdept.java @@ -27,16 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AetherBarrier.java b/Mage.Sets/src/mage/cards/a/AetherBarrier.java index d3bb1c3d57f..1bfe5a25059 100644 --- a/Mage.Sets/src/mage/cards/a/AetherBarrier.java +++ b/Mage.Sets/src/mage/cards/a/AetherBarrier.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -42,6 +41,8 @@ import mage.filter.StaticFilters; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/a/AetherBurst.java b/Mage.Sets/src/mage/cards/a/AetherBurst.java index cda86d5f0dc..ee68c96142d 100644 --- a/Mage.Sets/src/mage/cards/a/AetherBurst.java +++ b/Mage.Sets/src/mage/cards/a/AetherBurst.java @@ -27,12 +27,12 @@ */ package mage.cards.a; -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.NamePredicate; diff --git a/Mage.Sets/src/mage/cards/a/AetherCharge.java b/Mage.Sets/src/mage/cards/a/AetherCharge.java index d6bd6327384..b859d417491 100644 --- a/Mage.Sets/src/mage/cards/a/AetherCharge.java +++ b/Mage.Sets/src/mage/cards/a/AetherCharge.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/a/AetherFigment.java b/Mage.Sets/src/mage/cards/a/AetherFigment.java index 691ebf27d93..0b998bdf41c 100644 --- a/Mage.Sets/src/mage/cards/a/AetherFigment.java +++ b/Mage.Sets/src/mage/cards/a/AetherFigment.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * @author nantuko, BetaSteward_at_googlemail.com */ diff --git a/Mage.Sets/src/mage/cards/a/AetherFlash.java b/Mage.Sets/src/mage/cards/a/AetherFlash.java index 0cdd6ca1e07..8df2d004674 100644 --- a/Mage.Sets/src/mage/cards/a/AetherFlash.java +++ b/Mage.Sets/src/mage/cards/a/AetherFlash.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -42,6 +41,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/a/AetherGale.java b/Mage.Sets/src/mage/cards/a/AetherGale.java index 0b9b6fa659c..743458eb1e6 100644 --- a/Mage.Sets/src/mage/cards/a/AetherGale.java +++ b/Mage.Sets/src/mage/cards/a/AetherGale.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.common.FilterNonlandPermanent; import mage.target.common.TargetNonlandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AetherHerder.java b/Mage.Sets/src/mage/cards/a/AetherHerder.java index 6c4cf1ed634..aa56408e762 100644 --- a/Mage.Sets/src/mage/cards/a/AetherHerder.java +++ b/Mage.Sets/src/mage/cards/a/AetherHerder.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.ServoToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AetherHub.java b/Mage.Sets/src/mage/cards/a/AetherHub.java index 08fc1060f23..22fed1dc75c 100644 --- a/Mage.Sets/src/mage/cards/a/AetherHub.java +++ b/Mage.Sets/src/mage/cards/a/AetherHub.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.common.PayEnergyCost; @@ -38,6 +37,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AetherInspector.java b/Mage.Sets/src/mage/cards/a/AetherInspector.java index 40d6ba7ff4b..47179e8e1e8 100644 --- a/Mage.Sets/src/mage/cards/a/AetherInspector.java +++ b/Mage.Sets/src/mage/cards/a/AetherInspector.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.ServoToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AetherMeltdown.java b/Mage.Sets/src/mage/cards/a/AetherMeltdown.java index 4adefd68624..f855c4bfe4a 100644 --- a/Mage.Sets/src/mage/cards/a/AetherMeltdown.java +++ b/Mage.Sets/src/mage/cards/a/AetherMeltdown.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -49,6 +48,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AetherMembrane.java b/Mage.Sets/src/mage/cards/a/AetherMembrane.java index 555dc7e4016..150489303a2 100644 --- a/Mage.Sets/src/mage/cards/a/AetherMembrane.java +++ b/Mage.Sets/src/mage/cards/a/AetherMembrane.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BlocksTriggeredAbility; import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author klayhamn diff --git a/Mage.Sets/src/mage/cards/a/AetherMutation.java b/Mage.Sets/src/mage/cards/a/AetherMutation.java index 92395cf533c..11ca991ed9e 100644 --- a/Mage.Sets/src/mage/cards/a/AetherMutation.java +++ b/Mage.Sets/src/mage/cards/a/AetherMutation.java @@ -27,16 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.TargetConvertedManaCost; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.SaprolingToken; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/AetherPoisoner.java b/Mage.Sets/src/mage/cards/a/AetherPoisoner.java index 41deabc9286..2f6ccfedd4e 100644 --- a/Mage.Sets/src/mage/cards/a/AetherPoisoner.java +++ b/Mage.Sets/src/mage/cards/a/AetherPoisoner.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.ServoToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AetherRift.java b/Mage.Sets/src/mage/cards/a/AetherRift.java index fb20db061b5..9bbb6ed4495 100644 --- a/Mage.Sets/src/mage/cards/a/AetherRift.java +++ b/Mage.Sets/src/mage/cards/a/AetherRift.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.costs.common.PayLifeCost; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AetherShockwave.java b/Mage.Sets/src/mage/cards/a/AetherShockwave.java index de40c16a31e..a54e3f076dd 100644 --- a/Mage.Sets/src/mage/cards/a/AetherShockwave.java +++ b/Mage.Sets/src/mage/cards/a/AetherShockwave.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.TapAllEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AetherSnap.java b/Mage.Sets/src/mage/cards/a/AetherSnap.java index cebece2b9c6..e5ef25a60b6 100644 --- a/Mage.Sets/src/mage/cards/a/AetherSnap.java +++ b/Mage.Sets/src/mage/cards/a/AetherSnap.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -43,6 +42,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.PermanentToken; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AetherSpellbomb.java b/Mage.Sets/src/mage/cards/a/AetherSpellbomb.java index d28520fc6f7..a9e4ea554df 100644 --- a/Mage.Sets/src/mage/cards/a/AetherSpellbomb.java +++ b/Mage.Sets/src/mage/cards/a/AetherSpellbomb.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.GenericManaCost; @@ -38,8 +35,12 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AetherSting.java b/Mage.Sets/src/mage/cards/a/AetherSting.java index 3cbd5464636..253a116d840 100644 --- a/Mage.Sets/src/mage/cards/a/AetherSting.java +++ b/Mage.Sets/src/mage/cards/a/AetherSting.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.Card; @@ -40,6 +39,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AetherSwooper.java b/Mage.Sets/src/mage/cards/a/AetherSwooper.java index f5c6d85d38f..b941ab9043d 100644 --- a/Mage.Sets/src/mage/cards/a/AetherSwooper.java +++ b/Mage.Sets/src/mage/cards/a/AetherSwooper.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.ServoToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AetherTheorist.java b/Mage.Sets/src/mage/cards/a/AetherTheorist.java index 39d3fd967a5..7cb52bb6aaa 100644 --- a/Mage.Sets/src/mage/cards/a/AetherTheorist.java +++ b/Mage.Sets/src/mage/cards/a/AetherTheorist.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AetherTradewinds.java b/Mage.Sets/src/mage/cards/a/AetherTradewinds.java index 1b684184d63..5573866653c 100644 --- a/Mage.Sets/src/mage/cards/a/AetherTradewinds.java +++ b/Mage.Sets/src/mage/cards/a/AetherTradewinds.java @@ -27,17 +27,19 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.TargetController; import mage.filter.FilterPermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AetherVial.java b/Mage.Sets/src/mage/cards/a/AetherVial.java index 7e9fb3e9445..6fd5b126768 100644 --- a/Mage.Sets/src/mage/cards/a/AetherVial.java +++ b/Mage.Sets/src/mage/cards/a/AetherVial.java @@ -27,8 +27,8 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -42,7 +42,6 @@ import mage.constants.Outcome; import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; @@ -50,6 +49,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author North @@ -103,7 +104,7 @@ class AetherVialEffect extends OneShotEffect { int count = permanent.getCounters(game).getCount(CounterType.CHARGE); FilterCreatureCard filter = new FilterCreatureCard("creature card with converted mana cost equal to " + count); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, count)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, count)); String choiceText = "Put a " + filter.getMessage() + " from your hand onto the battlefield?"; Player controller = game.getPlayer(source.getControllerId()); diff --git a/Mage.Sets/src/mage/cards/a/AetherbornMarauder.java b/Mage.Sets/src/mage/cards/a/AetherbornMarauder.java index 0237247f082..54f7f010aba 100644 --- a/Mage.Sets/src/mage/cards/a/AetherbornMarauder.java +++ b/Mage.Sets/src/mage/cards/a/AetherbornMarauder.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -47,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AetherfluxReservoir.java b/Mage.Sets/src/mage/cards/a/AetherfluxReservoir.java index 3418259ab83..67a8a6c28ca 100644 --- a/Mage.Sets/src/mage/cards/a/AetherfluxReservoir.java +++ b/Mage.Sets/src/mage/cards/a/AetherfluxReservoir.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.target.common.TargetCreatureOrPlayer; import mage.watchers.common.CastSpellLastTurnWatcher; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AethergeodeMiner.java b/Mage.Sets/src/mage/cards/a/AethergeodeMiner.java index 59d21a80d3c..cb1100d3913 100644 --- a/Mage.Sets/src/mage/cards/a/AethergeodeMiner.java +++ b/Mage.Sets/src/mage/cards/a/AethergeodeMiner.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -41,6 +40,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/Aetherize.java b/Mage.Sets/src/mage/cards/a/Aetherize.java index 77256c825ab..b01cfdfb2f3 100644 --- a/Mage.Sets/src/mage/cards/a/Aetherize.java +++ b/Mage.Sets/src/mage/cards/a/Aetherize.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ReturnToHandFromBattlefieldAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterAttackingCreature; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Aetherling.java b/Mage.Sets/src/mage/cards/a/Aetherling.java index 9396b2977e4..2f5b3578b04 100644 --- a/Mage.Sets/src/mage/cards/a/Aetherling.java +++ b/Mage.Sets/src/mage/cards/a/Aetherling.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AethermagesTouch.java b/Mage.Sets/src/mage/cards/a/AethermagesTouch.java index 53848d4bdc9..776f5896fff 100644 --- a/Mage.Sets/src/mage/cards/a/AethermagesTouch.java +++ b/Mage.Sets/src/mage/cards/a/AethermagesTouch.java @@ -27,29 +27,22 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.cards.*; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Aethersnatch.java b/Mage.Sets/src/mage/cards/a/Aethersnatch.java index 66ac753daf0..45d0f3029f7 100644 --- a/Mage.Sets/src/mage/cards/a/Aethersnatch.java +++ b/Mage.Sets/src/mage/cards/a/Aethersnatch.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/Aethersnipe.java b/Mage.Sets/src/mage/cards/a/Aethersnipe.java index 5090cf9c46c..c501395a13f 100644 --- a/Mage.Sets/src/mage/cards/a/Aethersnipe.java +++ b/Mage.Sets/src/mage/cards/a/Aethersnipe.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -36,9 +34,12 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.EvokeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.Target; import mage.target.common.TargetNonlandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AethersphereHarvester.java b/Mage.Sets/src/mage/cards/a/AethersphereHarvester.java index 2b66393b51f..9505c773b9e 100644 --- a/Mage.Sets/src/mage/cards/a/AethersphereHarvester.java +++ b/Mage.Sets/src/mage/cards/a/AethersphereHarvester.java @@ -27,15 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.PayEnergyCost; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.CrewAbility; +import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/Aetherspouts.java b/Mage.Sets/src/mage/cards/a/Aetherspouts.java index 97833813796..1eb81fd8160 100644 --- a/Mage.Sets/src/mage/cards/a/Aetherspouts.java +++ b/Mage.Sets/src/mage/cards/a/Aetherspouts.java @@ -27,15 +27,9 @@ */ package mage.cards.a; -import java.util.ArrayList; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -48,6 +42,9 @@ import mage.players.Player; import mage.players.PlayerList; import mage.target.TargetCard; +import java.util.ArrayList; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AethersquallAncient.java b/Mage.Sets/src/mage/cards/a/AethersquallAncient.java index 460411f4b5f..a001b309949 100644 --- a/Mage.Sets/src/mage/cards/a/AethersquallAncient.java +++ b/Mage.Sets/src/mage/cards/a/AethersquallAncient.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.ActivateAsSorceryActivatedAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AetherstormRoc.java b/Mage.Sets/src/mage/cards/a/AetherstormRoc.java index bdb8ce9573c..660b527663c 100644 --- a/Mage.Sets/src/mage/cards/a/AetherstormRoc.java +++ b/Mage.Sets/src/mage/cards/a/AetherstormRoc.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -47,6 +46,8 @@ import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AetherstreamLeopard.java b/Mage.Sets/src/mage/cards/a/AetherstreamLeopard.java index 865d5dea827..481d88251c1 100644 --- a/Mage.Sets/src/mage/cards/a/AetherstreamLeopard.java +++ b/Mage.Sets/src/mage/cards/a/AetherstreamLeopard.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AethertideWhale.java b/Mage.Sets/src/mage/cards/a/AethertideWhale.java index 5c209a56154..35d5c957d8e 100644 --- a/Mage.Sets/src/mage/cards/a/AethertideWhale.java +++ b/Mage.Sets/src/mage/cards/a/AethertideWhale.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AethertorchRenegade.java b/Mage.Sets/src/mage/cards/a/AethertorchRenegade.java index a787d694923..bcb6b6e6c4b 100644 --- a/Mage.Sets/src/mage/cards/a/AethertorchRenegade.java +++ b/Mage.Sets/src/mage/cards/a/AethertorchRenegade.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Aethertow.java b/Mage.Sets/src/mage/cards/a/Aethertow.java index b2c0f33f187..f1b65b10a2f 100644 --- a/Mage.Sets/src/mage/cards/a/Aethertow.java +++ b/Mage.Sets/src/mage/cards/a/Aethertow.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.ConspireAbility; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AetherwindBasker.java b/Mage.Sets/src/mage/cards/a/AetherwindBasker.java index ac0f7345d9e..83841bac2bc 100644 --- a/Mage.Sets/src/mage/cards/a/AetherwindBasker.java +++ b/Mage.Sets/src/mage/cards/a/AetherwindBasker.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AetherworksMarvel.java b/Mage.Sets/src/mage/cards/a/AetherworksMarvel.java index 2e8c4981430..d5b84fef2cd 100644 --- a/Mage.Sets/src/mage/cards/a/AetherworksMarvel.java +++ b/Mage.Sets/src/mage/cards/a/AetherworksMarvel.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -36,13 +34,10 @@ import mage.abilities.costs.common.PayEnergyCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterNonlandCard; @@ -51,6 +46,9 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetCardInLibrary; +import java.util.Set; +import java.util.UUID; + /** * * @author emerald000 @@ -59,7 +57,7 @@ public class AetherworksMarvel extends CardImpl { public AetherworksMarvel(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Whenever a permanent you control is put into a graveyard, you get {E}. this.addAbility(new PutIntoGraveFromBattlefieldAllTriggeredAbility(new GetEnergyCountersControllerEffect(1), false, new FilterControlledPermanent("a permanent you control"), false)); diff --git a/Mage.Sets/src/mage/cards/a/AffaGuardHound.java b/Mage.Sets/src/mage/cards/a/AffaGuardHound.java index ed428cf6440..aadc5534527 100644 --- a/Mage.Sets/src/mage/cards/a/AffaGuardHound.java +++ b/Mage.Sets/src/mage/cards/a/AffaGuardHound.java @@ -28,9 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,8 +35,12 @@ import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AffaProtector.java b/Mage.Sets/src/mage/cards/a/AffaProtector.java index aa197f3fb2d..d9444a06677 100644 --- a/Mage.Sets/src/mage/cards/a/AffaProtector.java +++ b/Mage.Sets/src/mage/cards/a/AffaProtector.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/Afflict.java b/Mage.Sets/src/mage/cards/a/Afflict.java index 25662ad3464..daa22560e74 100644 --- a/Mage.Sets/src/mage/cards/a/Afflict.java +++ b/Mage.Sets/src/mage/cards/a/Afflict.java @@ -27,16 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AfflictedDeserter.java b/Mage.Sets/src/mage/cards/a/AfflictedDeserter.java index bb19cc0352b..ca60b726550 100644 --- a/Mage.Sets/src/mage/cards/a/AfflictedDeserter.java +++ b/Mage.Sets/src/mage/cards/a/AfflictedDeserter.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -35,12 +34,14 @@ import mage.abilities.condition.common.NoSpellsWereCastLastTurnCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.TransformAbility; -import mage.cards.w.WerewolfRansacker; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.w.WerewolfRansacker; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/a/Afterlife.java b/Mage.Sets/src/mage/cards/a/Afterlife.java index 33df33168c8..3139fa9a7bb 100644 --- a/Mage.Sets/src/mage/cards/a/Afterlife.java +++ b/Mage.Sets/src/mage/cards/a/Afterlife.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -40,6 +39,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.SpiritWhiteToken; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/Aftershock.java b/Mage.Sets/src/mage/cards/a/Aftershock.java index 8fa1097240a..dbe9effdb47 100644 --- a/Mage.Sets/src/mage/cards/a/Aftershock.java +++ b/Mage.Sets/src/mage/cards/a/Aftershock.java @@ -27,17 +27,18 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DamageControllerEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AgadeemOccultist.java b/Mage.Sets/src/mage/cards/a/AgadeemOccultist.java index bbcb04a587d..8da5b4f9969 100644 --- a/Mage.Sets/src/mage/cards/a/AgadeemOccultist.java +++ b/Mage.Sets/src/mage/cards/a/AgadeemOccultist.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInOpponentsGraveyard; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AgelessEntity.java b/Mage.Sets/src/mage/cards/a/AgelessEntity.java index 06646c8a791..9d3c3e17d66 100644 --- a/Mage.Sets/src/mage/cards/a/AgelessEntity.java +++ b/Mage.Sets/src/mage/cards/a/AgelessEntity.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.GainLifeControllerTriggeredAbility; @@ -40,6 +39,8 @@ import mage.constants.Outcome; import mage.counters.CounterType; import mage.game.Game; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AgentOfErebos.java b/Mage.Sets/src/mage/cards/a/AgentOfErebos.java index 5ffa39e69e2..7932161e1b9 100644 --- a/Mage.Sets/src/mage/cards/a/AgentOfErebos.java +++ b/Mage.Sets/src/mage/cards/a/AgentOfErebos.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.abilityword.ConstellationAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AgentOfHorizons.java b/Mage.Sets/src/mage/cards/a/AgentOfHorizons.java index d620c123191..3721d71c7b4 100644 --- a/Mage.Sets/src/mage/cards/a/AgentOfHorizons.java +++ b/Mage.Sets/src/mage/cards/a/AgentOfHorizons.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AgentOfMasks.java b/Mage.Sets/src/mage/cards/a/AgentOfMasks.java index 64d50d5cb11..82358f4e81c 100644 --- a/Mage.Sets/src/mage/cards/a/AgentOfMasks.java +++ b/Mage.Sets/src/mage/cards/a/AgentOfMasks.java @@ -27,19 +27,19 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; import mage.game.Game; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AgentOfShauku.java b/Mage.Sets/src/mage/cards/a/AgentOfShauku.java index 0496196cd84..48067f7383e 100644 --- a/Mage.Sets/src/mage/cards/a/AgentOfShauku.java +++ b/Mage.Sets/src/mage/cards/a/AgentOfShauku.java @@ -27,10 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,12 +35,16 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AgentOfStromgald.java b/Mage.Sets/src/mage/cards/a/AgentOfStromgald.java index 22bd45bf408..543af088c9b 100644 --- a/Mage.Sets/src/mage/cards/a/AgentOfStromgald.java +++ b/Mage.Sets/src/mage/cards/a/AgentOfStromgald.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AgentOfTheFates.java b/Mage.Sets/src/mage/cards/a/AgentOfTheFates.java index 2162b29695c..524f7b9835b 100644 --- a/Mage.Sets/src/mage/cards/a/AgentOfTheFates.java +++ b/Mage.Sets/src/mage/cards/a/AgentOfTheFates.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.SacrificeOpponentsEffect; import mage.abilities.keyword.DeathtouchAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Aggravate.java b/Mage.Sets/src/mage/cards/a/Aggravate.java index ba4826ab1af..10c3302621f 100644 --- a/Mage.Sets/src/mage/cards/a/Aggravate.java +++ b/Mage.Sets/src/mage/cards/a/Aggravate.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.RequirementEffect; import mage.abilities.effects.common.DamageAllControlledTargetEffect; @@ -41,6 +40,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPlayer; import mage.watchers.common.DamagedByWatcher; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/AggressiveMining.java b/Mage.Sets/src/mage/cards/a/AggressiveMining.java index 3e053d70f96..7680fcc9ea3 100644 --- a/Mage.Sets/src/mage/cards/a/AggressiveMining.java +++ b/Mage.Sets/src/mage/cards/a/AggressiveMining.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/a/AggressiveUrge.java b/Mage.Sets/src/mage/cards/a/AggressiveUrge.java index 5037f9e677c..7575d2f5c6d 100644 --- a/Mage.Sets/src/mage/cards/a/AggressiveUrge.java +++ b/Mage.Sets/src/mage/cards/a/AggressiveUrge.java @@ -27,16 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/Agility.java b/Mage.Sets/src/mage/cards/a/Agility.java index 7572e8e7beb..4c8636bb2fc 100644 --- a/Mage.Sets/src/mage/cards/a/Agility.java +++ b/Mage.Sets/src/mage/cards/a/Agility.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -39,9 +36,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlankingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AgonizingDemise.java b/Mage.Sets/src/mage/cards/a/AgonizingDemise.java index 75920cd7f20..ea38c817eef 100644 --- a/Mage.Sets/src/mage/cards/a/AgonizingDemise.java +++ b/Mage.Sets/src/mage/cards/a/AgonizingDemise.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -43,6 +42,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author FenrisulfrX diff --git a/Mage.Sets/src/mage/cards/a/AgonizingMemories.java b/Mage.Sets/src/mage/cards/a/AgonizingMemories.java index afc34c70fd1..3a2eec81a4a 100644 --- a/Mage.Sets/src/mage/cards/a/AgonizingMemories.java +++ b/Mage.Sets/src/mage/cards/a/AgonizingMemories.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -42,6 +41,8 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/a/AgonyWarp.java b/Mage.Sets/src/mage/cards/a/AgonyWarp.java index 55ea8f42f1a..b2b99fe37a0 100644 --- a/Mage.Sets/src/mage/cards/a/AgonyWarp.java +++ b/Mage.Sets/src/mage/cards/a/AgonyWarp.java @@ -27,18 +27,19 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.SecondTargetPointer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/Agoraphobia.java b/Mage.Sets/src/mage/cards/a/Agoraphobia.java index 6fa6fc11e8f..cae80146e36 100644 --- a/Mage.Sets/src/mage/cards/a/Agoraphobia.java +++ b/Mage.Sets/src/mage/cards/a/Agoraphobia.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,11 +37,14 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AgrusKosWojekVeteran.java b/Mage.Sets/src/mage/cards/a/AgrusKosWojekVeteran.java index f6156595fa9..b0d46b4f75e 100644 --- a/Mage.Sets/src/mage/cards/a/AgrusKosWojekVeteran.java +++ b/Mage.Sets/src/mage/cards/a/AgrusKosWojekVeteran.java @@ -27,19 +27,20 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterAttackingCreature; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Loki @@ -57,7 +58,7 @@ public class AgrusKosWojekVeteran extends CardImpl { public AgrusKosWojekVeteran(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{W}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/a/AhnCropChampion.java b/Mage.Sets/src/mage/cards/a/AhnCropChampion.java new file mode 100644 index 00000000000..2004cbf2fa1 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AhnCropChampion.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.a; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.common.UntapAllControllerEffect; +import mage.abilities.keyword.ExertAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.permanent.AnotherPredicate; + +/** + * + * @author stravant + */ +public class AhnCropChampion extends CardImpl { + public AhnCropChampion(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{W}"); + + this.subtype.add("Human"); + this.subtype.add("Warrior"); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // You may exert Ahn-Crop Champion as it attacks. When you do, untap all other creatures you control. + addAbility(new ExertAbility(new BecomesExertSourceTriggeredAbility(new UntapAllControllerEffect(new FilterControlledCreaturePermanent("creatures you control"), null, false)))); + } + + public AhnCropChampion(final AhnCropChampion card) { + super(card); + } + + @Override + public AhnCropChampion copy() { + return new AhnCropChampion(this); + } +} diff --git a/Mage.Sets/src/mage/cards/a/AhnCropCrasher.java b/Mage.Sets/src/mage/cards/a/AhnCropCrasher.java new file mode 100644 index 00000000000..d5710302ad5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AhnCropCrasher.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.a; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.common.combat.CantBlockTargetEffect; +import mage.abilities.keyword.ExertAbility; +import mage.abilities.keyword.HasteAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class AhnCropCrasher extends CardImpl { + + public AhnCropCrasher(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); + + this.subtype.add("Minotaur"); + this.subtype.add("Warrior"); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // Haste + this.addAbility(HasteAbility.getInstance()); + + // You may exert Ahn-Crop Crasher as it attacks. When you do, target creature can't block this turn. + BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(new CantBlockTargetEffect(Duration.EndOfTurn)); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(new ExertAbility(ability)); + } + + public AhnCropCrasher(final AhnCropCrasher card) { + super(card); + } + + @Override + public AhnCropCrasher copy() { + return new AhnCropCrasher(this); + } +} diff --git a/Mage.Sets/src/mage/cards/a/AidFromTheCowl.java b/Mage.Sets/src/mage/cards/a/AidFromTheCowl.java index c6c2344523b..50a9ab8df40 100644 --- a/Mage.Sets/src/mage/cards/a/AidFromTheCowl.java +++ b/Mage.Sets/src/mage/cards/a/AidFromTheCowl.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.TriggeredAbility; @@ -35,11 +34,7 @@ import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility; import mage.abilities.condition.common.RevoltCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -48,6 +43,8 @@ import mage.game.Game; import mage.players.Player; import mage.watchers.common.RevoltWatcher; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AimHigh.java b/Mage.Sets/src/mage/cards/a/AimHigh.java index 1b2ae2d3793..aee13be28af 100644 --- a/Mage.Sets/src/mage/cards/a/AimHigh.java +++ b/Mage.Sets/src/mage/cards/a/AimHigh.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AinokArtillerist.java b/Mage.Sets/src/mage/cards/a/AinokArtillerist.java index d2d86a9d6b7..5e469030fd3 100644 --- a/Mage.Sets/src/mage/cards/a/AinokArtillerist.java +++ b/Mage.Sets/src/mage/cards/a/AinokArtillerist.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.SourceHasCounterCondition; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AinokBondKin.java b/Mage.Sets/src/mage/cards/a/AinokBondKin.java index 2de64123d57..9465fee00f4 100644 --- a/Mage.Sets/src/mage/cards/a/AinokBondKin.java +++ b/Mage.Sets/src/mage/cards/a/AinokBondKin.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -46,6 +45,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.CounterPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AinokGuide.java b/Mage.Sets/src/mage/cards/a/AinokGuide.java index 262c5e7bb9d..396392300b3 100644 --- a/Mage.Sets/src/mage/cards/a/AinokGuide.java +++ b/Mage.Sets/src/mage/cards/a/AinokGuide.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -41,6 +40,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AinokSurvivalist.java b/Mage.Sets/src/mage/cards/a/AinokSurvivalist.java index 0f8160970fb..7c9b381a161 100644 --- a/Mage.Sets/src/mage/cards/a/AinokSurvivalist.java +++ b/Mage.Sets/src/mage/cards/a/AinokSurvivalist.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; @@ -43,6 +42,8 @@ import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AinokTracker.java b/Mage.Sets/src/mage/cards/a/AinokTracker.java index 4e8edb68c15..97c5e7dac63 100644 --- a/Mage.Sets/src/mage/cards/a/AinokTracker.java +++ b/Mage.Sets/src/mage/cards/a/AinokTracker.java @@ -27,15 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.MorphAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AirElemental.java b/Mage.Sets/src/mage/cards/a/AirElemental.java index 81d8ce8e03b..fd5f1d825f7 100644 --- a/Mage.Sets/src/mage/cards/a/AirElemental.java +++ b/Mage.Sets/src/mage/cards/a/AirElemental.java @@ -28,12 +28,13 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AirServant.java b/Mage.Sets/src/mage/cards/a/AirServant.java index 4380a023907..4ae643900e0 100644 --- a/Mage.Sets/src/mage/cards/a/AirServant.java +++ b/Mage.Sets/src/mage/cards/a/AirServant.java @@ -28,9 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,10 +36,14 @@ import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AirborneAid.java b/Mage.Sets/src/mage/cards/a/AirborneAid.java index 99bdb2b9d28..73b1f416d82 100644 --- a/Mage.Sets/src/mage/cards/a/AirborneAid.java +++ b/Mage.Sets/src/mage/cards/a/AirborneAid.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AirdropAeronauts.java b/Mage.Sets/src/mage/cards/a/AirdropAeronauts.java index 302257eb7d8..06c5df0a71d 100644 --- a/Mage.Sets/src/mage/cards/a/AirdropAeronauts.java +++ b/Mage.Sets/src/mage/cards/a/AirdropAeronauts.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.AbilityWord; import mage.constants.CardType; import mage.watchers.common.RevoltWatcher; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AirdropCondor.java b/Mage.Sets/src/mage/cards/a/AirdropCondor.java index eb4a7665f07..73b468bca68 100644 --- a/Mage.Sets/src/mage/cards/a/AirdropCondor.java +++ b/Mage.Sets/src/mage/cards/a/AirdropCondor.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AislingLeprechaun.java b/Mage.Sets/src/mage/cards/a/AislingLeprechaun.java index b2f1babbc24..a248deafc6b 100644 --- a/Mage.Sets/src/mage/cards/a/AislingLeprechaun.java +++ b/Mage.Sets/src/mage/cards/a/AislingLeprechaun.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author djbrez diff --git a/Mage.Sets/src/mage/cards/a/AjaniCallerOfThePride.java b/Mage.Sets/src/mage/cards/a/AjaniCallerOfThePride.java index c9b8aa35b1e..16b8637061d 100644 --- a/Mage.Sets/src/mage/cards/a/AjaniCallerOfThePride.java +++ b/Mage.Sets/src/mage/cards/a/AjaniCallerOfThePride.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -47,6 +46,8 @@ import mage.counters.CounterType; import mage.game.permanent.token.CatToken; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AjaniGoldmane.java b/Mage.Sets/src/mage/cards/a/AjaniGoldmane.java index 3c1cd0f7775..3e56f465933 100644 --- a/Mage.Sets/src/mage/cards/a/AjaniGoldmane.java +++ b/Mage.Sets/src/mage/cards/a/AjaniGoldmane.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -41,12 +40,7 @@ import mage.abilities.effects.common.counter.AddCountersAllEffect; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; @@ -55,6 +49,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AjaniMentorOfHeroes.java b/Mage.Sets/src/mage/cards/a/AjaniMentorOfHeroes.java index 42efbc6e9df..b320b17432b 100644 --- a/Mage.Sets/src/mage/cards/a/AjaniMentorOfHeroes.java +++ b/Mage.Sets/src/mage/cards/a/AjaniMentorOfHeroes.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -48,6 +47,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanentAmount; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AjaniSteadfast.java b/Mage.Sets/src/mage/cards/a/AjaniSteadfast.java index b0840dbbc88..11268235718 100644 --- a/Mage.Sets/src/mage/cards/a/AjaniSteadfast.java +++ b/Mage.Sets/src/mage/cards/a/AjaniSteadfast.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -58,6 +57,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AjaniUnyielding.java b/Mage.Sets/src/mage/cards/a/AjaniUnyielding.java index ab908ea712a..4bc712f1822 100644 --- a/Mage.Sets/src/mage/cards/a/AjaniUnyielding.java +++ b/Mage.Sets/src/mage/cards/a/AjaniUnyielding.java @@ -36,7 +36,9 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import mage.constants.Zone; import mage.counters.CounterType; +import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterPermanentCard; import mage.filter.common.FilterPlaneswalkerPermanent; import mage.filter.predicate.Predicates; @@ -46,8 +48,6 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; import java.util.UUID; -import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; /** * @author JRHerlehy diff --git a/Mage.Sets/src/mage/cards/a/AjaniValiantProtector.java b/Mage.Sets/src/mage/cards/a/AjaniValiantProtector.java index 468bbbcb2ae..343cc6bb991 100644 --- a/Mage.Sets/src/mage/cards/a/AjaniValiantProtector.java +++ b/Mage.Sets/src/mage/cards/a/AjaniValiantProtector.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -46,6 +45,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AjaniVengeant.java b/Mage.Sets/src/mage/cards/a/AjaniVengeant.java index cd0db0d6c13..cb2674bb2b4 100644 --- a/Mage.Sets/src/mage/cards/a/AjaniVengeant.java +++ b/Mage.Sets/src/mage/cards/a/AjaniVengeant.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; import mage.abilities.effects.Effects; @@ -44,6 +43,8 @@ import mage.target.TargetPermanent; import mage.target.TargetPlayer; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AjanisAid.java b/Mage.Sets/src/mage/cards/a/AjanisAid.java index 28247cd3b24..44b73424848 100644 --- a/Mage.Sets/src/mage/cards/a/AjanisAid.java +++ b/Mage.Sets/src/mage/cards/a/AjanisAid.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -43,6 +42,8 @@ import mage.filter.FilterCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.NamePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AjanisChosen.java b/Mage.Sets/src/mage/cards/a/AjanisChosen.java index a653b7e5575..3d8b77fd6de 100644 --- a/Mage.Sets/src/mage/cards/a/AjanisChosen.java +++ b/Mage.Sets/src/mage/cards/a/AjanisChosen.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; @@ -45,6 +44,8 @@ import mage.game.permanent.token.CatToken; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AjanisComrade.java b/Mage.Sets/src/mage/cards/a/AjanisComrade.java index 0734ced8c65..581196d08b2 100644 --- a/Mage.Sets/src/mage/cards/a/AjanisComrade.java +++ b/Mage.Sets/src/mage/cards/a/AjanisComrade.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -43,6 +42,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AjanisMantra.java b/Mage.Sets/src/mage/cards/a/AjanisMantra.java index 343e23442ee..133f8a6eb35 100644 --- a/Mage.Sets/src/mage/cards/a/AjanisMantra.java +++ b/Mage.Sets/src/mage/cards/a/AjanisMantra.java @@ -28,7 +28,6 @@ package mage.cards.a; -import java.util.UUID; import mage.abilities.common.OnEventTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AjanisPresence.java b/Mage.Sets/src/mage/cards/a/AjanisPresence.java index 1ef68b673d4..5b2bdc61e9a 100644 --- a/Mage.Sets/src/mage/cards/a/AjanisPresence.java +++ b/Mage.Sets/src/mage/cards/a/AjanisPresence.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.abilityword.StriveAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AjanisPridemate.java b/Mage.Sets/src/mage/cards/a/AjanisPridemate.java index b46f43f578d..653b9ecf45b 100644 --- a/Mage.Sets/src/mage/cards/a/AjanisPridemate.java +++ b/Mage.Sets/src/mage/cards/a/AjanisPridemate.java @@ -28,7 +28,6 @@ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AjanisSunstriker.java b/Mage.Sets/src/mage/cards/a/AjanisSunstriker.java index 39ecaaaa5e9..8569d08b680 100644 --- a/Mage.Sets/src/mage/cards/a/AjanisSunstriker.java +++ b/Mage.Sets/src/mage/cards/a/AjanisSunstriker.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AkiriLineSlinger.java b/Mage.Sets/src/mage/cards/a/AkiriLineSlinger.java index 13294e35484..471cc84f1b3 100644 --- a/Mage.Sets/src/mage/cards/a/AkiriLineSlinger.java +++ b/Mage.Sets/src/mage/cards/a/AkiriLineSlinger.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -41,10 +40,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author spjspj @@ -60,7 +62,7 @@ public class AkiriLineSlinger extends CardImpl { public AkiriLineSlinger(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Kor"); this.subtype.add("Soldier"); this.subtype.add("Ally"); diff --git a/Mage.Sets/src/mage/cards/a/AkkiAvalanchers.java b/Mage.Sets/src/mage/cards/a/AkkiAvalanchers.java index dad43a1bd80..4d651ca6a92 100644 --- a/Mage.Sets/src/mage/cards/a/AkkiAvalanchers.java +++ b/Mage.Sets/src/mage/cards/a/AkkiAvalanchers.java @@ -28,20 +28,21 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/AkkiBlizzardHerder.java b/Mage.Sets/src/mage/cards/a/AkkiBlizzardHerder.java index 34c58e89136..37895fdc630 100644 --- a/Mage.Sets/src/mage/cards/a/AkkiBlizzardHerder.java +++ b/Mage.Sets/src/mage/cards/a/AkkiBlizzardHerder.java @@ -27,16 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.SacrificeAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AkkiCoalflinger.java b/Mage.Sets/src/mage/cards/a/AkkiCoalflinger.java index 4e3c9a1682c..44d3fcb4218 100644 --- a/Mage.Sets/src/mage/cards/a/AkkiCoalflinger.java +++ b/Mage.Sets/src/mage/cards/a/AkkiCoalflinger.java @@ -28,9 +28,6 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,8 +37,14 @@ import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterAttackingCreature; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/a/AkkiDrillmaster.java b/Mage.Sets/src/mage/cards/a/AkkiDrillmaster.java index 270e0ad00ca..7a6a4ada021 100644 --- a/Mage.Sets/src/mage/cards/a/AkkiDrillmaster.java +++ b/Mage.Sets/src/mage/cards/a/AkkiDrillmaster.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,10 +35,13 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AkkiLavarunner.java b/Mage.Sets/src/mage/cards/a/AkkiLavarunner.java index b8dbef730d5..a2d311034b7 100644 --- a/Mage.Sets/src/mage/cards/a/AkkiLavarunner.java +++ b/Mage.Sets/src/mage/cards/a/AkkiLavarunner.java @@ -1,6 +1,5 @@ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.ObjectColor; @@ -13,17 +12,16 @@ import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.DamagedPlayerEvent; -import mage.game.events.GameEvent.EventType; import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * @author Loki */ @@ -90,7 +88,7 @@ class AkkiLavarunnerAbility extends TriggeredAbilityImpl { class TokTokVolcanoBorn extends Token { TokTokVolcanoBorn() { super("Tok-Tok, Volcano Born", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setRed(true); subtype.add("Goblin"); diff --git a/Mage.Sets/src/mage/cards/a/AkkiRaider.java b/Mage.Sets/src/mage/cards/a/AkkiRaider.java index 0efb94fae6c..1ab5b270a64 100644 --- a/Mage.Sets/src/mage/cards/a/AkkiRaider.java +++ b/Mage.Sets/src/mage/cards/a/AkkiRaider.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.ZoneChangeAllTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -38,6 +37,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AkkiRockspeaker.java b/Mage.Sets/src/mage/cards/a/AkkiRockspeaker.java index bb56796ac95..519cf821aad 100644 --- a/Mage.Sets/src/mage/cards/a/AkkiRockspeaker.java +++ b/Mage.Sets/src/mage/cards/a/AkkiRockspeaker.java @@ -27,17 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.Mana; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.BasicManaEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; +import java.util.UUID; + /** * @author Loki, North */ diff --git a/Mage.Sets/src/mage/cards/a/AkkiUnderling.java b/Mage.Sets/src/mage/cards/a/AkkiUnderling.java index 4e129a6b32e..f7170621862 100644 --- a/Mage.Sets/src/mage/cards/a/AkkiUnderling.java +++ b/Mage.Sets/src/mage/cards/a/AkkiUnderling.java @@ -27,10 +27,9 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.CardsInHandCondition; @@ -44,6 +43,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +60,7 @@ public class AkkiUnderling extends CardImpl { this.toughness = new MageInt(1); // As long as you have seven or more cards in hand, Akki Underling gets +2/+1 and has first strike. - Condition condition = new CardsInHandCondition(CountType.MORE_THAN,6); + Condition condition = new CardsInHandCondition(ComparisonType.MORE_THAN,6); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostSourceEffect(2,1, Duration.WhileOnBattlefield), condition, "As long as you have seven or more cards in hand, {this} gets +2/+1")); ability.addEffect(new ConditionalContinuousEffect( diff --git a/Mage.Sets/src/mage/cards/a/AkkiUnderminer.java b/Mage.Sets/src/mage/cards/a/AkkiUnderminer.java index 07f0006058a..2b9bc880bf7 100644 --- a/Mage.Sets/src/mage/cards/a/AkkiUnderminer.java +++ b/Mage.Sets/src/mage/cards/a/AkkiUnderminer.java @@ -28,7 +28,6 @@ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.SacrificeEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.FilterPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AkoumBattlesinger.java b/Mage.Sets/src/mage/cards/a/AkoumBattlesinger.java index 64807c606b6..b7f79253d2b 100644 --- a/Mage.Sets/src/mage/cards/a/AkoumBattlesinger.java +++ b/Mage.Sets/src/mage/cards/a/AkoumBattlesinger.java @@ -27,20 +27,21 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; import mage.MageInt; import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/AkoumBoulderfoot.java b/Mage.Sets/src/mage/cards/a/AkoumBoulderfoot.java index 6b6aee3f6fe..fb57ee8bf0b 100644 --- a/Mage.Sets/src/mage/cards/a/AkoumBoulderfoot.java +++ b/Mage.Sets/src/mage/cards/a/AkoumBoulderfoot.java @@ -27,17 +27,18 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.Target; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/AkoumFirebird.java b/Mage.Sets/src/mage/cards/a/AkoumFirebird.java index 3e405c5a466..4c125f66b53 100644 --- a/Mage.Sets/src/mage/cards/a/AkoumFirebird.java +++ b/Mage.Sets/src/mage/cards/a/AkoumFirebird.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.AttacksEachTurnStaticAbility; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AkoumFlameseeker.java b/Mage.Sets/src/mage/cards/a/AkoumFlameseeker.java index a09237d075e..9f32be20150 100644 --- a/Mage.Sets/src/mage/cards/a/AkoumFlameseeker.java +++ b/Mage.Sets/src/mage/cards/a/AkoumFlameseeker.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -49,6 +48,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AkoumHellkite.java b/Mage.Sets/src/mage/cards/a/AkoumHellkite.java index 26748d7c277..d0b76e4b787 100644 --- a/Mage.Sets/src/mage/cards/a/AkoumHellkite.java +++ b/Mage.Sets/src/mage/cards/a/AkoumHellkite.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -46,6 +45,8 @@ import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AkoumRefuge.java b/Mage.Sets/src/mage/cards/a/AkoumRefuge.java index 39c9d8e5199..e4150a79a6e 100644 --- a/Mage.Sets/src/mage/cards/a/AkoumRefuge.java +++ b/Mage.Sets/src/mage/cards/a/AkoumRefuge.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -36,6 +34,9 @@ import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AkoumStonewaker.java b/Mage.Sets/src/mage/cards/a/AkoumStonewaker.java index 0f87c37022c..9b488d0db6b 100644 --- a/Mage.Sets/src/mage/cards/a/AkoumStonewaker.java +++ b/Mage.Sets/src/mage/cards/a/AkoumStonewaker.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LandfallAbility; @@ -44,6 +43,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AkrasanSquire.java b/Mage.Sets/src/mage/cards/a/AkrasanSquire.java index bbc620f50bc..de3ecf4b90e 100644 --- a/Mage.Sets/src/mage/cards/a/AkrasanSquire.java +++ b/Mage.Sets/src/mage/cards/a/AkrasanSquire.java @@ -28,12 +28,13 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ExaltedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AkroanConscriptor.java b/Mage.Sets/src/mage/cards/a/AkroanConscriptor.java index 68500bf2492..bd3222c49c6 100644 --- a/Mage.Sets/src/mage/cards/a/AkroanConscriptor.java +++ b/Mage.Sets/src/mage/cards/a/AkroanConscriptor.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.Effect; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AkroanCrusader.java b/Mage.Sets/src/mage/cards/a/AkroanCrusader.java index b55b66f2b0e..7cde81a3e3c 100644 --- a/Mage.Sets/src/mage/cards/a/AkroanCrusader.java +++ b/Mage.Sets/src/mage/cards/a/AkroanCrusader.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.HasteAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AkroanHoplite.java b/Mage.Sets/src/mage/cards/a/AkroanHoplite.java index 7cf446aec28..0c6a699c8a0 100644 --- a/Mage.Sets/src/mage/cards/a/AkroanHoplite.java +++ b/Mage.Sets/src/mage/cards/a/AkroanHoplite.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AttackingPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AkroanHorse.java b/Mage.Sets/src/mage/cards/a/AkroanHorse.java index fbf19fdc1d6..1df6f76299e 100644 --- a/Mage.Sets/src/mage/cards/a/AkroanHorse.java +++ b/Mage.Sets/src/mage/cards/a/AkroanHorse.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -39,13 +38,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.permanent.token.SoldierToken; @@ -55,6 +48,8 @@ import mage.target.Target; import mage.target.common.TargetOpponent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AkroanJailer.java b/Mage.Sets/src/mage/cards/a/AkroanJailer.java index 515b5ace1aa..1030e85222b 100644 --- a/Mage.Sets/src/mage/cards/a/AkroanJailer.java +++ b/Mage.Sets/src/mage/cards/a/AkroanJailer.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AkroanLineBreaker.java b/Mage.Sets/src/mage/cards/a/AkroanLineBreaker.java index d933f1f236a..367f46a9fe8 100644 --- a/Mage.Sets/src/mage/cards/a/AkroanLineBreaker.java +++ b/Mage.Sets/src/mage/cards/a/AkroanLineBreaker.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.Effect; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AkroanMastiff.java b/Mage.Sets/src/mage/cards/a/AkroanMastiff.java index aa07aac9e9a..b39ac72d0b5 100644 --- a/Mage.Sets/src/mage/cards/a/AkroanMastiff.java +++ b/Mage.Sets/src/mage/cards/a/AkroanMastiff.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AkroanPhalanx.java b/Mage.Sets/src/mage/cards/a/AkroanPhalanx.java index 5617896184d..e9705c4816a 100644 --- a/Mage.Sets/src/mage/cards/a/AkroanPhalanx.java +++ b/Mage.Sets/src/mage/cards/a/AkroanPhalanx.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AkroanSergeant.java b/Mage.Sets/src/mage/cards/a/AkroanSergeant.java index 6e1f5b4e182..b1478198d93 100644 --- a/Mage.Sets/src/mage/cards/a/AkroanSergeant.java +++ b/Mage.Sets/src/mage/cards/a/AkroanSergeant.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.RenownAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AkroanSkyguard.java b/Mage.Sets/src/mage/cards/a/AkroanSkyguard.java index ee014643b33..7be07b8f238 100644 --- a/Mage.Sets/src/mage/cards/a/AkroanSkyguard.java +++ b/Mage.Sets/src/mage/cards/a/AkroanSkyguard.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.FlyingAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AkromaAngelOfFury.java b/Mage.Sets/src/mage/cards/a/AkromaAngelOfFury.java index 096a9b8fcda..d43e1a9f7c6 100644 --- a/Mage.Sets/src/mage/cards/a/AkromaAngelOfFury.java +++ b/Mage.Sets/src/mage/cards/a/AkromaAngelOfFury.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.CantBeCounteredAbility; @@ -42,8 +41,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,7 +54,7 @@ public class AkromaAngelOfFury extends CardImpl { public AkromaAngelOfFury(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{R}{R}{R}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/a/AkromaAngelOfWrath.java b/Mage.Sets/src/mage/cards/a/AkromaAngelOfWrath.java index 6d808c5d692..75652af6787 100644 --- a/Mage.Sets/src/mage/cards/a/AkromaAngelOfWrath.java +++ b/Mage.Sets/src/mage/cards/a/AkromaAngelOfWrath.java @@ -27,13 +27,15 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.*; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -43,7 +45,7 @@ public class AkromaAngelOfWrath extends CardImpl { public AkromaAngelOfWrath(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/a/AkromasBlessing.java b/Mage.Sets/src/mage/cards/a/AkromasBlessing.java index feb88699d98..5645b72cd56 100644 --- a/Mage.Sets/src/mage/cards/a/AkromasBlessing.java +++ b/Mage.Sets/src/mage/cards/a/AkromasBlessing.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.GainProtectionFromColorAllEffect; import mage.abilities.keyword.CyclingAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/a/AkromasDevoted.java b/Mage.Sets/src/mage/cards/a/AkromasDevoted.java index a4e5a921073..1babd98c50a 100644 --- a/Mage.Sets/src/mage/cards/a/AkromasDevoted.java +++ b/Mage.Sets/src/mage/cards/a/AkromasDevoted.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AkromasMemorial.java b/Mage.Sets/src/mage/cards/a/AkromasMemorial.java index d22e8a4c333..9f0e73dd795 100644 --- a/Mage.Sets/src/mage/cards/a/AkromasMemorial.java +++ b/Mage.Sets/src/mage/cards/a/AkromasMemorial.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.CompoundAbility; import mage.abilities.common.SimpleStaticAbility; @@ -35,7 +34,9 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.*; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; @@ -48,7 +49,7 @@ public class AkromasMemorial extends CardImpl { public AkromasMemorial(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{7}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Creatures you control have flying, first strike, vigilance, trample, haste, and protection from black and from red. CompoundAbility compoundAbilities = new CompoundAbility(FlyingAbility.getInstance(), FirstStrikeAbility.getInstance(), VigilanceAbility.getInstance(), diff --git a/Mage.Sets/src/mage/cards/a/AkromasVengeance.java b/Mage.Sets/src/mage/cards/a/AkromasVengeance.java index 0b34ab2ae0a..038d3830e89 100644 --- a/Mage.Sets/src/mage/cards/a/AkromasVengeance.java +++ b/Mage.Sets/src/mage/cards/a/AkromasVengeance.java @@ -27,18 +27,18 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.abilities.effects.common.DestroyAllEffect; -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DestroyAllEffect; import mage.abilities.keyword.CyclingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AkronLegionnaire.java b/Mage.Sets/src/mage/cards/a/AkronLegionnaire.java index 9358308d6c3..a1d2647f019 100644 --- a/Mage.Sets/src/mage/cards/a/AkronLegionnaire.java +++ b/Mage.Sets/src/mage/cards/a/AkronLegionnaire.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.NamePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AkutaBornOfAsh.java b/Mage.Sets/src/mage/cards/a/AkutaBornOfAsh.java index 1445f8940da..3d38e0cd67c 100644 --- a/Mage.Sets/src/mage/cards/a/AkutaBornOfAsh.java +++ b/Mage.Sets/src/mage/cards/a/AkutaBornOfAsh.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -40,12 +39,15 @@ import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +61,7 @@ public class AkutaBornOfAsh extends CardImpl { public AkutaBornOfAsh(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(3); @@ -72,7 +74,7 @@ public class AkutaBornOfAsh extends CardImpl { new BeginningOfUpkeepTriggeredAbility(Zone.GRAVEYARD, new DoIfCostPaid(new ReturnSourceFromGraveyardToBattlefieldEffect(), new SacrificeTargetCost(new TargetControlledPermanent(filterSwamp))), TargetController.YOU, false), - new MoreCardsInHandThanOpponentsCondition(), + MoreCardsInHandThanOpponentsCondition.instance, "At the beginning of your upkeep, if you have more cards in hand than each opponent, you may sacrifice a Swamp. If you do, return {this} from your graveyard to the battlefield."); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/a/AlabasterDragon.java b/Mage.Sets/src/mage/cards/a/AlabasterDragon.java index 56b2a3d5e27..35803861f8c 100644 --- a/Mage.Sets/src/mage/cards/a/AlabasterDragon.java +++ b/Mage.Sets/src/mage/cards/a/AlabasterDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.ShuffleIntoLibrarySourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AlabasterKirin.java b/Mage.Sets/src/mage/cards/a/AlabasterKirin.java index 58a9bb572a2..55c58bd15d4 100644 --- a/Mage.Sets/src/mage/cards/a/AlabasterKirin.java +++ b/Mage.Sets/src/mage/cards/a/AlabasterKirin.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AlabasterLeech.java b/Mage.Sets/src/mage/cards/a/AlabasterLeech.java index 1073a2078f7..149cb056999 100644 --- a/Mage.Sets/src/mage/cards/a/AlabasterLeech.java +++ b/Mage.Sets/src/mage/cards/a/AlabasterLeech.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AlabasterMage.java b/Mage.Sets/src/mage/cards/a/AlabasterMage.java index 8365528fae5..60dd7457582 100644 --- a/Mage.Sets/src/mage/cards/a/AlabasterMage.java +++ b/Mage.Sets/src/mage/cards/a/AlabasterMage.java @@ -28,9 +28,6 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,10 +36,13 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/AlabasterWall.java b/Mage.Sets/src/mage/cards/a/AlabasterWall.java index c6c39231774..eb86cc4e8c0 100644 --- a/Mage.Sets/src/mage/cards/a/AlabasterWall.java +++ b/Mage.Sets/src/mage/cards/a/AlabasterWall.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AlabornCavalier.java b/Mage.Sets/src/mage/cards/a/AlabornCavalier.java index 36118289595..fb25b0e1723 100644 --- a/Mage.Sets/src/mage/cards/a/AlabornCavalier.java +++ b/Mage.Sets/src/mage/cards/a/AlabornCavalier.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author FenrisulfrX diff --git a/Mage.Sets/src/mage/cards/a/AlabornGrenadier.java b/Mage.Sets/src/mage/cards/a/AlabornGrenadier.java index 084bd90e422..56c0b24267d 100644 --- a/Mage.Sets/src/mage/cards/a/AlabornGrenadier.java +++ b/Mage.Sets/src/mage/cards/a/AlabornGrenadier.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AlabornMusketeer.java b/Mage.Sets/src/mage/cards/a/AlabornMusketeer.java index 18860cd99f4..31e513c7c34 100644 --- a/Mage.Sets/src/mage/cards/a/AlabornMusketeer.java +++ b/Mage.Sets/src/mage/cards/a/AlabornMusketeer.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AlabornTrooper.java b/Mage.Sets/src/mage/cards/a/AlabornTrooper.java index ffc39ef9686..d2f7e2860a6 100644 --- a/Mage.Sets/src/mage/cards/a/AlabornTrooper.java +++ b/Mage.Sets/src/mage/cards/a/AlabornTrooper.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AlabornVeteran.java b/Mage.Sets/src/mage/cards/a/AlabornVeteran.java index 83b18e6ae79..478f7db6b8d 100644 --- a/Mage.Sets/src/mage/cards/a/AlabornVeteran.java +++ b/Mage.Sets/src/mage/cards/a/AlabornVeteran.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -56,7 +57,7 @@ public class AlabornVeteran extends CardImpl { // {tap}: Target creature gets +2/+2 until end of turn. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new BoostTargetEffect(2, 2, Duration.EndOfTurn), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new BoostTargetEffect(2, 2, Duration.EndOfTurn), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/a/Aladdin.java b/Mage.Sets/src/mage/cards/a/Aladdin.java index e95ccf42e4f..9021c58183b 100644 --- a/Mage.Sets/src/mage/cards/a/Aladdin.java +++ b/Mage.Sets/src/mage/cards/a/Aladdin.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/a/AladdinsLamp.java b/Mage.Sets/src/mage/cards/a/AladdinsLamp.java index 608529408cf..248b02cd454 100644 --- a/Mage.Sets/src/mage/cards/a/AladdinsLamp.java +++ b/Mage.Sets/src/mage/cards/a/AladdinsLamp.java @@ -27,17 +27,12 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.ReplacementEffectImpl; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; @@ -48,6 +43,8 @@ import mage.game.events.GameEvent; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/a/AladdinsRing.java b/Mage.Sets/src/mage/cards/a/AladdinsRing.java index 765c88d17c1..cd87e2104c8 100644 --- a/Mage.Sets/src/mage/cards/a/AladdinsRing.java +++ b/Mage.Sets/src/mage/cards/a/AladdinsRing.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -37,9 +34,12 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/Alarum.java b/Mage.Sets/src/mage/cards/a/Alarum.java index 650ef193a84..74cecb57186 100644 --- a/Mage.Sets/src/mage/cards/a/Alarum.java +++ b/Mage.Sets/src/mage/cards/a/Alarum.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -40,6 +39,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.AttackingPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AlbinoTroll.java b/Mage.Sets/src/mage/cards/a/AlbinoTroll.java index 78676beb488..9f092a3278f 100644 --- a/Mage.Sets/src/mage/cards/a/AlbinoTroll.java +++ b/Mage.Sets/src/mage/cards/a/AlbinoTroll.java @@ -28,9 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +35,10 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.keyword.EchoAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AlchemistsApprentice.java b/Mage.Sets/src/mage/cards/a/AlchemistsApprentice.java index f1a70190200..41988c0a3c7 100644 --- a/Mage.Sets/src/mage/cards/a/AlchemistsApprentice.java +++ b/Mage.Sets/src/mage/cards/a/AlchemistsApprentice.java @@ -27,13 +27,13 @@ */ package mage.cards.a; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/a/AlchemistsGreeting.java b/Mage.Sets/src/mage/cards/a/AlchemistsGreeting.java index 0135f9e6bbb..8bf60a495c1 100644 --- a/Mage.Sets/src/mage/cards/a/AlchemistsGreeting.java +++ b/Mage.Sets/src/mage/cards/a/AlchemistsGreeting.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.MadnessAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AlchemistsRefuge.java b/Mage.Sets/src/mage/cards/a/AlchemistsRefuge.java index a9d1d402846..7962e6a1e04 100644 --- a/Mage.Sets/src/mage/cards/a/AlchemistsRefuge.java +++ b/Mage.Sets/src/mage/cards/a/AlchemistsRefuge.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.CompositeCost; import mage.abilities.costs.common.TapSourceCost; @@ -44,6 +43,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author noxx diff --git a/Mage.Sets/src/mage/cards/a/AlchemistsVial.java b/Mage.Sets/src/mage/cards/a/AlchemistsVial.java index 0610f7ceb99..196ca984cc0 100644 --- a/Mage.Sets/src/mage/cards/a/AlchemistsVial.java +++ b/Mage.Sets/src/mage/cards/a/AlchemistsVial.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AlchorsTomb.java b/Mage.Sets/src/mage/cards/a/AlchorsTomb.java index 21990d82360..5f07f1b1162 100644 --- a/Mage.Sets/src/mage/cards/a/AlchorsTomb.java +++ b/Mage.Sets/src/mage/cards/a/AlchorsTomb.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/Aleatory.java b/Mage.Sets/src/mage/cards/a/Aleatory.java index 6caeeea06da..11f35631a13 100644 --- a/Mage.Sets/src/mage/cards/a/Aleatory.java +++ b/Mage.Sets/src/mage/cards/a/Aleatory.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.CastOnlyDuringPhaseStepSourceAbility; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; @@ -47,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AlertShuInfantry.java b/Mage.Sets/src/mage/cards/a/AlertShuInfantry.java index e8f5d0fe624..1dd8acd3d42 100644 --- a/Mage.Sets/src/mage/cards/a/AlertShuInfantry.java +++ b/Mage.Sets/src/mage/cards/a/AlertShuInfantry.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AleshaWhoSmilesAtDeath.java b/Mage.Sets/src/mage/cards/a/AleshaWhoSmilesAtDeath.java index 168844eca7a..54390ae3e3b 100644 --- a/Mage.Sets/src/mage/cards/a/AleshaWhoSmilesAtDeath.java +++ b/Mage.Sets/src/mage/cards/a/AleshaWhoSmilesAtDeath.java @@ -27,9 +27,9 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; @@ -40,14 +40,16 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,12 +59,12 @@ public class AleshaWhoSmilesAtDeath extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("creature card with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public AleshaWhoSmilesAtDeath(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/a/AleshasVanguard.java b/Mage.Sets/src/mage/cards/a/AleshasVanguard.java index 5fb3c7d1cb4..b6f776dd74c 100644 --- a/Mage.Sets/src/mage/cards/a/AleshasVanguard.java +++ b/Mage.Sets/src/mage/cards/a/AleshasVanguard.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.DashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AlexiZephyrMage.java b/Mage.Sets/src/mage/cards/a/AlexiZephyrMage.java index f70a3295266..c5d9ca90e4b 100644 --- a/Mage.Sets/src/mage/cards/a/AlexiZephyrMage.java +++ b/Mage.Sets/src/mage/cards/a/AlexiZephyrMage.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +37,7 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.FilterPermanent; @@ -46,6 +46,8 @@ import mage.game.Game; import mage.target.TargetPermanent; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -62,7 +64,7 @@ public class AlexiZephyrMage extends CardImpl { public AlexiZephyrMage(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Spellshaper"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/a/AlexisCloak.java b/Mage.Sets/src/mage/cards/a/AlexisCloak.java index 9808fc0c5a1..332d872f39f 100644 --- a/Mage.Sets/src/mage/cards/a/AlexisCloak.java +++ b/Mage.Sets/src/mage/cards/a/AlexisCloak.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AlgaeGharial.java b/Mage.Sets/src/mage/cards/a/AlgaeGharial.java index d890478414a..5e28ae851e9 100644 --- a/Mage.Sets/src/mage/cards/a/AlgaeGharial.java +++ b/Mage.Sets/src/mage/cards/a/AlgaeGharial.java @@ -27,16 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/AlhammarretHighArbiter.java b/Mage.Sets/src/mage/cards/a/AlhammarretHighArbiter.java index 1fdf190b7ba..eae24180270 100644 --- a/Mage.Sets/src/mage/cards/a/AlhammarretHighArbiter.java +++ b/Mage.Sets/src/mage/cards/a/AlhammarretHighArbiter.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.Objects; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -37,15 +35,8 @@ import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.abilities.effects.EntersBattlefieldEffect; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.cards.*; +import mage.constants.*; import mage.filter.common.FilterNonlandCard; import mage.game.Game; import mage.game.events.GameEvent; @@ -56,6 +47,9 @@ import mage.target.TargetCard; import mage.util.CardUtil; import mage.util.GameLog; +import java.util.Objects; +import java.util.UUID; + /** * * @author LevelX2 @@ -64,7 +58,7 @@ public class AlhammarretHighArbiter extends CardImpl { public AlhammarretHighArbiter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Sphinx"); this.power = new MageInt(5); this.toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/a/AlhammarretsArchive.java b/Mage.Sets/src/mage/cards/a/AlhammarretsArchive.java index 2c80e8e6251..668a943e9c4 100644 --- a/Mage.Sets/src/mage/cards/a/AlhammarretsArchive.java +++ b/Mage.Sets/src/mage/cards/a/AlhammarretsArchive.java @@ -27,22 +27,19 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.PhaseStep; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; import mage.watchers.common.CardsDrawnDuringDrawStepWatcher; +import java.util.UUID; + /** * * @author fireshoes @@ -51,7 +48,7 @@ public class AlhammarretsArchive extends CardImpl { public AlhammarretsArchive(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // If you would gain life, you gain twice that much life instead. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new AlhammarretsArchiveEffect())); diff --git a/Mage.Sets/src/mage/cards/a/AliBaba.java b/Mage.Sets/src/mage/cards/a/AliBaba.java index 16895d423d3..a1f83576b51 100644 --- a/Mage.Sets/src/mage/cards/a/AliBaba.java +++ b/Mage.Sets/src/mage/cards/a/AliBaba.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AliFromCairo.java b/Mage.Sets/src/mage/cards/a/AliFromCairo.java index 7f560791b55..e58ea12904b 100644 --- a/Mage.Sets/src/mage/cards/a/AliFromCairo.java +++ b/Mage.Sets/src/mage/cards/a/AliFromCairo.java @@ -27,19 +27,23 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/a/AlibansTower.java b/Mage.Sets/src/mage/cards/a/AlibansTower.java index ce93cdf349a..90212e6af68 100644 --- a/Mage.Sets/src/mage/cards/a/AlibansTower.java +++ b/Mage.Sets/src/mage/cards/a/AlibansTower.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.constants.Duration; import mage.filter.common.FilterBlockingCreature; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AlignedHedronNetwork.java b/Mage.Sets/src/mage/cards/a/AlignedHedronNetwork.java index 5143a6be5fc..61013190b9c 100644 --- a/Mage.Sets/src/mage/cards/a/AlignedHedronNetwork.java +++ b/Mage.Sets/src/mage/cards/a/AlignedHedronNetwork.java @@ -27,10 +27,8 @@ */ package mage.cards.a; -import java.util.LinkedHashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility; import mage.abilities.effects.OneShotEffect; @@ -40,7 +38,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; @@ -48,6 +45,10 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.util.CardUtil; +import java.util.LinkedHashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 @@ -76,7 +77,7 @@ class AlignedHedronNetworkExileEffect extends OneShotEffect { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 5 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public AlignedHedronNetworkExileEffect() { diff --git a/Mage.Sets/src/mage/cards/a/AliveWell.java b/Mage.Sets/src/mage/cards/a/AliveWell.java index a6eed04a19c..4021b15315a 100644 --- a/Mage.Sets/src/mage/cards/a/AliveWell.java +++ b/Mage.Sets/src/mage/cards/a/AliveWell.java @@ -35,6 +35,7 @@ import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SpellAbilityType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.game.permanent.token.CentaurToken; @@ -47,7 +48,7 @@ import mage.players.Player; public class AliveWell extends SplitCard { public AliveWell(UUID ownerId, CardSetInfo setInfo) { - super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{G}", "{W}", true); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{G}", "{W}", SpellAbilityType.SPLIT_FUSED); // Alive // Create a 3/3 green Centaur creature token. diff --git a/Mage.Sets/src/mage/cards/a/AllHallowsEve.java b/Mage.Sets/src/mage/cards/a/AllHallowsEve.java index a9f7270a0d1..dec9c437a37 100644 --- a/Mage.Sets/src/mage/cards/a/AllHallowsEve.java +++ b/Mage.Sets/src/mage/cards/a/AllHallowsEve.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.dynamicvalue.common.StaticValue; @@ -35,11 +34,7 @@ import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ExileSpellEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; @@ -49,6 +44,8 @@ import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AllIsDust.java b/Mage.Sets/src/mage/cards/a/AllIsDust.java index 9937fa311c7..e456796abfd 100644 --- a/Mage.Sets/src/mage/cards/a/AllIsDust.java +++ b/Mage.Sets/src/mage/cards/a/AllIsDust.java @@ -27,18 +27,18 @@ */ package mage.cards.a; -import java.util.List; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.List; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/AllSunsDawn.java b/Mage.Sets/src/mage/cards/a/AllSunsDawn.java index 1cb06ac2c1b..24568efab48 100644 --- a/Mage.Sets/src/mage/cards/a/AllSunsDawn.java +++ b/Mage.Sets/src/mage/cards/a/AllSunsDawn.java @@ -27,16 +27,11 @@ */ package mage.cards.a; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ExileSpellEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -47,6 +42,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Allay.java b/Mage.Sets/src/mage/cards/a/Allay.java index 84d4b3dcc9c..5fae1b86ca2 100644 --- a/Mage.Sets/src/mage/cards/a/Allay.java +++ b/Mage.Sets/src/mage/cards/a/Allay.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.BuybackAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AlleyEvasion.java b/Mage.Sets/src/mage/cards/a/AlleyEvasion.java index 139bba8e53f..51122f7d0b9 100644 --- a/Mage.Sets/src/mage/cards/a/AlleyEvasion.java +++ b/Mage.Sets/src/mage/cards/a/AlleyEvasion.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AlleyGrifters.java b/Mage.Sets/src/mage/cards/a/AlleyGrifters.java index 76a5e733472..cace05e799d 100644 --- a/Mage.Sets/src/mage/cards/a/AlleyGrifters.java +++ b/Mage.Sets/src/mage/cards/a/AlleyGrifters.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesBlockedByCreatureTriggeredAbility; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AlleyStrangler.java b/Mage.Sets/src/mage/cards/a/AlleyStrangler.java index ffcf8b5cbfc..fcc6105d1b3 100644 --- a/Mage.Sets/src/mage/cards/a/AlleyStrangler.java +++ b/Mage.Sets/src/mage/cards/a/AlleyStrangler.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.MenaceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AllianceOfArms.java b/Mage.Sets/src/mage/cards/a/AllianceOfArms.java index 3263ea37668..fd6f4ada109 100644 --- a/Mage.Sets/src/mage/cards/a/AllianceOfArms.java +++ b/Mage.Sets/src/mage/cards/a/AllianceOfArms.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.Objects; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.mana.GenericManaCost; @@ -44,6 +42,9 @@ import mage.game.permanent.token.SoldierToken; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.Objects; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AlliedReinforcements.java b/Mage.Sets/src/mage/cards/a/AlliedReinforcements.java index 88b19b0aabd..721b99c158f 100644 --- a/Mage.Sets/src/mage/cards/a/AlliedReinforcements.java +++ b/Mage.Sets/src/mage/cards/a/AlliedReinforcements.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AlliedStrategies.java b/Mage.Sets/src/mage/cards/a/AlliedStrategies.java index 7d1009bad95..b0e00ea62de 100644 --- a/Mage.Sets/src/mage/cards/a/AlliedStrategies.java +++ b/Mage.Sets/src/mage/cards/a/AlliedStrategies.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.dynamicvalue.common.DomainValue; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author FenrisulfrX diff --git a/Mage.Sets/src/mage/cards/a/AllosaurusRider.java b/Mage.Sets/src/mage/cards/a/AllosaurusRider.java index a80ad4a3202..2d417bce3e5 100644 --- a/Mage.Sets/src/mage/cards/a/AllosaurusRider.java +++ b/Mage.Sets/src/mage/cards/a/AllosaurusRider.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -47,6 +46,8 @@ import mage.filter.common.FilterControlledLandPermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AlloyGolem.java b/Mage.Sets/src/mage/cards/a/AlloyGolem.java index 2f2ec6e3d62..cdf90fad7a5 100644 --- a/Mage.Sets/src/mage/cards/a/AlloyGolem.java +++ b/Mage.Sets/src/mage/cards/a/AlloyGolem.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.effects.common.continuous.BecomesColorSourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AlloyMyr.java b/Mage.Sets/src/mage/cards/a/AlloyMyr.java index 12bf244ba9a..8814502a493 100644 --- a/Mage.Sets/src/mage/cards/a/AlloyMyr.java +++ b/Mage.Sets/src/mage/cards/a/AlloyMyr.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.mana.AnyColorManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AlluringScent.java b/Mage.Sets/src/mage/cards/a/AlluringScent.java index 2beb557da29..e8845025cb2 100644 --- a/Mage.Sets/src/mage/cards/a/AlluringScent.java +++ b/Mage.Sets/src/mage/cards/a/AlluringScent.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.combat.MustBeBlockedByAllTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/a/AlluringSiren.java b/Mage.Sets/src/mage/cards/a/AlluringSiren.java index a6390d4ac03..b8c3bf9b14e 100644 --- a/Mage.Sets/src/mage/cards/a/AlluringSiren.java +++ b/Mage.Sets/src/mage/cards/a/AlluringSiren.java @@ -28,11 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,10 +35,16 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.combat.AttacksIfAbleTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AllyEncampment.java b/Mage.Sets/src/mage/cards/a/AllyEncampment.java index 2a09ddcbe2d..2b6d2567892 100644 --- a/Mage.Sets/src/mage/cards/a/AllyEncampment.java +++ b/Mage.Sets/src/mage/cards/a/AllyEncampment.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -46,6 +45,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Alms.java b/Mage.Sets/src/mage/cards/a/Alms.java index 05c35d804cd..1d2e692d8f3 100644 --- a/Mage.Sets/src/mage/cards/a/Alms.java +++ b/Mage.Sets/src/mage/cards/a/Alms.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.ExileTopCardOfGraveyardCost; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AlmsBeast.java b/Mage.Sets/src/mage/cards/a/AlmsBeast.java index 06a6cfa1667..dc667a562c7 100644 --- a/Mage.Sets/src/mage/cards/a/AlmsBeast.java +++ b/Mage.Sets/src/mage/cards/a/AlmsBeast.java @@ -27,21 +27,22 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.BlockedByIdPredicate; import mage.filter.predicate.permanent.BlockingAttackerIdPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AlmsOfTheVein.java b/Mage.Sets/src/mage/cards/a/AlmsOfTheVein.java index 5384e7c83de..f69df845dbd 100644 --- a/Mage.Sets/src/mage/cards/a/AlmsOfTheVein.java +++ b/Mage.Sets/src/mage/cards/a/AlmsOfTheVein.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.GainLifeEffect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AlphaAuthority.java b/Mage.Sets/src/mage/cards/a/AlphaAuthority.java index eb011deb6a4..82db9980b4a 100644 --- a/Mage.Sets/src/mage/cards/a/AlphaAuthority.java +++ b/Mage.Sets/src/mage/cards/a/AlphaAuthority.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; @@ -38,19 +37,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AlphaBrawl.java b/Mage.Sets/src/mage/cards/a/AlphaBrawl.java index 5a349fbccad..ec02398b0e8 100644 --- a/Mage.Sets/src/mage/cards/a/AlphaBrawl.java +++ b/Mage.Sets/src/mage/cards/a/AlphaBrawl.java @@ -27,11 +27,11 @@ */ package mage.cards.a; -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/a/AlphaKavu.java b/Mage.Sets/src/mage/cards/a/AlphaKavu.java index 3edb61d52bf..d039a685290 100644 --- a/Mage.Sets/src/mage/cards/a/AlphaKavu.java +++ b/Mage.Sets/src/mage/cards/a/AlphaKavu.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AlphaMyr.java b/Mage.Sets/src/mage/cards/a/AlphaMyr.java index bb07a7513b4..86d9aa080f9 100644 --- a/Mage.Sets/src/mage/cards/a/AlphaMyr.java +++ b/Mage.Sets/src/mage/cards/a/AlphaMyr.java @@ -27,11 +27,12 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AlphaStatus.java b/Mage.Sets/src/mage/cards/a/AlphaStatus.java index 40e1b2c1513..673ca8768cb 100644 --- a/Mage.Sets/src/mage/cards/a/AlphaStatus.java +++ b/Mage.Sets/src/mage/cards/a/AlphaStatus.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -46,7 +45,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; -import mage.util.CardUtil; + +import java.util.UUID; /** * @@ -91,7 +91,7 @@ class AlphaStatusDynamicValue implements DynamicValue { if (enchanted != null) { for (Permanent permanent : game.getBattlefield().getAllActivePermanents(new FilterCreaturePermanent(), game)) { if (!permanent.getId().equals(enchanted.getId())) { - if (CardUtil.shareSubtypes(enchanted, permanent, game)) { + if (enchanted.shareSubtypes(permanent, game)) { xValue += 2; } } diff --git a/Mage.Sets/src/mage/cards/a/AlphaTyrranax.java b/Mage.Sets/src/mage/cards/a/AlphaTyrranax.java index b67bcc35ee5..d0dbc294de0 100644 --- a/Mage.Sets/src/mage/cards/a/AlphaTyrranax.java +++ b/Mage.Sets/src/mage/cards/a/AlphaTyrranax.java @@ -28,10 +28,10 @@ package mage.cards.a; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/a/AlpineGrizzly.java b/Mage.Sets/src/mage/cards/a/AlpineGrizzly.java index b1a6fcef2a8..59ac904f089 100644 --- a/Mage.Sets/src/mage/cards/a/AlpineGrizzly.java +++ b/Mage.Sets/src/mage/cards/a/AlpineGrizzly.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AltacBloodseeker.java b/Mage.Sets/src/mage/cards/a/AltacBloodseeker.java index 51b9eb011ad..a64e1cc5d88 100644 --- a/Mage.Sets/src/mage/cards/a/AltacBloodseeker.java +++ b/Mage.Sets/src/mage/cards/a/AltacBloodseeker.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; @@ -44,6 +43,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/a/AltarGolem.java b/Mage.Sets/src/mage/cards/a/AltarGolem.java index 3e606969024..615be6a9532 100644 --- a/Mage.Sets/src/mage/cards/a/AltarGolem.java +++ b/Mage.Sets/src/mage/cards/a/AltarGolem.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -49,6 +48,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AltarOfBone.java b/Mage.Sets/src/mage/cards/a/AltarOfBone.java index 92fed197605..3b2b6b8f2f2 100644 --- a/Mage.Sets/src/mage/cards/a/AltarOfBone.java +++ b/Mage.Sets/src/mage/cards/a/AltarOfBone.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AltarOfDementia.java b/Mage.Sets/src/mage/cards/a/AltarOfDementia.java index a4467f071e6..c3f12e3857c 100644 --- a/Mage.Sets/src/mage/cards/a/AltarOfDementia.java +++ b/Mage.Sets/src/mage/cards/a/AltarOfDementia.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.Cost; @@ -37,6 +34,7 @@ import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; @@ -46,6 +44,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AltarOfShadows.java b/Mage.Sets/src/mage/cards/a/AltarOfShadows.java index 75f44ab407d..b4cc44ce6fc 100644 --- a/Mage.Sets/src/mage/cards/a/AltarOfShadows.java +++ b/Mage.Sets/src/mage/cards/a/AltarOfShadows.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.BeginningOfPreCombatMainTriggeredAbility; @@ -49,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/a/AltarOfTheBrood.java b/Mage.Sets/src/mage/cards/a/AltarOfTheBrood.java index 4a517c27df9..0e42f3b6d34 100644 --- a/Mage.Sets/src/mage/cards/a/AltarOfTheBrood.java +++ b/Mage.Sets/src/mage/cards/a/AltarOfTheBrood.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AltarOfTheLost.java b/Mage.Sets/src/mage/cards/a/AltarOfTheLost.java index 52dcd8fa559..285f1b64c7c 100644 --- a/Mage.Sets/src/mage/cards/a/AltarOfTheLost.java +++ b/Mage.Sets/src/mage/cards/a/AltarOfTheLost.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.ConditionalMana; import mage.MageObject; import mage.Mana; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.stack.Spell; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/a/AltarsLight.java b/Mage.Sets/src/mage/cards/a/AltarsLight.java index fa57addaf61..e4cb45bbd80 100644 --- a/Mage.Sets/src/mage/cards/a/AltarsLight.java +++ b/Mage.Sets/src/mage/cards/a/AltarsLight.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AltarsReap.java b/Mage.Sets/src/mage/cards/a/AltarsReap.java index 35c9c964709..2b44a7c1074 100644 --- a/Mage.Sets/src/mage/cards/a/AltarsReap.java +++ b/Mage.Sets/src/mage/cards/a/AltarsReap.java @@ -27,15 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/AlteredEgo.java b/Mage.Sets/src/mage/cards/a/AlteredEgo.java index 427988e3b7d..5b47f126a83 100644 --- a/Mage.Sets/src/mage/cards/a/AlteredEgo.java +++ b/Mage.Sets/src/mage/cards/a/AlteredEgo.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CantBeCounteredAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Aluren.java b/Mage.Sets/src/mage/cards/a/Aluren.java index 68730e3ed55..0dc6fe48978 100644 --- a/Mage.Sets/src/mage/cards/a/Aluren.java +++ b/Mage.Sets/src/mage/cards/a/Aluren.java @@ -27,8 +27,8 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.SourceIsSpellCondition; import mage.abilities.costs.AlternativeCostSourceAbility; @@ -37,18 +37,14 @@ import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.CastAsThoughItHadFlashAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * 10/4/2004 The mana cost of the creatures being cast is still the stated cost on the card, * even though you did not pay the cost. @@ -67,7 +63,7 @@ public class Aluren extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("creature cards with converted mana cost 3 or less"); static { - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public Aluren(UUID ownerId, CardSetInfo setInfo) { @@ -99,10 +95,10 @@ class AlurenRuleEffect extends ContinuousEffectImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("creature cards with converted mana cost 3 or less"); static { - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } - static AlternativeCostSourceAbility alternativeCastingCostAbility = new AlternativeCostSourceAbility(null, SourceIsSpellCondition.instance, null, filter, true); + private static AlternativeCostSourceAbility alternativeCastingCostAbility = new AlternativeCostSourceAbility(null, SourceIsSpellCondition.instance, null, filter, true); public AlurenRuleEffect() { super(Duration.WhileOnBattlefield, Outcome.Detriment); diff --git a/Mage.Sets/src/mage/cards/a/AlwaysWatching.java b/Mage.Sets/src/mage/cards/a/AlwaysWatching.java index 419e1c8d85a..ddc90eecc66 100644 --- a/Mage.Sets/src/mage/cards/a/AlwaysWatching.java +++ b/Mage.Sets/src/mage/cards/a/AlwaysWatching.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -43,6 +42,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.TokenPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AmassTheComponents.java b/Mage.Sets/src/mage/cards/a/AmassTheComponents.java index 48944049f86..a52a01b8f65 100644 --- a/Mage.Sets/src/mage/cards/a/AmassTheComponents.java +++ b/Mage.Sets/src/mage/cards/a/AmassTheComponents.java @@ -27,20 +27,21 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/AmbassadorLaquatus.java b/Mage.Sets/src/mage/cards/a/AmbassadorLaquatus.java index 4716bc72997..8930983a452 100644 --- a/Mage.Sets/src/mage/cards/a/AmbassadorLaquatus.java +++ b/Mage.Sets/src/mage/cards/a/AmbassadorLaquatus.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +34,13 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki @@ -48,7 +49,7 @@ public class AmbassadorLaquatus extends CardImpl { public AmbassadorLaquatus(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Merfolk"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/a/AmbassadorOak.java b/Mage.Sets/src/mage/cards/a/AmbassadorOak.java index 71bd45bb08c..85a453e1d00 100644 --- a/Mage.Sets/src/mage/cards/a/AmbassadorOak.java +++ b/Mage.Sets/src/mage/cards/a/AmbassadorOak.java @@ -27,16 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.ElfToken; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AmberPrison.java b/Mage.Sets/src/mage/cards/a/AmberPrison.java index bb3f0c36dd4..a88eec9950e 100644 --- a/Mage.Sets/src/mage/cards/a/AmberPrison.java +++ b/Mage.Sets/src/mage/cards/a/AmberPrison.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SkipUntapOptionalAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/a/AmbitionsCost.java b/Mage.Sets/src/mage/cards/a/AmbitionsCost.java index c5117fbd584..01df6fc8e3e 100644 --- a/Mage.Sets/src/mage/cards/a/AmbitionsCost.java +++ b/Mage.Sets/src/mage/cards/a/AmbitionsCost.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AmbitiousAetherborn.java b/Mage.Sets/src/mage/cards/a/AmbitiousAetherborn.java index 77421d719e2..522c09014f1 100644 --- a/Mage.Sets/src/mage/cards/a/AmbitiousAetherborn.java +++ b/Mage.Sets/src/mage/cards/a/AmbitiousAetherborn.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FabricateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AmbuscadeShaman.java b/Mage.Sets/src/mage/cards/a/AmbuscadeShaman.java index cfa80d4e857..c07289236a5 100644 --- a/Mage.Sets/src/mage/cards/a/AmbuscadeShaman.java +++ b/Mage.Sets/src/mage/cards/a/AmbuscadeShaman.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -43,6 +42,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Ambush.java b/Mage.Sets/src/mage/cards/a/Ambush.java index 447a167d156..78eb28efb95 100644 --- a/Mage.Sets/src/mage/cards/a/Ambush.java +++ b/Mage.Sets/src/mage/cards/a/Ambush.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterBlockingCreature; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AmbushCommander.java b/Mage.Sets/src/mage/cards/a/AmbushCommander.java index b96721776a4..da00e062d6e 100644 --- a/Mage.Sets/src/mage/cards/a/AmbushCommander.java +++ b/Mage.Sets/src/mage/cards/a/AmbushCommander.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -50,6 +49,8 @@ import mage.game.permanent.token.Token; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AmbushKrotiq.java b/Mage.Sets/src/mage/cards/a/AmbushKrotiq.java index 7fdcb4f783d..b2e835835e6 100644 --- a/Mage.Sets/src/mage/cards/a/AmbushKrotiq.java +++ b/Mage.Sets/src/mage/cards/a/AmbushKrotiq.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.ReturnToHandChosenControlledPermanentEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AmbushParty.java b/Mage.Sets/src/mage/cards/a/AmbushParty.java index 83ebe0b1b15..41fde1137be 100644 --- a/Mage.Sets/src/mage/cards/a/AmbushParty.java +++ b/Mage.Sets/src/mage/cards/a/AmbushParty.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AmbushViper.java b/Mage.Sets/src/mage/cards/a/AmbushViper.java index e22a821d200..4423e962639 100644 --- a/Mage.Sets/src/mage/cards/a/AmbushViper.java +++ b/Mage.Sets/src/mage/cards/a/AmbushViper.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; -import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.DeathtouchAbility; +import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/Amnesia.java b/Mage.Sets/src/mage/cards/a/Amnesia.java index 70e53153fde..88f68c5de7d 100644 --- a/Mage.Sets/src/mage/cards/a/Amnesia.java +++ b/Mage.Sets/src/mage/cards/a/Amnesia.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -41,6 +39,9 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.Set; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AmoeboidChangeling.java b/Mage.Sets/src/mage/cards/a/AmoeboidChangeling.java index 5548892b53c..a8d75ee5be4 100644 --- a/Mage.Sets/src/mage/cards/a/AmoeboidChangeling.java +++ b/Mage.Sets/src/mage/cards/a/AmoeboidChangeling.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,13 +36,11 @@ import mage.abilities.effects.common.continuous.LoseAllCreatureTypesTargetEffect import mage.abilities.keyword.ChangelingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author EvilGeek diff --git a/Mage.Sets/src/mage/cards/a/Amok.java b/Mage.Sets/src/mage/cards/a/Amok.java index 3c94c5b26ea..cd37cabc291 100644 --- a/Mage.Sets/src/mage/cards/a/Amok.java +++ b/Mage.Sets/src/mage/cards/a/Amok.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardCardCost; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AmphinCutthroat.java b/Mage.Sets/src/mage/cards/a/AmphinCutthroat.java index f54c818a4c1..feea63dd51a 100644 --- a/Mage.Sets/src/mage/cards/a/AmphinCutthroat.java +++ b/Mage.Sets/src/mage/cards/a/AmphinCutthroat.java @@ -27,11 +27,12 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AmphinPathmage.java b/Mage.Sets/src/mage/cards/a/AmphinPathmage.java index 25fb0d658c7..63662aa26b2 100644 --- a/Mage.Sets/src/mage/cards/a/AmphinPathmage.java +++ b/Mage.Sets/src/mage/cards/a/AmphinPathmage.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AmprynTactician.java b/Mage.Sets/src/mage/cards/a/AmprynTactician.java index 3cb54bde981..b0be9ef3550 100644 --- a/Mage.Sets/src/mage/cards/a/AmprynTactician.java +++ b/Mage.Sets/src/mage/cards/a/AmprynTactician.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author Wehk diff --git a/Mage.Sets/src/mage/cards/a/AmrouKithkin.java b/Mage.Sets/src/mage/cards/a/AmrouKithkin.java index 0e53d4000a8..4aed558c559 100644 --- a/Mage.Sets/src/mage/cards/a/AmrouKithkin.java +++ b/Mage.Sets/src/mage/cards/a/AmrouKithkin.java @@ -27,18 +27,19 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -48,7 +49,7 @@ public class AmrouKithkin extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 3 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); } public AmrouKithkin(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/a/AmrouScout.java b/Mage.Sets/src/mage/cards/a/AmrouScout.java index 2200427f196..9fa6bc606fa 100644 --- a/Mage.Sets/src/mage/cards/a/AmrouScout.java +++ b/Mage.Sets/src/mage/cards/a/AmrouScout.java @@ -27,23 +27,23 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +53,7 @@ public class AmrouScout extends CardImpl { private static final FilterPermanentCard filter = new FilterPermanentCard("Rebel permanent card with converted mana cost 3 or less"); static { filter.add(new SubtypePredicate("Rebel")); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public AmrouScout(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/a/AmrouSeekers.java b/Mage.Sets/src/mage/cards/a/AmrouSeekers.java index aef06c66383..ccc0782c064 100644 --- a/Mage.Sets/src/mage/cards/a/AmrouSeekers.java +++ b/Mage.Sets/src/mage/cards/a/AmrouSeekers.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleEvasionAbility; @@ -41,6 +40,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Amugaba.java b/Mage.Sets/src/mage/cards/a/Amugaba.java index ebd74690c83..7a4b135b848 100644 --- a/Mage.Sets/src/mage/cards/a/Amugaba.java +++ b/Mage.Sets/src/mage/cards/a/Amugaba.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/a/AmuletOfKroog.java b/Mage.Sets/src/mage/cards/a/AmuletOfKroog.java index 2fa01e72415..d60c23e709d 100644 --- a/Mage.Sets/src/mage/cards/a/AmuletOfKroog.java +++ b/Mage.Sets/src/mage/cards/a/AmuletOfKroog.java @@ -27,19 +27,20 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.PreventDamageToTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; -import mage.abilities.costs.mana.GenericManaCost; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/a/AmuletOfVigor.java b/Mage.Sets/src/mage/cards/a/AmuletOfVigor.java index 51cab4b2908..c4cf186d561 100644 --- a/Mage.Sets/src/mage/cards/a/AmuletOfVigor.java +++ b/Mage.Sets/src/mage/cards/a/AmuletOfVigor.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.UntapTargetEffect; @@ -41,6 +40,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/AnHavvaConstable.java b/Mage.Sets/src/mage/cards/a/AnHavvaConstable.java index cc5122977b5..7b4f6151f0f 100644 --- a/Mage.Sets/src/mage/cards/a/AnHavvaConstable.java +++ b/Mage.Sets/src/mage/cards/a/AnHavvaConstable.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.ObjectColor; @@ -36,17 +35,14 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AnHavvaInn.java b/Mage.Sets/src/mage/cards/a/AnHavvaInn.java index 5e957975c2f..d2ef47929d3 100644 --- a/Mage.Sets/src/mage/cards/a/AnHavvaInn.java +++ b/Mage.Sets/src/mage/cards/a/AnHavvaInn.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -40,6 +39,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AnHavvaTownship.java b/Mage.Sets/src/mage/cards/a/AnHavvaTownship.java index 8257f30751f..bf2a1d30ce8 100644 --- a/Mage.Sets/src/mage/cards/a/AnHavvaTownship.java +++ b/Mage.Sets/src/mage/cards/a/AnHavvaTownship.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/a/AnaBattlemage.java b/Mage.Sets/src/mage/cards/a/AnaBattlemage.java index 01474e8388e..1052a275103 100644 --- a/Mage.Sets/src/mage/cards/a/AnaBattlemage.java +++ b/Mage.Sets/src/mage/cards/a/AnaBattlemage.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbility; @@ -50,6 +49,8 @@ import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AnaDisciple.java b/Mage.Sets/src/mage/cards/a/AnaDisciple.java index e4088706114..3d6fb5b268e 100644 --- a/Mage.Sets/src/mage/cards/a/AnaDisciple.java +++ b/Mage.Sets/src/mage/cards/a/AnaDisciple.java @@ -28,9 +28,6 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,8 +38,14 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/AnabaAncestor.java b/Mage.Sets/src/mage/cards/a/AnabaAncestor.java index 22f60075165..a7a1fc39739 100644 --- a/Mage.Sets/src/mage/cards/a/AnabaAncestor.java +++ b/Mage.Sets/src/mage/cards/a/AnabaAncestor.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AnabaBodyguard.java b/Mage.Sets/src/mage/cards/a/AnabaBodyguard.java index 30686348e9e..fb78c171057 100644 --- a/Mage.Sets/src/mage/cards/a/AnabaBodyguard.java +++ b/Mage.Sets/src/mage/cards/a/AnabaBodyguard.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AnabaShaman.java b/Mage.Sets/src/mage/cards/a/AnabaShaman.java index b33182e4f3e..bcf05c418e4 100644 --- a/Mage.Sets/src/mage/cards/a/AnabaShaman.java +++ b/Mage.Sets/src/mage/cards/a/AnabaShaman.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AnabaSpiritCrafter.java b/Mage.Sets/src/mage/cards/a/AnabaSpiritCrafter.java index dafdf960d8c..5840ddbd16b 100644 --- a/Mage.Sets/src/mage/cards/a/AnabaSpiritCrafter.java +++ b/Mage.Sets/src/mage/cards/a/AnabaSpiritCrafter.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/Anaconda.java b/Mage.Sets/src/mage/cards/a/Anaconda.java index 3b009ab6f6f..e9dfd099490 100644 --- a/Mage.Sets/src/mage/cards/a/Anaconda.java +++ b/Mage.Sets/src/mage/cards/a/Anaconda.java @@ -28,12 +28,13 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.SwampwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AnafenzaKinTreeSpirit.java b/Mage.Sets/src/mage/cards/a/AnafenzaKinTreeSpirit.java index b8b9bddeb42..8e1f85e5127 100644 --- a/Mage.Sets/src/mage/cards/a/AnafenzaKinTreeSpirit.java +++ b/Mage.Sets/src/mage/cards/a/AnafenzaKinTreeSpirit.java @@ -27,19 +27,21 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.effects.keyword.BolsterEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.TokenPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -55,7 +57,7 @@ public class AnafenzaKinTreeSpirit extends CardImpl { public AnafenzaKinTreeSpirit(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.subtype.add("Soldier"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/a/AnafenzaTheForemost.java b/Mage.Sets/src/mage/cards/a/AnafenzaTheForemost.java index 8a508658420..8af34fb2443 100644 --- a/Mage.Sets/src/mage/cards/a/AnafenzaTheForemost.java +++ b/Mage.Sets/src/mage/cards/a/AnafenzaTheForemost.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -37,10 +36,7 @@ import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; @@ -52,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -67,7 +65,7 @@ public class AnafenzaTheForemost extends CardImpl { public AnafenzaTheForemost(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{B}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/a/AnakinSkywalker.java b/Mage.Sets/src/mage/cards/a/AnakinSkywalker.java index c8719c61c8c..955aa645bf8 100644 --- a/Mage.Sets/src/mage/cards/a/AnakinSkywalker.java +++ b/Mage.Sets/src/mage/cards/a/AnakinSkywalker.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; @@ -39,13 +38,10 @@ import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.TransformAbility; -import mage.cards.d.DarthVader; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.cards.d.DarthVader; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; @@ -56,6 +52,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo @@ -70,7 +68,7 @@ public class AnakinSkywalker extends CardImpl { public AnakinSkywalker(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Sith"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/a/Anarchist.java b/Mage.Sets/src/mage/cards/a/Anarchist.java index d5dc791811d..e6c79933222 100644 --- a/Mage.Sets/src/mage/cards/a/Anarchist.java +++ b/Mage.Sets/src/mage/cards/a/Anarchist.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,6 +38,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Anarchy.java b/Mage.Sets/src/mage/cards/a/Anarchy.java index ce5418c8d70..735a47b806d 100644 --- a/Mage.Sets/src/mage/cards/a/Anarchy.java +++ b/Mage.Sets/src/mage/cards/a/Anarchy.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Anathemancer.java b/Mage.Sets/src/mage/cards/a/Anathemancer.java index d677b6249c3..fcf3cee153d 100644 --- a/Mage.Sets/src/mage/cards/a/Anathemancer.java +++ b/Mage.Sets/src/mage/cards/a/Anathemancer.java @@ -38,6 +38,7 @@ import mage.abilities.keyword.UnearthAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SupertypePredicate; @@ -88,7 +89,7 @@ class AnathemancerCount implements DynamicValue { } FilterLandPermanent filter = new FilterLandPermanent(); - filter.add(Predicates.not(new SupertypePredicate("Basic"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); filter.add(new ControllerIdPredicate(sourceAbility.getFirstTarget())); return game.getBattlefield().count(filter, sourceAbility.getSourceId(), sourceAbility.getControllerId(), game); diff --git a/Mage.Sets/src/mage/cards/a/Anavolver.java b/Mage.Sets/src/mage/cards/a/Anavolver.java index af12d667822..6d830c6d479 100644 --- a/Mage.Sets/src/mage/cards/a/Anavolver.java +++ b/Mage.Sets/src/mage/cards/a/Anavolver.java @@ -28,10 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -45,8 +41,13 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/AnaxAndCymede.java b/Mage.Sets/src/mage/cards/a/AnaxAndCymede.java index e06d422453c..57ca70914d0 100644 --- a/Mage.Sets/src/mage/cards/a/AnaxAndCymede.java +++ b/Mage.Sets/src/mage/cards/a/AnaxAndCymede.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.Effect; @@ -41,8 +40,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +55,7 @@ public class AnaxAndCymede extends CardImpl { public AnaxAndCymede(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/a/AncestorsChosen.java b/Mage.Sets/src/mage/cards/a/AncestorsChosen.java index 85a109f5fca..e84ef24c418 100644 --- a/Mage.Sets/src/mage/cards/a/AncestorsChosen.java +++ b/Mage.Sets/src/mage/cards/a/AncestorsChosen.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; @@ -36,6 +34,9 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AncestorsProphet.java b/Mage.Sets/src/mage/cards/a/AncestorsProphet.java index 9be7d57a005..dce451a6e0d 100644 --- a/Mage.Sets/src/mage/cards/a/AncestorsProphet.java +++ b/Mage.Sets/src/mage/cards/a/AncestorsProphet.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; @@ -42,6 +41,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Wehk diff --git a/Mage.Sets/src/mage/cards/a/AncestralKnowledge.java b/Mage.Sets/src/mage/cards/a/AncestralKnowledge.java index 4d35a521c27..0025c3a0c9f 100644 --- a/Mage.Sets/src/mage/cards/a/AncestralKnowledge.java +++ b/Mage.Sets/src/mage/cards/a/AncestralKnowledge.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.LeavesBattlefieldTriggeredAbility; @@ -35,11 +34,7 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ShuffleLibrarySourceEffect; import mage.abilities.keyword.CumulativeUpkeepAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -48,6 +43,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AncestralMask.java b/Mage.Sets/src/mage/cards/a/AncestralMask.java index 9bd3ce1dab1..b03b8a674f7 100644 --- a/Mage.Sets/src/mage/cards/a/AncestralMask.java +++ b/Mage.Sets/src/mage/cards/a/AncestralMask.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.AttachEffect; @@ -44,6 +43,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AncestralMemories.java b/Mage.Sets/src/mage/cards/a/AncestralMemories.java index 5041fb9b37c..443b02c77d7 100644 --- a/Mage.Sets/src/mage/cards/a/AncestralMemories.java +++ b/Mage.Sets/src/mage/cards/a/AncestralMemories.java @@ -27,15 +27,9 @@ */ package mage.cards.a; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -44,6 +38,9 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.List; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/a/AncestralRecall.java b/Mage.Sets/src/mage/cards/a/AncestralRecall.java index cdaeecd516d..89a43a94916 100644 --- a/Mage.Sets/src/mage/cards/a/AncestralRecall.java +++ b/Mage.Sets/src/mage/cards/a/AncestralRecall.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AncestralStatue.java b/Mage.Sets/src/mage/cards/a/AncestralStatue.java index 8432f9a71f5..d0baef62de4 100644 --- a/Mage.Sets/src/mage/cards/a/AncestralStatue.java +++ b/Mage.Sets/src/mage/cards/a/AncestralStatue.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.ReturnToHandChosenControlledPermanentEffect; @@ -38,6 +37,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AncestralTribute.java b/Mage.Sets/src/mage/cards/a/AncestralTribute.java index 5510bac7b98..c4c8feda14b 100644 --- a/Mage.Sets/src/mage/cards/a/AncestralTribute.java +++ b/Mage.Sets/src/mage/cards/a/AncestralTribute.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; import mage.abilities.effects.common.GainLifeEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.TimingRule; import mage.filter.FilterCard; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/a/AncestralVengeance.java b/Mage.Sets/src/mage/cards/a/AncestralVengeance.java index 9b37cb8bf28..9ed2d3962e4 100644 --- a/Mage.Sets/src/mage/cards/a/AncestralVengeance.java +++ b/Mage.Sets/src/mage/cards/a/AncestralVengeance.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -46,6 +45,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AncestralVision.java b/Mage.Sets/src/mage/cards/a/AncestralVision.java index fd5902fd5c7..8ef8891a138 100644 --- a/Mage.Sets/src/mage/cards/a/AncestralVision.java +++ b/Mage.Sets/src/mage/cards/a/AncestralVision.java @@ -27,15 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.keyword.SuspendAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AnchorToTheAether.java b/Mage.Sets/src/mage/cards/a/AnchorToTheAether.java index 2c8acf4779e..6284cf00ec3 100644 --- a/Mage.Sets/src/mage/cards/a/AnchorToTheAether.java +++ b/Mage.Sets/src/mage/cards/a/AnchorToTheAether.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AncientAmphitheater.java b/Mage.Sets/src/mage/cards/a/AncientAmphitheater.java index ff683a6a7ff..1497719a095 100644 --- a/Mage.Sets/src/mage/cards/a/AncientAmphitheater.java +++ b/Mage.Sets/src/mage/cards/a/AncientAmphitheater.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.common.TapSourceUnlessPaysEffect; @@ -36,10 +34,13 @@ import mage.abilities.mana.RedManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AncientCarp.java b/Mage.Sets/src/mage/cards/a/AncientCarp.java index d91de3ccaeb..0f571249f65 100644 --- a/Mage.Sets/src/mage/cards/a/AncientCarp.java +++ b/Mage.Sets/src/mage/cards/a/AncientCarp.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AncientCrab.java b/Mage.Sets/src/mage/cards/a/AncientCrab.java index 4becc52b0b6..232bda2aabf 100644 --- a/Mage.Sets/src/mage/cards/a/AncientCrab.java +++ b/Mage.Sets/src/mage/cards/a/AncientCrab.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AncientCraving.java b/Mage.Sets/src/mage/cards/a/AncientCraving.java index 8a9d54287bf..32168269d42 100644 --- a/Mage.Sets/src/mage/cards/a/AncientCraving.java +++ b/Mage.Sets/src/mage/cards/a/AncientCraving.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/a/AncientDen.java b/Mage.Sets/src/mage/cards/a/AncientDen.java index 36517bc2db2..087dbbe1350 100644 --- a/Mage.Sets/src/mage/cards/a/AncientDen.java +++ b/Mage.Sets/src/mage/cards/a/AncientDen.java @@ -28,11 +28,12 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AncientExcavation.java b/Mage.Sets/src/mage/cards/a/AncientExcavation.java index 9832cb14cb5..c9ffa8c8dde 100644 --- a/Mage.Sets/src/mage/cards/a/AncientExcavation.java +++ b/Mage.Sets/src/mage/cards/a/AncientExcavation.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.DynamicValue; @@ -41,6 +40,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/a/AncientGrudge.java b/Mage.Sets/src/mage/cards/a/AncientGrudge.java index 9068dfe957a..2bce3d5c0af 100644 --- a/Mage.Sets/src/mage/cards/a/AncientGrudge.java +++ b/Mage.Sets/src/mage/cards/a/AncientGrudge.java @@ -27,12 +27,12 @@ */ package mage.cards.a; -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TimingRule; import mage.target.common.TargetArtifactPermanent; diff --git a/Mage.Sets/src/mage/cards/a/AncientHellkite.java b/Mage.Sets/src/mage/cards/a/AncientHellkite.java index ad14ae3eb78..c19414f28a1 100644 --- a/Mage.Sets/src/mage/cards/a/AncientHellkite.java +++ b/Mage.Sets/src/mage/cards/a/AncientHellkite.java @@ -28,10 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.ActivatedAbilityImpl; @@ -42,12 +38,17 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AncientHolocron.java b/Mage.Sets/src/mage/cards/a/AncientHolocron.java index cc7a259b6b3..8a90226dbfd 100644 --- a/Mage.Sets/src/mage/cards/a/AncientHolocron.java +++ b/Mage.Sets/src/mage/cards/a/AncientHolocron.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.AddManaOfAnyColorEffect; import mage.abilities.mana.ConditionalAnyColorManaAbility; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.MulticoloredPredicate; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AncientHydra.java b/Mage.Sets/src/mage/cards/a/AncientHydra.java index a8c1a631fc9..b0a2bb759f9 100644 --- a/Mage.Sets/src/mage/cards/a/AncientHydra.java +++ b/Mage.Sets/src/mage/cards/a/AncientHydra.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AncientKavu.java b/Mage.Sets/src/mage/cards/a/AncientKavu.java index 80d3e304047..7b4bd19e6bd 100644 --- a/Mage.Sets/src/mage/cards/a/AncientKavu.java +++ b/Mage.Sets/src/mage/cards/a/AncientKavu.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AncientOfTheEquinox.java b/Mage.Sets/src/mage/cards/a/AncientOfTheEquinox.java index 40a98196583..09e3e695ff3 100644 --- a/Mage.Sets/src/mage/cards/a/AncientOfTheEquinox.java +++ b/Mage.Sets/src/mage/cards/a/AncientOfTheEquinox.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HexproofAbility; import mage.abilities.keyword.TrampleAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AncientRunes.java b/Mage.Sets/src/mage/cards/a/AncientRunes.java index 7ae003fdd6b..f15e88391b9 100644 --- a/Mage.Sets/src/mage/cards/a/AncientRunes.java +++ b/Mage.Sets/src/mage/cards/a/AncientRunes.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterControlledArtifactPermanent; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AncientSilverback.java b/Mage.Sets/src/mage/cards/a/AncientSilverback.java index aa469c7eaa8..bad154d04c3 100644 --- a/Mage.Sets/src/mage/cards/a/AncientSilverback.java +++ b/Mage.Sets/src/mage/cards/a/AncientSilverback.java @@ -27,15 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.RegenerateSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AncientSpider.java b/Mage.Sets/src/mage/cards/a/AncientSpider.java index 042c5466c91..6d5c7040555 100644 --- a/Mage.Sets/src/mage/cards/a/AncientSpider.java +++ b/Mage.Sets/src/mage/cards/a/AncientSpider.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.ReachAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AncientSpring.java b/Mage.Sets/src/mage/cards/a/AncientSpring.java index 2d152d6c544..903f23e835f 100644 --- a/Mage.Sets/src/mage/cards/a/AncientSpring.java +++ b/Mage.Sets/src/mage/cards/a/AncientSpring.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AncientStirrings.java b/Mage.Sets/src/mage/cards/a/AncientStirrings.java index 7c5ac0cdcc6..048abd3e05a 100644 --- a/Mage.Sets/src/mage/cards/a/AncientStirrings.java +++ b/Mage.Sets/src/mage/cards/a/AncientStirrings.java @@ -28,16 +28,16 @@ package mage.cards.a; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ColorlessPredicate; import java.util.UUID; -import mage.constants.Zone; /** * @author LevelX diff --git a/Mage.Sets/src/mage/cards/a/AncientTomb.java b/Mage.Sets/src/mage/cards/a/AncientTomb.java index e139dffed54..f013bd9357e 100644 --- a/Mage.Sets/src/mage/cards/a/AncientTomb.java +++ b/Mage.Sets/src/mage/cards/a/AncientTomb.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -37,8 +34,11 @@ import mage.abilities.effects.common.DamageControllerEffect; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/AndraditeLeech.java b/Mage.Sets/src/mage/cards/a/AndraditeLeech.java index 86d87bd3e10..4daa66ee6e3 100644 --- a/Mage.Sets/src/mage/cards/a/AndraditeLeech.java +++ b/Mage.Sets/src/mage/cards/a/AndraditeLeech.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AngelOfDeliverance.java b/Mage.Sets/src/mage/cards/a/AngelOfDeliverance.java index 75dc0cec444..a9381c7c9ad 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfDeliverance.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfDeliverance.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -48,6 +47,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AngelOfDespair.java b/Mage.Sets/src/mage/cards/a/AngelOfDespair.java index ca11a8fd91f..87f08f49eb6 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfDespair.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfDespair.java @@ -28,8 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,8 +35,11 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AngelOfFinality.java b/Mage.Sets/src/mage/cards/a/AngelOfFinality.java index 030360e4ebe..4db2a7d9114 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfFinality.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfFinality.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AngelOfFury.java b/Mage.Sets/src/mage/cards/a/AngelOfFury.java index 5694931a514..d29fe55c92c 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfFury.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfFury.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.ShuffleIntoLibrarySourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AngelOfGlorysRise.java b/Mage.Sets/src/mage/cards/a/AngelOfGlorysRise.java index 05ee7eb8976..c0be93aad68 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfGlorysRise.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfGlorysRise.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +35,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; @@ -47,6 +45,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AngelOfInvention.java b/Mage.Sets/src/mage/cards/a/AngelOfInvention.java index 788110f2fbb..8dd81a3f39a 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfInvention.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfInvention.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AngelOfJubilation.java b/Mage.Sets/src/mage/cards/a/AngelOfJubilation.java index 169f9c16bcb..9fe8cc07ec2 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfJubilation.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfJubilation.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -43,14 +41,7 @@ import mage.abilities.keyword.FlashbackAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AbilityType; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -59,6 +50,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/a/AngelOfLight.java b/Mage.Sets/src/mage/cards/a/AngelOfLight.java index 46ec9fb7b45..ae796e5bb1e 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfLight.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfLight.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AngelOfMercy.java b/Mage.Sets/src/mage/cards/a/AngelOfMercy.java index 95ad58067a4..d6bb7782f20 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfMercy.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfMercy.java @@ -27,14 +27,15 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AngelOfRenewal.java b/Mage.Sets/src/mage/cards/a/AngelOfRenewal.java index 1340bbfa871..22d13112b8c 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfRenewal.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfRenewal.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AngelOfRetribution.java b/Mage.Sets/src/mage/cards/a/AngelOfRetribution.java index 677f335f4be..03c63519bdd 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfRetribution.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfRetribution.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AngelOfSalvation.java b/Mage.Sets/src/mage/cards/a/AngelOfSalvation.java index 4d244ca121d..b0b4f0e5ef0 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfSalvation.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfSalvation.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreatureOrPlayerAmount; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AngelOfSanctions.java b/Mage.Sets/src/mage/cards/a/AngelOfSanctions.java new file mode 100644 index 00000000000..699b4689ac5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AngelOfSanctions.java @@ -0,0 +1,89 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.a; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; +import mage.abilities.effects.common.ExileUntilSourceLeavesEffect; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.filter.common.FilterNonlandPermanent; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.target.TargetPermanent; + +/** + * + * @author fireshoes + */ +public class AngelOfSanctions extends CardImpl { + + private final static FilterNonlandPermanent filter = new FilterNonlandPermanent(); + + static { + filter.add(new ControllerPredicate(TargetController.OPPONENT)); + } + + public AngelOfSanctions(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{W}"); + + this.subtype.add("Angel"); + this.power = new MageInt(3); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // When Angel of Sanctions enters the battlefield, you may exile target nonland permanent an opponent controls until Angel of Sanctions leaves the battlefield. + Ability ability = new EntersBattlefieldTriggeredAbility(new ExileUntilSourceLeavesEffect(filter.getMessage())); + ability.addTarget(new TargetPermanent(filter)); + ability.addEffect(new CreateDelayedTriggeredAbilityEffect(new OnLeaveReturnExiledToBattlefieldAbility())); + this.addAbility(ability); + + // Embalm {5}{W} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{5}{W}"), this)); + + } + + public AngelOfSanctions(final AngelOfSanctions card) { + super(card); + } + + @Override + public AngelOfSanctions copy() { + return new AngelOfSanctions(this); + } +} diff --git a/Mage.Sets/src/mage/cards/a/AngelOfSerenity.java b/Mage.Sets/src/mage/cards/a/AngelOfSerenity.java index 9d178148156..d9dcc7da6bd 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfSerenity.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfSerenity.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -55,6 +54,8 @@ import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCreaturePermanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AngelOfTheDireHour.java b/Mage.Sets/src/mage/cards/a/AngelOfTheDireHour.java index 67c31659e2b..6f1d8edfbcd 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfTheDireHour.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfTheDireHour.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.CastFromHandSourceCondition; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.filter.common.FilterAttackingCreature; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * * @author LevelX2 @@ -61,7 +62,7 @@ public class AngelOfTheDireHour extends CardImpl { // When Angel of the Dire Hour enters the battlefield, if you cast it from your hand, exile all attacking creatures. this.addAbility(new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new ExileAllEffect(new FilterAttackingCreature("attacking creatures")), false), - new CastFromHandSourceCondition(), + CastFromHandSourceCondition.instance, "When {this} enters the battlefield, if you cast it from your hand, exile all attacking creatures."), new CastFromHandWatcher()); } diff --git a/Mage.Sets/src/mage/cards/a/AngelfireCrusader.java b/Mage.Sets/src/mage/cards/a/AngelfireCrusader.java index 5102eb1d16a..7877fd775b3 100644 --- a/Mage.Sets/src/mage/cards/a/AngelfireCrusader.java +++ b/Mage.Sets/src/mage/cards/a/AngelfireCrusader.java @@ -28,15 +28,18 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AngelheartVial.java b/Mage.Sets/src/mage/cards/a/AngelheartVial.java index b118f117a08..ca01f368c8c 100644 --- a/Mage.Sets/src/mage/cards/a/AngelheartVial.java +++ b/Mage.Sets/src/mage/cards/a/AngelheartVial.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AngelicAccord.java b/Mage.Sets/src/mage/cards/a/AngelicAccord.java index 83d8cf82c42..67c024f43e5 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicAccord.java +++ b/Mage.Sets/src/mage/cards/a/AngelicAccord.java @@ -27,21 +27,20 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; -import mage.abilities.condition.Condition; -import mage.abilities.condition.IntCompareCondition; +import mage.abilities.condition.common.YouGainedLifeCondition; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; -import mage.game.Game; import mage.game.permanent.token.AngelToken; import mage.watchers.common.PlayerGainedLifeWatcher; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -53,7 +52,7 @@ public class AngelicAccord extends CardImpl { // At the beginning of each end step, if you gained 4 or more life this turn, create a 4/4 white Angel creature token with flying. this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new AngelToken()), TargetController.ANY, - new YouGainedLifeCondition(Condition.ComparisonType.GreaterThan, 3), false), new PlayerGainedLifeWatcher()); + new YouGainedLifeCondition(ComparisonType.MORE_THAN, 3), false), new PlayerGainedLifeWatcher()); } public AngelicAccord(final AngelicAccord card) { @@ -65,25 +64,3 @@ public class AngelicAccord extends CardImpl { return new AngelicAccord(this); } } - -class YouGainedLifeCondition extends IntCompareCondition { - - public YouGainedLifeCondition(Condition.ComparisonType type, int value) { - super(type, value); - } - - @Override - protected int getInputValue(Game game, Ability source) { - int gainedLife = 0; - PlayerGainedLifeWatcher watcher = (PlayerGainedLifeWatcher) game.getState().getWatchers().get(PlayerGainedLifeWatcher.class.getName()); - if (watcher != null) { - gainedLife = watcher.getLiveGained(source.getControllerId()); - } - return gainedLife; - } - - @Override - public String toString() { - return "if you gained 4 or more life this turn "; - } -} diff --git a/Mage.Sets/src/mage/cards/a/AngelicArbiter.java b/Mage.Sets/src/mage/cards/a/AngelicArbiter.java index 4c61d2ad675..459a6c314e6 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicArbiter.java +++ b/Mage.Sets/src/mage/cards/a/AngelicArbiter.java @@ -28,9 +28,6 @@ package mage.cards.a; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -39,11 +36,7 @@ import mage.abilities.effects.RestrictionEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; @@ -51,6 +44,10 @@ import mage.game.permanent.Permanent; import mage.watchers.Watcher; import mage.watchers.common.CastSpellLastTurnWatcher; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AngelicArmaments.java b/Mage.Sets/src/mage/cards/a/AngelicArmaments.java index a707e53af73..2b74a633a79 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicArmaments.java +++ b/Mage.Sets/src/mage/cards/a/AngelicArmaments.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import mage.constants.*; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -39,6 +38,7 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/a/AngelicBenediction.java b/Mage.Sets/src/mage/cards/a/AngelicBenediction.java index 746c1f829ec..b90cae394c3 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicBenediction.java +++ b/Mage.Sets/src/mage/cards/a/AngelicBenediction.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.keyword.ExaltedAbility; @@ -40,6 +39,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/AngelicBlessing.java b/Mage.Sets/src/mage/cards/a/AngelicBlessing.java index 4d482672adb..f67deac8a53 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicBlessing.java +++ b/Mage.Sets/src/mage/cards/a/AngelicBlessing.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AngelicCaptain.java b/Mage.Sets/src/mage/cards/a/AngelicCaptain.java index 410ab53807b..87260f921e3 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicCaptain.java +++ b/Mage.Sets/src/mage/cards/a/AngelicCaptain.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -41,6 +40,8 @@ import mage.filter.common.FilterAttackingCreature; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AngelicChorus.java b/Mage.Sets/src/mage/cards/a/AngelicChorus.java index 945844c7cfd..19388db94e8 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicChorus.java +++ b/Mage.Sets/src/mage/cards/a/AngelicChorus.java @@ -27,21 +27,22 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AngelicCurator.java b/Mage.Sets/src/mage/cards/a/AngelicCurator.java index b55fbea8cde..a77a86ea8a1 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicCurator.java +++ b/Mage.Sets/src/mage/cards/a/AngelicCurator.java @@ -27,15 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterArtifactCard; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AngelicDestiny.java b/Mage.Sets/src/mage/cards/a/AngelicDestiny.java index b783bcc7a5a..220c8aed0a5 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicDestiny.java +++ b/Mage.Sets/src/mage/cards/a/AngelicDestiny.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -42,14 +41,12 @@ import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AngelicEdict.java b/Mage.Sets/src/mage/cards/a/AngelicEdict.java index 9b3846386ba..c1266fc0e0b 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicEdict.java +++ b/Mage.Sets/src/mage/cards/a/AngelicEdict.java @@ -27,16 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AngelicFieldMarshal.java b/Mage.Sets/src/mage/cards/a/AngelicFieldMarshal.java index ed54cf1e642..7371c50b449 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicFieldMarshal.java +++ b/Mage.Sets/src/mage/cards/a/AngelicFieldMarshal.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.abilityword.LieutenantAbility; import mage.abilities.effects.ContinuousEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AngelicGift.java b/Mage.Sets/src/mage/cards/a/AngelicGift.java index 68e5a34e08b..67ec89e9739 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicGift.java +++ b/Mage.Sets/src/mage/cards/a/AngelicGift.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AngelicOverseer.java b/Mage.Sets/src/mage/cards/a/AngelicOverseer.java index 595cab91747..69b9df63453 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicOverseer.java +++ b/Mage.Sets/src/mage/cards/a/AngelicOverseer.java @@ -27,22 +27,24 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; -import mage.abilities.keyword.*; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.HexproofAbility; +import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/a/AngelicPage.java b/Mage.Sets/src/mage/cards/a/AngelicPage.java index 6ee1847c6ef..a3810ca6f9c 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicPage.java +++ b/Mage.Sets/src/mage/cards/a/AngelicPage.java @@ -27,10 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,9 +35,14 @@ import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterAttackingOrBlockingCreature; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AngelicProtector.java b/Mage.Sets/src/mage/cards/a/AngelicProtector.java index 084e28ea50f..4d2f774246c 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicProtector.java +++ b/Mage.Sets/src/mage/cards/a/AngelicProtector.java @@ -27,15 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.BecomesTargetTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AngelicPurge.java b/Mage.Sets/src/mage/cards/a/AngelicPurge.java index 225389a65a2..ae489d17b78 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicPurge.java +++ b/Mage.Sets/src/mage/cards/a/AngelicPurge.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; @@ -40,6 +39,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AngelicRenewal.java b/Mage.Sets/src/mage/cards/a/AngelicRenewal.java index e3be878cc69..32a4ac7e98d 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicRenewal.java +++ b/Mage.Sets/src/mage/cards/a/AngelicRenewal.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.DoIfCostPaid; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AngelicShield.java b/Mage.Sets/src/mage/cards/a/AngelicShield.java index 4d6f47ba632..2f34652563a 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicShield.java +++ b/Mage.Sets/src/mage/cards/a/AngelicShield.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author michael.napoleon@gmail.com diff --git a/Mage.Sets/src/mage/cards/a/AngelicSkirmisher.java b/Mage.Sets/src/mage/cards/a/AngelicSkirmisher.java index 7057286191d..dc0b0550281 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicSkirmisher.java +++ b/Mage.Sets/src/mage/cards/a/AngelicSkirmisher.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; @@ -52,6 +49,10 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AngelicWall.java b/Mage.Sets/src/mage/cards/a/AngelicWall.java index f21bb3c16d5..528e6193c45 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicWall.java +++ b/Mage.Sets/src/mage/cards/a/AngelicWall.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AngelsFeather.java b/Mage.Sets/src/mage/cards/a/AngelsFeather.java index 58e5cd315f6..f6e9f1115c5 100644 --- a/Mage.Sets/src/mage/cards/a/AngelsFeather.java +++ b/Mage.Sets/src/mage/cards/a/AngelsFeather.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AngelsGrace.java b/Mage.Sets/src/mage/cards/a/AngelsGrace.java index 9beff9bc78f..1339cee57fb 100644 --- a/Mage.Sets/src/mage/cards/a/AngelsGrace.java +++ b/Mage.Sets/src/mage/cards/a/AngelsGrace.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.abilities.effects.ReplacementEffectImpl; @@ -42,6 +41,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AngelsHerald.java b/Mage.Sets/src/mage/cards/a/AngelsHerald.java index 95cc0ba14da..6303c8dd16c 100644 --- a/Mage.Sets/src/mage/cards/a/AngelsHerald.java +++ b/Mage.Sets/src/mage/cards/a/AngelsHerald.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -40,6 +37,8 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.NamePredicate; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/a/AngelsMercy.java b/Mage.Sets/src/mage/cards/a/AngelsMercy.java index e0133703e50..5bf7483a1c0 100644 --- a/Mage.Sets/src/mage/cards/a/AngelsMercy.java +++ b/Mage.Sets/src/mage/cards/a/AngelsMercy.java @@ -28,11 +28,12 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AngelsTomb.java b/Mage.Sets/src/mage/cards/a/AngelsTomb.java index 004747ee28d..2c7efe99ede 100644 --- a/Mage.Sets/src/mage/cards/a/AngelsTomb.java +++ b/Mage.Sets/src/mage/cards/a/AngelsTomb.java @@ -27,18 +27,18 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.CreatureEntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AngelsTrumpet.java b/Mage.Sets/src/mage/cards/a/AngelsTrumpet.java index 11f5f57d65b..91629952d28 100644 --- a/Mage.Sets/src/mage/cards/a/AngelsTrumpet.java +++ b/Mage.Sets/src/mage/cards/a/AngelsTrumpet.java @@ -28,6 +28,7 @@ package mage.cards.a; import java.util.UUID; +import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -36,11 +37,7 @@ import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; @@ -54,11 +51,11 @@ import mage.watchers.common.AttackedThisTurnWatcher; public class AngelsTrumpet extends CardImpl { public AngelsTrumpet(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); // All creatures have vigilance. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, new FilterCreaturePermanent()))); - + // At the beginning of each player's end step, tap all untapped creatures that player controls that didn't attack this turn. Angel's Trumpet deals damage to the player equal to the number of creatures tapped this way. this.addAbility(new BeginningOfEndStepTriggeredAbility(new AngelsTrumpetTapEffect(), TargetController.ANY, false), new AttackedThisTurnWatcher()); } @@ -74,21 +71,21 @@ public class AngelsTrumpet extends CardImpl { } class AngelsTrumpetTapEffect extends OneShotEffect { - + AngelsTrumpetTapEffect() { super(Outcome.Tap); this.staticText = "tap all untapped creatures that player controls that didn't attack this turn. Angel's Trumpet deals damage to the player equal to the number of creatures tapped this way"; } - + AngelsTrumpetTapEffect(final AngelsTrumpetTapEffect effect) { super(effect); } - + @Override public AngelsTrumpetTapEffect copy() { return new AngelsTrumpetTapEffect(this); } - + @Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(game.getActivePlayerId()); @@ -100,8 +97,8 @@ class AngelsTrumpetTapEffect extends OneShotEffect { continue; } // Creatures that attacked are safe. - AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get("AttackedThisTurn"); - if (watcher != null && watcher.getAttackedThisTurnCreatures().contains(creature.getId())) { + AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get(AttackedThisTurnWatcher.class.getName()); + if (watcher != null && watcher.getAttackedThisTurnCreatures().contains(new MageObjectReference(creature, game))) { continue; } // Tap the rest. @@ -115,4 +112,4 @@ class AngelsTrumpetTapEffect extends OneShotEffect { } return false; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/a/Angelsong.java b/Mage.Sets/src/mage/cards/a/Angelsong.java index b4e912f688c..4de6172f888 100644 --- a/Mage.Sets/src/mage/cards/a/Angelsong.java +++ b/Mage.Sets/src/mage/cards/a/Angelsong.java @@ -28,14 +28,15 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; import mage.abilities.keyword.CyclingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/Anger.java b/Mage.Sets/src/mage/cards/a/Anger.java index f9cfdcb1950..b8ac2a50ff3 100644 --- a/Mage.Sets/src/mage/cards/a/Anger.java +++ b/Mage.Sets/src/mage/cards/a/Anger.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -38,6 +36,7 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; @@ -45,6 +44,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AngerOfTheGods.java b/Mage.Sets/src/mage/cards/a/AngerOfTheGods.java index 38757491f74..b1b8568258e 100644 --- a/Mage.Sets/src/mage/cards/a/AngerOfTheGods.java +++ b/Mage.Sets/src/mage/cards/a/AngerOfTheGods.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.effects.common.replacement.DealtDamageToCreatureBySourceDies; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.watchers.common.DamagedByWatcher; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AnglerDrake.java b/Mage.Sets/src/mage/cards/a/AnglerDrake.java new file mode 100644 index 00000000000..98b9ca49eee --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AnglerDrake.java @@ -0,0 +1,71 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.a; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class AnglerDrake extends CardImpl { + + public AnglerDrake(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}{U}"); + + this.subtype.add("Drake"); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // When Angler Drake enters the battlefield, you may return target creature to its owner's hand. + Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public AnglerDrake(final AnglerDrake card) { + super(card); + } + + @Override + public AnglerDrake copy() { + return new AnglerDrake(this); + } +} diff --git a/Mage.Sets/src/mage/cards/a/AngryMob.java b/Mage.Sets/src/mage/cards/a/AngryMob.java index 45258ad1f26..af5bd0c1808 100644 --- a/Mage.Sets/src/mage/cards/a/AngryMob.java +++ b/Mage.Sets/src/mage/cards/a/AngryMob.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.MyTurnCondition; @@ -45,6 +44,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AnguishedUnmaking.java b/Mage.Sets/src/mage/cards/a/AnguishedUnmaking.java index 5f98bef3a45..afdbb5a5c23 100644 --- a/Mage.Sets/src/mage/cards/a/AnguishedUnmaking.java +++ b/Mage.Sets/src/mage/cards/a/AnguishedUnmaking.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetNonlandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AngusMackenzie.java b/Mage.Sets/src/mage/cards/a/AngusMackenzie.java index e933e4cb054..32bff00ff0e 100644 --- a/Mage.Sets/src/mage/cards/a/AngusMackenzie.java +++ b/Mage.Sets/src/mage/cards/a/AngusMackenzie.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -38,12 +37,11 @@ import mage.abilities.effects.Effect; import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.PhaseStep; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; +import java.util.UUID; + /** * * @author shieldal @@ -52,7 +50,7 @@ public class AngusMackenzie extends CardImpl { public AngusMackenzie(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); diff --git a/Mage.Sets/src/mage/cards/a/AnimalBoneyard.java b/Mage.Sets/src/mage/cards/a/AnimalBoneyard.java index 07f19f2005b..394053717c7 100644 --- a/Mage.Sets/src/mage/cards/a/AnimalBoneyard.java +++ b/Mage.Sets/src/mage/cards/a/AnimalBoneyard.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,17 +40,15 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/a/AnimalMagnetism.java b/Mage.Sets/src/mage/cards/a/AnimalMagnetism.java index f8feee0c495..8e4c02747da 100644 --- a/Mage.Sets/src/mage/cards/a/AnimalMagnetism.java +++ b/Mage.Sets/src/mage/cards/a/AnimalMagnetism.java @@ -27,16 +27,10 @@ */ package mage.cards.a; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -47,6 +41,9 @@ import mage.target.Target; import mage.target.TargetCard; import mage.target.common.TargetOpponent; +import java.util.Set; +import java.util.UUID; + /** * * @author fenhl diff --git a/Mage.Sets/src/mage/cards/a/AnimarSoulOfElements.java b/Mage.Sets/src/mage/cards/a/AnimarSoulOfElements.java index 761c7e064e8..dc72fb7b7ba 100644 --- a/Mage.Sets/src/mage/cards/a/AnimarSoulOfElements.java +++ b/Mage.Sets/src/mage/cards/a/AnimarSoulOfElements.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -41,17 +40,15 @@ import mage.abilities.keyword.ProtectionAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.StaticFilters; import mage.game.Game; import mage.game.permanent.Permanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +57,7 @@ public class AnimarSoulOfElements extends CardImpl { public AnimarSoulOfElements(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/a/AnimateArtifact.java b/Mage.Sets/src/mage/cards/a/AnimateArtifact.java index 8f50b302153..f2f9e9ba8e4 100644 --- a/Mage.Sets/src/mage/cards/a/AnimateArtifact.java +++ b/Mage.Sets/src/mage/cards/a/AnimateArtifact.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; @@ -35,12 +34,7 @@ import mage.abilities.effects.common.AttachEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.Predicates; @@ -50,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author MTGfan @@ -111,7 +107,7 @@ class AnimateArtifactContinuousEffect extends ContinuousEffectImpl { Permanent permanent = game.getPermanent(enchantment.getAttachedTo()); if (permanent != null && !permanent.isCreature()) { if (sublayer == SubLayer.NA) { - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); permanent.getPower().setValue(permanent.getConvertedManaCost()); permanent.getToughness().setValue(permanent.getConvertedManaCost()); } diff --git a/Mage.Sets/src/mage/cards/a/AnimateDead.java b/Mage.Sets/src/mage/cards/a/AnimateDead.java index ed0575a5c7d..b1219334977 100644 --- a/Mage.Sets/src/mage/cards/a/AnimateDead.java +++ b/Mage.Sets/src/mage/cards/a/AnimateDead.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -43,12 +42,7 @@ import mage.abilities.keyword.EnchantAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.PermanentIdPredicate; @@ -59,6 +53,8 @@ import mage.target.Target; import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -80,7 +76,7 @@ public class AnimateDead extends CardImpl { // under your control and attach Animate Dead to it. When Animate Dead leaves the battlefield, that creature's controller sacrifices it. Ability ability = new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new AnimateDeadReAttachEffect(), false), - SourceOnBattlefieldCondition.getInstance(), + SourceOnBattlefieldCondition.instance, "When {this} enters the battlefield, if it's on the battlefield, it loses \"enchant creature card in a graveyard\" and gains \"enchant creature put onto the battlefield with {this}.\" Return enchanted creature card to the battlefield under your control and attach {this} to it."); ability.addEffect(new AnimateDeadChangeAbilityEffect()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/a/AnimateLand.java b/Mage.Sets/src/mage/cards/a/AnimateLand.java index 662b86d37ae..603a2e57c3b 100644 --- a/Mage.Sets/src/mage/cards/a/AnimateLand.java +++ b/Mage.Sets/src/mage/cards/a/AnimateLand.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.constants.Duration; import mage.game.permanent.token.Token; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AnimateWall.java b/Mage.Sets/src/mage/cards/a/AnimateWall.java index 67dbfc0245c..aed2c8b488d 100644 --- a/Mage.Sets/src/mage/cards/a/AnimateWall.java +++ b/Mage.Sets/src/mage/cards/a/AnimateWall.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -37,16 +36,14 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/a/AnimationModule.java b/Mage.Sets/src/mage/cards/a/AnimationModule.java index 8b041211fb1..1b35a02db1a 100644 --- a/Mage.Sets/src/mage/cards/a/AnimationModule.java +++ b/Mage.Sets/src/mage/cards/a/AnimationModule.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleActivatedAbility; @@ -54,6 +51,10 @@ import mage.game.permanent.token.ServoToken; import mage.players.Player; import mage.target.common.TargetPermanentOrPlayer; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AnimistsAwakening.java b/Mage.Sets/src/mage/cards/a/AnimistsAwakening.java index 79749f37c07..f8fdf258e8b 100644 --- a/Mage.Sets/src/mage/cards/a/AnimistsAwakening.java +++ b/Mage.Sets/src/mage/cards/a/AnimistsAwakening.java @@ -27,18 +27,11 @@ */ package mage.cards.a; -import java.util.LinkedHashSet; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.condition.common.SpellMasteryCondition; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -47,6 +40,10 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.LinkedHashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AnkhOfMishra.java b/Mage.Sets/src/mage/cards/a/AnkhOfMishra.java index 38272e1e8ef..50ff0f7db05 100644 --- a/Mage.Sets/src/mage/cards/a/AnkhOfMishra.java +++ b/Mage.Sets/src/mage/cards/a/AnkhOfMishra.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -42,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/a/AnkleShanker.java b/Mage.Sets/src/mage/cards/a/AnkleShanker.java index add856199c7..a34c8c566f6 100644 --- a/Mage.Sets/src/mage/cards/a/AnkleShanker.java +++ b/Mage.Sets/src/mage/cards/a/AnkleShanker.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Annex.java b/Mage.Sets/src/mage/cards/a/Annex.java index ea738937070..7e7bb91e6cb 100644 --- a/Mage.Sets/src/mage/cards/a/Annex.java +++ b/Mage.Sets/src/mage/cards/a/Annex.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author andyfries diff --git a/Mage.Sets/src/mage/cards/a/Annihilate.java b/Mage.Sets/src/mage/cards/a/Annihilate.java index e59040bdc02..f5aa6b34953 100644 --- a/Mage.Sets/src/mage/cards/a/Annihilate.java +++ b/Mage.Sets/src/mage/cards/a/Annihilate.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -39,6 +38,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AnnihilatingFire.java b/Mage.Sets/src/mage/cards/a/AnnihilatingFire.java index 44148bda0f1..47155e22fcc 100644 --- a/Mage.Sets/src/mage/cards/a/AnnihilatingFire.java +++ b/Mage.Sets/src/mage/cards/a/AnnihilatingFire.java @@ -29,7 +29,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.replacement.DealtDamageToCreatureBySourceDies; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.target.common.TargetCreatureOrPlayer; import mage.watchers.common.DamagedByWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Annul.java b/Mage.Sets/src/mage/cards/a/Annul.java index c8a6dac76dc..9700ff565d8 100644 --- a/Mage.Sets/src/mage/cards/a/Annul.java +++ b/Mage.Sets/src/mage/cards/a/Annul.java @@ -27,16 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AnodetLurker.java b/Mage.Sets/src/mage/cards/a/AnodetLurker.java index c123e7dfd70..a5e4e9b946d 100644 --- a/Mage.Sets/src/mage/cards/a/AnodetLurker.java +++ b/Mage.Sets/src/mage/cards/a/AnodetLurker.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/Anoint.java b/Mage.Sets/src/mage/cards/a/Anoint.java index a2cb5108970..9f396c0830e 100644 --- a/Mage.Sets/src/mage/cards/a/Anoint.java +++ b/Mage.Sets/src/mage/cards/a/Anoint.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.PreventDamageToTargetEffect; import mage.abilities.keyword.BuybackAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AnointedProcession.java b/Mage.Sets/src/mage/cards/a/AnointedProcession.java new file mode 100644 index 00000000000..0b666b621f8 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AnointedProcession.java @@ -0,0 +1,59 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.a; + +import java.util.UUID; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.replacement.CreateTwiceThatManyTokensEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +/** + * + * @author fireshoes + */ +public class AnointedProcession extends CardImpl { + + public AnointedProcession(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{W}"); + + // If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CreateTwiceThatManyTokensEffect())); + } + + public AnointedProcession(final AnointedProcession card) { + super(card); + } + + @Override + public AnointedProcession copy() { + return new AnointedProcession(this); + } +} diff --git a/Mage.Sets/src/mage/cards/a/AnointerOfChampions.java b/Mage.Sets/src/mage/cards/a/AnointerOfChampions.java index 0d9ce6b8200..2d14b85606e 100644 --- a/Mage.Sets/src/mage/cards/a/AnointerOfChampions.java +++ b/Mage.Sets/src/mage/cards/a/AnointerOfChampions.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetAttackingCreature; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AnointerPriest.java b/Mage.Sets/src/mage/cards/a/AnointerPriest.java new file mode 100644 index 00000000000..dbcbe3a8664 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AnointerPriest.java @@ -0,0 +1,78 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.a; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.TokenPredicate; + +/** + * + * @author LevelX2 + */ +public class AnointerPriest extends CardImpl { + + private static final FilterPermanent filter = new FilterCreaturePermanent("a creature token"); + + static { + filter.add(new TokenPredicate()); + } + + public AnointerPriest(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); + + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.power = new MageInt(1); + this.toughness = new MageInt(3); + + // Whenever a creature token enters the battlefield under your control, you gain 1 life. + this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new GainLifeEffect(1), filter)); + + // Embalm {3}{W} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{3}{W}"), this)); + } + + public AnointerPriest(final AnointerPriest card) { + super(card); + } + + @Override + public AnointerPriest copy() { + return new AnointerPriest(this); + } +} diff --git a/Mage.Sets/src/mage/cards/a/AnowonTheRuinSage.java b/Mage.Sets/src/mage/cards/a/AnowonTheRuinSage.java index c438949df6b..9263e699b50 100644 --- a/Mage.Sets/src/mage/cards/a/AnowonTheRuinSage.java +++ b/Mage.Sets/src/mage/cards/a/AnowonTheRuinSage.java @@ -27,18 +27,20 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TargetController; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.SacrificeAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.TargetController; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North @@ -53,7 +55,7 @@ public class AnowonTheRuinSage extends CardImpl { public AnowonTheRuinSage(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/a/AntQueen.java b/Mage.Sets/src/mage/cards/a/AntQueen.java index 5dd424f444e..555bb7f3b1e 100644 --- a/Mage.Sets/src/mage/cards/a/AntQueen.java +++ b/Mage.Sets/src/mage/cards/a/AntQueen.java @@ -28,17 +28,18 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.game.permanent.token.InsectToken; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AnthemOfRakdos.java b/Mage.Sets/src/mage/cards/a/AnthemOfRakdos.java index 30c7c41e68e..478a8edf96f 100644 --- a/Mage.Sets/src/mage/cards/a/AnthemOfRakdos.java +++ b/Mage.Sets/src/mage/cards/a/AnthemOfRakdos.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.AttacksCreatureYouControlTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -46,6 +44,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * @author JotaPeRL */ diff --git a/Mage.Sets/src/mage/cards/a/AnthousaSetessanHero.java b/Mage.Sets/src/mage/cards/a/AnthousaSetessanHero.java index 7f524c2f2f6..75df207e877 100644 --- a/Mage.Sets/src/mage/cards/a/AnthousaSetessanHero.java +++ b/Mage.Sets/src/mage/cards/a/AnthousaSetessanHero.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect; @@ -36,10 +35,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterControlledLandPermanent; import mage.game.permanent.token.Token; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -48,7 +50,7 @@ public class AnthousaSetessanHero extends CardImpl { public AnthousaSetessanHero(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/a/Anthroplasm.java b/Mage.Sets/src/mage/cards/a/Anthroplasm.java index 886ef47a3ae..1dea93ba20d 100644 --- a/Mage.Sets/src/mage/cards/a/Anthroplasm.java +++ b/Mage.Sets/src/mage/cards/a/Anthroplasm.java @@ -27,10 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -41,11 +37,15 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/Anticipate.java b/Mage.Sets/src/mage/cards/a/Anticipate.java index 4cda55ca800..106519c687b 100644 --- a/Mage.Sets/src/mage/cards/a/Anticipate.java +++ b/Mage.Sets/src/mage/cards/a/Anticipate.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterCard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AntlerSkulkin.java b/Mage.Sets/src/mage/cards/a/AntlerSkulkin.java index 3326938e668..9e1724ce9be 100644 --- a/Mage.Sets/src/mage/cards/a/AntlerSkulkin.java +++ b/Mage.Sets/src/mage/cards/a/AntlerSkulkin.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AnuridBarkripper.java b/Mage.Sets/src/mage/cards/a/AnuridBarkripper.java index b3ead0d1cad..ca3ea0b9550 100644 --- a/Mage.Sets/src/mage/cards/a/AnuridBarkripper.java +++ b/Mage.Sets/src/mage/cards/a/AnuridBarkripper.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AnuridBrushhopper.java b/Mage.Sets/src/mage/cards/a/AnuridBrushhopper.java index 2edcec02f5b..f0eda5292eb 100644 --- a/Mage.Sets/src/mage/cards/a/AnuridBrushhopper.java +++ b/Mage.Sets/src/mage/cards/a/AnuridBrushhopper.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardTargetCost; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AnuridMurkdiver.java b/Mage.Sets/src/mage/cards/a/AnuridMurkdiver.java index 9098bf484ee..b0d62d4e615 100644 --- a/Mage.Sets/src/mage/cards/a/AnuridMurkdiver.java +++ b/Mage.Sets/src/mage/cards/a/AnuridMurkdiver.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.SwampwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AnuridSwarmsnapper.java b/Mage.Sets/src/mage/cards/a/AnuridSwarmsnapper.java index f09075814cb..71fa40c60a7 100644 --- a/Mage.Sets/src/mage/cards/a/AnuridSwarmsnapper.java +++ b/Mage.Sets/src/mage/cards/a/AnuridSwarmsnapper.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AnvilOfBogardan.java b/Mage.Sets/src/mage/cards/a/AnvilOfBogardan.java index 5a4c88cca67..5f0e9cb50a0 100644 --- a/Mage.Sets/src/mage/cards/a/AnvilOfBogardan.java +++ b/Mage.Sets/src/mage/cards/a/AnvilOfBogardan.java @@ -27,13 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.BeginningOfDrawTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,9 +36,12 @@ import mage.abilities.effects.common.continuous.MaximumHandSizeControllerEffect; import mage.abilities.effects.common.continuous.MaximumHandSizeControllerEffect.HandSizeModification; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AnvilwroughtRaptor.java b/Mage.Sets/src/mage/cards/a/AnvilwroughtRaptor.java index 63db5d47412..461d975b9e9 100644 --- a/Mage.Sets/src/mage/cards/a/AnvilwroughtRaptor.java +++ b/Mage.Sets/src/mage/cards/a/AnvilwroughtRaptor.java @@ -27,14 +27,15 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AnyaMercilessAngel.java b/Mage.Sets/src/mage/cards/a/AnyaMercilessAngel.java index 45197ed337a..c0ef10ef1a0 100644 --- a/Mage.Sets/src/mage/cards/a/AnyaMercilessAngel.java +++ b/Mage.Sets/src/mage/cards/a/AnyaMercilessAngel.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -44,10 +43,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 @@ -56,7 +58,7 @@ public class AnyaMercilessAngel extends CardImpl { public AnyaMercilessAngel(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(4); this.toughness = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/a/ApesOfRath.java b/Mage.Sets/src/mage/cards/a/ApesOfRath.java index 3a941c2befc..77a7e5a1bad 100644 --- a/Mage.Sets/src/mage/cards/a/ApesOfRath.java +++ b/Mage.Sets/src/mage/cards/a/ApesOfRath.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/ApexHawks.java b/Mage.Sets/src/mage/cards/a/ApexHawks.java index d5ac9aa405e..863b99b1dfb 100644 --- a/Mage.Sets/src/mage/cards/a/ApexHawks.java +++ b/Mage.Sets/src/mage/cards/a/ApexHawks.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.dynamicvalue.common.MultikickerCount; @@ -37,8 +35,11 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.MultikickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/AphettoAlchemist.java b/Mage.Sets/src/mage/cards/a/AphettoAlchemist.java index 93af2c99a07..d8b799f8d20 100644 --- a/Mage.Sets/src/mage/cards/a/AphettoAlchemist.java +++ b/Mage.Sets/src/mage/cards/a/AphettoAlchemist.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AphettoDredging.java b/Mage.Sets/src/mage/cards/a/AphettoDredging.java index c1cfbffbf10..51cb31efe5c 100644 --- a/Mage.Sets/src/mage/cards/a/AphettoDredging.java +++ b/Mage.Sets/src/mage/cards/a/AphettoDredging.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.effects.Effect; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/a/AphettoGrifter.java b/Mage.Sets/src/mage/cards/a/AphettoGrifter.java index 5a3e3b0c552..61d641d6456 100644 --- a/Mage.Sets/src/mage/cards/a/AphettoGrifter.java +++ b/Mage.Sets/src/mage/cards/a/AphettoGrifter.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AphettoRunecaster.java b/Mage.Sets/src/mage/cards/a/AphettoRunecaster.java index 0d58abddb44..1323150acf2 100644 --- a/Mage.Sets/src/mage/cards/a/AphettoRunecaster.java +++ b/Mage.Sets/src/mage/cards/a/AphettoRunecaster.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.TurnedFaceUpAllTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AphoticWisps.java b/Mage.Sets/src/mage/cards/a/AphoticWisps.java index 7c7bc2058b1..d982aebc3e3 100644 --- a/Mage.Sets/src/mage/cards/a/AphoticWisps.java +++ b/Mage.Sets/src/mage/cards/a/AphoticWisps.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/a/Apocalypse.java b/Mage.Sets/src/mage/cards/a/Apocalypse.java index cffb38ba31c..c7f5d10d797 100644 --- a/Mage.Sets/src/mage/cards/a/Apocalypse.java +++ b/Mage.Sets/src/mage/cards/a/Apocalypse.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -39,6 +38,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author markedagain diff --git a/Mage.Sets/src/mage/cards/a/ApocalypseHydra.java b/Mage.Sets/src/mage/cards/a/ApocalypseHydra.java index 0c34f7fcff8..5a9fca8f82b 100644 --- a/Mage.Sets/src/mage/cards/a/ApocalypseHydra.java +++ b/Mage.Sets/src/mage/cards/a/ApocalypseHydra.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.SpellAbility; @@ -48,6 +47,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/ApostlesBlessing.java b/Mage.Sets/src/mage/cards/a/ApostlesBlessing.java index 78d95a968c9..9b3fc125cfd 100644 --- a/Mage.Sets/src/mage/cards/a/ApostlesBlessing.java +++ b/Mage.Sets/src/mage/cards/a/ApostlesBlessing.java @@ -28,10 +28,6 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -40,6 +36,8 @@ import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.choices.ChoiceColorOrArtifact; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.Outcome; import mage.filter.FilterCard; import mage.filter.common.FilterControlledPermanent; @@ -50,6 +48,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/ApothecaryGeist.java b/Mage.Sets/src/mage/cards/a/ApothecaryGeist.java index e0fdd4c000a..cc10a547b4b 100644 --- a/Mage.Sets/src/mage/cards/a/ApothecaryGeist.java +++ b/Mage.Sets/src/mage/cards/a/ApothecaryGeist.java @@ -27,9 +27,8 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -43,6 +42,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -69,7 +70,7 @@ public class ApothecaryGeist extends CardImpl { TriggeredAbility triggeredAbility = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(3)); this.addAbility(new ConditionalTriggeredAbility( triggeredAbility, - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0), "When {this} enters the battlefield, if you control another Spirit, you gain 3 life.")); } diff --git a/Mage.Sets/src/mage/cards/a/ApothecaryInitiate.java b/Mage.Sets/src/mage/cards/a/ApothecaryInitiate.java index b34f953f67c..08eebebe604 100644 --- a/Mage.Sets/src/mage/cards/a/ApothecaryInitiate.java +++ b/Mage.Sets/src/mage/cards/a/ApothecaryInitiate.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SpellCastAllTriggeredAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AppetiteForBrains.java b/Mage.Sets/src/mage/cards/a/AppetiteForBrains.java index 12c91298a89..0a81d1f4a13 100644 --- a/Mage.Sets/src/mage/cards/a/AppetiteForBrains.java +++ b/Mage.Sets/src/mage/cards/a/AppetiteForBrains.java @@ -27,16 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.ExileCardYouChooseTargetOpponentEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author North @@ -46,7 +47,7 @@ public class AppetiteForBrains extends CardImpl { private static final FilterCard filter = new FilterCard("a card from it with converted mana cost 4 or greater"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 3)); } public AppetiteForBrains(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/a/AppetiteForTheUnnatural.java b/Mage.Sets/src/mage/cards/a/AppetiteForTheUnnatural.java index a4ae37c7b17..7782b08aaba 100644 --- a/Mage.Sets/src/mage/cards/a/AppetiteForTheUnnatural.java +++ b/Mage.Sets/src/mage/cards/a/AppetiteForTheUnnatural.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/a/ApprenticeNecromancer.java b/Mage.Sets/src/mage/cards/a/ApprenticeNecromancer.java index 9c37338b784..6ef369d6285 100644 --- a/Mage.Sets/src/mage/cards/a/ApprenticeNecromancer.java +++ b/Mage.Sets/src/mage/cards/a/ApprenticeNecromancer.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -44,11 +43,7 @@ import mage.abilities.keyword.HasteAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.game.permanent.Permanent; @@ -56,6 +51,8 @@ import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/a/ApprenticeSorcerer.java b/Mage.Sets/src/mage/cards/a/ApprenticeSorcerer.java index 472a4258747..df8e0adc3b4 100644 --- a/Mage.Sets/src/mage/cards/a/ApprenticeSorcerer.java +++ b/Mage.Sets/src/mage/cards/a/ApprenticeSorcerer.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes @@ -55,7 +56,7 @@ public class ApprenticeSorcerer extends CardImpl { // {tap}: Apprentice Sorcerer deals 1 damage to target creature or player. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new DamageTargetEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new DamageTargetEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCreatureOrPlayer()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/a/ApprenticeWizard.java b/Mage.Sets/src/mage/cards/a/ApprenticeWizard.java index 07c704a6025..2e9199a8284 100644 --- a/Mage.Sets/src/mage/cards/a/ApprenticeWizard.java +++ b/Mage.Sets/src/mage/cards/a/ApprenticeWizard.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ApproachOfTheSecondSun.java b/Mage.Sets/src/mage/cards/a/ApproachOfTheSecondSun.java new file mode 100644 index 00000000000..17780304825 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/ApproachOfTheSecondSun.java @@ -0,0 +1,146 @@ +package mage.cards.a; + +import java.util.*; + +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.WatcherScope; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.stack.Spell; +import mage.players.Player; +import mage.watchers.Watcher; + +/** + * @author stravant + */ +public class ApproachOfTheSecondSun extends CardImpl { + + public ApproachOfTheSecondSun(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{6}{W}"); + + getSpellAbility().addEffect(new ApproachOfTheSecondSunEffect()); + getSpellAbility().addWatcher(new ApproachOfTheSecondSunWatcher()); + } + + public ApproachOfTheSecondSun(final ApproachOfTheSecondSun card) { + super(card); + } + + @Override + public ApproachOfTheSecondSun copy() { + return new ApproachOfTheSecondSun(this); + } +} + +class ApproachOfTheSecondSunEffect extends OneShotEffect { + + public ApproachOfTheSecondSunEffect() { + super(Outcome.Win); + this.staticText + = "If {this} was cast from your hand and you've cast another spell named Approach of the Second Sun this game, you win the game. " + + "Otherwise, put {this} into its owner's library seventh from the top and you gain 7 life."; + } + + public ApproachOfTheSecondSunEffect(final ApproachOfTheSecondSunEffect effect) { + super(effect); + } + + @Override + public ApproachOfTheSecondSunEffect copy() { + return new ApproachOfTheSecondSunEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + Spell spell = game.getStack().getSpell(source.getSourceId()); + if (controller != null && spell != null) { + ApproachOfTheSecondSunWatcher watcher + = (ApproachOfTheSecondSunWatcher) game.getState().getWatchers().get(ApproachOfTheSecondSunWatcher.class.getName()); + if (watcher != null && watcher.getApproachesCast(controller.getId()) > 1 && spell.getFromZone() == Zone.HAND) { + // Win the game + controller.won(game); + } else { + // Gain 7 life and put this back into library. + controller.gainLife(7, game); + + // Put this into the library as the 7th from the top + Card spellCard = game.getStack().getSpell(source.getSourceId()).getCard(); + if (spellCard != null) { + List top6 = new ArrayList<>(); + // Cut the top 6 cards off into a temporary array + for (int i = 0; i < 6 && controller.getLibrary().hasCards(); ++i) { + top6.add(controller.getLibrary().removeFromTop(game)); + } + + // Is the library now empty, thus the rise is on the bottom (for the message to the players)? + boolean isOnBottom = !controller.getLibrary().hasCards(); + + // Put this card (if the ability came from an ApproachOfTheSecondSun spell card) on top + spellCard.moveToZone(Zone.LIBRARY, source.getSourceId(), game, true); + + // put the top 6 we took earlier back on top (going in reverse order this time to get them back + // on top in the proper order) + for (int i = top6.size() - 1; i >= 0; --i) { + controller.getLibrary().putOnTop(top6.get(i), game); + } + + // Inform the players + if (isOnBottom) { + game.informPlayers(controller.getLogName() + " puts " + spell.getLogName() + " on the bottom of his or her library."); + } else { + game.informPlayers(controller.getLogName() + " puts " + spell.getLogName() + " into his or her library 6th from the top."); + } + } + } + return true; + } + return false; + } +} + +class ApproachOfTheSecondSunWatcher extends Watcher { + + private Map approachesCast = new HashMap<>(); + + public ApproachOfTheSecondSunWatcher() { + super(ApproachOfTheSecondSunWatcher.class.getName(), WatcherScope.GAME); + } + + public ApproachOfTheSecondSunWatcher(final ApproachOfTheSecondSunWatcher watcher) { + super(watcher); + approachesCast = new HashMap<>(approachesCast); + } + + @Override + public void watch(GameEvent event, Game game) { + if (event.getType() == GameEvent.EventType.SPELL_CAST) { + Spell spell = game.getStack().getSpell(event.getSourceId()); + if (spell != null && spell.getName().equals("Approach of the Second Sun")) { + int cast = getApproachesCast(event.getPlayerId()); + approachesCast.put(event.getPlayerId(), cast + 1); + } + } + } + + public int getApproachesCast(UUID player) { + Integer cast = approachesCast.get(player); + if (cast == null) { + return 0; + } else { + return cast; + } + } + + @Override + public ApproachOfTheSecondSunWatcher copy() { + return new ApproachOfTheSecondSunWatcher(this); + } +} diff --git a/Mage.Sets/src/mage/cards/a/AqualishBountyHunter.java b/Mage.Sets/src/mage/cards/a/AqualishBountyHunter.java index 00821fa01bf..4c78910661d 100644 --- a/Mage.Sets/src/mage/cards/a/AqualishBountyHunter.java +++ b/Mage.Sets/src/mage/cards/a/AqualishBountyHunter.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.discard.DiscardTargetEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/Aquamoeba.java b/Mage.Sets/src/mage/cards/a/Aquamoeba.java index 0b3f7b5b2c9..aba67e1edef 100644 --- a/Mage.Sets/src/mage/cards/a/Aquamoeba.java +++ b/Mage.Sets/src/mage/cards/a/Aquamoeba.java @@ -27,13 +27,13 @@ */ package mage.cards.a; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.effects.common.continuous.SwitchPowerToughnessSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; diff --git a/Mage.Sets/src/mage/cards/a/AquamorphEntity.java b/Mage.Sets/src/mage/cards/a/AquamorphEntity.java index 7a56b32b9f1..4524c52c54c 100644 --- a/Mage.Sets/src/mage/cards/a/AquamorphEntity.java +++ b/Mage.Sets/src/mage/cards/a/AquamorphEntity.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -39,11 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.choices.Choice; import mage.choices.ChoiceImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.EntersTheBattlefieldEvent; import mage.game.events.GameEvent; @@ -51,6 +46,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AquastrandSpider.java b/Mage.Sets/src/mage/cards/a/AquastrandSpider.java index ee23651c144..3fa1613b566 100644 --- a/Mage.Sets/src/mage/cards/a/AquastrandSpider.java +++ b/Mage.Sets/src/mage/cards/a/AquastrandSpider.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.CounterPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author JotaPeRL diff --git a/Mage.Sets/src/mage/cards/a/AqueousForm.java b/Mage.Sets/src/mage/cards/a/AqueousForm.java index f953dc600f8..8f348432183 100644 --- a/Mage.Sets/src/mage/cards/a/AqueousForm.java +++ b/Mage.Sets/src/mage/cards/a/AqueousForm.java @@ -27,13 +27,12 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.AttacksAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.effects.common.combat.CantBeBlockedAttachedEffect; +import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AquitectsWill.java b/Mage.Sets/src/mage/cards/a/AquitectsWill.java index bb866804895..46ad85d7c1c 100644 --- a/Mage.Sets/src/mage/cards/a/AquitectsWill.java +++ b/Mage.Sets/src/mage/cards/a/AquitectsWill.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -47,6 +46,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/a/AquusSteed.java b/Mage.Sets/src/mage/cards/a/AquusSteed.java index 8cd43bc1b1a..3ce227c730a 100644 --- a/Mage.Sets/src/mage/cards/a/AquusSteed.java +++ b/Mage.Sets/src/mage/cards/a/AquusSteed.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,10 +35,13 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArabaMothrider.java b/Mage.Sets/src/mage/cards/a/ArabaMothrider.java index f29905ee363..acb4a3ec158 100644 --- a/Mage.Sets/src/mage/cards/a/ArabaMothrider.java +++ b/Mage.Sets/src/mage/cards/a/ArabaMothrider.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.BushidoAbility; +import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/Arachnogenesis.java b/Mage.Sets/src/mage/cards/a/Arachnogenesis.java index 549eba2687c..5a91103fcec 100644 --- a/Mage.Sets/src/mage/cards/a/Arachnogenesis.java +++ b/Mage.Sets/src/mage/cards/a/Arachnogenesis.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.combat.CombatGroup; import mage.game.permanent.token.SpiderToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/Arachnoid.java b/Mage.Sets/src/mage/cards/a/Arachnoid.java index 74e008474bc..00a926d51ae 100644 --- a/Mage.Sets/src/mage/cards/a/Arachnoid.java +++ b/Mage.Sets/src/mage/cards/a/Arachnoid.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArachnusSpinner.java b/Mage.Sets/src/mage/cards/a/ArachnusSpinner.java index 58b0505b7bb..f8f543987d6 100644 --- a/Mage.Sets/src/mage/cards/a/ArachnusSpinner.java +++ b/Mage.Sets/src/mage/cards/a/ArachnusSpinner.java @@ -27,10 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +36,9 @@ import mage.abilities.keyword.ReachAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; @@ -54,6 +53,8 @@ import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/ArachnusWeb.java b/Mage.Sets/src/mage/cards/a/ArachnusWeb.java index e99fa9b7c34..e4148b6e239 100644 --- a/Mage.Sets/src/mage/cards/a/ArachnusWeb.java +++ b/Mage.Sets/src/mage/cards/a/ArachnusWeb.java @@ -27,8 +27,8 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.AttachedToMatchesFilterCondition; @@ -42,12 +42,13 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -69,7 +70,7 @@ public class ArachnusWeb extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBlockAttackActivateAttachedEffect())); // At the beginning of the end step, if enchanted creature's power is 4 or greater, destroy Arachnus Web. FilterPermanent filter = new FilterPermanent("if enchanted creature's power is 4 or greater"); - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new DestroySourceEffect(), TargetController.ANY, new AttachedToMatchesFilterCondition(filter), false)); diff --git a/Mage.Sets/src/mage/cards/a/AradaraExpress.java b/Mage.Sets/src/mage/cards/a/AradaraExpress.java index 1560a633ede..ef77fec67a4 100644 --- a/Mage.Sets/src/mage/cards/a/AradaraExpress.java +++ b/Mage.Sets/src/mage/cards/a/AradaraExpress.java @@ -27,14 +27,15 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.MenaceAbility; import mage.abilities.keyword.CrewAbility; +import mage.abilities.keyword.MenaceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/a/ArashiTheSkyAsunder.java b/Mage.Sets/src/mage/cards/a/ArashiTheSkyAsunder.java index d77dbb412c7..48e28ea55b4 100644 --- a/Mage.Sets/src/mage/cards/a/ArashiTheSkyAsunder.java +++ b/Mage.Sets/src/mage/cards/a/ArashiTheSkyAsunder.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,11 +40,14 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +62,7 @@ public class ArashiTheSkyAsunder extends CardImpl { public ArashiTheSkyAsunder(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/a/ArashinCleric.java b/Mage.Sets/src/mage/cards/a/ArashinCleric.java index bfbf05e5938..7997b70f666 100644 --- a/Mage.Sets/src/mage/cards/a/ArashinCleric.java +++ b/Mage.Sets/src/mage/cards/a/ArashinCleric.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ArashinForemost.java b/Mage.Sets/src/mage/cards/a/ArashinForemost.java index bb1c83664de..d5df7bf0a3b 100644 --- a/Mage.Sets/src/mage/cards/a/ArashinForemost.java +++ b/Mage.Sets/src/mage/cards/a/ArashinForemost.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ArashinSovereign.java b/Mage.Sets/src/mage/cards/a/ArashinSovereign.java index c7bb7b0529c..8565087f06b 100644 --- a/Mage.Sets/src/mage/cards/a/ArashinSovereign.java +++ b/Mage.Sets/src/mage/cards/a/ArashinSovereign.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArashinWarBeast.java b/Mage.Sets/src/mage/cards/a/ArashinWarBeast.java index b6b89177b22..ae00c407dc6 100644 --- a/Mage.Sets/src/mage/cards/a/ArashinWarBeast.java +++ b/Mage.Sets/src/mage/cards/a/ArashinWarBeast.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -44,6 +43,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ArbalestElite.java b/Mage.Sets/src/mage/cards/a/ArbalestElite.java index aebc4001cc7..4c612a9c2b5 100644 --- a/Mage.Sets/src/mage/cards/a/ArbalestElite.java +++ b/Mage.Sets/src/mage/cards/a/ArbalestElite.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,9 +36,12 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/a/ArbiterOfKnollridge.java b/Mage.Sets/src/mage/cards/a/ArbiterOfKnollridge.java index cb697534186..daf4302bc51 100644 --- a/Mage.Sets/src/mage/cards/a/ArbiterOfKnollridge.java +++ b/Mage.Sets/src/mage/cards/a/ArbiterOfKnollridge.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,11 +34,14 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; import mage.players.PlayerList; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/a/ArbiterOfTheIdeal.java b/Mage.Sets/src/mage/cards/a/ArbiterOfTheIdeal.java index 7b130e201c8..eaea3de63ce 100644 --- a/Mage.Sets/src/mage/cards/a/ArbiterOfTheIdeal.java +++ b/Mage.Sets/src/mage/cards/a/ArbiterOfTheIdeal.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; @@ -35,11 +34,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.AddCardTypeTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.InspiredAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; @@ -53,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArborColossus.java b/Mage.Sets/src/mage/cards/a/ArborColossus.java index 29bc4dee568..09142373925 100644 --- a/Mage.Sets/src/mage/cards/a/ArborColossus.java +++ b/Mage.Sets/src/mage/cards/a/ArborColossus.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesMonstrousSourceTriggeredAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArborElf.java b/Mage.Sets/src/mage/cards/a/ArborElf.java index 5220d7ad9da..c5bc1f38f5a 100644 --- a/Mage.Sets/src/mage/cards/a/ArborElf.java +++ b/Mage.Sets/src/mage/cards/a/ArborElf.java @@ -28,9 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,13 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.UntapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/ArborbackStomper.java b/Mage.Sets/src/mage/cards/a/ArborbackStomper.java index b5d5cec8c02..7d35f744c21 100644 --- a/Mage.Sets/src/mage/cards/a/ArborbackStomper.java +++ b/Mage.Sets/src/mage/cards/a/ArborbackStomper.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArcBlade.java b/Mage.Sets/src/mage/cards/a/ArcBlade.java index c79568aab84..ef2157e45d2 100644 --- a/Mage.Sets/src/mage/cards/a/ArcBlade.java +++ b/Mage.Sets/src/mage/cards/a/ArcBlade.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.Effect; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.counters.CounterType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/ArcLightning.java b/Mage.Sets/src/mage/cards/a/ArcLightning.java index 400e66b70f5..97d88e605fe 100644 --- a/Mage.Sets/src/mage/cards/a/ArcLightning.java +++ b/Mage.Sets/src/mage/cards/a/ArcLightning.java @@ -28,13 +28,14 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DamageMultiEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayerAmount; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/ArcMage.java b/Mage.Sets/src/mage/cards/a/ArcMage.java index 737ec1a9cad..e6623bee5d7 100644 --- a/Mage.Sets/src/mage/cards/a/ArcMage.java +++ b/Mage.Sets/src/mage/cards/a/ArcMage.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayerAmount; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ArcRunner.java b/Mage.Sets/src/mage/cards/a/ArcRunner.java index 6019fa06abe..e7528ad0172 100644 --- a/Mage.Sets/src/mage/cards/a/ArcRunner.java +++ b/Mage.Sets/src/mage/cards/a/ArcRunner.java @@ -28,16 +28,17 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.OnEventTriggeredAbility; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/ArcSlogger.java b/Mage.Sets/src/mage/cards/a/ArcSlogger.java index f63de9482ab..bd38a440b2f 100644 --- a/Mage.Sets/src/mage/cards/a/ArcSlogger.java +++ b/Mage.Sets/src/mage/cards/a/ArcSlogger.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/ArcTrail.java b/Mage.Sets/src/mage/cards/a/ArcTrail.java index c41608f025a..1858b3e8da8 100644 --- a/Mage.Sets/src/mage/cards/a/ArcTrail.java +++ b/Mage.Sets/src/mage/cards/a/ArcTrail.java @@ -28,15 +28,13 @@ package mage.cards.a; -import java.io.ObjectStreamException; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterCreatureOrPlayer; import mage.filter.predicate.mageobject.AnotherTargetPredicate; import mage.game.Game; @@ -45,6 +43,9 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCreatureOrPlayer; +import java.io.ObjectStreamException; +import java.util.UUID; + /** * * @author maurer.it_at_gmail.com diff --git a/Mage.Sets/src/mage/cards/a/ArcadesSabboth.java b/Mage.Sets/src/mage/cards/a/ArcadesSabboth.java index 9139cdd57a3..4a824bfb30d 100644 --- a/Mage.Sets/src/mage/cards/a/ArcadesSabboth.java +++ b/Mage.Sets/src/mage/cards/a/ArcadesSabboth.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -39,18 +38,16 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.AttackingPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.TappedPredicate; +import java.util.UUID; + /** - * * @author fireshoes */ public class ArcadesSabboth extends CardImpl { @@ -64,8 +61,8 @@ public class ArcadesSabboth extends CardImpl { } public ArcadesSabboth(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}{W}{W}{U}{U}"); - this.supertype.add("Legendary"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}{W}{W}{U}{U}"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elder"); this.subtype.add("Dragon"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/a/ArcaneDenial.java b/Mage.Sets/src/mage/cards/a/ArcaneDenial.java index 2f1a2d7a688..8e5379ad118 100644 --- a/Mage.Sets/src/mage/cards/a/ArcaneDenial.java +++ b/Mage.Sets/src/mage/cards/a/ArcaneDenial.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; @@ -46,6 +45,8 @@ import mage.players.Player; import mage.target.TargetSpell; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArcaneLaboratory.java b/Mage.Sets/src/mage/cards/a/ArcaneLaboratory.java index 0f749d10135..4aa2f26e2ca 100644 --- a/Mage.Sets/src/mage/cards/a/ArcaneLaboratory.java +++ b/Mage.Sets/src/mage/cards/a/ArcaneLaboratory.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.CantCastMoreThanOneSpellEffect; import mage.cards.CardImpl; @@ -37,6 +35,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/a/ArcaneLighthouse.java b/Mage.Sets/src/mage/cards/a/ArcaneLighthouse.java index ba14e507ec9..609398594af 100644 --- a/Mage.Sets/src/mage/cards/a/ArcaneLighthouse.java +++ b/Mage.Sets/src/mage/cards/a/ArcaneLighthouse.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -46,6 +45,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArcaneMelee.java b/Mage.Sets/src/mage/cards/a/ArcaneMelee.java index ff570c21f1e..6780c29c314 100644 --- a/Mage.Sets/src/mage/cards/a/ArcaneMelee.java +++ b/Mage.Sets/src/mage/cards/a/ArcaneMelee.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.common.SimpleStaticAbility; @@ -36,6 +35,7 @@ import mage.abilities.keyword.FlashbackAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.game.Game; import mage.util.CardUtil; diff --git a/Mage.Sets/src/mage/cards/a/ArcaneSanctum.java b/Mage.Sets/src/mage/cards/a/ArcaneSanctum.java index 4ce05282c5a..c71b48fbeec 100644 --- a/Mage.Sets/src/mage/cards/a/ArcaneSanctum.java +++ b/Mage.Sets/src/mage/cards/a/ArcaneSanctum.java @@ -28,14 +28,15 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.BlueManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArcaneSpyglass.java b/Mage.Sets/src/mage/cards/a/ArcaneSpyglass.java index 78dc0c33060..4caa554be1f 100644 --- a/Mage.Sets/src/mage/cards/a/ArcaneSpyglass.java +++ b/Mage.Sets/src/mage/cards/a/ArcaneSpyglass.java @@ -28,9 +28,6 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; @@ -41,12 +38,15 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/ArcaneTeachings.java b/Mage.Sets/src/mage/cards/a/ArcaneTeachings.java index ea9d3c1a1ef..d0d60ea55f4 100644 --- a/Mage.Sets/src/mage/cards/a/ArcaneTeachings.java +++ b/Mage.Sets/src/mage/cards/a/ArcaneTeachings.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,10 +38,13 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/ArcanisTheOmnipotent.java b/Mage.Sets/src/mage/cards/a/ArcanisTheOmnipotent.java index bf488254741..c1ec7d60491 100644 --- a/Mage.Sets/src/mage/cards/a/ArcanisTheOmnipotent.java +++ b/Mage.Sets/src/mage/cards/a/ArcanisTheOmnipotent.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,8 +35,12 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki @@ -48,7 +49,7 @@ public class ArcanisTheOmnipotent extends CardImpl { public ArcanisTheOmnipotent(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Wizard"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/a/ArcanumWings.java b/Mage.Sets/src/mage/cards/a/ArcanumWings.java index 1602558222c..9616536cc7a 100644 --- a/Mage.Sets/src/mage/cards/a/ArcanumWings.java +++ b/Mage.Sets/src/mage/cards/a/ArcanumWings.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/Arcbond.java b/Mage.Sets/src/mage/cards/a/Arcbond.java index dcbebf752c8..4a867f4a255 100644 --- a/Mage.Sets/src/mage/cards/a/Arcbond.java +++ b/Mage.Sets/src/mage/cards/a/Arcbond.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageObject; import mage.MageObjectReference; import mage.abilities.Ability; @@ -51,6 +50,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArcboundBruiser.java b/Mage.Sets/src/mage/cards/a/ArcboundBruiser.java index 7485064c728..20029352fc7 100644 --- a/Mage.Sets/src/mage/cards/a/ArcboundBruiser.java +++ b/Mage.Sets/src/mage/cards/a/ArcboundBruiser.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ModularAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArcboundCrusher.java b/Mage.Sets/src/mage/cards/a/ArcboundCrusher.java index f1a9bb87d78..fe75c84ad66 100644 --- a/Mage.Sets/src/mage/cards/a/ArcboundCrusher.java +++ b/Mage.Sets/src/mage/cards/a/ArcboundCrusher.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -41,6 +40,8 @@ import mage.filter.FilterPermanent; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArcboundHybrid.java b/Mage.Sets/src/mage/cards/a/ArcboundHybrid.java index a9c70b06ce1..89657ab0eb6 100644 --- a/Mage.Sets/src/mage/cards/a/ArcboundHybrid.java +++ b/Mage.Sets/src/mage/cards/a/ArcboundHybrid.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.ModularAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArcboundLancer.java b/Mage.Sets/src/mage/cards/a/ArcboundLancer.java index b728768e2cf..e9d5cf44238 100644 --- a/Mage.Sets/src/mage/cards/a/ArcboundLancer.java +++ b/Mage.Sets/src/mage/cards/a/ArcboundLancer.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.ModularAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArcboundOverseer.java b/Mage.Sets/src/mage/cards/a/ArcboundOverseer.java index bd78b80c530..f2e650a5dba 100644 --- a/Mage.Sets/src/mage/cards/a/ArcboundOverseer.java +++ b/Mage.Sets/src/mage/cards/a/ArcboundOverseer.java @@ -27,19 +27,20 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.OnEventTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersAllEffect; import mage.abilities.keyword.ModularAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/a/ArcboundRavager.java b/Mage.Sets/src/mage/cards/a/ArcboundRavager.java index 36178029941..fdbdadeb13b 100644 --- a/Mage.Sets/src/mage/cards/a/ArcboundRavager.java +++ b/Mage.Sets/src/mage/cards/a/ArcboundRavager.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -37,11 +34,15 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.ModularAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/a/ArcboundReclaimer.java b/Mage.Sets/src/mage/cards/a/ArcboundReclaimer.java index e667485ee5d..8f24c2ae189 100644 --- a/Mage.Sets/src/mage/cards/a/ArcboundReclaimer.java +++ b/Mage.Sets/src/mage/cards/a/ArcboundReclaimer.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterArtifactCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArcboundSlith.java b/Mage.Sets/src/mage/cards/a/ArcboundSlith.java index 2c715739c97..e040ac16cb6 100644 --- a/Mage.Sets/src/mage/cards/a/ArcboundSlith.java +++ b/Mage.Sets/src/mage/cards/a/ArcboundSlith.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArcboundStinger.java b/Mage.Sets/src/mage/cards/a/ArcboundStinger.java index 13d2e310e1b..204bc8949a7 100644 --- a/Mage.Sets/src/mage/cards/a/ArcboundStinger.java +++ b/Mage.Sets/src/mage/cards/a/ArcboundStinger.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.ModularAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArcboundWanderer.java b/Mage.Sets/src/mage/cards/a/ArcboundWanderer.java index 7a67cf9ca7a..27b54f4889d 100644 --- a/Mage.Sets/src/mage/cards/a/ArcboundWanderer.java +++ b/Mage.Sets/src/mage/cards/a/ArcboundWanderer.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.ModularAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArcboundWorker.java b/Mage.Sets/src/mage/cards/a/ArcboundWorker.java index 9ad18979d21..ff111ed1a13 100644 --- a/Mage.Sets/src/mage/cards/a/ArcboundWorker.java +++ b/Mage.Sets/src/mage/cards/a/ArcboundWorker.java @@ -28,12 +28,13 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ModularAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArchaeologicalDig.java b/Mage.Sets/src/mage/cards/a/ArchaeologicalDig.java index 012ad1b1b74..f8cf97e2505 100644 --- a/Mage.Sets/src/mage/cards/a/ArchaeologicalDig.java +++ b/Mage.Sets/src/mage/cards/a/ArchaeologicalDig.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.TapSourceCost; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/Archaeomancer.java b/Mage.Sets/src/mage/cards/a/Archaeomancer.java index dc2935498f3..97ccb7e0446 100644 --- a/Mage.Sets/src/mage/cards/a/Archaeomancer.java +++ b/Mage.Sets/src/mage/cards/a/Archaeomancer.java @@ -27,19 +27,20 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/Archangel.java b/Mage.Sets/src/mage/cards/a/Archangel.java index 9362864edd0..780e4de9e70 100644 --- a/Mage.Sets/src/mage/cards/a/Archangel.java +++ b/Mage.Sets/src/mage/cards/a/Archangel.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArchangelAvacyn.java b/Mage.Sets/src/mage/cards/a/ArchangelAvacyn.java index 4e4c69efaef..8e6c6c7622a 100644 --- a/Mage.Sets/src/mage/cards/a/ArchangelAvacyn.java +++ b/Mage.Sets/src/mage/cards/a/ArchangelAvacyn.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -38,17 +37,10 @@ import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.TransformTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; -import mage.abilities.keyword.FlashAbility; -import mage.abilities.keyword.FlyingAbility; -import mage.abilities.keyword.IndestructibleAbility; -import mage.abilities.keyword.TransformAbility; -import mage.abilities.keyword.VigilanceAbility; +import mage.abilities.keyword.*; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -58,6 +50,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes @@ -73,7 +67,8 @@ public class ArchangelAvacyn extends CardImpl { public ArchangelAvacyn(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); - this.supertype.add("Legendary"); + + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(4); this.toughness = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/a/ArchangelOfStrife.java b/Mage.Sets/src/mage/cards/a/ArchangelOfStrife.java index 05d31f7ccc3..2c0c9355e6a 100644 --- a/Mage.Sets/src/mage/cards/a/ArchangelOfStrife.java +++ b/Mage.Sets/src/mage/cards/a/ArchangelOfStrife.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -49,6 +48,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author Eirkei diff --git a/Mage.Sets/src/mage/cards/a/ArchangelOfThune.java b/Mage.Sets/src/mage/cards/a/ArchangelOfThune.java index 9d1dc14deab..7665b639184 100644 --- a/Mage.Sets/src/mage/cards/a/ArchangelOfThune.java +++ b/Mage.Sets/src/mage/cards/a/ArchangelOfThune.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.counter.AddCountersAllEffect; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/ArchangelOfTithes.java b/Mage.Sets/src/mage/cards/a/ArchangelOfTithes.java index 068d5bf7083..a64ebeb1ed1 100644 --- a/Mage.Sets/src/mage/cards/a/ArchangelOfTithes.java +++ b/Mage.Sets/src/mage/cards/a/ArchangelOfTithes.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArchangelsLight.java b/Mage.Sets/src/mage/cards/a/ArchangelsLight.java index 8724a00c09e..d222f56ba2c 100644 --- a/Mage.Sets/src/mage/cards/a/ArchangelsLight.java +++ b/Mage.Sets/src/mage/cards/a/ArchangelsLight.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; @@ -37,11 +34,14 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/a/ArchdemonOfUnx.java b/Mage.Sets/src/mage/cards/a/ArchdemonOfUnx.java index 3aad68d13fc..360062f5624 100644 --- a/Mage.Sets/src/mage/cards/a/ArchdemonOfUnx.java +++ b/Mage.Sets/src/mage/cards/a/ArchdemonOfUnx.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.ZombieToken; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/ArchersOfQarsi.java b/Mage.Sets/src/mage/cards/a/ArchersOfQarsi.java index 6741bdb2f9b..fe107a2af5e 100644 --- a/Mage.Sets/src/mage/cards/a/ArchersOfQarsi.java +++ b/Mage.Sets/src/mage/cards/a/ArchersOfQarsi.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.ReachAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ArchersParapet.java b/Mage.Sets/src/mage/cards/a/ArchersParapet.java index f8acf3130da..1d5a90c762c 100644 --- a/Mage.Sets/src/mage/cards/a/ArchersParapet.java +++ b/Mage.Sets/src/mage/cards/a/ArchersParapet.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArchetypeOfAggression.java b/Mage.Sets/src/mage/cards/a/ArchetypeOfAggression.java index 16dc8ee9645..719fdd37654 100644 --- a/Mage.Sets/src/mage/cards/a/ArchetypeOfAggression.java +++ b/Mage.Sets/src/mage/cards/a/ArchetypeOfAggression.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.CreaturesCantGetOrHaveAbilityEffect; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArchetypeOfCourage.java b/Mage.Sets/src/mage/cards/a/ArchetypeOfCourage.java index 78f9f28040f..d04ad2f2938 100644 --- a/Mage.Sets/src/mage/cards/a/ArchetypeOfCourage.java +++ b/Mage.Sets/src/mage/cards/a/ArchetypeOfCourage.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.CreaturesCantGetOrHaveAbilityEffect; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArchetypeOfEndurance.java b/Mage.Sets/src/mage/cards/a/ArchetypeOfEndurance.java index 5acc9d87297..be83580eefc 100644 --- a/Mage.Sets/src/mage/cards/a/ArchetypeOfEndurance.java +++ b/Mage.Sets/src/mage/cards/a/ArchetypeOfEndurance.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.CreaturesCantGetOrHaveAbilityEffect; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArchetypeOfFinality.java b/Mage.Sets/src/mage/cards/a/ArchetypeOfFinality.java index 1ad6ebf022a..04d60bdf255 100644 --- a/Mage.Sets/src/mage/cards/a/ArchetypeOfFinality.java +++ b/Mage.Sets/src/mage/cards/a/ArchetypeOfFinality.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.CreaturesCantGetOrHaveAbilityEffect; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArchetypeOfImagination.java b/Mage.Sets/src/mage/cards/a/ArchetypeOfImagination.java index 6c671099950..610d547d5b3 100644 --- a/Mage.Sets/src/mage/cards/a/ArchetypeOfImagination.java +++ b/Mage.Sets/src/mage/cards/a/ArchetypeOfImagination.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.CreaturesCantGetOrHaveAbilityEffect; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArchfiendOfDepravity.java b/Mage.Sets/src/mage/cards/a/ArchfiendOfDepravity.java index dd810e4e201..2189f6d0ea6 100644 --- a/Mage.Sets/src/mage/cards/a/ArchfiendOfDepravity.java +++ b/Mage.Sets/src/mage/cards/a/ArchfiendOfDepravity.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -46,6 +43,10 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArchfiendOfIfnir.java b/Mage.Sets/src/mage/cards/a/ArchfiendOfIfnir.java new file mode 100644 index 00000000000..51f696afa43 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/ArchfiendOfIfnir.java @@ -0,0 +1,79 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.a; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.CycleOrDiscardControllerTriggeredAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.counter.AddCountersAllEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.counters.CounterType; +import mage.filter.common.FilterOpponentsCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class ArchfiendOfIfnir extends CardImpl { + + public ArchfiendOfIfnir(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{B}"); + + this.subtype.add("Demon"); + this.power = new MageInt(5); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Whenever you cycle or discard another card, put a -1/-1 counter on each creature your opponents control. + this.addAbility(new CycleOrDiscardControllerTriggeredAbility( + new AddCountersAllEffect( + CounterType.M1M1.createInstance(1), + new FilterOpponentsCreaturePermanent("creature your opponents control") + ) + )); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + } + + public ArchfiendOfIfnir(final ArchfiendOfIfnir card) { + super(card); + } + + @Override + public ArchfiendOfIfnir copy() { + return new ArchfiendOfIfnir(this); + } +} diff --git a/Mage.Sets/src/mage/cards/a/ArchitectOfTheUntamed.java b/Mage.Sets/src/mage/cards/a/ArchitectOfTheUntamed.java index 2cfb9433d03..1e1011249e1 100644 --- a/Mage.Sets/src/mage/cards/a/ArchitectOfTheUntamed.java +++ b/Mage.Sets/src/mage/cards/a/ArchitectOfTheUntamed.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArchitectsOfWill.java b/Mage.Sets/src/mage/cards/a/ArchitectsOfWill.java index b22f68e7813..bffeaf89ba0 100644 --- a/Mage.Sets/src/mage/cards/a/ArchitectsOfWill.java +++ b/Mage.Sets/src/mage/cards/a/ArchitectsOfWill.java @@ -27,24 +27,21 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.CyclingAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/ArchiveTrap.java b/Mage.Sets/src/mage/cards/a/ArchiveTrap.java index 9bea0d1ec89..a2af1dbd234 100644 --- a/Mage.Sets/src/mage/cards/a/ArchiveTrap.java +++ b/Mage.Sets/src/mage/cards/a/ArchiveTrap.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.Condition; import mage.abilities.costs.AlternativeCostSourceAbility; @@ -46,6 +43,10 @@ import mage.players.Player; import mage.target.common.TargetOpponent; import mage.watchers.Watcher; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * @author BetaSteward_at_googlemail.com */ diff --git a/Mage.Sets/src/mage/cards/a/Archivist.java b/Mage.Sets/src/mage/cards/a/Archivist.java index a80896f67b0..4e262df9a55 100644 --- a/Mage.Sets/src/mage/cards/a/Archivist.java +++ b/Mage.Sets/src/mage/cards/a/Archivist.java @@ -27,17 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/ArchmageAscension.java b/Mage.Sets/src/mage/cards/a/ArchmageAscension.java index 524fca1fb9c..aa0a0c2beba 100644 --- a/Mage.Sets/src/mage/cards/a/ArchmageAscension.java +++ b/Mage.Sets/src/mage/cards/a/ArchmageAscension.java @@ -35,7 +35,10 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; diff --git a/Mage.Sets/src/mage/cards/a/ArchonOfJustice.java b/Mage.Sets/src/mage/cards/a/ArchonOfJustice.java index f9bf2d689bd..0efd96ae325 100644 --- a/Mage.Sets/src/mage/cards/a/ArchonOfJustice.java +++ b/Mage.Sets/src/mage/cards/a/ArchonOfJustice.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -36,8 +34,11 @@ import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author North, Loki diff --git a/Mage.Sets/src/mage/cards/a/ArchonOfRedemption.java b/Mage.Sets/src/mage/cards/a/ArchonOfRedemption.java index 748d488698a..a8254d3fb99 100644 --- a/Mage.Sets/src/mage/cards/a/ArchonOfRedemption.java +++ b/Mage.Sets/src/mage/cards/a/ArchonOfRedemption.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/ArchonOfTheTriumvirate.java b/Mage.Sets/src/mage/cards/a/ArchonOfTheTriumvirate.java index 785bd5da688..084173f2992 100644 --- a/Mage.Sets/src/mage/cards/a/ArchonOfTheTriumvirate.java +++ b/Mage.Sets/src/mage/cards/a/ArchonOfTheTriumvirate.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -37,11 +34,14 @@ import mage.abilities.effects.common.DetainTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.common.FilterNonlandPermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetNonlandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Archweaver.java b/Mage.Sets/src/mage/cards/a/Archweaver.java index cfeee1dcd81..2d8e23335ac 100644 --- a/Mage.Sets/src/mage/cards/a/Archweaver.java +++ b/Mage.Sets/src/mage/cards/a/Archweaver.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ReachAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArchwingDragon.java b/Mage.Sets/src/mage/cards/a/ArchwingDragon.java index 04ed8fbe84b..2903ca6a7e9 100644 --- a/Mage.Sets/src/mage/cards/a/ArchwingDragon.java +++ b/Mage.Sets/src/mage/cards/a/ArchwingDragon.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.OnEventTriggeredAbility; import mage.abilities.effects.common.ReturnToHandSourceEffect; @@ -36,8 +34,11 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/ArcticAven.java b/Mage.Sets/src/mage/cards/a/ArcticAven.java index a4a43b06688..8cee410fd3a 100644 --- a/Mage.Sets/src/mage/cards/a/ArcticAven.java +++ b/Mage.Sets/src/mage/cards/a/ArcticAven.java @@ -27,10 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,9 +37,14 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/ArcticFlats.java b/Mage.Sets/src/mage/cards/a/ArcticFlats.java index ec02252959e..bbd4a8a96ae 100644 --- a/Mage.Sets/src/mage/cards/a/ArcticFlats.java +++ b/Mage.Sets/src/mage/cards/a/ArcticFlats.java @@ -27,14 +27,15 @@ */ package mage.cards.a; -import java.util.UUID; - import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.GreenManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -44,7 +45,7 @@ public class ArcticFlats extends CardImpl { public ArcticFlats(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Snow"); + this.addSuperType(SuperType.SNOW); // Arctic Flats enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); diff --git a/Mage.Sets/src/mage/cards/a/ArcticMerfolk.java b/Mage.Sets/src/mage/cards/a/ArcticMerfolk.java index 37e2e900646..8913146ae57 100644 --- a/Mage.Sets/src/mage/cards/a/ArcticMerfolk.java +++ b/Mage.Sets/src/mage/cards/a/ArcticMerfolk.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.KickedCondition; @@ -37,10 +35,13 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArcticWolves.java b/Mage.Sets/src/mage/cards/a/ArcticWolves.java index 4b079b13d7f..a183301c9af 100644 --- a/Mage.Sets/src/mage/cards/a/ArcticWolves.java +++ b/Mage.Sets/src/mage/cards/a/ArcticWolves.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/ArcumDagsson.java b/Mage.Sets/src/mage/cards/a/ArcumDagsson.java index 9944304e014..10d3e864b8d 100644 --- a/Mage.Sets/src/mage/cards/a/ArcumDagsson.java +++ b/Mage.Sets/src/mage/cards/a/ArcumDagsson.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.FilterPermanent; @@ -51,6 +51,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author emerald000 @@ -65,7 +67,7 @@ public class ArcumDagsson extends CardImpl { public ArcumDagsson(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Artificer"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/a/ArdentMilitia.java b/Mage.Sets/src/mage/cards/a/ArdentMilitia.java index 2621d573776..87abb2ce48d 100644 --- a/Mage.Sets/src/mage/cards/a/ArdentMilitia.java +++ b/Mage.Sets/src/mage/cards/a/ArdentMilitia.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArdentPlea.java b/Mage.Sets/src/mage/cards/a/ArdentPlea.java index 3375ffb2e03..51d639e5571 100644 --- a/Mage.Sets/src/mage/cards/a/ArdentPlea.java +++ b/Mage.Sets/src/mage/cards/a/ArdentPlea.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.keyword.CascadeAbility; import mage.abilities.keyword.ExaltedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/ArdentRecruit.java b/Mage.Sets/src/mage/cards/a/ArdentRecruit.java index 55306054ae8..3a52cebc731 100644 --- a/Mage.Sets/src/mage/cards/a/ArdentRecruit.java +++ b/Mage.Sets/src/mage/cards/a/ArdentRecruit.java @@ -28,11 +28,6 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +38,11 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AbilityWord; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/ArdentSoldier.java b/Mage.Sets/src/mage/cards/a/ArdentSoldier.java index e1da72f29a2..22b56a34d58 100644 --- a/Mage.Sets/src/mage/cards/a/ArdentSoldier.java +++ b/Mage.Sets/src/mage/cards/a/ArdentSoldier.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.KickedCondition; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/Arena.java b/Mage.Sets/src/mage/cards/a/Arena.java index 9bbd8eeef01..231c96581e5 100644 --- a/Mage.Sets/src/mage/cards/a/Arena.java +++ b/Mage.Sets/src/mage/cards/a/Arena.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -45,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetOpponentsChoicePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/ArenaAthlete.java b/Mage.Sets/src/mage/cards/a/ArenaAthlete.java index 5429709c2cf..d76929c59ff 100644 --- a/Mage.Sets/src/mage/cards/a/ArenaAthlete.java +++ b/Mage.Sets/src/mage/cards/a/ArenaAthlete.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.combat.CantBlockTargetEffect; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/ArenaOfTheAncients.java b/Mage.Sets/src/mage/cards/a/ArenaOfTheAncients.java index 044a6bc7793..9ca666e3b2d 100644 --- a/Mage.Sets/src/mage/cards/a/ArenaOfTheAncients.java +++ b/Mage.Sets/src/mage/cards/a/ArenaOfTheAncients.java @@ -5,7 +5,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -13,13 +12,12 @@ import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; import mage.abilities.effects.common.TapAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** * * @author nickmyers @@ -28,7 +26,7 @@ public class ArenaOfTheAncients extends CardImpl { private final static FilterCreaturePermanent legendaryFilter = new FilterCreaturePermanent("legendary creatures"); static { - legendaryFilter.add(new SupertypePredicate("Legendary")); + legendaryFilter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public ArenaOfTheAncients(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/a/ArensonsAura.java b/Mage.Sets/src/mage/cards/a/ArensonsAura.java index edd61a1c566..c41a352a883 100644 --- a/Mage.Sets/src/mage/cards/a/ArensonsAura.java +++ b/Mage.Sets/src/mage/cards/a/ArensonsAura.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -45,6 +44,8 @@ import mage.target.TargetSpell; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/ArgentMutation.java b/Mage.Sets/src/mage/cards/a/ArgentMutation.java index f8936fd7b0b..c534272bc5c 100644 --- a/Mage.Sets/src/mage/cards/a/ArgentMutation.java +++ b/Mage.Sets/src/mage/cards/a/ArgentMutation.java @@ -27,15 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.AddCardTypeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/ArgentSphinx.java b/Mage.Sets/src/mage/cards/a/ArgentSphinx.java index 1e0b8ac2f81..ea111f1cd67 100644 --- a/Mage.Sets/src/mage/cards/a/ArgentSphinx.java +++ b/Mage.Sets/src/mage/cards/a/ArgentSphinx.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -49,6 +48,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/ArgentumArmor.java b/Mage.Sets/src/mage/cards/a/ArgentumArmor.java index b31c37db847..ecdff5822c4 100644 --- a/Mage.Sets/src/mage/cards/a/ArgentumArmor.java +++ b/Mage.Sets/src/mage/cards/a/ArgentumArmor.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.AttacksAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/ArgivianArchaeologist.java b/Mage.Sets/src/mage/cards/a/ArgivianArchaeologist.java index 2fd988e575a..b9d4b060147 100644 --- a/Mage.Sets/src/mage/cards/a/ArgivianArchaeologist.java +++ b/Mage.Sets/src/mage/cards/a/ArgivianArchaeologist.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterArtifactCard; import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ArgivianBlacksmith.java b/Mage.Sets/src/mage/cards/a/ArgivianBlacksmith.java index 88e9921f0db..3e501354404 100644 --- a/Mage.Sets/src/mage/cards/a/ArgivianBlacksmith.java +++ b/Mage.Sets/src/mage/cards/a/ArgivianBlacksmith.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ArgivianFind.java b/Mage.Sets/src/mage/cards/a/ArgivianFind.java index 2b9a53a36d2..b9184b72cb6 100644 --- a/Mage.Sets/src/mage/cards/a/ArgivianFind.java +++ b/Mage.Sets/src/mage/cards/a/ArgivianFind.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -37,6 +36,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/ArgivianRestoration.java b/Mage.Sets/src/mage/cards/a/ArgivianRestoration.java index 1bcbd85d944..d1067bc8c5f 100644 --- a/Mage.Sets/src/mage/cards/a/ArgivianRestoration.java +++ b/Mage.Sets/src/mage/cards/a/ArgivianRestoration.java @@ -27,14 +27,15 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterArtifactCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/ArgothianElder.java b/Mage.Sets/src/mage/cards/a/ArgothianElder.java index bcc36d505a4..36e09e7228a 100644 --- a/Mage.Sets/src/mage/cards/a/ArgothianElder.java +++ b/Mage.Sets/src/mage/cards/a/ArgothianElder.java @@ -29,9 +29,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,8 +36,12 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.UntapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/ArgothianEnchantress.java b/Mage.Sets/src/mage/cards/a/ArgothianEnchantress.java index 4e65ce64090..9d9ff416bec 100644 --- a/Mage.Sets/src/mage/cards/a/ArgothianEnchantress.java +++ b/Mage.Sets/src/mage/cards/a/ArgothianEnchantress.java @@ -27,17 +27,18 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/ArgothianPixies.java b/Mage.Sets/src/mage/cards/a/ArgothianPixies.java index 042def27f46..9e79a630fe8 100644 --- a/Mage.Sets/src/mage/cards/a/ArgothianPixies.java +++ b/Mage.Sets/src/mage/cards/a/ArgothianPixies.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleEvasionAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/a/ArgothianSwine.java b/Mage.Sets/src/mage/cards/a/ArgothianSwine.java index 498cdbd2a42..cc00b887048 100644 --- a/Mage.Sets/src/mage/cards/a/ArgothianSwine.java +++ b/Mage.Sets/src/mage/cards/a/ArgothianSwine.java @@ -28,12 +28,13 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArgothianTreefolk.java b/Mage.Sets/src/mage/cards/a/ArgothianTreefolk.java index 116be4964b6..16d08609fb2 100644 --- a/Mage.Sets/src/mage/cards/a/ArgothianTreefolk.java +++ b/Mage.Sets/src/mage/cards/a/ArgothianTreefolk.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/a/ArgothianWurm.java b/Mage.Sets/src/mage/cards/a/ArgothianWurm.java index 21ab3059bff..ea1d3e38217 100644 --- a/Mage.Sets/src/mage/cards/a/ArgothianWurm.java +++ b/Mage.Sets/src/mage/cards/a/ArgothianWurm.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AridMesa.java b/Mage.Sets/src/mage/cards/a/AridMesa.java index 55a6e6045f4..83d03045b3b 100644 --- a/Mage.Sets/src/mage/cards/a/AridMesa.java +++ b/Mage.Sets/src/mage/cards/a/AridMesa.java @@ -28,12 +28,13 @@ package mage.cards.a; -import java.util.UUID; import mage.ObjectColor; -import mage.constants.CardType; import mage.abilities.common.FetchLandActivatedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArjunTheShiftingFlame.java b/Mage.Sets/src/mage/cards/a/ArjunTheShiftingFlame.java index 7036ebc8a74..0e3fea72e3e 100644 --- a/Mage.Sets/src/mage/cards/a/ArjunTheShiftingFlame.java +++ b/Mage.Sets/src/mage/cards/a/ArjunTheShiftingFlame.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -37,9 +36,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes @@ -48,7 +50,7 @@ public class ArjunTheShiftingFlame extends CardImpl { public ArjunTheShiftingFlame(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Sphinx"); this.subtype.add("Wizard"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/a/ArkOfBlight.java b/Mage.Sets/src/mage/cards/a/ArkOfBlight.java index 319fb777071..b30aec1c04d 100644 --- a/Mage.Sets/src/mage/cards/a/ArkOfBlight.java +++ b/Mage.Sets/src/mage/cards/a/ArkOfBlight.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/ArlinnEmbracedByTheMoon.java b/Mage.Sets/src/mage/cards/a/ArlinnEmbracedByTheMoon.java index 3f47888a3f0..74354be76a9 100644 --- a/Mage.Sets/src/mage/cards/a/ArlinnEmbracedByTheMoon.java +++ b/Mage.Sets/src/mage/cards/a/ArlinnEmbracedByTheMoon.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -54,6 +53,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.game.command.Emblem; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ArlinnKord.java b/Mage.Sets/src/mage/cards/a/ArlinnKord.java index 2b16d2c423c..8e3b142dd27 100644 --- a/Mage.Sets/src/mage/cards/a/ArlinnKord.java +++ b/Mage.Sets/src/mage/cards/a/ArlinnKord.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; import mage.abilities.effects.Effect; @@ -45,6 +44,8 @@ import mage.constants.Duration; import mage.game.permanent.token.WolfToken; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ArmWithAether.java b/Mage.Sets/src/mage/cards/a/ArmWithAether.java index 0b222861789..8201d0ce080 100644 --- a/Mage.Sets/src/mage/cards/a/ArmWithAether.java +++ b/Mage.Sets/src/mage/cards/a/ArmWithAether.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.ReturnToHandTargetEffect; @@ -45,6 +44,8 @@ import mage.game.events.GameEvent.EventType; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/ArmadaWurm.java b/Mage.Sets/src/mage/cards/a/ArmadaWurm.java index 2b2a8b51d96..544a9402c2d 100644 --- a/Mage.Sets/src/mage/cards/a/ArmadaWurm.java +++ b/Mage.Sets/src/mage/cards/a/ArmadaWurm.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.WurmToken2; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArmadilloCloak.java b/Mage.Sets/src/mage/cards/a/ArmadilloCloak.java index 2ef993a1206..423b4fb8f3c 100644 --- a/Mage.Sets/src/mage/cards/a/ArmadilloCloak.java +++ b/Mage.Sets/src/mage/cards/a/ArmadilloCloak.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DealsDamageAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,14 +40,12 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Armageddon.java b/Mage.Sets/src/mage/cards/a/Armageddon.java index 1e023d8cff1..01783d32168 100644 --- a/Mage.Sets/src/mage/cards/a/Armageddon.java +++ b/Mage.Sets/src/mage/cards/a/Armageddon.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/ArmageddonClock.java b/Mage.Sets/src/mage/cards/a/ArmageddonClock.java index ae0a1b71df8..78a8f65f816 100644 --- a/Mage.Sets/src/mage/cards/a/ArmageddonClock.java +++ b/Mage.Sets/src/mage/cards/a/ArmageddonClock.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.ActivatedAbilityImpl; import mage.abilities.common.BeginningOfDrawTriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -37,16 +36,14 @@ import mage.abilities.decorator.ConditionalActivatedAbility; import mage.abilities.dynamicvalue.common.CountersSourceCount; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.DamagePlayersEffect; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.counters.CounterType; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.RemoveCounterSourceEffect; -import mage.constants.Outcome; -import mage.constants.PhaseStep; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.counters.CounterType; + +import java.util.UUID; /** diff --git a/Mage.Sets/src/mage/cards/a/ArmamentCorps.java b/Mage.Sets/src/mage/cards/a/ArmamentCorps.java index f395eb42a53..ee157350a70 100644 --- a/Mage.Sets/src/mage/cards/a/ArmamentCorps.java +++ b/Mage.Sets/src/mage/cards/a/ArmamentCorps.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanentAmount; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArmamentMaster.java b/Mage.Sets/src/mage/cards/a/ArmamentMaster.java index b5bc94bcae3..45ef3f245bb 100644 --- a/Mage.Sets/src/mage/cards/a/ArmamentMaster.java +++ b/Mage.Sets/src/mage/cards/a/ArmamentMaster.java @@ -27,18 +27,13 @@ */ package mage.cards.a; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; diff --git a/Mage.Sets/src/mage/cards/a/ArmamentOfNyx.java b/Mage.Sets/src/mage/cards/a/ArmamentOfNyx.java index 5e25e09273f..7ef7f0c9fd6 100644 --- a/Mage.Sets/src/mage/cards/a/ArmamentOfNyx.java +++ b/Mage.Sets/src/mage/cards/a/ArmamentOfNyx.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; @@ -43,16 +42,14 @@ import mage.abilities.keyword.DoubleStrikeAbility; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArmedDangerous.java b/Mage.Sets/src/mage/cards/a/ArmedDangerous.java index c36fde9c006..d7097779df2 100644 --- a/Mage.Sets/src/mage/cards/a/ArmedDangerous.java +++ b/Mage.Sets/src/mage/cards/a/ArmedDangerous.java @@ -25,34 +25,28 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.a; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.combat.MustBeBlockedByAllTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.DoubleStrikeAbility; import mage.cards.CardSetInfo; import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SpellAbilityType; import mage.target.common.TargetCreaturePermanent; -/** - * - * @author LevelX2 - */ - - public class ArmedDangerous extends SplitCard { public ArmedDangerous(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}","{3}{G}",true); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}", "{3}{G}", SpellAbilityType.SPLIT_FUSED); // Armed // Target creature gets +1/+1 and gains double strike until end of turn. - getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(1,1, Duration.EndOfTurn)); + getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(1, 1, Duration.EndOfTurn)); getLeftHalfCard().getSpellAbility().addEffect(new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfTurn)); getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); diff --git a/Mage.Sets/src/mage/cards/a/ArmedProtocolDroid.java b/Mage.Sets/src/mage/cards/a/ArmedProtocolDroid.java index 7e26cfb4e00..8c2fab1e0bc 100644 --- a/Mage.Sets/src/mage/cards/a/ArmedProtocolDroid.java +++ b/Mage.Sets/src/mage/cards/a/ArmedProtocolDroid.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/ArmedResponse.java b/Mage.Sets/src/mage/cards/a/ArmedResponse.java index 440b2eb6b37..1afba191ddc 100644 --- a/Mage.Sets/src/mage/cards/a/ArmedResponse.java +++ b/Mage.Sets/src/mage/cards/a/ArmedResponse.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -38,6 +37,8 @@ import mage.filter.common.FilterControlledArtifactPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetAttackingCreature; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/ArmillarySphere.java b/Mage.Sets/src/mage/cards/a/ArmillarySphere.java index fd25264d257..b5ded346b47 100644 --- a/Mage.Sets/src/mage/cards/a/ArmillarySphere.java +++ b/Mage.Sets/src/mage/cards/a/ArmillarySphere.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/Armistice.java b/Mage.Sets/src/mage/cards/a/Armistice.java index 753427048ce..baa772ee86a 100644 --- a/Mage.Sets/src/mage/cards/a/Armistice.java +++ b/Mage.Sets/src/mage/cards/a/Armistice.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArmorOfFaith.java b/Mage.Sets/src/mage/cards/a/ArmorOfFaith.java index 768b9e0a550..0326ff22bfa 100644 --- a/Mage.Sets/src/mage/cards/a/ArmorOfFaith.java +++ b/Mage.Sets/src/mage/cards/a/ArmorOfFaith.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/ArmorOfThorns.java b/Mage.Sets/src/mage/cards/a/ArmorOfThorns.java index b2c3c8697fc..8e4155ea881 100644 --- a/Mage.Sets/src/mage/cards/a/ArmorOfThorns.java +++ b/Mage.Sets/src/mage/cards/a/ArmorOfThorns.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SacrificeIfCastAtInstantTimeTriggeredAbility; @@ -48,6 +47,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/ArmorSliver.java b/Mage.Sets/src/mage/cards/a/ArmorSliver.java index c836d8af656..7bf8d5a54a3 100644 --- a/Mage.Sets/src/mage/cards/a/ArmorSliver.java +++ b/Mage.Sets/src/mage/cards/a/ArmorSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/ArmorThrull.java b/Mage.Sets/src/mage/cards/a/ArmorThrull.java index f6024162a6b..dc489d149e6 100644 --- a/Mage.Sets/src/mage/cards/a/ArmorThrull.java +++ b/Mage.Sets/src/mage/cards/a/ArmorThrull.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/ArmorcraftJudge.java b/Mage.Sets/src/mage/cards/a/ArmorcraftJudge.java index f62abcad375..a5ea58cdfff 100644 --- a/Mage.Sets/src/mage/cards/a/ArmorcraftJudge.java +++ b/Mage.Sets/src/mage/cards/a/ArmorcraftJudge.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -39,6 +38,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.CounterPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArmoredAscension.java b/Mage.Sets/src/mage/cards/a/ArmoredAscension.java index a9d0f425440..faf7d9b04cc 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoredAscension.java +++ b/Mage.Sets/src/mage/cards/a/ArmoredAscension.java @@ -27,13 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.AttachEffect; @@ -43,12 +36,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com, North diff --git a/Mage.Sets/src/mage/cards/a/ArmoredCancrix.java b/Mage.Sets/src/mage/cards/a/ArmoredCancrix.java index b790cfbdb53..a32a85050a8 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoredCancrix.java +++ b/Mage.Sets/src/mage/cards/a/ArmoredCancrix.java @@ -28,11 +28,12 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArmoredGalleon.java b/Mage.Sets/src/mage/cards/a/ArmoredGalleon.java index e5525b65d8d..28415e942d0 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoredGalleon.java +++ b/Mage.Sets/src/mage/cards/a/ArmoredGalleon.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantAttackUnlessDefenderControllsPermanent; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ArmoredGriffin.java b/Mage.Sets/src/mage/cards/a/ArmoredGriffin.java index 2bfdf54239e..3737363e2c8 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoredGriffin.java +++ b/Mage.Sets/src/mage/cards/a/ArmoredGriffin.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArmoredGuardian.java b/Mage.Sets/src/mage/cards/a/ArmoredGuardian.java index 3bbbc80c10a..2f91dc45ad2 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoredGuardian.java +++ b/Mage.Sets/src/mage/cards/a/ArmoredGuardian.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/ArmoredPegasus.java b/Mage.Sets/src/mage/cards/a/ArmoredPegasus.java index b5d9d70af79..3cfb342e5e7 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoredPegasus.java +++ b/Mage.Sets/src/mage/cards/a/ArmoredPegasus.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArmoredSkaab.java b/Mage.Sets/src/mage/cards/a/ArmoredSkaab.java index cef3b3b2a68..d063469dddc 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoredSkaab.java +++ b/Mage.Sets/src/mage/cards/a/ArmoredSkaab.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/ArmoredTransport.java b/Mage.Sets/src/mage/cards/a/ArmoredTransport.java index defccb61ffa..fc9122c7e64 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoredTransport.java +++ b/Mage.Sets/src/mage/cards/a/ArmoredTransport.java @@ -27,22 +27,22 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.PreventionEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.Zone; import mage.game.Game; import mage.game.events.DamageEvent; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArmoredWarhorse.java b/Mage.Sets/src/mage/cards/a/ArmoredWarhorse.java index 68a8ced69ef..22838750964 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoredWarhorse.java +++ b/Mage.Sets/src/mage/cards/a/ArmoredWarhorse.java @@ -28,12 +28,12 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/ArmoredWolfRider.java b/Mage.Sets/src/mage/cards/a/ArmoredWolfRider.java index c7826062d56..fa1d84a881a 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoredWolfRider.java +++ b/Mage.Sets/src/mage/cards/a/ArmoredWolfRider.java @@ -28,11 +28,12 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArmorerGuildmage.java b/Mage.Sets/src/mage/cards/a/ArmorerGuildmage.java index d01472d4940..c02fb166697 100644 --- a/Mage.Sets/src/mage/cards/a/ArmorerGuildmage.java +++ b/Mage.Sets/src/mage/cards/a/ArmorerGuildmage.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ArmoryAutomaton.java b/Mage.Sets/src/mage/cards/a/ArmoryAutomaton.java index a689074b5c1..8f2b5fc5377 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoryAutomaton.java +++ b/Mage.Sets/src/mage/cards/a/ArmoryAutomaton.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility; @@ -44,6 +43,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/a/ArmoryGuard.java b/Mage.Sets/src/mage/cards/a/ArmoryGuard.java index 498adcb2eac..eb3a9ec325d 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoryGuard.java +++ b/Mage.Sets/src/mage/cards/a/ArmoryGuard.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -38,10 +35,13 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/ArmoryOfIroas.java b/Mage.Sets/src/mage/cards/a/ArmoryOfIroas.java index eecae74f24e..a061f6b91d5 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoryOfIroas.java +++ b/Mage.Sets/src/mage/cards/a/ArmoryOfIroas.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.common.AttacksAttachedTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.counter.AddCountersAttachedEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArmsDealer.java b/Mage.Sets/src/mage/cards/a/ArmsDealer.java index 0c4958260ac..47ddc230eed 100644 --- a/Mage.Sets/src/mage/cards/a/ArmsDealer.java +++ b/Mage.Sets/src/mage/cards/a/ArmsDealer.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -37,11 +34,15 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/ArmyAnts.java b/Mage.Sets/src/mage/cards/a/ArmyAnts.java index 11000911bab..2dabe8fb864 100644 --- a/Mage.Sets/src/mage/cards/a/ArmyAnts.java +++ b/Mage.Sets/src/mage/cards/a/ArmyAnts.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterControlledLandPermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ArmyOfAllah.java b/Mage.Sets/src/mage/cards/a/ArmyOfAllah.java index 29843672abd..aa7bca20caf 100644 --- a/Mage.Sets/src/mage/cards/a/ArmyOfAllah.java +++ b/Mage.Sets/src/mage/cards/a/ArmyOfAllah.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterAttackingCreature; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ArmyOfTheDamned.java b/Mage.Sets/src/mage/cards/a/ArmyOfTheDamned.java index 70a2fb55443..25630528924 100644 --- a/Mage.Sets/src/mage/cards/a/ArmyOfTheDamned.java +++ b/Mage.Sets/src/mage/cards/a/ArmyOfTheDamned.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlashbackAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.TimingRule; import mage.game.permanent.token.ZombieToken; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/a/ArnjlotsAscent.java b/Mage.Sets/src/mage/cards/a/ArnjlotsAscent.java index 5c9d0a39e42..139210fb5ae 100644 --- a/Mage.Sets/src/mage/cards/a/ArnjlotsAscent.java +++ b/Mage.Sets/src/mage/cards/a/ArnjlotsAscent.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/Arrest.java b/Mage.Sets/src/mage/cards/a/Arrest.java index c911ef72cd6..ec47b9a7c02 100644 --- a/Mage.Sets/src/mage/cards/a/Arrest.java +++ b/Mage.Sets/src/mage/cards/a/Arrest.java @@ -28,10 +28,6 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -39,10 +35,14 @@ import mage.abilities.effects.common.combat.CantBlockAttackActivateAttachedEffec import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/ArrogantBloodlord.java b/Mage.Sets/src/mage/cards/a/ArrogantBloodlord.java index c871c7f3536..c6d2d55ce9b 100644 --- a/Mage.Sets/src/mage/cards/a/ArrogantBloodlord.java +++ b/Mage.Sets/src/mage/cards/a/ArrogantBloodlord.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.Objects; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -45,6 +43,9 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.Objects; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/ArrogantVampire.java b/Mage.Sets/src/mage/cards/a/ArrogantVampire.java index ac5512f8fce..6241d0ccd00 100644 --- a/Mage.Sets/src/mage/cards/a/ArrogantVampire.java +++ b/Mage.Sets/src/mage/cards/a/ArrogantVampire.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/ArrogantWurm.java b/Mage.Sets/src/mage/cards/a/ArrogantWurm.java index 39519b7813d..bfe589cf651 100644 --- a/Mage.Sets/src/mage/cards/a/ArrogantWurm.java +++ b/Mage.Sets/src/mage/cards/a/ArrogantWurm.java @@ -27,13 +27,13 @@ */ package mage.cards.a; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.MadnessAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/a/ArrowStorm.java b/Mage.Sets/src/mage/cards/a/ArrowStorm.java index 4783ceb2552..60970a1aaf5 100644 --- a/Mage.Sets/src/mage/cards/a/ArrowStorm.java +++ b/Mage.Sets/src/mage/cards/a/ArrowStorm.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArrowVolleyTrap.java b/Mage.Sets/src/mage/cards/a/ArrowVolleyTrap.java index b21376b4f0a..f0f22d13bc6 100644 --- a/Mage.Sets/src/mage/cards/a/ArrowVolleyTrap.java +++ b/Mage.Sets/src/mage/cards/a/ArrowVolleyTrap.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.Condition; import mage.abilities.costs.AlternativeCostSourceAbility; @@ -40,6 +39,8 @@ import mage.filter.common.FilterAttackingCreature; import mage.game.Game; import mage.target.common.TargetCreaturePermanentAmount; +import java.util.UUID; + /** * @author LevelX2 */ diff --git a/Mage.Sets/src/mage/cards/a/ArrowsOfJustice.java b/Mage.Sets/src/mage/cards/a/ArrowsOfJustice.java index e9908b687b0..37d0d9ef211 100644 --- a/Mage.Sets/src/mage/cards/a/ArrowsOfJustice.java +++ b/Mage.Sets/src/mage/cards/a/ArrowsOfJustice.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArsenalThresher.java b/Mage.Sets/src/mage/cards/a/ArsenalThresher.java index e42500465a1..6d29d90343e 100644 --- a/Mage.Sets/src/mage/cards/a/ArsenalThresher.java +++ b/Mage.Sets/src/mage/cards/a/ArsenalThresher.java @@ -27,6 +27,7 @@ */ package mage.cards.a; +import java.util.ArrayList; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; @@ -53,7 +54,7 @@ import mage.target.common.TargetCardInHand; public class ArsenalThresher extends CardImpl { public ArsenalThresher(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{2}{W/B}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{2}{W/B}{U}"); this.subtype.add("Construct"); this.power = new MageInt(2); @@ -108,7 +109,8 @@ class ArsenalThresherEffect extends OneShotEffect { } if (arsenalThresher != null) { controller.revealCards(arsenalThresher.getIdName(), cards, game); - arsenalThresher.addCounters(CounterType.P1P1.createInstance(cards.size()), source, game); + ArrayList appliedEffects = (ArrayList) this.getValue("appliedEffects"); // the basic event is the EntersBattlefieldEvent, so use already applied replacement effects from that event + arsenalThresher.addCounters(CounterType.P1P1.createInstance(cards.size()), source, game, appliedEffects); } } } diff --git a/Mage.Sets/src/mage/cards/a/ArtfulDodge.java b/Mage.Sets/src/mage/cards/a/ArtfulDodge.java index c546f897d06..c05b3a665c3 100644 --- a/Mage.Sets/src/mage/cards/a/ArtfulDodge.java +++ b/Mage.Sets/src/mage/cards/a/ArtfulDodge.java @@ -27,16 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TimingRule; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TimingRule; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/ArtfulManeuver.java b/Mage.Sets/src/mage/cards/a/ArtfulManeuver.java index 7c6dcf5abb8..17bfedde2f3 100644 --- a/Mage.Sets/src/mage/cards/a/ArtfulManeuver.java +++ b/Mage.Sets/src/mage/cards/a/ArtfulManeuver.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.ReboundAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/ArtifactBlast.java b/Mage.Sets/src/mage/cards/a/ArtifactBlast.java index eda60ce1d7f..372ebd6dece 100644 --- a/Mage.Sets/src/mage/cards/a/ArtifactBlast.java +++ b/Mage.Sets/src/mage/cards/a/ArtifactBlast.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.target.TargetSpell; import mage.filter.common.FilterArtifactSpell; +import mage.target.TargetSpell; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/ArtifactMutation.java b/Mage.Sets/src/mage/cards/a/ArtifactMutation.java index b61d2e88a42..c62bd06a6b3 100644 --- a/Mage.Sets/src/mage/cards/a/ArtifactMutation.java +++ b/Mage.Sets/src/mage/cards/a/ArtifactMutation.java @@ -27,16 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.TargetConvertedManaCost; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.SaprolingToken; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/ArtifactPossession.java b/Mage.Sets/src/mage/cards/a/ArtifactPossession.java index f45e304ab9c..c8e10e79aa5 100644 --- a/Mage.Sets/src/mage/cards/a/ArtifactPossession.java +++ b/Mage.Sets/src/mage/cards/a/ArtifactPossession.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.AttachEffect; @@ -44,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/a/ArtifactWard.java b/Mage.Sets/src/mage/cards/a/ArtifactWard.java index 5c59207e7bb..cfc268c738a 100644 --- a/Mage.Sets/src/mage/cards/a/ArtifactWard.java +++ b/Mage.Sets/src/mage/cards/a/ArtifactWard.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; @@ -43,6 +42,8 @@ import mage.filter.common.FilterArtifactCard; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/a/ArtificersEpiphany.java b/Mage.Sets/src/mage/cards/a/ArtificersEpiphany.java index 2154a8a5a82..8a66e8ab486 100644 --- a/Mage.Sets/src/mage/cards/a/ArtificersEpiphany.java +++ b/Mage.Sets/src/mage/cards/a/ArtificersEpiphany.java @@ -27,9 +27,7 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -40,6 +38,8 @@ import mage.constants.CardType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -59,7 +59,7 @@ public class ArtificersEpiphany extends CardImpl { this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2)); this.getSpellAbility().addEffect(new ConditionalOneShotEffect( new DiscardControllerEffect(1), - new PermanentsOnTheBattlefieldCondition(filter, CountType.EQUAL_TO, 0))); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.EQUAL_TO, 0))); } public ArtificersEpiphany(final ArtificersEpiphany card) { diff --git a/Mage.Sets/src/mage/cards/a/ArtificersHex.java b/Mage.Sets/src/mage/cards/a/ArtificersHex.java index aab8f7d0d06..a2aa387e6ce 100644 --- a/Mage.Sets/src/mage/cards/a/ArtificersHex.java +++ b/Mage.Sets/src/mage/cards/a/ArtificersHex.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/ArtificersIntuition.java b/Mage.Sets/src/mage/cards/a/ArtificersIntuition.java index 2709172a5bb..0bd1b80f709 100644 --- a/Mage.Sets/src/mage/cards/a/ArtificersIntuition.java +++ b/Mage.Sets/src/mage/cards/a/ArtificersIntuition.java @@ -27,8 +27,8 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,11 +37,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterArtifactCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Plopman @@ -50,7 +51,7 @@ public class ArtificersIntuition extends CardImpl { private static final FilterArtifactCard filter = new FilterArtifactCard("artifact card with converted mana cost 1 or less"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 2)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2)); } public ArtificersIntuition(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}"); diff --git a/Mage.Sets/src/mage/cards/a/Artillerize.java b/Mage.Sets/src/mage/cards/a/Artillerize.java index be3de49bcfc..f114bf752fb 100644 --- a/Mage.Sets/src/mage/cards/a/Artillerize.java +++ b/Mage.Sets/src/mage/cards/a/Artillerize.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/ArtisanOfForms.java b/Mage.Sets/src/mage/cards/a/ArtisanOfForms.java index 664c7a2803f..2be9c0d2801 100644 --- a/Mage.Sets/src/mage/cards/a/ArtisanOfForms.java +++ b/Mage.Sets/src/mage/cards/a/ArtisanOfForms.java @@ -50,7 +50,7 @@ import mage.util.functions.ApplyToPermanent; public class ArtisanOfForms extends CardImpl { public ArtisanOfForms(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}"); this.subtype.add("Human"); this.subtype.add("Wizard"); @@ -78,7 +78,7 @@ public class ArtisanOfForms extends CardImpl { class ArtisanOfFormsApplyToPermanent extends ApplyToPermanent { @Override - public boolean apply(Game game, MageObject mageObject) { + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { Effect effect = new CopyPermanentEffect(new ArtisanOfFormsApplyToPermanent()); effect.setText("have {this} become a copy of target creature and gain this ability"); mageObject.getAbilities().add(new HeroicAbility(effect, true)); @@ -86,7 +86,7 @@ class ArtisanOfFormsApplyToPermanent extends ApplyToPermanent { } @Override - public boolean apply(Game game, Permanent permanent) { + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { Effect effect = new CopyPermanentEffect(new ArtisanOfFormsApplyToPermanent()); effect.setText("have {this} become a copy of target creature and gain this ability"); permanent.addAbility(new HeroicAbility(effect, true), game); diff --git a/Mage.Sets/src/mage/cards/a/ArtisanOfKozilek.java b/Mage.Sets/src/mage/cards/a/ArtisanOfKozilek.java index ee06259450d..eca14631053 100644 --- a/Mage.Sets/src/mage/cards/a/ArtisanOfKozilek.java +++ b/Mage.Sets/src/mage/cards/a/ArtisanOfKozilek.java @@ -28,8 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.CastSourceTriggeredAbility; @@ -37,9 +35,12 @@ import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffec import mage.abilities.keyword.AnnihilatorAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/ArtisansSorrow.java b/Mage.Sets/src/mage/cards/a/ArtisansSorrow.java index c531f3b2deb..172a1df9a07 100644 --- a/Mage.Sets/src/mage/cards/a/ArtisansSorrow.java +++ b/Mage.Sets/src/mage/cards/a/ArtisansSorrow.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AsForetold.java b/Mage.Sets/src/mage/cards/a/AsForetold.java new file mode 100644 index 00000000000..5618da6ee0a --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AsForetold.java @@ -0,0 +1,228 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.a; + +import java.util.UUID; + +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.Condition; +import mage.abilities.costs.AlternativeCostSourceAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.counters.CounterType; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.watchers.Watcher; + +/** + * + * @author stravant + * + * Note, this card is pretty hacky in its implementation due to the fact that the alternative cost system doesn't + * really support "once each turn" alternative costs in an obvious way, but it should work in all scenarios as far + * as I can see. + */ +public class AsForetold extends CardImpl { + public AsForetold(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{U}"); + + + // At the beginning of your upkeep, put a time counter on As Foretold. + addAbility( + new BeginningOfUpkeepTriggeredAbility( + new AddCountersSourceEffect(CounterType.TIME.createInstance(), new StaticValue(1), true), + TargetController.YOU, + /* optional = */false)); + + // Once each turn, you may pay {0} rather than pay the mana cost for a spell you cast with converted mana cost X or less, where X is the number of time counters on As Foretold. + addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new AsForetoldAddAltCostEffect()), new AsForetoldAltCostUsedWatcher()); + } + + public AsForetold(final AsForetold card) { + super(card); + } + + @Override + public AsForetold copy() { + return new AsForetold(this); + } +} + +/** + * Used to determine what cast objects to apply the alternative cost to + */ +class SpellWithManaCostLessThanOrEqualToCondition implements Condition { + private int counters; + + public SpellWithManaCostLessThanOrEqualToCondition(int counters) { + this.counters = counters; + } + + @Override + public boolean apply(Game game, Ability source) { + MageObject object = game.getObject(source.getSourceId()); + return object != null && !object.isLand() && object.getConvertedManaCost() <= counters; + } +} + + +/** + * Special AlternativeCostSourceAbility implementation. We wrap the call to askToActivateAlternativeCosts in order to + * tell when the alternative cost is used, and mark it as having been used this turn in the watcher + */ +class AsForetoldAlternativeCost extends AlternativeCostSourceAbility { + private UUID sourceAsForetold; + + AsForetoldAlternativeCost(UUID sourceAsForetold, int timeCounters) { + super(new ManaCostsImpl("{0}"), new SpellWithManaCostLessThanOrEqualToCondition(timeCounters)); + this.sourceAsForetold = sourceAsForetold; + } + + AsForetoldAlternativeCost(final AsForetoldAlternativeCost ability) { + super(ability); + this.sourceAsForetold = ability.sourceAsForetold; + } + + @Override + public AsForetoldAlternativeCost copy() { + return new AsForetoldAlternativeCost(this); + } + + @Override + public boolean askToActivateAlternativeCosts(Ability ability, Game game) { + boolean activated = super.askToActivateAlternativeCosts(ability, game); + if (activated) { + // Get the watcher + AsForetoldAltCostUsedWatcher asForetoldAltCostUsedWatcher = + (AsForetoldAltCostUsedWatcher)game.getState().getWatchers() + .get("asForetoldAltCostUsedWatcher", sourceAsForetold); + + // Mark as used + asForetoldAltCostUsedWatcher.markUsedThisTurn(); + } + return activated; + } +} + +/** + * The continuous effect that adds the option to pay the alternative cost if we haven't used it yet this turn + */ +class AsForetoldAddAltCostEffect extends ContinuousEffectImpl { + public AsForetoldAddAltCostEffect() { + super(Duration.WhileOnBattlefield, Outcome.Benefit); + staticText = "Once each turn, you may pay {0} rather than pay the mana cost for a spell you cast with converted mana cost X or less, where X is the number of time counters on {this}."; + } + + public AsForetoldAddAltCostEffect(final AsForetoldAddAltCostEffect effect) { + super(effect); + } + + @Override + public AsForetoldAddAltCostEffect copy() { + return new AsForetoldAddAltCostEffect(this); + } + + @Override + public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + Permanent sourcePermanent = game.getPermanent(source.getSourceId()); + if (sourcePermanent != null) { + // Get the watcher + AsForetoldAltCostUsedWatcher asForetoldAltCostUsedWatcher = + (AsForetoldAltCostUsedWatcher)game.getState().getWatchers() + .get("asForetoldAltCostUsedWatcher", sourcePermanent.getId()); + + // If we haven't used it yet this turn, give the option of using the zero alternative cost + if (!asForetoldAltCostUsedWatcher.hasBeenUsedThisTurn()) { + int timeCounters = sourcePermanent.getCounters(game).getCount("time"); + controller.getAlternativeSourceCosts().add(new AsForetoldAlternativeCost(sourcePermanent.getId(), timeCounters)); + } + + // Return true even if we didn't add the alt cost. We still applied the effect + return true; + } + } + return false; + } + + @Override + public boolean apply(Game game, Ability source) { + return false; + } + + @Override + public boolean hasLayer(Layer layer) { + return layer == Layer.RulesEffects; + } +} + +/** + * Watcher used as extra storage to record whether a given As Foretold has been used this turn. + * Technically speaking this watcher doesn't *watch* any GameEvents, but it does "watch" the + * alternative cost being used. That just isn't possible to watch through a game event. It's still + * helpfull to co-op the Watcher system for this since it automatically handles ZoneChangeCounter + * stuff and resetting the condition at the end of the turn. + */ +class AsForetoldAltCostUsedWatcher extends Watcher { + public AsForetoldAltCostUsedWatcher() { + super("asForetoldAltCostUsedWatcher", WatcherScope.CARD); + } + + public AsForetoldAltCostUsedWatcher(final AsForetoldAltCostUsedWatcher watcher) { + super(watcher); + } + + @Override + public void watch(GameEvent event, Game game) { + // Nothing to do, we explicitly mark used in the alternative cost + } + + public boolean hasBeenUsedThisTurn() { + return conditionMet(); + } + + public void markUsedThisTurn() { + condition = true; + } + + @Override + public AsForetoldAltCostUsedWatcher copy() { + return new AsForetoldAltCostUsedWatcher(this); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/a/AsajjVentress.java b/Mage.Sets/src/mage/cards/a/AsajjVentress.java index e156023c609..99cb57c37fe 100644 --- a/Mage.Sets/src/mage/cards/a/AsajjVentress.java +++ b/Mage.Sets/src/mage/cards/a/AsajjVentress.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -44,9 +42,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.target.common.TargetCreaturePermanent; import mage.watchers.common.LifeLossOtherFromCombatWatcher; +import java.util.UUID; + /** * @author Styxo */ @@ -54,7 +55,7 @@ public class AsajjVentress extends CardImpl { public AsajjVentress(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{B}{R}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Dathomirian"); this.subtype.add("Sith"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/a/AscendantEvincar.java b/Mage.Sets/src/mage/cards/a/AscendantEvincar.java index 5f47bdbc962..d94a7965573 100644 --- a/Mage.Sets/src/mage/cards/a/AscendantEvincar.java +++ b/Mage.Sets/src/mage/cards/a/AscendantEvincar.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -37,12 +34,16 @@ import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Loki @@ -59,7 +60,7 @@ public class AscendantEvincar extends CardImpl { public AscendantEvincar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/a/AscendedLawmage.java b/Mage.Sets/src/mage/cards/a/AscendedLawmage.java index cb84316478f..02531778d81 100644 --- a/Mage.Sets/src/mage/cards/a/AscendedLawmage.java +++ b/Mage.Sets/src/mage/cards/a/AscendedLawmage.java @@ -28,13 +28,14 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AscendingAven.java b/Mage.Sets/src/mage/cards/a/AscendingAven.java index 3df9f52888a..eab5c9ed03a 100644 --- a/Mage.Sets/src/mage/cards/a/AscendingAven.java +++ b/Mage.Sets/src/mage/cards/a/AscendingAven.java @@ -27,16 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CanBlockOnlyFlyingAbility; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.MorphAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/Asceticism.java b/Mage.Sets/src/mage/cards/a/Asceticism.java index d333bb95dbd..e2294f11c69 100644 --- a/Mage.Sets/src/mage/cards/a/Asceticism.java +++ b/Mage.Sets/src/mage/cards/a/Asceticism.java @@ -28,7 +28,6 @@ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author ayratn */ diff --git a/Mage.Sets/src/mage/cards/a/AshBarrens.java b/Mage.Sets/src/mage/cards/a/AshBarrens.java index 52514aa5618..98589e4173a 100644 --- a/Mage.Sets/src/mage/cards/a/AshBarrens.java +++ b/Mage.Sets/src/mage/cards/a/AshBarrens.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.BasicLandcyclingAbility; import mage.abilities.mana.ColorlessManaAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/a/AshZealot.java b/Mage.Sets/src/mage/cards/a/AshZealot.java index 3fc65c0f8c0..4932895583b 100644 --- a/Mage.Sets/src/mage/cards/a/AshZealot.java +++ b/Mage.Sets/src/mage/cards/a/AshZealot.java @@ -28,7 +28,6 @@ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -45,6 +44,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.stack.Spell; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/a/AshasFavor.java b/Mage.Sets/src/mage/cards/a/AshasFavor.java index c1fabd81cee..e9fe80e8c4a 100644 --- a/Mage.Sets/src/mage/cards/a/AshasFavor.java +++ b/Mage.Sets/src/mage/cards/a/AshasFavor.java @@ -28,9 +28,6 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -41,9 +38,15 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AshcloudPhoenix.java b/Mage.Sets/src/mage/cards/a/AshcloudPhoenix.java index b2548e98734..29d6cf022fb 100644 --- a/Mage.Sets/src/mage/cards/a/AshcloudPhoenix.java +++ b/Mage.Sets/src/mage/cards/a/AshcloudPhoenix.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -48,6 +47,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AshcoatBear.java b/Mage.Sets/src/mage/cards/a/AshcoatBear.java index 8d00fa8c415..75cccc0ffb1 100644 --- a/Mage.Sets/src/mage/cards/a/AshcoatBear.java +++ b/Mage.Sets/src/mage/cards/a/AshcoatBear.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AshenFirebeast.java b/Mage.Sets/src/mage/cards/a/AshenFirebeast.java index 2cb79e9ea7e..b611905e20b 100644 --- a/Mage.Sets/src/mage/cards/a/AshenFirebeast.java +++ b/Mage.Sets/src/mage/cards/a/AshenFirebeast.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AshenMonstrosity.java b/Mage.Sets/src/mage/cards/a/AshenMonstrosity.java index ed2087e029e..fe7579ff314 100644 --- a/Mage.Sets/src/mage/cards/a/AshenMonstrosity.java +++ b/Mage.Sets/src/mage/cards/a/AshenMonstrosity.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AshenPowder.java b/Mage.Sets/src/mage/cards/a/AshenPowder.java index 3d976e6993d..685c02e98c1 100644 --- a/Mage.Sets/src/mage/cards/a/AshenPowder.java +++ b/Mage.Sets/src/mage/cards/a/AshenPowder.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInOpponentsGraveyard; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/a/AshenRider.java b/Mage.Sets/src/mage/cards/a/AshenRider.java index db61248878f..48ec6b47a27 100644 --- a/Mage.Sets/src/mage/cards/a/AshenRider.java +++ b/Mage.Sets/src/mage/cards/a/AshenRider.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldOrDiesSourceTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AshenSkinZubera.java b/Mage.Sets/src/mage/cards/a/AshenSkinZubera.java index 940bfa065ce..87763397c91 100644 --- a/Mage.Sets/src/mage/cards/a/AshenSkinZubera.java +++ b/Mage.Sets/src/mage/cards/a/AshenSkinZubera.java @@ -28,19 +28,19 @@ package mage.cards.a; -import java.util.UUID; - -import mage.abilities.dynamicvalue.common.ZuberasDiedDynamicValue; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.dynamicvalue.common.ZuberasDiedDynamicValue; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetOpponent; import mage.watchers.common.ZuberasDiedWatcher; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/AshenmoorCohort.java b/Mage.Sets/src/mage/cards/a/AshenmoorCohort.java index daa4c0fa2e1..bf6411c8744 100644 --- a/Mage.Sets/src/mage/cards/a/AshenmoorCohort.java +++ b/Mage.Sets/src/mage/cards/a/AshenmoorCohort.java @@ -27,11 +27,9 @@ */ package mage.cards.a; -import java.util.UUID; - import mage.MageInt; import mage.ObjectColor; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -46,6 +44,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * @author jeffwadsworth */ @@ -69,7 +69,7 @@ public class AshenmoorCohort extends CardImpl { this.toughness = new MageInt(3); // Ashenmoor Cohort gets +1/+1 as long as you control another black creature. - Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0); + Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0); ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), condition, rule); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); diff --git a/Mage.Sets/src/mage/cards/a/AshenmoorGouger.java b/Mage.Sets/src/mage/cards/a/AshenmoorGouger.java index d69daafb0a5..7d0f7e58dfa 100644 --- a/Mage.Sets/src/mage/cards/a/AshenmoorGouger.java +++ b/Mage.Sets/src/mage/cards/a/AshenmoorGouger.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.CantBlockAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AshenmoorLiege.java b/Mage.Sets/src/mage/cards/a/AshenmoorLiege.java index b328a9abe7a..39cc4dddf31 100644 --- a/Mage.Sets/src/mage/cards/a/AshenmoorLiege.java +++ b/Mage.Sets/src/mage/cards/a/AshenmoorLiege.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.TriggeredAbilityImpl; @@ -46,6 +45,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AshesOfTheFallen.java b/Mage.Sets/src/mage/cards/a/AshesOfTheFallen.java index e848f607cc4..f7ec438a27a 100644 --- a/Mage.Sets/src/mage/cards/a/AshesOfTheFallen.java +++ b/Mage.Sets/src/mage/cards/a/AshesOfTheFallen.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.SimpleStaticAbility; @@ -36,16 +35,13 @@ import mage.abilities.effects.common.ChooseCreatureTypeEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AshesToAshes.java b/Mage.Sets/src/mage/cards/a/AshesToAshes.java index a9d273b6a1e..731d6a058c1 100644 --- a/Mage.Sets/src/mage/cards/a/AshesToAshes.java +++ b/Mage.Sets/src/mage/cards/a/AshesToAshes.java @@ -27,14 +27,12 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DamageControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -43,6 +41,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AshiokNightmareWeaver.java b/Mage.Sets/src/mage/cards/a/AshiokNightmareWeaver.java index 2afa494120d..31061db2e6b 100644 --- a/Mage.Sets/src/mage/cards/a/AshiokNightmareWeaver.java +++ b/Mage.Sets/src/mage/cards/a/AshiokNightmareWeaver.java @@ -27,27 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; import mage.abilities.costs.Cost; import mage.abilities.costs.common.PayVariableLoyaltyCost; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; -import mage.filter.Filter; +import mage.cards.*; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -60,6 +50,8 @@ import mage.target.common.TargetOpponent; import mage.target.targetpointer.FixedTarget; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 @@ -159,7 +151,7 @@ class AshiokNightmareWeaverPutIntoPlayEffect extends OneShotEffect { } FilterCard filter = new FilterCreatureCard("creature card with converted mana cost {" + cmc + "} exiled with " + sourceObject.getIdName()); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, cmc)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, cmc)); Target target = new TargetCardInExile(filter, CardUtil.getExileZoneId(game, source.getSourceId(), source.getSourceObjectZoneChangeCounter())); diff --git a/Mage.Sets/src/mage/cards/a/AshioksAdept.java b/Mage.Sets/src/mage/cards/a/AshioksAdept.java index d856f1c15a2..da6d55e27ce 100644 --- a/Mage.Sets/src/mage/cards/a/AshioksAdept.java +++ b/Mage.Sets/src/mage/cards/a/AshioksAdept.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; import mage.abilities.keyword.HeroicAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AshlingTheExtinguisher.java b/Mage.Sets/src/mage/cards/a/AshlingTheExtinguisher.java index 12216dcbebb..496d03eb2d0 100644 --- a/Mage.Sets/src/mage/cards/a/AshlingTheExtinguisher.java +++ b/Mage.Sets/src/mage/cards/a/AshlingTheExtinguisher.java @@ -27,13 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.SacrificeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerIdPredicate; @@ -44,6 +44,8 @@ import mage.game.events.GameEvent.EventType; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki @@ -52,7 +54,7 @@ public class AshlingTheExtinguisher extends CardImpl { public AshlingTheExtinguisher(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/a/AshlingThePilgrim.java b/Mage.Sets/src/mage/cards/a/AshlingThePilgrim.java index 1d19449d107..d930dc22a7f 100644 --- a/Mage.Sets/src/mage/cards/a/AshlingThePilgrim.java +++ b/Mage.Sets/src/mage/cards/a/AshlingThePilgrim.java @@ -38,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; @@ -55,7 +56,7 @@ public class AshlingThePilgrim extends CardImpl { public AshlingThePilgrim(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/a/AshlingsPrerogative.java b/Mage.Sets/src/mage/cards/a/AshlingsPrerogative.java index d7d1155f02a..708a73fc6ff 100644 --- a/Mage.Sets/src/mage/cards/a/AshlingsPrerogative.java +++ b/Mage.Sets/src/mage/cards/a/AshlingsPrerogative.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleStaticAbility; @@ -47,6 +46,8 @@ import mage.game.events.EntersTheBattlefieldEvent; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Eirkei diff --git a/Mage.Sets/src/mage/cards/a/AshmouthBlade.java b/Mage.Sets/src/mage/cards/a/AshmouthBlade.java index 425850b24fd..dc9402c9e22 100644 --- a/Mage.Sets/src/mage/cards/a/AshmouthBlade.java +++ b/Mage.Sets/src/mage/cards/a/AshmouthBlade.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AshmouthHound.java b/Mage.Sets/src/mage/cards/a/AshmouthHound.java index 3b70d17472f..51f6a2145e9 100644 --- a/Mage.Sets/src/mage/cards/a/AshmouthHound.java +++ b/Mage.Sets/src/mage/cards/a/AshmouthHound.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AshnodsAltar.java b/Mage.Sets/src/mage/cards/a/AshnodsAltar.java index f510471c8eb..b0de79ba54c 100644 --- a/Mage.Sets/src/mage/cards/a/AshnodsAltar.java +++ b/Mage.Sets/src/mage/cards/a/AshnodsAltar.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.Mana; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.mana.SimpleManaAbility; @@ -38,6 +37,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/a/AshnodsBattleGear.java b/Mage.Sets/src/mage/cards/a/AshnodsBattleGear.java index b2689e741ad..7203ca5e92a 100644 --- a/Mage.Sets/src/mage/cards/a/AshnodsBattleGear.java +++ b/Mage.Sets/src/mage/cards/a/AshnodsBattleGear.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SkipUntapOptionalAbility; @@ -44,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * @author LoneFox */ diff --git a/Mage.Sets/src/mage/cards/a/AshnodsTransmogrant.java b/Mage.Sets/src/mage/cards/a/AshnodsTransmogrant.java index d75cdec650b..5821e4274ff 100644 --- a/Mage.Sets/src/mage/cards/a/AshnodsTransmogrant.java +++ b/Mage.Sets/src/mage/cards/a/AshnodsTransmogrant.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -46,6 +45,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AsmiraHolyAvenger.java b/Mage.Sets/src/mage/cards/a/AsmiraHolyAvenger.java index 52d9813f257..e568a74a9a8 100644 --- a/Mage.Sets/src/mage/cards/a/AsmiraHolyAvenger.java +++ b/Mage.Sets/src/mage/cards/a/AsmiraHolyAvenger.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -40,16 +38,15 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.TargetController; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; import mage.watchers.Watcher; +import java.util.UUID; + /** * @author Plopman */ @@ -57,7 +54,7 @@ public class AsmiraHolyAvenger extends CardImpl { public AsmiraHolyAvenger(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); diff --git a/Mage.Sets/src/mage/cards/a/AspectOfGorgon.java b/Mage.Sets/src/mage/cards/a/AspectOfGorgon.java index f59e107672b..df9c8d6aca2 100644 --- a/Mage.Sets/src/mage/cards/a/AspectOfGorgon.java +++ b/Mage.Sets/src/mage/cards/a/AspectOfGorgon.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -38,14 +37,12 @@ import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AspectOfHydra.java b/Mage.Sets/src/mage/cards/a/AspectOfHydra.java index 9351b4003d7..515ac9c98e6 100644 --- a/Mage.Sets/src/mage/cards/a/AspectOfHydra.java +++ b/Mage.Sets/src/mage/cards/a/AspectOfHydra.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.DevotionCount; import mage.abilities.effects.Effect; @@ -39,6 +38,8 @@ import mage.constants.ColoredManaSymbol; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AspectOfMongoose.java b/Mage.Sets/src/mage/cards/a/AspectOfMongoose.java index 713641e9eb5..a146bab10b6 100644 --- a/Mage.Sets/src/mage/cards/a/AspectOfMongoose.java +++ b/Mage.Sets/src/mage/cards/a/AspectOfMongoose.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AspectOfWolf.java b/Mage.Sets/src/mage/cards/a/AspectOfWolf.java index 861a2b15d6b..7c148f12e9f 100644 --- a/Mage.Sets/src/mage/cards/a/AspectOfWolf.java +++ b/Mage.Sets/src/mage/cards/a/AspectOfWolf.java @@ -36,7 +36,10 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; diff --git a/Mage.Sets/src/mage/cards/a/AsphodelWanderer.java b/Mage.Sets/src/mage/cards/a/AsphodelWanderer.java index 3e2b79df64e..9bbf6d0f7bf 100644 --- a/Mage.Sets/src/mage/cards/a/AsphodelWanderer.java +++ b/Mage.Sets/src/mage/cards/a/AsphodelWanderer.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Asphyxiate.java b/Mage.Sets/src/mage/cards/a/Asphyxiate.java index 532e7268282..1f5e7d7badf 100644 --- a/Mage.Sets/src/mage/cards/a/Asphyxiate.java +++ b/Mage.Sets/src/mage/cards/a/Asphyxiate.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -37,6 +36,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AspiringAeronaut.java b/Mage.Sets/src/mage/cards/a/AspiringAeronaut.java index 33104f50393..4ab450e4ba9 100644 --- a/Mage.Sets/src/mage/cards/a/AspiringAeronaut.java +++ b/Mage.Sets/src/mage/cards/a/AspiringAeronaut.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.ThopterColorlessToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/Assassinate.java b/Mage.Sets/src/mage/cards/a/Assassinate.java index f05d22cefb9..b01033d3110 100644 --- a/Mage.Sets/src/mage/cards/a/Assassinate.java +++ b/Mage.Sets/src/mage/cards/a/Assassinate.java @@ -28,15 +28,16 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AssassinsStrike.java b/Mage.Sets/src/mage/cards/a/AssassinsStrike.java index 37924a1a731..fcc2c127943 100644 --- a/Mage.Sets/src/mage/cards/a/AssassinsStrike.java +++ b/Mage.Sets/src/mage/cards/a/AssassinsStrike.java @@ -27,14 +27,12 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; @@ -42,6 +40,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AssaultBattery.java b/Mage.Sets/src/mage/cards/a/AssaultBattery.java index db659e34837..edc35131005 100644 --- a/Mage.Sets/src/mage/cards/a/AssaultBattery.java +++ b/Mage.Sets/src/mage/cards/a/AssaultBattery.java @@ -25,29 +25,23 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.a; import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.SpellAbilityType; import mage.game.permanent.token.ElephantToken; import mage.target.common.TargetCreatureOrPlayer; -/** - * - * @author LevelX2 - */ - - public class AssaultBattery extends SplitCard { public AssaultBattery(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{R}","{3}{G}",false); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{R}", "{3}{G}", SpellAbilityType.SPLIT); // Assault // Assault deals 2 damage to target creature or player. diff --git a/Mage.Sets/src/mage/cards/a/AssaultFormation.java b/Mage.Sets/src/mage/cards/a/AssaultFormation.java index 17f524d87d9..09470ba2a93 100644 --- a/Mage.Sets/src/mage/cards/a/AssaultFormation.java +++ b/Mage.Sets/src/mage/cards/a/AssaultFormation.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -38,18 +37,15 @@ import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AssaultGriffin.java b/Mage.Sets/src/mage/cards/a/AssaultGriffin.java index 7f0627ad05d..14a3c17ee27 100644 --- a/Mage.Sets/src/mage/cards/a/AssaultGriffin.java +++ b/Mage.Sets/src/mage/cards/a/AssaultGriffin.java @@ -28,12 +28,13 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AssaultStrobe.java b/Mage.Sets/src/mage/cards/a/AssaultStrobe.java index f9521ce7d14..ac0237f92e7 100644 --- a/Mage.Sets/src/mage/cards/a/AssaultStrobe.java +++ b/Mage.Sets/src/mage/cards/a/AssaultStrobe.java @@ -28,12 +28,12 @@ package mage.cards.a; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.DoubleStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/a/AssaultSuit.java b/Mage.Sets/src/mage/cards/a/AssaultSuit.java index d2c1c1c631c..79db858e7bc 100644 --- a/Mage.Sets/src/mage/cards/a/AssaultSuit.java +++ b/Mage.Sets/src/mage/cards/a/AssaultSuit.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -44,18 +43,15 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AssaultZeppelid.java b/Mage.Sets/src/mage/cards/a/AssaultZeppelid.java index 3825b55cfe7..ab3791b9fba 100644 --- a/Mage.Sets/src/mage/cards/a/AssaultZeppelid.java +++ b/Mage.Sets/src/mage/cards/a/AssaultZeppelid.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AssembleTheLegion.java b/Mage.Sets/src/mage/cards/a/AssembleTheLegion.java index 1959da33e47..c26ce6d39da 100644 --- a/Mage.Sets/src/mage/cards/a/AssembleTheLegion.java +++ b/Mage.Sets/src/mage/cards/a/AssembleTheLegion.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.dynamicvalue.common.CountersSourceCount; @@ -40,6 +39,8 @@ import mage.constants.TargetController; import mage.counters.CounterType; import mage.game.permanent.token.SoldierTokenWithHaste; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AssembledAlphas.java b/Mage.Sets/src/mage/cards/a/AssembledAlphas.java index 80025eda5fd..42528e32b7c 100644 --- a/Mage.Sets/src/mage/cards/a/AssembledAlphas.java +++ b/Mage.Sets/src/mage/cards/a/AssembledAlphas.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AssemblyWorker.java b/Mage.Sets/src/mage/cards/a/AssemblyWorker.java index d1ae7ae4e40..591d7d26d80 100644 --- a/Mage.Sets/src/mage/cards/a/AssemblyWorker.java +++ b/Mage.Sets/src/mage/cards/a/AssemblyWorker.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AssertAuthority.java b/Mage.Sets/src/mage/cards/a/AssertAuthority.java index 63f3097e84c..127bc994fc6 100644 --- a/Mage.Sets/src/mage/cards/a/AssertAuthority.java +++ b/Mage.Sets/src/mage/cards/a/AssertAuthority.java @@ -27,15 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.effects.common.CounterTargetWithReplacementEffect; import mage.abilities.keyword.AffinityForArtifactsAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/AstralCornucopia.java b/Mage.Sets/src/mage/cards/a/AstralCornucopia.java index e2e110e9220..77e41476223 100644 --- a/Mage.Sets/src/mage/cards/a/AstralCornucopia.java +++ b/Mage.Sets/src/mage/cards/a/AstralCornucopia.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.List; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -46,6 +44,9 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AstralSlide.java b/Mage.Sets/src/mage/cards/a/AstralSlide.java index db23956a8f6..93b8fbdf2c3 100644 --- a/Mage.Sets/src/mage/cards/a/AstralSlide.java +++ b/Mage.Sets/src/mage/cards/a/AstralSlide.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.CycleAllTriggeredAbility; @@ -45,6 +44,8 @@ import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AstralSteel.java b/Mage.Sets/src/mage/cards/a/AstralSteel.java index e2ff32ec22f..9b4e18da9cb 100644 --- a/Mage.Sets/src/mage/cards/a/AstralSteel.java +++ b/Mage.Sets/src/mage/cards/a/AstralSteel.java @@ -27,16 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.StormAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/Astrolabe.java b/Mage.Sets/src/mage/cards/a/Astrolabe.java index 31e4cec7be8..238aa4d6e01 100644 --- a/Mage.Sets/src/mage/cards/a/Astrolabe.java +++ b/Mage.Sets/src/mage/cards/a/Astrolabe.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.TapSourceCost; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AsylumVisitor.java b/Mage.Sets/src/mage/cards/a/AsylumVisitor.java index a98b97c2ac6..3b2674cc8a5 100644 --- a/Mage.Sets/src/mage/cards/a/AsylumVisitor.java +++ b/Mage.Sets/src/mage/cards/a/AsylumVisitor.java @@ -27,10 +27,9 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.CardsInHandCondition; import mage.abilities.costs.mana.ManaCostsImpl; @@ -44,6 +43,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -59,7 +60,7 @@ public class AsylumVisitor extends CardImpl { // At the beginning of each player's upkeep, if that player has no cards in hand, you draw a card and you lose 1 life. Ability ability = new ConditionalTriggeredAbility(new BeginningOfUpkeepTriggeredAbility(new DrawCardSourceControllerEffect(1), TargetController.ANY, false), - new CardsInHandCondition(CountType.EQUAL_TO, 0, null, TargetController.ACTIVE), + new CardsInHandCondition(ComparisonType.EQUAL_TO, 0, null, TargetController.ACTIVE), "At the beginning of each player's upkeep, if that player has no cards in hand, you draw a card and you lose 1 life."); Effect effect = new LoseLifeSourceControllerEffect(1); effect.setText("and you lose 1 life"); diff --git a/Mage.Sets/src/mage/cards/a/AtalyaSamiteMaster.java b/Mage.Sets/src/mage/cards/a/AtalyaSamiteMaster.java index e330d44467f..448585cd7a6 100644 --- a/Mage.Sets/src/mage/cards/a/AtalyaSamiteMaster.java +++ b/Mage.Sets/src/mage/cards/a/AtalyaSamiteMaster.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -43,10 +42,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterMana; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author spjspj @@ -62,7 +64,7 @@ public class AtalyaSamiteMaster extends CardImpl { public AtalyaSamiteMaster(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/a/AtarkaBeastbreaker.java b/Mage.Sets/src/mage/cards/a/AtarkaBeastbreaker.java index 619e5b3c61e..15f9fd28951 100644 --- a/Mage.Sets/src/mage/cards/a/AtarkaBeastbreaker.java +++ b/Mage.Sets/src/mage/cards/a/AtarkaBeastbreaker.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AtarkaEfreet.java b/Mage.Sets/src/mage/cards/a/AtarkaEfreet.java index d4753ecccb9..00960108699 100644 --- a/Mage.Sets/src/mage/cards/a/AtarkaEfreet.java +++ b/Mage.Sets/src/mage/cards/a/AtarkaEfreet.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AtarkaPummeler.java b/Mage.Sets/src/mage/cards/a/AtarkaPummeler.java index 6679f0442ad..30d34ce1b87 100644 --- a/Mage.Sets/src/mage/cards/a/AtarkaPummeler.java +++ b/Mage.Sets/src/mage/cards/a/AtarkaPummeler.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -37,14 +36,12 @@ import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.MenaceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AbilityWord; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AtarkaWorldRender.java b/Mage.Sets/src/mage/cards/a/AtarkaWorldRender.java index aba69560dc7..a9c52bd851f 100644 --- a/Mage.Sets/src/mage/cards/a/AtarkaWorldRender.java +++ b/Mage.Sets/src/mage/cards/a/AtarkaWorldRender.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -39,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -47,6 +47,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -55,7 +57,7 @@ public class AtarkaWorldRender extends CardImpl { public AtarkaWorldRender(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(6); this.toughness = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/a/AtarkasCommand.java b/Mage.Sets/src/mage/cards/a/AtarkasCommand.java index c9e04b5576d..308aaffbd04 100644 --- a/Mage.Sets/src/mage/cards/a/AtarkasCommand.java +++ b/Mage.Sets/src/mage/cards/a/AtarkasCommand.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamagePlayersEffect; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AthreosGodOfPassage.java b/Mage.Sets/src/mage/cards/a/AthreosGodOfPassage.java index 7acc93f8e1d..ffcb86a595c 100644 --- a/Mage.Sets/src/mage/cards/a/AthreosGodOfPassage.java +++ b/Mage.Sets/src/mage/cards/a/AthreosGodOfPassage.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -41,11 +40,7 @@ import mage.abilities.effects.common.continuous.LoseCreatureTypeSourceEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.other.OwnerPredicate; import mage.filter.predicate.permanent.AnotherPredicate; @@ -57,6 +52,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 @@ -72,7 +69,7 @@ public class AthreosGodOfPassage extends CardImpl { public AthreosGodOfPassage(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.CREATURE},"{1}{W}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/a/Atog.java b/Mage.Sets/src/mage/cards/a/Atog.java index 5b15ca031e2..dfdf7748979 100644 --- a/Mage.Sets/src/mage/cards/a/Atog.java +++ b/Mage.Sets/src/mage/cards/a/Atog.java @@ -27,21 +27,21 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/Atogatog.java b/Mage.Sets/src/mage/cards/a/Atogatog.java index e8731b2c45d..68bed27c6c3 100644 --- a/Mage.Sets/src/mage/cards/a/Atogatog.java +++ b/Mage.Sets/src/mage/cards/a/Atogatog.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -36,15 +35,14 @@ import mage.abilities.dynamicvalue.common.SacrificeCostCreaturesPower; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +58,7 @@ public class Atogatog extends CardImpl { public Atogatog(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{U}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Atog"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/a/AtraxaPraetorsVoice.java b/Mage.Sets/src/mage/cards/a/AtraxaPraetorsVoice.java index f2eebe26a62..00ffd5fdb9b 100644 --- a/Mage.Sets/src/mage/cards/a/AtraxaPraetorsVoice.java +++ b/Mage.Sets/src/mage/cards/a/AtraxaPraetorsVoice.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.effects.common.counter.ProliferateEffect; @@ -38,8 +37,11 @@ import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author fireshoes @@ -49,7 +51,7 @@ public class AtraxaPraetorsVoice extends CardImpl { public AtraxaPraetorsVoice(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}{W}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.subtype.add("Horror"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/a/AttendedKnight.java b/Mage.Sets/src/mage/cards/a/AttendedKnight.java index 0729a69b5bd..bc2d3b6556e 100644 --- a/Mage.Sets/src/mage/cards/a/AttendedKnight.java +++ b/Mage.Sets/src/mage/cards/a/AttendedKnight.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.SoldierToken; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/Attrition.java b/Mage.Sets/src/mage/cards/a/Attrition.java index ad6c4d5f32e..277d720e2da 100644 --- a/Mage.Sets/src/mage/cards/a/Attrition.java +++ b/Mage.Sets/src/mage/cards/a/Attrition.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -37,12 +34,16 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AttuneWithAether.java b/Mage.Sets/src/mage/cards/a/AttuneWithAether.java index be4e985fc63..978b0af93de 100644 --- a/Mage.Sets/src/mage/cards/a/AttuneWithAether.java +++ b/Mage.Sets/src/mage/cards/a/AttuneWithAether.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Attunement.java b/Mage.Sets/src/mage/cards/a/Attunement.java index 5367df598e9..1e8ece0d65c 100644 --- a/Mage.Sets/src/mage/cards/a/Attunement.java +++ b/Mage.Sets/src/mage/cards/a/Attunement.java @@ -27,15 +27,16 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.ReturnToHandFromBattlefieldSourceCost; -import mage.abilities.effects.common.discard.DiscardControllerEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.discard.DiscardControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AudaciousInfiltrator.java b/Mage.Sets/src/mage/cards/a/AudaciousInfiltrator.java index 690ce140679..8c919cfa388 100644 --- a/Mage.Sets/src/mage/cards/a/AudaciousInfiltrator.java +++ b/Mage.Sets/src/mage/cards/a/AudaciousInfiltrator.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AugerSpree.java b/Mage.Sets/src/mage/cards/a/AugerSpree.java index 65840f7c275..e9fa153e072 100644 --- a/Mage.Sets/src/mage/cards/a/AugerSpree.java +++ b/Mage.Sets/src/mage/cards/a/AugerSpree.java @@ -27,10 +27,10 @@ */ package mage.cards.a; -import mage.constants.CardType; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/a/AugmentingAutomaton.java b/Mage.Sets/src/mage/cards/a/AugmentingAutomaton.java index 957c3a75619..b68fab8a51c 100644 --- a/Mage.Sets/src/mage/cards/a/AugmentingAutomaton.java +++ b/Mage.Sets/src/mage/cards/a/AugmentingAutomaton.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AugurIlVec.java b/Mage.Sets/src/mage/cards/a/AugurIlVec.java index c3a43e12372..4f159ffd1af 100644 --- a/Mage.Sets/src/mage/cards/a/AugurIlVec.java +++ b/Mage.Sets/src/mage/cards/a/AugurIlVec.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.condition.common.IsStepCondition; import mage.abilities.costs.common.SacrificeSourceCost; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.PhaseStep; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AugurOfBolas.java b/Mage.Sets/src/mage/cards/a/AugurOfBolas.java index 30b6bd28470..9990f083485 100644 --- a/Mage.Sets/src/mage/cards/a/AugurOfBolas.java +++ b/Mage.Sets/src/mage/cards/a/AugurOfBolas.java @@ -27,17 +27,12 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -50,6 +45,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AugurOfSkulls.java b/Mage.Sets/src/mage/cards/a/AugurOfSkulls.java index 3083ad2e5c8..297af9b865a 100644 --- a/Mage.Sets/src/mage/cards/a/AugurOfSkulls.java +++ b/Mage.Sets/src/mage/cards/a/AugurOfSkulls.java @@ -27,14 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.decorator.ConditionalActivatedAbility; import mage.abilities.condition.common.IsStepCondition; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.decorator.ConditionalActivatedAbility; import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; @@ -44,6 +43,8 @@ import mage.constants.PhaseStep; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AuguryAdept.java b/Mage.Sets/src/mage/cards/a/AuguryAdept.java index 67e66e5dea7..4d6bd8ec46f 100644 --- a/Mage.Sets/src/mage/cards/a/AuguryAdept.java +++ b/Mage.Sets/src/mage/cards/a/AuguryAdept.java @@ -27,24 +27,20 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AuguryOwl.java b/Mage.Sets/src/mage/cards/a/AuguryOwl.java index 694b70148dd..4718fdf93cc 100644 --- a/Mage.Sets/src/mage/cards/a/AuguryOwl.java +++ b/Mage.Sets/src/mage/cards/a/AuguryOwl.java @@ -28,14 +28,15 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AuntiesHovel.java b/Mage.Sets/src/mage/cards/a/AuntiesHovel.java index 9630528e68b..531b5f84c6d 100644 --- a/Mage.Sets/src/mage/cards/a/AuntiesHovel.java +++ b/Mage.Sets/src/mage/cards/a/AuntiesHovel.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.common.TapSourceUnlessPaysEffect; @@ -36,10 +34,13 @@ import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AuntiesSnitch.java b/Mage.Sets/src/mage/cards/a/AuntiesSnitch.java index b2d46491ec1..0064d5a1427 100644 --- a/Mage.Sets/src/mage/cards/a/AuntiesSnitch.java +++ b/Mage.Sets/src/mage/cards/a/AuntiesSnitch.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.CantBlockAbility; @@ -48,6 +47,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AuraBlast.java b/Mage.Sets/src/mage/cards/a/AuraBlast.java index 641b98f7ed2..129ed105a56 100644 --- a/Mage.Sets/src/mage/cards/a/AuraBlast.java +++ b/Mage.Sets/src/mage/cards/a/AuraBlast.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AuraExtraction.java b/Mage.Sets/src/mage/cards/a/AuraExtraction.java index 4d922774a00..442161b6e69 100644 --- a/Mage.Sets/src/mage/cards/a/AuraExtraction.java +++ b/Mage.Sets/src/mage/cards/a/AuraExtraction.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.abilities.keyword.CyclingAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author Galatolol diff --git a/Mage.Sets/src/mage/cards/a/AuraFinesse.java b/Mage.Sets/src/mage/cards/a/AuraFinesse.java index 8c59f0dc4a8..ba55e2d411a 100644 --- a/Mage.Sets/src/mage/cards/a/AuraFinesse.java +++ b/Mage.Sets/src/mage/cards/a/AuraFinesse.java @@ -27,15 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.TargetController; import mage.filter.common.FilterEnchantmentPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; @@ -46,6 +45,8 @@ import mage.target.Target; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/AuraFlux.java b/Mage.Sets/src/mage/cards/a/AuraFlux.java index 6e0d0c7265b..333eb4f8fe5 100644 --- a/Mage.Sets/src/mage/cards/a/AuraFlux.java +++ b/Mage.Sets/src/mage/cards/a/AuraFlux.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -38,8 +35,14 @@ import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.common.FilterEnchantmentPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AuraFracture.java b/Mage.Sets/src/mage/cards/a/AuraFracture.java index d47f8172506..bfd214bebba 100644 --- a/Mage.Sets/src/mage/cards/a/AuraFracture.java +++ b/Mage.Sets/src/mage/cards/a/AuraFracture.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -40,6 +39,8 @@ import mage.filter.common.FilterControlledLandPermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AuraGnarlid.java b/Mage.Sets/src/mage/cards/a/AuraGnarlid.java index 1633604e63b..0dfa3bb3b1b 100644 --- a/Mage.Sets/src/mage/cards/a/AuraGnarlid.java +++ b/Mage.Sets/src/mage/cards/a/AuraGnarlid.java @@ -27,20 +27,21 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; -import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesWithLessPowerEffect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/AuraGraft.java b/Mage.Sets/src/mage/cards/a/AuraGraft.java index 15766254c0c..1da1d746295 100644 --- a/Mage.Sets/src/mage/cards/a/AuraGraft.java +++ b/Mage.Sets/src/mage/cards/a/AuraGraft.java @@ -27,14 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect; -import mage.constants.CardType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.filter.Filter; @@ -50,6 +49,8 @@ import mage.target.Target; import mage.target.TargetPermanent; import mage.util.TargetAddress; +import java.util.UUID; + /** * @author duncant */ diff --git a/Mage.Sets/src/mage/cards/a/AuraMutation.java b/Mage.Sets/src/mage/cards/a/AuraMutation.java index 011d9dc6983..1a38e071cfd 100644 --- a/Mage.Sets/src/mage/cards/a/AuraMutation.java +++ b/Mage.Sets/src/mage/cards/a/AuraMutation.java @@ -27,16 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.TargetConvertedManaCost; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.SaprolingToken; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/AuraOfDominion.java b/Mage.Sets/src/mage/cards/a/AuraOfDominion.java index 62130953d35..0feeee3f691 100644 --- a/Mage.Sets/src/mage/cards/a/AuraOfDominion.java +++ b/Mage.Sets/src/mage/cards/a/AuraOfDominion.java @@ -28,9 +28,6 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; @@ -40,6 +37,7 @@ import mage.abilities.effects.common.UntapEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; @@ -49,6 +47,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/AuraOfSilence.java b/Mage.Sets/src/mage/cards/a/AuraOfSilence.java index 63ba280baf6..eb7303c339e 100644 --- a/Mage.Sets/src/mage/cards/a/AuraOfSilence.java +++ b/Mage.Sets/src/mage/cards/a/AuraOfSilence.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -38,16 +37,14 @@ import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.game.Game; import mage.target.TargetPermanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AuraShards.java b/Mage.Sets/src/mage/cards/a/AuraShards.java index ed698c19d47..7e31df4cc6a 100644 --- a/Mage.Sets/src/mage/cards/a/AuraShards.java +++ b/Mage.Sets/src/mage/cards/a/AuraShards.java @@ -27,17 +27,18 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.effects.common.DestroyTargetEffect; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.common.FilterArtifactOrEnchantmentPermanent; -import mage.target.TargetPermanent; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import mage.filter.common.FilterArtifactOrEnchantmentPermanent; +import mage.filter.common.FilterCreaturePermanent; +import mage.target.TargetPermanent; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AuraThief.java b/Mage.Sets/src/mage/cards/a/AuraThief.java index d335a1d35c7..563ad2963e8 100644 --- a/Mage.Sets/src/mage/cards/a/AuraThief.java +++ b/Mage.Sets/src/mage/cards/a/AuraThief.java @@ -5,7 +5,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -23,6 +22,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author nick.myers diff --git a/Mage.Sets/src/mage/cards/a/Auramancer.java b/Mage.Sets/src/mage/cards/a/Auramancer.java index 7136d86f029..eb6d928570d 100644 --- a/Mage.Sets/src/mage/cards/a/Auramancer.java +++ b/Mage.Sets/src/mage/cards/a/Auramancer.java @@ -28,19 +28,19 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/AuramancersGuise.java b/Mage.Sets/src/mage/cards/a/AuramancersGuise.java index 00f22293095..4c417b5fa4d 100644 --- a/Mage.Sets/src/mage/cards/a/AuramancersGuise.java +++ b/Mage.Sets/src/mage/cards/a/AuramancersGuise.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.List; -import java.util.UUID; -import mage.target.common.TargetCreaturePermanent; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -37,18 +34,18 @@ import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; -import mage.constants.Outcome; -import mage.target.TargetPermanent; import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +import java.util.List; +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/Auratog.java b/Mage.Sets/src/mage/cards/a/Auratog.java index ff021290de8..4bd07021b51 100644 --- a/Mage.Sets/src/mage/cards/a/Auratog.java +++ b/Mage.Sets/src/mage/cards/a/Auratog.java @@ -27,21 +27,21 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AuratouchedMage.java b/Mage.Sets/src/mage/cards/a/AuratouchedMage.java index 54bf891dc94..529f1416ca5 100644 --- a/Mage.Sets/src/mage/cards/a/AuratouchedMage.java +++ b/Mage.Sets/src/mage/cards/a/AuratouchedMage.java @@ -27,16 +27,11 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -48,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AureliaTheWarleader.java b/Mage.Sets/src/mage/cards/a/AureliaTheWarleader.java index a5cc45e39e8..5a01bc68c9f 100644 --- a/Mage.Sets/src/mage/cards/a/AureliaTheWarleader.java +++ b/Mage.Sets/src/mage/cards/a/AureliaTheWarleader.java @@ -40,6 +40,7 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; @@ -58,7 +59,7 @@ public class AureliaTheWarleader extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(3); this.toughness = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/a/AureliasFury.java b/Mage.Sets/src/mage/cards/a/AureliasFury.java index 04b8f22ab55..876f7293b09 100644 --- a/Mage.Sets/src/mage/cards/a/AureliasFury.java +++ b/Mage.Sets/src/mage/cards/a/AureliasFury.java @@ -27,20 +27,21 @@ */ package mage.cards.a; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Duration; -import mage.constants.WatcherScope; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.ContinuousEffect; +import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DamageMultiEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.WatcherScope; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; @@ -54,7 +55,6 @@ import mage.watchers.Watcher; import java.util.ArrayList; import java.util.List; import java.util.UUID; -import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; /** * GATECRASH FAQ 11.01.2013 diff --git a/Mage.Sets/src/mage/cards/a/AuriokBladewarden.java b/Mage.Sets/src/mage/cards/a/AuriokBladewarden.java index ccc5d95a228..84c1d75142c 100644 --- a/Mage.Sets/src/mage/cards/a/AuriokBladewarden.java +++ b/Mage.Sets/src/mage/cards/a/AuriokBladewarden.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,10 +35,13 @@ import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AuriokChampion.java b/Mage.Sets/src/mage/cards/a/AuriokChampion.java index ee3317eaad9..207e9b4af9f 100644 --- a/Mage.Sets/src/mage/cards/a/AuriokChampion.java +++ b/Mage.Sets/src/mage/cards/a/AuriokChampion.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AuriokEdgewright.java b/Mage.Sets/src/mage/cards/a/AuriokEdgewright.java index 785e330830c..1ddbd840507 100644 --- a/Mage.Sets/src/mage/cards/a/AuriokEdgewright.java +++ b/Mage.Sets/src/mage/cards/a/AuriokEdgewright.java @@ -27,10 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.MetalcraftCondition; @@ -40,6 +36,11 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.DoubleStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AuriokGlaivemaster.java b/Mage.Sets/src/mage/cards/a/AuriokGlaivemaster.java index 0419bdc3a7d..8355ea65ff5 100644 --- a/Mage.Sets/src/mage/cards/a/AuriokGlaivemaster.java +++ b/Mage.Sets/src/mage/cards/a/AuriokGlaivemaster.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.EquippedSourceCondition; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki @@ -57,9 +58,9 @@ public class AuriokGlaivemaster extends CardImpl { this.power = new MageInt(1); this.toughness = new MageInt(1); - ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), EquippedSourceCondition.getInstance(), rule1); + ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), EquippedSourceCondition.instance, rule1); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect1)); - ConditionalContinuousEffect effect2 = new ConditionalContinuousEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()), EquippedSourceCondition.getInstance(), rule2); + ConditionalContinuousEffect effect2 = new ConditionalContinuousEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()), EquippedSourceCondition.instance, rule2); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect2)); } diff --git a/Mage.Sets/src/mage/cards/a/AuriokReplica.java b/Mage.Sets/src/mage/cards/a/AuriokReplica.java index 551f6faf5d4..3ac0867a4e3 100644 --- a/Mage.Sets/src/mage/cards/a/AuriokReplica.java +++ b/Mage.Sets/src/mage/cards/a/AuriokReplica.java @@ -28,10 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,10 +36,15 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.PreventionEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.target.TargetSource; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AuriokSalvagers.java b/Mage.Sets/src/mage/cards/a/AuriokSalvagers.java index 5abfba701cc..641b0223af8 100644 --- a/Mage.Sets/src/mage/cards/a/AuriokSalvagers.java +++ b/Mage.Sets/src/mage/cards/a/AuriokSalvagers.java @@ -27,21 +27,22 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterArtifactCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -50,7 +51,7 @@ public class AuriokSalvagers extends CardImpl { private static final FilterArtifactCard filter = new FilterArtifactCard("artifact card with converted mana cost 1 or less from your graveyard"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 2)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2)); } public AuriokSalvagers(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/a/AuriokSteelshaper.java b/Mage.Sets/src/mage/cards/a/AuriokSteelshaper.java index d4360d23b03..4b64b7a6156 100644 --- a/Mage.Sets/src/mage/cards/a/AuriokSteelshaper.java +++ b/Mage.Sets/src/mage/cards/a/AuriokSteelshaper.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.EquippedSourceCondition; @@ -37,11 +36,15 @@ import mage.abilities.effects.common.cost.AbilitiesCostReductionControllerEffect import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Jason E. Wall @@ -71,7 +74,7 @@ public class AuriokSteelshaper extends CardImpl { // As long as Auriok Steelshaper is equipped, each creature you control that's a Soldier or a Knight gets +1/+1. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, soldiersOrKnights, false), - EquippedSourceCondition.getInstance(), + EquippedSourceCondition.instance, "As long as {this} is equipped, each creature you control that's a Soldier or a Knight gets +1/+1" ))); } diff --git a/Mage.Sets/src/mage/cards/a/AuriokSunchaser.java b/Mage.Sets/src/mage/cards/a/AuriokSunchaser.java index 075f7f9aa1b..e6701b42b0a 100644 --- a/Mage.Sets/src/mage/cards/a/AuriokSunchaser.java +++ b/Mage.Sets/src/mage/cards/a/AuriokSunchaser.java @@ -27,10 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.MetalcraftCondition; @@ -41,6 +37,11 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AuriokSurvivors.java b/Mage.Sets/src/mage/cards/a/AuriokSurvivors.java index 3a006b8c24a..cb844ed05ce 100644 --- a/Mage.Sets/src/mage/cards/a/AuriokSurvivors.java +++ b/Mage.Sets/src/mage/cards/a/AuriokSurvivors.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,6 +34,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -45,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AuriokTransfixer.java b/Mage.Sets/src/mage/cards/a/AuriokTransfixer.java index a434bf819f2..1262bdb0e11 100644 --- a/Mage.Sets/src/mage/cards/a/AuriokTransfixer.java +++ b/Mage.Sets/src/mage/cards/a/AuriokTransfixer.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,12 +35,15 @@ import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/AuriokWindwalker.java b/Mage.Sets/src/mage/cards/a/AuriokWindwalker.java index 0096b198526..9d3e49dd0aa 100644 --- a/Mage.Sets/src/mage/cards/a/AuriokWindwalker.java +++ b/Mage.Sets/src/mage/cards/a/AuriokWindwalker.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/Aurochs.java b/Mage.Sets/src/mage/cards/a/Aurochs.java index e243a90089c..d25d339659e 100644 --- a/Mage.Sets/src/mage/cards/a/Aurochs.java +++ b/Mage.Sets/src/mage/cards/a/Aurochs.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -42,6 +41,8 @@ import mage.filter.common.FilterAttackingCreature; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/a/AurochsHerd.java b/Mage.Sets/src/mage/cards/a/AurochsHerd.java index 0d7f5e1cdb2..4ed5f1f3f9e 100644 --- a/Mage.Sets/src/mage/cards/a/AurochsHerd.java +++ b/Mage.Sets/src/mage/cards/a/AurochsHerd.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -46,6 +45,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AuroraEidolon.java b/Mage.Sets/src/mage/cards/a/AuroraEidolon.java index ca732f930a9..3311e0b4822 100644 --- a/Mage.Sets/src/mage/cards/a/AuroraEidolon.java +++ b/Mage.Sets/src/mage/cards/a/AuroraEidolon.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.MulticoloredPredicate; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AuroraGriffin.java b/Mage.Sets/src/mage/cards/a/AuroraGriffin.java index 72d653b9fbe..93d4c1fa8e0 100644 --- a/Mage.Sets/src/mage/cards/a/AuroraGriffin.java +++ b/Mage.Sets/src/mage/cards/a/AuroraGriffin.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AuroraOfEmrakul.java b/Mage.Sets/src/mage/cards/a/AuroraOfEmrakul.java index 4abc5005c4b..2df86da6cbd 100644 --- a/Mage.Sets/src/mage/cards/a/AuroraOfEmrakul.java +++ b/Mage.Sets/src/mage/cards/a/AuroraOfEmrakul.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.LoseLifeOpponentsEffect; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AurraSingBaneOfJedi.java b/Mage.Sets/src/mage/cards/a/AurraSingBaneOfJedi.java index 4ad8d32e28d..48a502fe4ab 100644 --- a/Mage.Sets/src/mage/cards/a/AurraSingBaneOfJedi.java +++ b/Mage.Sets/src/mage/cards/a/AurraSingBaneOfJedi.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.LeavesBattlefieldAllTriggeredAbility; @@ -58,6 +56,9 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.List; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AuspiciousAncestor.java b/Mage.Sets/src/mage/cards/a/AuspiciousAncestor.java index 4d3d8bc625d..b3a63b297f7 100644 --- a/Mage.Sets/src/mage/cards/a/AuspiciousAncestor.java +++ b/Mage.Sets/src/mage/cards/a/AuspiciousAncestor.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.DiesTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AustereCommand.java b/Mage.Sets/src/mage/cards/a/AustereCommand.java index d0de2b03f28..f11d4bffdb5 100644 --- a/Mage.Sets/src/mage/cards/a/AustereCommand.java +++ b/Mage.Sets/src/mage/cards/a/AustereCommand.java @@ -27,18 +27,19 @@ */ package mage.cards.a; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterArtifactPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterEnchantmentPermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -48,8 +49,8 @@ public class AustereCommand extends CardImpl { private static final FilterCreaturePermanent filter3orLess = new FilterCreaturePermanent("creatures with converted mana cost 3 or less"); private static final FilterCreaturePermanent filter4orMore = new FilterCreaturePermanent("creatures with converted mana cost 4 or greater"); static { - filter3orLess.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); - filter4orMore.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter3orLess.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); + filter4orMore.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 3)); } public AustereCommand(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/a/AuthorityOfTheConsuls.java b/Mage.Sets/src/mage/cards/a/AuthorityOfTheConsuls.java index ccd9f1f103d..dfbb3a648d5 100644 --- a/Mage.Sets/src/mage/cards/a/AuthorityOfTheConsuls.java +++ b/Mage.Sets/src/mage/cards/a/AuthorityOfTheConsuls.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -35,11 +34,7 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; @@ -47,6 +42,8 @@ import mage.game.events.EntersTheBattlefieldEvent; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AutochthonWurm.java b/Mage.Sets/src/mage/cards/a/AutochthonWurm.java index 8d1ed7af839..62c81288728 100644 --- a/Mage.Sets/src/mage/cards/a/AutochthonWurm.java +++ b/Mage.Sets/src/mage/cards/a/AutochthonWurm.java @@ -27,14 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ConvokeAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AutumnalGloom.java b/Mage.Sets/src/mage/cards/a/AutumnalGloom.java index 5f1706be552..1edddec0ed8 100644 --- a/Mage.Sets/src/mage/cards/a/AutumnalGloom.java +++ b/Mage.Sets/src/mage/cards/a/AutumnalGloom.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AutumnsVeil.java b/Mage.Sets/src/mage/cards/a/AutumnsVeil.java index d0891add70c..05a1be929fc 100644 --- a/Mage.Sets/src/mage/cards/a/AutumnsVeil.java +++ b/Mage.Sets/src/mage/cards/a/AutumnsVeil.java @@ -28,19 +28,20 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.ObjectColor; import mage.abilities.effects.common.CantBeCounteredControlledEffect; import mage.abilities.effects.common.CantBeTargetedAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.FilterSpell; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AvacynAngelOfHope.java b/Mage.Sets/src/mage/cards/a/AvacynAngelOfHope.java index 807e078e43d..87a6dafd685 100644 --- a/Mage.Sets/src/mage/cards/a/AvacynAngelOfHope.java +++ b/Mage.Sets/src/mage/cards/a/AvacynAngelOfHope.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -39,9 +38,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; +import java.util.UUID; + /** * @author noxx @@ -50,7 +52,7 @@ public class AvacynAngelOfHope extends CardImpl { public AvacynAngelOfHope(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(8); diff --git a/Mage.Sets/src/mage/cards/a/AvacynGuardianAngel.java b/Mage.Sets/src/mage/cards/a/AvacynGuardianAngel.java index 9ce0dba3039..42532c5f2ec 100644 --- a/Mage.Sets/src/mage/cards/a/AvacynGuardianAngel.java +++ b/Mage.Sets/src/mage/cards/a/AvacynGuardianAngel.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.ObjectColor; @@ -41,10 +40,7 @@ import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.choices.ChoiceColor; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; @@ -53,6 +49,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -67,7 +65,7 @@ public class AvacynGuardianAngel extends CardImpl { public AvacynGuardianAngel(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}{W}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/a/AvacynThePurifier.java b/Mage.Sets/src/mage/cards/a/AvacynThePurifier.java index 28601bc1992..82a517596fe 100644 --- a/Mage.Sets/src/mage/cards/a/AvacynThePurifier.java +++ b/Mage.Sets/src/mage/cards/a/AvacynThePurifier.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -38,6 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; @@ -46,6 +45,9 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.List; +import java.util.UUID; + /** * * @author fireshoes @@ -54,7 +56,7 @@ public class AvacynThePurifier extends CardImpl { public AvacynThePurifier(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(6); this.toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/a/AvacynianMissionaries.java b/Mage.Sets/src/mage/cards/a/AvacynianMissionaries.java index 3124c8a0ba3..bb674c04925 100644 --- a/Mage.Sets/src/mage/cards/a/AvacynianMissionaries.java +++ b/Mage.Sets/src/mage/cards/a/AvacynianMissionaries.java @@ -27,19 +27,20 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.condition.common.EquippedSourceCondition; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.TransformAbility; -import mage.cards.l.LunarchInquisitors; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.l.LunarchInquisitors; import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes @@ -58,7 +59,7 @@ public class AvacynianMissionaries extends CardImpl { // At the beginning of your end step, if Avacynian Missionaries is equipped, transform it. this.addAbility(new TransformAbility()); - this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new TransformSourceEffect(true), TargetController.YOU, new EquippedSourceCondition(), false)); + this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new TransformSourceEffect(true), TargetController.YOU, EquippedSourceCondition.instance, false)); } diff --git a/Mage.Sets/src/mage/cards/a/AvacynianPriest.java b/Mage.Sets/src/mage/cards/a/AvacynianPriest.java index 9110af44329..8ab7e35dde5 100644 --- a/Mage.Sets/src/mage/cards/a/AvacynianPriest.java +++ b/Mage.Sets/src/mage/cards/a/AvacynianPriest.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -36,11 +35,12 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; -import mage.target.common.TargetCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.common.TargetCreaturePermanent; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/a/AvacynsCollar.java b/Mage.Sets/src/mage/cards/a/AvacynsCollar.java index 64300fa9861..9f2535e3534 100644 --- a/Mage.Sets/src/mage/cards/a/AvacynsCollar.java +++ b/Mage.Sets/src/mage/cards/a/AvacynsCollar.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -49,6 +48,8 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.game.permanent.token.SpiritWhiteToken; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/a/AvacynsJudgment.java b/Mage.Sets/src/mage/cards/a/AvacynsJudgment.java index 3fcfd65d159..11c9e444de7 100644 --- a/Mage.Sets/src/mage/cards/a/AvacynsJudgment.java +++ b/Mage.Sets/src/mage/cards/a/AvacynsJudgment.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCosts; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.game.Game; import mage.target.common.TargetCreatureOrPlayerAmount; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AvacynsPilgrim.java b/Mage.Sets/src/mage/cards/a/AvacynsPilgrim.java index 1005655412e..e3581b613ab 100644 --- a/Mage.Sets/src/mage/cards/a/AvacynsPilgrim.java +++ b/Mage.Sets/src/mage/cards/a/AvacynsPilgrim.java @@ -28,11 +28,11 @@ package mage.cards.a; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/a/AvalancheRiders.java b/Mage.Sets/src/mage/cards/a/AvalancheRiders.java index faca62bd648..85a7841df0f 100644 --- a/Mage.Sets/src/mage/cards/a/AvalancheRiders.java +++ b/Mage.Sets/src/mage/cards/a/AvalancheRiders.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,8 +35,11 @@ import mage.abilities.keyword.EchoAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/a/AvalancheTusker.java b/Mage.Sets/src/mage/cards/a/AvalancheTusker.java index 5f725d68b94..5ae0e544e97 100644 --- a/Mage.Sets/src/mage/cards/a/AvalancheTusker.java +++ b/Mage.Sets/src/mage/cards/a/AvalancheTusker.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.combat.MustBeBlockedByTargetSourceEffect; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/Avarax.java b/Mage.Sets/src/mage/cards/a/Avarax.java index dcc08f1b97b..49580f60aa4 100644 --- a/Mage.Sets/src/mage/cards/a/Avarax.java +++ b/Mage.Sets/src/mage/cards/a/Avarax.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.mageobject.NamePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AvariceAmulet.java b/Mage.Sets/src/mage/cards/a/AvariceAmulet.java index 82c88936af0..19948185ce0 100644 --- a/Mage.Sets/src/mage/cards/a/AvariceAmulet.java +++ b/Mage.Sets/src/mage/cards/a/AvariceAmulet.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.DiesAttachedTriggeredAbility; @@ -42,18 +41,13 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AvariceTotem.java b/Mage.Sets/src/mage/cards/a/AvariceTotem.java index d37036930d6..a419fced0c0 100644 --- a/Mage.Sets/src/mage/cards/a/AvariceTotem.java +++ b/Mage.Sets/src/mage/cards/a/AvariceTotem.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetNonlandPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AvariciousDragon.java b/Mage.Sets/src/mage/cards/a/AvariciousDragon.java index b07f5d5d3f3..e060c48b1f5 100644 --- a/Mage.Sets/src/mage/cards/a/AvariciousDragon.java +++ b/Mage.Sets/src/mage/cards/a/AvariciousDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfDrawTriggeredAbility; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AvatarOfDiscord.java b/Mage.Sets/src/mage/cards/a/AvatarOfDiscord.java index 338e7cd82a1..f59f6e4c43f 100644 --- a/Mage.Sets/src/mage/cards/a/AvatarOfDiscord.java +++ b/Mage.Sets/src/mage/cards/a/AvatarOfDiscord.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.common.DiscardTargetCost; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AvatarOfFury.java b/Mage.Sets/src/mage/cards/a/AvatarOfFury.java index 659077c6a5f..af69045b85c 100644 --- a/Mage.Sets/src/mage/cards/a/AvatarOfFury.java +++ b/Mage.Sets/src/mage/cards/a/AvatarOfFury.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.SpellAbility; @@ -47,6 +46,8 @@ import mage.filter.common.FilterLandPermanent; import mage.game.Game; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AvatarOfHope.java b/Mage.Sets/src/mage/cards/a/AvatarOfHope.java index 140598ea3a7..e6b82995be2 100644 --- a/Mage.Sets/src/mage/cards/a/AvatarOfHope.java +++ b/Mage.Sets/src/mage/cards/a/AvatarOfHope.java @@ -27,29 +27,24 @@ */ package mage.cards.a; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.AdjustingSourceCosts; -import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.abilities.effects.common.combat.CanBlockAdditionalCreatureEffect; +import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.abilities.keyword.FlashbackAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.Duration; -import mage.constants.Outcome; +import mage.constants.*; import mage.game.Game; import mage.players.Player; import mage.util.CardUtil; import java.util.UUID; -import mage.constants.AbilityType; -import mage.constants.CostModificationType; /** * diff --git a/Mage.Sets/src/mage/cards/a/AvatarOfMight.java b/Mage.Sets/src/mage/cards/a/AvatarOfMight.java index 824fe5e1e85..8aabae5293c 100644 --- a/Mage.Sets/src/mage/cards/a/AvatarOfMight.java +++ b/Mage.Sets/src/mage/cards/a/AvatarOfMight.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -37,15 +36,13 @@ import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AvatarOfSlaughter.java b/Mage.Sets/src/mage/cards/a/AvatarOfSlaughter.java index 9f349359819..c181cc67d56 100644 --- a/Mage.Sets/src/mage/cards/a/AvatarOfSlaughter.java +++ b/Mage.Sets/src/mage/cards/a/AvatarOfSlaughter.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.watchers.common.AttackedThisTurnWatcher; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AvatarOfTheResolute.java b/Mage.Sets/src/mage/cards/a/AvatarOfTheResolute.java index f081646aa9d..7ec0c4ad1da 100644 --- a/Mage.Sets/src/mage/cards/a/AvatarOfTheResolute.java +++ b/Mage.Sets/src/mage/cards/a/AvatarOfTheResolute.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -43,6 +42,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.CounterPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AvatarOfWill.java b/Mage.Sets/src/mage/cards/a/AvatarOfWill.java index fb780a99afc..b25b998670a 100644 --- a/Mage.Sets/src/mage/cards/a/AvatarOfWill.java +++ b/Mage.Sets/src/mage/cards/a/AvatarOfWill.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -37,14 +36,12 @@ import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AvatarOfWoe.java b/Mage.Sets/src/mage/cards/a/AvatarOfWoe.java index 54eecc6309f..23532d26ac8 100644 --- a/Mage.Sets/src/mage/cards/a/AvatarOfWoe.java +++ b/Mage.Sets/src/mage/cards/a/AvatarOfWoe.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -41,15 +40,13 @@ import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AvenArcher.java b/Mage.Sets/src/mage/cards/a/AvenArcher.java index 44ea4913122..e1a1586f655 100644 --- a/Mage.Sets/src/mage/cards/a/AvenArcher.java +++ b/Mage.Sets/src/mage/cards/a/AvenArcher.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/a/AvenAugur.java b/Mage.Sets/src/mage/cards/a/AvenAugur.java index 455b211b365..13dcd0f1d56 100644 --- a/Mage.Sets/src/mage/cards/a/AvenAugur.java +++ b/Mage.Sets/src/mage/cards/a/AvenAugur.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.condition.common.IsStepCondition; @@ -42,6 +41,8 @@ import mage.constants.PhaseStep; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AvenBattlePriest.java b/Mage.Sets/src/mage/cards/a/AvenBattlePriest.java index 219916c7cd5..6822618ec6c 100644 --- a/Mage.Sets/src/mage/cards/a/AvenBattlePriest.java +++ b/Mage.Sets/src/mage/cards/a/AvenBattlePriest.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Wehk diff --git a/Mage.Sets/src/mage/cards/a/AvenBrigadier.java b/Mage.Sets/src/mage/cards/a/AvenBrigadier.java index 8e29f73e35e..9da1cf49171 100644 --- a/Mage.Sets/src/mage/cards/a/AvenBrigadier.java +++ b/Mage.Sets/src/mage/cards/a/AvenBrigadier.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AvenCloudchaser.java b/Mage.Sets/src/mage/cards/a/AvenCloudchaser.java index cb06cbb857f..a34cd1bfb35 100644 --- a/Mage.Sets/src/mage/cards/a/AvenCloudchaser.java +++ b/Mage.Sets/src/mage/cards/a/AvenCloudchaser.java @@ -27,8 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -36,8 +34,11 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AvenEnvoy.java b/Mage.Sets/src/mage/cards/a/AvenEnvoy.java index 950eff8eb2a..5be8f054087 100644 --- a/Mage.Sets/src/mage/cards/a/AvenEnvoy.java +++ b/Mage.Sets/src/mage/cards/a/AvenEnvoy.java @@ -27,12 +27,13 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AvenFarseer.java b/Mage.Sets/src/mage/cards/a/AvenFarseer.java index 898ef40094e..fb869c6ab5a 100644 --- a/Mage.Sets/src/mage/cards/a/AvenFarseer.java +++ b/Mage.Sets/src/mage/cards/a/AvenFarseer.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.TurnedFaceUpAllTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.counters.CounterType; import mage.filter.FilterPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AvenFateshaper.java b/Mage.Sets/src/mage/cards/a/AvenFateshaper.java index e183c583886..59d6f19d5c3 100644 --- a/Mage.Sets/src/mage/cards/a/AvenFateshaper.java +++ b/Mage.Sets/src/mage/cards/a/AvenFateshaper.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AvenFisher.java b/Mage.Sets/src/mage/cards/a/AvenFisher.java index 3f1c959ec42..4442dfd403c 100644 --- a/Mage.Sets/src/mage/cards/a/AvenFisher.java +++ b/Mage.Sets/src/mage/cards/a/AvenFisher.java @@ -27,14 +27,15 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AvenFleetwing.java b/Mage.Sets/src/mage/cards/a/AvenFleetwing.java index 3248d728537..036991217fa 100644 --- a/Mage.Sets/src/mage/cards/a/AvenFleetwing.java +++ b/Mage.Sets/src/mage/cards/a/AvenFleetwing.java @@ -28,14 +28,14 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AvenFlock.java b/Mage.Sets/src/mage/cards/a/AvenFlock.java index 525773d6651..4fbdbb19b04 100644 --- a/Mage.Sets/src/mage/cards/a/AvenFlock.java +++ b/Mage.Sets/src/mage/cards/a/AvenFlock.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,9 +34,12 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AvenFogbringer.java b/Mage.Sets/src/mage/cards/a/AvenFogbringer.java index eacd7cc16ea..b202bd3bf10 100644 --- a/Mage.Sets/src/mage/cards/a/AvenFogbringer.java +++ b/Mage.Sets/src/mage/cards/a/AvenFogbringer.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AvenInitiate.java b/Mage.Sets/src/mage/cards/a/AvenInitiate.java new file mode 100644 index 00000000000..9bb4a995c04 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AvenInitiate.java @@ -0,0 +1,69 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.a; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class AvenInitiate extends CardImpl { + + public AvenInitiate(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); + + this.subtype.add("Bird"); + this.subtype.add("Warrior"); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Embalm {6}{U} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{6}{U}"), this)); + + } + + public AvenInitiate(final AvenInitiate card) { + super(card); + } + + @Override + public AvenInitiate copy() { + return new AvenInitiate(this); + } +} diff --git a/Mage.Sets/src/mage/cards/a/AvenLiberator.java b/Mage.Sets/src/mage/cards/a/AvenLiberator.java index d69cba90d1b..321bff9aa84 100644 --- a/Mage.Sets/src/mage/cards/a/AvenLiberator.java +++ b/Mage.Sets/src/mage/cards/a/AvenLiberator.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AvenMimeomancer.java b/Mage.Sets/src/mage/cards/a/AvenMimeomancer.java index f6fdb82b2dc..a42ca844de7 100644 --- a/Mage.Sets/src/mage/cards/a/AvenMimeomancer.java +++ b/Mage.Sets/src/mage/cards/a/AvenMimeomancer.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -37,18 +36,14 @@ import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AvenMindcensor.java b/Mage.Sets/src/mage/cards/a/AvenMindcensor.java index 4d20e238ad4..75d1d4ba01b 100644 --- a/Mage.Sets/src/mage/cards/a/AvenMindcensor.java +++ b/Mage.Sets/src/mage/cards/a/AvenMindcensor.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AvenRedeemer.java b/Mage.Sets/src/mage/cards/a/AvenRedeemer.java index 53782508c3a..23d64cccd55 100644 --- a/Mage.Sets/src/mage/cards/a/AvenRedeemer.java +++ b/Mage.Sets/src/mage/cards/a/AvenRedeemer.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AvenRiftwatcher.java b/Mage.Sets/src/mage/cards/a/AvenRiftwatcher.java index d20eef5d9c8..9561da86edc 100644 --- a/Mage.Sets/src/mage/cards/a/AvenRiftwatcher.java +++ b/Mage.Sets/src/mage/cards/a/AvenRiftwatcher.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -42,6 +41,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/a/AvenSkirmisher.java b/Mage.Sets/src/mage/cards/a/AvenSkirmisher.java index e868d59b214..7e006e967ed 100644 --- a/Mage.Sets/src/mage/cards/a/AvenSkirmisher.java +++ b/Mage.Sets/src/mage/cards/a/AvenSkirmisher.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AvenSmokeweaver.java b/Mage.Sets/src/mage/cards/a/AvenSmokeweaver.java index b0ce9690388..8e19bffe4ca 100644 --- a/Mage.Sets/src/mage/cards/a/AvenSmokeweaver.java +++ b/Mage.Sets/src/mage/cards/a/AvenSmokeweaver.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.FlyingAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/a/AvenSoulgazer.java b/Mage.Sets/src/mage/cards/a/AvenSoulgazer.java index 6a53d677af4..1175fe19e4a 100644 --- a/Mage.Sets/src/mage/cards/a/AvenSoulgazer.java +++ b/Mage.Sets/src/mage/cards/a/AvenSoulgazer.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -49,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AvenSquire.java b/Mage.Sets/src/mage/cards/a/AvenSquire.java index 24c57199368..d8a2114cafd 100644 --- a/Mage.Sets/src/mage/cards/a/AvenSquire.java +++ b/Mage.Sets/src/mage/cards/a/AvenSquire.java @@ -28,12 +28,12 @@ package mage.cards.a; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ExaltedAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/a/AvenSunstriker.java b/Mage.Sets/src/mage/cards/a/AvenSunstriker.java index 473b58bc2f5..1f2a3beff91 100644 --- a/Mage.Sets/src/mage/cards/a/AvenSunstriker.java +++ b/Mage.Sets/src/mage/cards/a/AvenSunstriker.java @@ -27,16 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.DoubleStrikeAbility; +import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.MorphAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AvenSurveyor.java b/Mage.Sets/src/mage/cards/a/AvenSurveyor.java index e49fdce344d..1edb4ec785a 100644 --- a/Mage.Sets/src/mage/cards/a/AvenSurveyor.java +++ b/Mage.Sets/src/mage/cards/a/AvenSurveyor.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AvenTactician.java b/Mage.Sets/src/mage/cards/a/AvenTactician.java index 6e04d2fede7..d40242599d0 100644 --- a/Mage.Sets/src/mage/cards/a/AvenTactician.java +++ b/Mage.Sets/src/mage/cards/a/AvenTactician.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.keyword.BolsterEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AvenTrailblazer.java b/Mage.Sets/src/mage/cards/a/AvenTrailblazer.java index c342fb613b1..11c9dd63d98 100644 --- a/Mage.Sets/src/mage/cards/a/AvenTrailblazer.java +++ b/Mage.Sets/src/mage/cards/a/AvenTrailblazer.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.DomainValue; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AvenTrooper.java b/Mage.Sets/src/mage/cards/a/AvenTrooper.java index ed3d5658b7d..1731c930941 100644 --- a/Mage.Sets/src/mage/cards/a/AvenTrooper.java +++ b/Mage.Sets/src/mage/cards/a/AvenTrooper.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AvenWarhawk.java b/Mage.Sets/src/mage/cards/a/AvenWarhawk.java index 59e184a86ca..4609789259a 100644 --- a/Mage.Sets/src/mage/cards/a/AvenWarhawk.java +++ b/Mage.Sets/src/mage/cards/a/AvenWarhawk.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.AmplifyEffect; import mage.abilities.keyword.AmplifyAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AvenWindGuide.java b/Mage.Sets/src/mage/cards/a/AvenWindGuide.java new file mode 100644 index 00000000000..e308e67ceb0 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AvenWindGuide.java @@ -0,0 +1,94 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.a; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.VigilanceAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.filter.StaticFilters; + +/** + * + * @author stravant + */ +public class AvenWindGuide extends CardImpl { + + public AvenWindGuide(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{U}"); + + this.subtype.add("Bird"); + this.subtype.add("Warrior"); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Vigilance + this.addAbility(VigilanceAbility.getInstance()); + + // Creature tokens you control have flying and vigilance. + Effect effect = new GainAbilityControlledEffect( + FlyingAbility.getInstance(), + Duration.WhileOnBattlefield, + StaticFilters.FILTER_CREATURE_TOKENS); + effect.setText("Creature tokens you control have flying"); + Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect); + effect = new GainAbilityControlledEffect( + VigilanceAbility.getInstance(), + Duration.WhileOnBattlefield, + StaticFilters.FILTER_CREATURE_TOKENS); + effect.setText("and vigilance"); + ability.addEffect(effect); + this.addAbility(ability); + + // Embalm {4}{W}{U} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{4}{W}{U}"), this)); + } + + public AvenWindGuide(final AvenWindGuide card) { + super(card); + } + + @Override + public AvenWindGuide copy() { + return new AvenWindGuide(this); + } +} diff --git a/Mage.Sets/src/mage/cards/a/AvenWindreader.java b/Mage.Sets/src/mage/cards/a/AvenWindreader.java index 3a3ea5632aa..e933b0b773e 100644 --- a/Mage.Sets/src/mage/cards/a/AvenWindreader.java +++ b/Mage.Sets/src/mage/cards/a/AvenWindreader.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/a/AvengerEnDal.java b/Mage.Sets/src/mage/cards/a/AvengerEnDal.java index fa8fc543ff1..f188e83566e 100644 --- a/Mage.Sets/src/mage/cards/a/AvengerEnDal.java +++ b/Mage.Sets/src/mage/cards/a/AvengerEnDal.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetAttackingCreature; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AvengerOfZendikar.java b/Mage.Sets/src/mage/cards/a/AvengerOfZendikar.java index 8da03b8c9fb..749ef544652 100644 --- a/Mage.Sets/src/mage/cards/a/AvengerOfZendikar.java +++ b/Mage.Sets/src/mage/cards/a/AvengerOfZendikar.java @@ -28,8 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.LandfallAbility; @@ -38,6 +36,7 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledLandPermanent; @@ -45,6 +44,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.PlantToken; +import java.util.UUID; + /** * * @author Loki, nantuko, North diff --git a/Mage.Sets/src/mage/cards/a/AvengingAngel.java b/Mage.Sets/src/mage/cards/a/AvengingAngel.java index dfc06ca3141..743fbc3e03d 100644 --- a/Mage.Sets/src/mage/cards/a/AvengingAngel.java +++ b/Mage.Sets/src/mage/cards/a/AvengingAngel.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AvengingDruid.java b/Mage.Sets/src/mage/cards/a/AvengingDruid.java index f3a8183a9a7..7ea9174674f 100644 --- a/Mage.Sets/src/mage/cards/a/AvengingDruid.java +++ b/Mage.Sets/src/mage/cards/a/AvengingDruid.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsDamageToOpponentTriggeredAbility; import mage.abilities.effects.common.RevealCardsFromLibraryUntilEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterLandCard; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AvianChangeling.java b/Mage.Sets/src/mage/cards/a/AvianChangeling.java index cd80ea153ca..6d985e28f79 100644 --- a/Mage.Sets/src/mage/cards/a/AvianChangeling.java +++ b/Mage.Sets/src/mage/cards/a/AvianChangeling.java @@ -27,12 +27,12 @@ */ package mage.cards.a; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ChangelingAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/a/AviaryMechanic.java b/Mage.Sets/src/mage/cards/a/AviaryMechanic.java index c3841e61c88..aea2cb144b9 100644 --- a/Mage.Sets/src/mage/cards/a/AviaryMechanic.java +++ b/Mage.Sets/src/mage/cards/a/AviaryMechanic.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.ReturnToHandChosenControlledPermanentEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/Avizoa.java b/Mage.Sets/src/mage/cards/a/Avizoa.java index a3d58d0f0a7..f53c7bed819 100644 --- a/Mage.Sets/src/mage/cards/a/Avizoa.java +++ b/Mage.Sets/src/mage/cards/a/Avizoa.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/a/AvoidFate.java b/Mage.Sets/src/mage/cards/a/AvoidFate.java index 64541bcecdd..76ae7f4932c 100644 --- a/Mage.Sets/src/mage/cards/a/AvoidFate.java +++ b/Mage.Sets/src/mage/cards/a/AvoidFate.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -40,6 +39,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.other.TargetsPermanentPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AwakenTheBear.java b/Mage.Sets/src/mage/cards/a/AwakenTheBear.java index 67c8b342b50..ccedddb769e 100644 --- a/Mage.Sets/src/mage/cards/a/AwakenTheBear.java +++ b/Mage.Sets/src/mage/cards/a/AwakenTheBear.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AwakenTheSkyTyrant.java b/Mage.Sets/src/mage/cards/a/AwakenTheSkyTyrant.java index 0e8f639eab7..a068f800947 100644 --- a/Mage.Sets/src/mage/cards/a/AwakenTheSkyTyrant.java +++ b/Mage.Sets/src/mage/cards/a/AwakenTheSkyTyrant.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.CreateTokenEffect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.token.DragonToken2; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AwakenerDruid.java b/Mage.Sets/src/mage/cards/a/AwakenerDruid.java index 93de512dbec..ea9cdc8955f 100644 --- a/Mage.Sets/src/mage/cards/a/AwakenerDruid.java +++ b/Mage.Sets/src/mage/cards/a/AwakenerDruid.java @@ -28,9 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -38,6 +35,8 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.Layer; import mage.constants.SubLayer; import mage.filter.common.FilterLandPermanent; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/Awakening.java b/Mage.Sets/src/mage/cards/a/Awakening.java index a8fe2e19386..5a65aff245d 100644 --- a/Mage.Sets/src/mage/cards/a/Awakening.java +++ b/Mage.Sets/src/mage/cards/a/Awakening.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.UntapAllEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AwakeningZone.java b/Mage.Sets/src/mage/cards/a/AwakeningZone.java index 47d0cc2bc56..2189b9df977 100644 --- a/Mage.Sets/src/mage/cards/a/AwakeningZone.java +++ b/Mage.Sets/src/mage/cards/a/AwakeningZone.java @@ -28,7 +28,6 @@ package mage.cards.a; -import java.util.UUID; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.game.permanent.token.EldraziSpawnToken; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/a/AweForTheGuilds.java b/Mage.Sets/src/mage/cards/a/AweForTheGuilds.java index 107a4c4e683..c846db35775 100644 --- a/Mage.Sets/src/mage/cards/a/AweForTheGuilds.java +++ b/Mage.Sets/src/mage/cards/a/AweForTheGuilds.java @@ -28,16 +28,17 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.combat.CantBlockAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.MulticoloredPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AweStrike.java b/Mage.Sets/src/mage/cards/a/AweStrike.java index e8f508960f4..47d44dd0bc0 100755 --- a/Mage.Sets/src/mage/cards/a/AweStrike.java +++ b/Mage.Sets/src/mage/cards/a/AweStrike.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.PreventionEffectData; import mage.abilities.effects.PreventionEffectImpl; @@ -41,6 +40,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author brikr */ diff --git a/Mage.Sets/src/mage/cards/a/AwokenHorror.java b/Mage.Sets/src/mage/cards/a/AwokenHorror.java index 8a3a64a9170..1b2e644b910 100644 --- a/Mage.Sets/src/mage/cards/a/AwokenHorror.java +++ b/Mage.Sets/src/mage/cards/a/AwokenHorror.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.ReturnToHandFromBattlefieldAllEffect; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AxebaneGuardian.java b/Mage.Sets/src/mage/cards/a/AxebaneGuardian.java index 0f52894c221..d158db9192f 100644 --- a/Mage.Sets/src/mage/cards/a/AxebaneGuardian.java +++ b/Mage.Sets/src/mage/cards/a/AxebaneGuardian.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -40,6 +39,8 @@ import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/a/AxebaneStag.java b/Mage.Sets/src/mage/cards/a/AxebaneStag.java index d95694f7044..1fe8546fa4c 100644 --- a/Mage.Sets/src/mage/cards/a/AxebaneStag.java +++ b/Mage.Sets/src/mage/cards/a/AxebaneStag.java @@ -27,11 +27,12 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AxegrinderGiant.java b/Mage.Sets/src/mage/cards/a/AxegrinderGiant.java index 064f6d28e9d..b94c5404f5c 100644 --- a/Mage.Sets/src/mage/cards/a/AxegrinderGiant.java +++ b/Mage.Sets/src/mage/cards/a/AxegrinderGiant.java @@ -27,10 +27,10 @@ */ package mage.cards.a; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/a/AyliEternalPilgrim.java b/Mage.Sets/src/mage/cards/a/AyliEternalPilgrim.java index eca501c9f87..bf60957b7fe 100644 --- a/Mage.Sets/src/mage/cards/a/AyliEternalPilgrim.java +++ b/Mage.Sets/src/mage/cards/a/AyliEternalPilgrim.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,7 @@ import mage.abilities.keyword.DeathtouchAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledPermanent; @@ -53,6 +53,8 @@ import mage.players.Player; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetNonlandPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -66,7 +68,7 @@ public class AyliEternalPilgrim extends CardImpl { public AyliEternalPilgrim(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{B}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Kor"); this.subtype.add("Cleric"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/a/AysenAbbey.java b/Mage.Sets/src/mage/cards/a/AysenAbbey.java index 04943fb09bf..94c48e588c4 100644 --- a/Mage.Sets/src/mage/cards/a/AysenAbbey.java +++ b/Mage.Sets/src/mage/cards/a/AysenAbbey.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/a/AysenBureaucrats.java b/Mage.Sets/src/mage/cards/a/AysenBureaucrats.java index 37d11c95742..8a444ac5b19 100644 --- a/Mage.Sets/src/mage/cards/a/AysenBureaucrats.java +++ b/Mage.Sets/src/mage/cards/a/AysenBureaucrats.java @@ -27,9 +27,9 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.TapTargetEffect; @@ -37,12 +37,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -51,7 +52,7 @@ public class AysenBureaucrats extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public AysenBureaucrats(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/a/AysenHighway.java b/Mage.Sets/src/mage/cards/a/AysenHighway.java index bed31930db1..5f02d0d503c 100644 --- a/Mage.Sets/src/mage/cards/a/AysenHighway.java +++ b/Mage.Sets/src/mage/cards/a/AysenHighway.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/a/AyumiTheLastVisitor.java b/Mage.Sets/src/mage/cards/a/AyumiTheLastVisitor.java index cacd175f96a..19d6dd6392e 100644 --- a/Mage.Sets/src/mage/cards/a/AyumiTheLastVisitor.java +++ b/Mage.Sets/src/mage/cards/a/AyumiTheLastVisitor.java @@ -27,15 +27,17 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.LandwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -44,12 +46,12 @@ public class AyumiTheLastVisitor extends CardImpl { private static final FilterLandPermanent filter = new FilterLandPermanent("Legendary land"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public AyumiTheLastVisitor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/a/AzamiLadyOfScrolls.java b/Mage.Sets/src/mage/cards/a/AzamiLadyOfScrolls.java index 8810f15e57c..3471a480ac9 100644 --- a/Mage.Sets/src/mage/cards/a/AzamiLadyOfScrolls.java +++ b/Mage.Sets/src/mage/cards/a/AzamiLadyOfScrolls.java @@ -28,15 +28,14 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * @author Loki */ @@ -58,7 +59,7 @@ public class AzamiLadyOfScrolls extends CardImpl { public AzamiLadyOfScrolls(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/a/AzimaetDrake.java b/Mage.Sets/src/mage/cards/a/AzimaetDrake.java index 5129e2547ce..ad787caabcd 100644 --- a/Mage.Sets/src/mage/cards/a/AzimaetDrake.java +++ b/Mage.Sets/src/mage/cards/a/AzimaetDrake.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/a/AzoriusAEthermage.java b/Mage.Sets/src/mage/cards/a/AzoriusAEthermage.java index fb94ae39d7e..327c7b57285 100644 --- a/Mage.Sets/src/mage/cards/a/AzoriusAEthermage.java +++ b/Mage.Sets/src/mage/cards/a/AzoriusAEthermage.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.ManaCostsImpl; @@ -44,6 +43,8 @@ import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/a/AzoriusArrester.java b/Mage.Sets/src/mage/cards/a/AzoriusArrester.java index 3c103775b97..10eeea8c6c4 100644 --- a/Mage.Sets/src/mage/cards/a/AzoriusArrester.java +++ b/Mage.Sets/src/mage/cards/a/AzoriusArrester.java @@ -27,20 +27,20 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DetainTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AzoriusChancery.java b/Mage.Sets/src/mage/cards/a/AzoriusChancery.java index 769c887bed9..4d2e0cd45f2 100644 --- a/Mage.Sets/src/mage/cards/a/AzoriusChancery.java +++ b/Mage.Sets/src/mage/cards/a/AzoriusChancery.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.Mana; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/a/AzoriusCharm.java b/Mage.Sets/src/mage/cards/a/AzoriusCharm.java index 4ee440947db..5958722a155 100644 --- a/Mage.Sets/src/mage/cards/a/AzoriusCharm.java +++ b/Mage.Sets/src/mage/cards/a/AzoriusCharm.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Mode; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.PutOnLibraryTargetEffect; @@ -37,10 +34,13 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AzoriusCluestone.java b/Mage.Sets/src/mage/cards/a/AzoriusCluestone.java index 017174168f3..53ea3280835 100644 --- a/Mage.Sets/src/mage/cards/a/AzoriusCluestone.java +++ b/Mage.Sets/src/mage/cards/a/AzoriusCluestone.java @@ -28,9 +28,6 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +38,10 @@ import mage.abilities.mana.BlueManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AzoriusFirstWing.java b/Mage.Sets/src/mage/cards/a/AzoriusFirstWing.java index a9f926202df..3c8a33808bf 100644 --- a/Mage.Sets/src/mage/cards/a/AzoriusFirstWing.java +++ b/Mage.Sets/src/mage/cards/a/AzoriusFirstWing.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.ProtectionAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterEnchantmentCard; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/a/AzoriusGuildgate.java b/Mage.Sets/src/mage/cards/a/AzoriusGuildgate.java index 286aaa22920..da16de069d7 100644 --- a/Mage.Sets/src/mage/cards/a/AzoriusGuildgate.java +++ b/Mage.Sets/src/mage/cards/a/AzoriusGuildgate.java @@ -27,13 +27,14 @@ */ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.BlueManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AzoriusGuildmage.java b/Mage.Sets/src/mage/cards/a/AzoriusGuildmage.java index f8da71486e5..dccf78fba7d 100644 --- a/Mage.Sets/src/mage/cards/a/AzoriusGuildmage.java +++ b/Mage.Sets/src/mage/cards/a/AzoriusGuildmage.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.target.common.TargetActivatedAbility; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/a/AzoriusHerald.java b/Mage.Sets/src/mage/cards/a/AzoriusHerald.java index 3cc00737309..dca809bc52b 100644 --- a/Mage.Sets/src/mage/cards/a/AzoriusHerald.java +++ b/Mage.Sets/src/mage/cards/a/AzoriusHerald.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.ManaWasSpentCondition; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.watchers.common.ManaSpentToCastWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AzoriusJusticiar.java b/Mage.Sets/src/mage/cards/a/AzoriusJusticiar.java index 1715e9a072c..f91a365f636 100644 --- a/Mage.Sets/src/mage/cards/a/AzoriusJusticiar.java +++ b/Mage.Sets/src/mage/cards/a/AzoriusJusticiar.java @@ -27,20 +27,20 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DetainTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/a/AzoriusSignet.java b/Mage.Sets/src/mage/cards/a/AzoriusSignet.java index 492d94cab15..323e6e599aa 100644 --- a/Mage.Sets/src/mage/cards/a/AzoriusSignet.java +++ b/Mage.Sets/src/mage/cards/a/AzoriusSignet.java @@ -27,9 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -37,8 +34,11 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/a/AzorsElocutors.java b/Mage.Sets/src/mage/cards/a/AzorsElocutors.java index 2c40818eaf8..51fa3bb6a27 100644 --- a/Mage.Sets/src/mage/cards/a/AzorsElocutors.java +++ b/Mage.Sets/src/mage/cards/a/AzorsElocutors.java @@ -27,7 +27,6 @@ */ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -47,6 +46,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/a/AzureDrake.java b/Mage.Sets/src/mage/cards/a/AzureDrake.java index b3d8c2d5b81..2ad4057f7e4 100644 --- a/Mage.Sets/src/mage/cards/a/AzureDrake.java +++ b/Mage.Sets/src/mage/cards/a/AzureDrake.java @@ -28,12 +28,13 @@ package mage.cards.a; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/a/AzureMage.java b/Mage.Sets/src/mage/cards/a/AzureMage.java index 923248e7265..8f54b72e44d 100644 --- a/Mage.Sets/src/mage/cards/a/AzureMage.java +++ b/Mage.Sets/src/mage/cards/a/AzureMage.java @@ -28,17 +28,17 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/a/AzusaLostButSeeking.java b/Mage.Sets/src/mage/cards/a/AzusaLostButSeeking.java index ec88c63cc33..2232946188b 100644 --- a/Mage.Sets/src/mage/cards/a/AzusaLostButSeeking.java +++ b/Mage.Sets/src/mage/cards/a/AzusaLostButSeeking.java @@ -28,17 +28,18 @@ package mage.cards.a; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.PlayAdditionalLandsControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki @@ -47,7 +48,7 @@ public class AzusaLostButSeeking extends CardImpl { public AzusaLostButSeeking (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Monk"); diff --git a/Mage.Sets/src/mage/cards/b/BackFromTheBrink.java b/Mage.Sets/src/mage/cards/b/BackFromTheBrink.java index c91caa44ee5..b8e89925a69 100644 --- a/Mage.Sets/src/mage/cards/b/BackFromTheBrink.java +++ b/Mage.Sets/src/mage/cards/b/BackFromTheBrink.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; import mage.abilities.costs.Cost; @@ -47,6 +46,8 @@ import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/b/BackToBasics.java b/Mage.Sets/src/mage/cards/b/BackToBasics.java index 462683bc5f6..ccfb6bf5ad5 100644 --- a/Mage.Sets/src/mage/cards/b/BackToBasics.java +++ b/Mage.Sets/src/mage/cards/b/BackToBasics.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BackToNature.java b/Mage.Sets/src/mage/cards/b/BackToNature.java index c8863dbcc43..56cfde8cafc 100644 --- a/Mage.Sets/src/mage/cards/b/BackToNature.java +++ b/Mage.Sets/src/mage/cards/b/BackToNature.java @@ -28,13 +28,14 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterEnchantmentPermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/Backlash.java b/Mage.Sets/src/mage/cards/b/Backlash.java index b4005509190..1dc72e1f45e 100644 --- a/Mage.Sets/src/mage/cards/b/Backlash.java +++ b/Mage.Sets/src/mage/cards/b/Backlash.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -42,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author michael.napoleon@gmail.com diff --git a/Mage.Sets/src/mage/cards/b/BackwoodsSurvivalists.java b/Mage.Sets/src/mage/cards/b/BackwoodsSurvivalists.java index f4e0995ddd7..1b54b599c28 100644 --- a/Mage.Sets/src/mage/cards/b/BackwoodsSurvivalists.java +++ b/Mage.Sets/src/mage/cards/b/BackwoodsSurvivalists.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BadMoon.java b/Mage.Sets/src/mage/cards/b/BadMoon.java index ba2906113cd..65cdb73d5c1 100644 --- a/Mage.Sets/src/mage/cards/b/BadMoon.java +++ b/Mage.Sets/src/mage/cards/b/BadMoon.java @@ -27,19 +27,19 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BadRiver.java b/Mage.Sets/src/mage/cards/b/BadRiver.java index 430009d0d54..482e9370069 100644 --- a/Mage.Sets/src/mage/cards/b/BadRiver.java +++ b/Mage.Sets/src/mage/cards/b/BadRiver.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.FetchLandActivatedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Badlands.java b/Mage.Sets/src/mage/cards/b/Badlands.java index 7611a301cfc..731cea3c8dd 100644 --- a/Mage.Sets/src/mage/cards/b/Badlands.java +++ b/Mage.Sets/src/mage/cards/b/Badlands.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BakuAltar.java b/Mage.Sets/src/mage/cards/b/BakuAltar.java index 4af0dc4faa4..092b1ca7c83 100644 --- a/Mage.Sets/src/mage/cards/b/BakuAltar.java +++ b/Mage.Sets/src/mage/cards/b/BakuAltar.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -40,11 +37,14 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterSpiritOrArcaneCard; import mage.game.permanent.token.SpiritToken; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BalaGedScorpion.java b/Mage.Sets/src/mage/cards/b/BalaGedScorpion.java index c8b6a2aed95..7241e6597b3 100644 --- a/Mage.Sets/src/mage/cards/b/BalaGedScorpion.java +++ b/Mage.Sets/src/mage/cards/b/BalaGedScorpion.java @@ -27,18 +27,19 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -48,7 +49,7 @@ public class BalaGedScorpion extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 1 or less"); static { - filter.add(new PowerPredicate(ComparisonType.LessThan, 2)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 2)); } public BalaGedScorpion(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/b/BalaGedThief.java b/Mage.Sets/src/mage/cards/b/BalaGedThief.java index d7062bba327..41683254522 100644 --- a/Mage.Sets/src/mage/cards/b/BalaGedThief.java +++ b/Mage.Sets/src/mage/cards/b/BalaGedThief.java @@ -27,17 +27,11 @@ */ package mage.cards.b; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -49,6 +43,9 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.TargetPlayer; +import java.util.List; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/Balance.java b/Mage.Sets/src/mage/cards/b/Balance.java index 1c8a54a7e2f..037b1549d7b 100644 --- a/Mage.Sets/src/mage/cards/b/Balance.java +++ b/Mage.Sets/src/mage/cards/b/Balance.java @@ -27,15 +27,9 @@ */ package mage.cards.b; -import java.util.HashMap; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.FilterCard; @@ -47,6 +41,9 @@ import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.target.common.TargetControlledPermanent; +import java.util.HashMap; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BalanceOfPower.java b/Mage.Sets/src/mage/cards/b/BalanceOfPower.java index 75578ebbc35..00773989476 100644 --- a/Mage.Sets/src/mage/cards/b/BalanceOfPower.java +++ b/Mage.Sets/src/mage/cards/b/BalanceOfPower.java @@ -27,17 +27,18 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BalancingAct.java b/Mage.Sets/src/mage/cards/b/BalancingAct.java index 027f1edb606..581096555a4 100644 --- a/Mage.Sets/src/mage/cards/b/BalancingAct.java +++ b/Mage.Sets/src/mage/cards/b/BalancingAct.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -44,6 +43,8 @@ import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Plopman (Restore Balance), cbt33 diff --git a/Mage.Sets/src/mage/cards/b/BalduvianBarbarians.java b/Mage.Sets/src/mage/cards/b/BalduvianBarbarians.java index 0bf5ef3210a..9f94c06bb34 100644 --- a/Mage.Sets/src/mage/cards/b/BalduvianBarbarians.java +++ b/Mage.Sets/src/mage/cards/b/BalduvianBarbarians.java @@ -27,11 +27,12 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BalduvianBears.java b/Mage.Sets/src/mage/cards/b/BalduvianBears.java index 18620136b6e..fc141d9e566 100644 --- a/Mage.Sets/src/mage/cards/b/BalduvianBears.java +++ b/Mage.Sets/src/mage/cards/b/BalduvianBears.java @@ -27,11 +27,12 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BalduvianDead.java b/Mage.Sets/src/mage/cards/b/BalduvianDead.java index 568883f8ba2..e6bb072ed43 100644 --- a/Mage.Sets/src/mage/cards/b/BalduvianDead.java +++ b/Mage.Sets/src/mage/cards/b/BalduvianDead.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -51,6 +50,8 @@ import mage.game.permanent.token.Token; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BalduvianHorde.java b/Mage.Sets/src/mage/cards/b/BalduvianHorde.java index 24942465c2f..0aea9b32d2e 100644 --- a/Mage.Sets/src/mage/cards/b/BalduvianHorde.java +++ b/Mage.Sets/src/mage/cards/b/BalduvianHorde.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.common.DiscardCardCost; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/b/BalduvianRage.java b/Mage.Sets/src/mage/cards/b/BalduvianRage.java index 818e62bbb06..b47b73b8f88 100644 --- a/Mage.Sets/src/mage/cards/b/BalduvianRage.java +++ b/Mage.Sets/src/mage/cards/b/BalduvianRage.java @@ -27,21 +27,20 @@ */ package mage.cards.b; -import java.util.UUID; - +import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; +import mage.abilities.dynamicvalue.common.ManacostVariableValue; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.abilities.dynamicvalue.common.ManacostVariableValue; -import mage.abilities.dynamicvalue.common.StaticValue; -import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.filter.common.FilterAttackingCreature; import mage.target.common.TargetCreaturePermanent; -import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; -import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; -import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.filter.common.FilterAttackingCreature; +import java.util.UUID; /** diff --git a/Mage.Sets/src/mage/cards/b/BalduvianTradingPost.java b/Mage.Sets/src/mage/cards/b/BalduvianTradingPost.java index 0d7819d74f9..09ddfe4c5e4 100644 --- a/Mage.Sets/src/mage/cards/b/BalduvianTradingPost.java +++ b/Mage.Sets/src/mage/cards/b/BalduvianTradingPost.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -49,6 +48,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetAttackingCreature; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BalduvianWarMakers.java b/Mage.Sets/src/mage/cards/b/BalduvianWarMakers.java index 753371ef4ea..14583632c60 100644 --- a/Mage.Sets/src/mage/cards/b/BalduvianWarMakers.java +++ b/Mage.Sets/src/mage/cards/b/BalduvianWarMakers.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.RampageAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BalefireDragon.java b/Mage.Sets/src/mage/cards/b/BalefireDragon.java index 8e08c074b21..2ea177cf1dc 100644 --- a/Mage.Sets/src/mage/cards/b/BalefireDragon.java +++ b/Mage.Sets/src/mage/cards/b/BalefireDragon.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -37,11 +34,15 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/b/BalefireLiege.java b/Mage.Sets/src/mage/cards/b/BalefireLiege.java index 13bb64a5ec6..f1b112208d3 100644 --- a/Mage.Sets/src/mage/cards/b/BalefireLiege.java +++ b/Mage.Sets/src/mage/cards/b/BalefireLiege.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -40,6 +37,7 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.FilterSpell; @@ -47,6 +45,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BalefulAmmit.java b/Mage.Sets/src/mage/cards/b/BalefulAmmit.java new file mode 100644 index 00000000000..b0b0a541f19 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BalefulAmmit.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.keyword.LifelinkAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.counters.CounterType; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class BalefulAmmit extends CardImpl { + + public BalefulAmmit(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); + + this.subtype.add("Crocodile"); + this.subtype.add("Demon"); + this.power = new MageInt(4); + this.toughness = new MageInt(3); + + // Lifelink + this.addAbility(LifelinkAbility.getInstance()); + + // When Baleful Ammit enters the battlefield, put a -1/-1 counter on target creature you control. + Ability ability = new EntersBattlefieldTriggeredAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance(1))); + ability.addTarget(new TargetControlledCreaturePermanent()); + this.addAbility(ability); + } + + public BalefulAmmit(final BalefulAmmit card) { + super(card); + } + + @Override + public BalefulAmmit copy() { + return new BalefulAmmit(this); + } +} diff --git a/Mage.Sets/src/mage/cards/b/BalefulEidolon.java b/Mage.Sets/src/mage/cards/b/BalefulEidolon.java index d8f6622706d..3cf3e9f55f0 100644 --- a/Mage.Sets/src/mage/cards/b/BalefulEidolon.java +++ b/Mage.Sets/src/mage/cards/b/BalefulEidolon.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BalefulForce.java b/Mage.Sets/src/mage/cards/b/BalefulForce.java index 8d4ed15498c..c0bdd893b98 100644 --- a/Mage.Sets/src/mage/cards/b/BalefulForce.java +++ b/Mage.Sets/src/mage/cards/b/BalefulForce.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BalefulStare.java b/Mage.Sets/src/mage/cards/b/BalefulStare.java index 378212c0e5a..a74ce3ceb72 100644 --- a/Mage.Sets/src/mage/cards/b/BalefulStare.java +++ b/Mage.Sets/src/mage/cards/b/BalefulStare.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BalefulStrix.java b/Mage.Sets/src/mage/cards/b/BalefulStrix.java index 04b06132af9..56e0dff72d1 100644 --- a/Mage.Sets/src/mage/cards/b/BalefulStrix.java +++ b/Mage.Sets/src/mage/cards/b/BalefulStrix.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -36,6 +34,9 @@ import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BallLightning.java b/Mage.Sets/src/mage/cards/b/BallLightning.java index e55b9fab889..c454d8e9807 100644 --- a/Mage.Sets/src/mage/cards/b/BallLightning.java +++ b/Mage.Sets/src/mage/cards/b/BallLightning.java @@ -28,8 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.OnEventTriggeredAbility; import mage.abilities.effects.common.SacrificeSourceEffect; @@ -37,8 +35,11 @@ import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/BallistaCharger.java b/Mage.Sets/src/mage/cards/b/BallistaCharger.java index 5a893801647..36c1af6f0d7 100644 --- a/Mage.Sets/src/mage/cards/b/BallistaCharger.java +++ b/Mage.Sets/src/mage/cards/b/BallistaCharger.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/b/BallistaSquad.java b/Mage.Sets/src/mage/cards/b/BallistaSquad.java index 7995b5c8cbd..501af11b536 100644 --- a/Mage.Sets/src/mage/cards/b/BallistaSquad.java +++ b/Mage.Sets/src/mage/cards/b/BallistaSquad.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,9 +36,12 @@ import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/b/BalloonPeddler.java b/Mage.Sets/src/mage/cards/b/BalloonPeddler.java index 456ee1ab68c..e3a412b1da1 100644 --- a/Mage.Sets/src/mage/cards/b/BalloonPeddler.java +++ b/Mage.Sets/src/mage/cards/b/BalloonPeddler.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BallynockCohort.java b/Mage.Sets/src/mage/cards/b/BallynockCohort.java index 8c9a9ec7241..3defb5fe74c 100644 --- a/Mage.Sets/src/mage/cards/b/BallynockCohort.java +++ b/Mage.Sets/src/mage/cards/b/BallynockCohort.java @@ -27,10 +27,9 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -47,6 +46,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -75,7 +76,7 @@ public class BallynockCohort extends CardImpl { this.addAbility(FirstStrikeAbility.getInstance()); // Ballynock Cohort gets +1/+1 as long as you control another white creature. - Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0); + Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0); Effect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), condition, rule); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); diff --git a/Mage.Sets/src/mage/cards/b/BallynockTrapper.java b/Mage.Sets/src/mage/cards/b/BallynockTrapper.java index 6bcaf44f219..ecc1b0d0dec 100644 --- a/Mage.Sets/src/mage/cards/b/BallynockTrapper.java +++ b/Mage.Sets/src/mage/cards/b/BallynockTrapper.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -40,11 +37,14 @@ import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BallyrushBanneret.java b/Mage.Sets/src/mage/cards/b/BallyrushBanneret.java index 47f5d254433..4c353c670c6 100644 --- a/Mage.Sets/src/mage/cards/b/BallyrushBanneret.java +++ b/Mage.Sets/src/mage/cards/b/BallyrushBanneret.java @@ -27,18 +27,19 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BalmOfRestoration.java b/Mage.Sets/src/mage/cards/b/BalmOfRestoration.java index 7e9309db425..04c1249545e 100644 --- a/Mage.Sets/src/mage/cards/b/BalmOfRestoration.java +++ b/Mage.Sets/src/mage/cards/b/BalmOfRestoration.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BalothCageTrap.java b/Mage.Sets/src/mage/cards/b/BalothCageTrap.java index 54d837071ca..7a9ee33e3ec 100644 --- a/Mage.Sets/src/mage/cards/b/BalothCageTrap.java +++ b/Mage.Sets/src/mage/cards/b/BalothCageTrap.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.Condition; import mage.abilities.costs.AlternativeCostSourceAbility; @@ -42,6 +40,9 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.BeastToken2; import mage.watchers.common.PermanentsEnteredBattlefieldWatcher; +import java.util.List; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BalothNull.java b/Mage.Sets/src/mage/cards/b/BalothNull.java index a52f5368ad9..a74edef1e5b 100644 --- a/Mage.Sets/src/mage/cards/b/BalothNull.java +++ b/Mage.Sets/src/mage/cards/b/BalothNull.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BalothPup.java b/Mage.Sets/src/mage/cards/b/BalothPup.java index 14f4b9f5b98..059e91266d7 100644 --- a/Mage.Sets/src/mage/cards/b/BalothPup.java +++ b/Mage.Sets/src/mage/cards/b/BalothPup.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.SourceHasCounterCondition; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BalothWoodcrasher.java b/Mage.Sets/src/mage/cards/b/BalothWoodcrasher.java index 072e520e1b9..087d37b3dfb 100644 --- a/Mage.Sets/src/mage/cards/b/BalothWoodcrasher.java +++ b/Mage.Sets/src/mage/cards/b/BalothWoodcrasher.java @@ -27,10 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.LandfallAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -38,6 +34,10 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BalshanBeguiler.java b/Mage.Sets/src/mage/cards/b/BalshanBeguiler.java index 9aed9f1cc66..ef9ab07cbac 100644 --- a/Mage.Sets/src/mage/cards/b/BalshanBeguiler.java +++ b/Mage.Sets/src/mage/cards/b/BalshanBeguiler.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author cbt33, noxx (DiscardCardYouChooseTargetOpponentEffect) diff --git a/Mage.Sets/src/mage/cards/b/BalshanCollaborator.java b/Mage.Sets/src/mage/cards/b/BalshanCollaborator.java index 570bf679b5d..1cfdc5e4415 100644 --- a/Mage.Sets/src/mage/cards/b/BalshanCollaborator.java +++ b/Mage.Sets/src/mage/cards/b/BalshanCollaborator.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BalshanGriffin.java b/Mage.Sets/src/mage/cards/b/BalshanGriffin.java index fb23265d14b..747e03acfa0 100644 --- a/Mage.Sets/src/mage/cards/b/BalshanGriffin.java +++ b/Mage.Sets/src/mage/cards/b/BalshanGriffin.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/b/BalthorTheDefiled.java b/Mage.Sets/src/mage/cards/b/BalthorTheDefiled.java index 5aaba67d0a9..098072c954f 100644 --- a/Mage.Sets/src/mage/cards/b/BalthorTheDefiled.java +++ b/Mage.Sets/src/mage/cards/b/BalthorTheDefiled.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -41,10 +40,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.Cards; import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -52,6 +48,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +58,7 @@ public class BalthorTheDefiled extends CardImpl { public BalthorTheDefiled(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Dwarf"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/b/BalthorTheStout.java b/Mage.Sets/src/mage/cards/b/BalthorTheStout.java index 72f25726e66..32aac8c25d0 100644 --- a/Mage.Sets/src/mage/cards/b/BalthorTheStout.java +++ b/Mage.Sets/src/mage/cards/b/BalthorTheStout.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,12 +38,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -62,7 +64,7 @@ public class BalthorTheStout extends CardImpl { public BalthorTheStout(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dwarf"); this.subtype.add("Barbarian"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/b/BalustradeSpy.java b/Mage.Sets/src/mage/cards/b/BalustradeSpy.java index 9620c233012..eeba722876b 100644 --- a/Mage.Sets/src/mage/cards/b/BalustradeSpy.java +++ b/Mage.Sets/src/mage/cards/b/BalustradeSpy.java @@ -27,10 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -41,10 +37,15 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.CardsImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Bandage.java b/Mage.Sets/src/mage/cards/b/Bandage.java index 30b9db2e741..a8abc2666ab 100644 --- a/Mage.Sets/src/mage/cards/b/Bandage.java +++ b/Mage.Sets/src/mage/cards/b/Bandage.java @@ -27,16 +27,16 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.PreventDamageToTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BaneAlleyBlackguard.java b/Mage.Sets/src/mage/cards/b/BaneAlleyBlackguard.java index 461b8ab6abd..e58b7c9abe1 100644 --- a/Mage.Sets/src/mage/cards/b/BaneAlleyBlackguard.java +++ b/Mage.Sets/src/mage/cards/b/BaneAlleyBlackguard.java @@ -28,11 +28,12 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BaneAlleyBroker.java b/Mage.Sets/src/mage/cards/b/BaneAlleyBroker.java index 3226e3cd65b..be4f85677fd 100644 --- a/Mage.Sets/src/mage/cards/b/BaneAlleyBroker.java +++ b/Mage.Sets/src/mage/cards/b/BaneAlleyBroker.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -43,11 +40,7 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.game.ExileZone; import mage.game.Game; @@ -57,6 +50,10 @@ import mage.target.common.TargetCardInExile; import mage.target.common.TargetCardInHand; import mage.util.CardUtil; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * Gatecrash FAQ (01.2013) * diff --git a/Mage.Sets/src/mage/cards/b/BaneOfBalaGed.java b/Mage.Sets/src/mage/cards/b/BaneOfBalaGed.java index 1343eee1059..7faaba34964 100644 --- a/Mage.Sets/src/mage/cards/b/BaneOfBalaGed.java +++ b/Mage.Sets/src/mage/cards/b/BaneOfBalaGed.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -46,6 +43,10 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledPermanent; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BaneOfHanweir.java b/Mage.Sets/src/mage/cards/b/BaneOfHanweir.java index 6bdbe808a27..dc482c1516e 100644 --- a/Mage.Sets/src/mage/cards/b/BaneOfHanweir.java +++ b/Mage.Sets/src/mage/cards/b/BaneOfHanweir.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.AttacksEachTurnStaticAbility; @@ -38,6 +37,7 @@ import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/b/BaneOfProgress.java b/Mage.Sets/src/mage/cards/b/BaneOfProgress.java index d677a6855ff..652f9e182cc 100644 --- a/Mage.Sets/src/mage/cards/b/BaneOfProgress.java +++ b/Mage.Sets/src/mage/cards/b/BaneOfProgress.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BaneOfTheLiving.java b/Mage.Sets/src/mage/cards/b/BaneOfTheLiving.java index fe119fd0329..ed8170bd7e3 100644 --- a/Mage.Sets/src/mage/cards/b/BaneOfTheLiving.java +++ b/Mage.Sets/src/mage/cards/b/BaneOfTheLiving.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Banefire.java b/Mage.Sets/src/mage/cards/b/Banefire.java index 78591b6d831..691d6aa2605 100644 --- a/Mage.Sets/src/mage/cards/b/Banefire.java +++ b/Mage.Sets/src/mage/cards/b/Banefire.java @@ -37,7 +37,10 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; diff --git a/Mage.Sets/src/mage/cards/b/BaneslayerAngel.java b/Mage.Sets/src/mage/cards/b/BaneslayerAngel.java index c03cb72e1a8..a7cfa0f1e6f 100644 --- a/Mage.Sets/src/mage/cards/b/BaneslayerAngel.java +++ b/Mage.Sets/src/mage/cards/b/BaneslayerAngel.java @@ -28,8 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.FlyingAbility; @@ -37,11 +35,14 @@ import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/BanewaspAffliction.java b/Mage.Sets/src/mage/cards/b/BanewaspAffliction.java index da9e0737d54..5b021c1407b 100644 --- a/Mage.Sets/src/mage/cards/b/BanewaspAffliction.java +++ b/Mage.Sets/src/mage/cards/b/BanewaspAffliction.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.common.DiesAttachedTriggeredAbility; @@ -44,6 +43,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BanisherPriest.java b/Mage.Sets/src/mage/cards/b/BanisherPriest.java index 6f170c9c146..a39c22b763f 100644 --- a/Mage.Sets/src/mage/cards/b/BanisherPriest.java +++ b/Mage.Sets/src/mage/cards/b/BanisherPriest.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -47,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author jeffwadsworth using LevelX2 tech diff --git a/Mage.Sets/src/mage/cards/b/BanishingKnack.java b/Mage.Sets/src/mage/cards/b/BanishingKnack.java index 1aa404a5f1a..d03676d9d41 100644 --- a/Mage.Sets/src/mage/cards/b/BanishingKnack.java +++ b/Mage.Sets/src/mage/cards/b/BanishingKnack.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -37,6 +34,7 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.FilterPermanent; @@ -44,6 +42,8 @@ import mage.filter.common.FilterNonlandPermanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BanishingLight.java b/Mage.Sets/src/mage/cards/b/BanishingLight.java index abad2ea7c26..6f5ea1e5f4c 100644 --- a/Mage.Sets/src/mage/cards/b/BanishingLight.java +++ b/Mage.Sets/src/mage/cards/b/BanishingLight.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility; @@ -41,6 +40,8 @@ import mage.filter.common.FilterNonlandPermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BanishingStroke.java b/Mage.Sets/src/mage/cards/b/BanishingStroke.java index a44aa9572f2..8a1d719cf8d 100644 --- a/Mage.Sets/src/mage/cards/b/BanishingStroke.java +++ b/Mage.Sets/src/mage/cards/b/BanishingStroke.java @@ -27,12 +27,12 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.abilities.keyword.MiracleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; diff --git a/Mage.Sets/src/mage/cards/b/BanishmentDecree.java b/Mage.Sets/src/mage/cards/b/BanishmentDecree.java index 48129a17a20..bc7a0c0eca8 100644 --- a/Mage.Sets/src/mage/cards/b/BanishmentDecree.java +++ b/Mage.Sets/src/mage/cards/b/BanishmentDecree.java @@ -28,16 +28,17 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BannersRaised.java b/Mage.Sets/src/mage/cards/b/BannersRaised.java index 41f6ea770b0..f1582bbfe1b 100644 --- a/Mage.Sets/src/mage/cards/b/BannersRaised.java +++ b/Mage.Sets/src/mage/cards/b/BannersRaised.java @@ -27,14 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BansheeOfTheDreadChoir.java b/Mage.Sets/src/mage/cards/b/BansheeOfTheDreadChoir.java index 46d418d5f0e..fcdade0ce53 100644 --- a/Mage.Sets/src/mage/cards/b/BansheeOfTheDreadChoir.java +++ b/Mage.Sets/src/mage/cards/b/BansheeOfTheDreadChoir.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.discard.DiscardTargetEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BansheesBlade.java b/Mage.Sets/src/mage/cards/b/BansheesBlade.java index 366324a3cbf..48fd38c929d 100644 --- a/Mage.Sets/src/mage/cards/b/BansheesBlade.java +++ b/Mage.Sets/src/mage/cards/b/BansheesBlade.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -47,6 +46,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BantBattlemage.java b/Mage.Sets/src/mage/cards/b/BantBattlemage.java index 6eb06b00517..d0c600f9c1a 100644 --- a/Mage.Sets/src/mage/cards/b/BantBattlemage.java +++ b/Mage.Sets/src/mage/cards/b/BantBattlemage.java @@ -28,10 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,8 +38,13 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BantCharm.java b/Mage.Sets/src/mage/cards/b/BantCharm.java index 623a63a060a..007974e84fa 100644 --- a/Mage.Sets/src/mage/cards/b/BantCharm.java +++ b/Mage.Sets/src/mage/cards/b/BantCharm.java @@ -27,20 +27,21 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Mode; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetSpell; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BantPanorama.java b/Mage.Sets/src/mage/cards/b/BantPanorama.java index aa3b6584e39..8a516cdacc5 100644 --- a/Mage.Sets/src/mage/cards/b/BantPanorama.java +++ b/Mage.Sets/src/mage/cards/b/BantPanorama.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -39,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; @@ -47,8 +47,9 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** - * * @author North */ public class BantPanorama extends CardImpl { @@ -57,7 +58,7 @@ public class BantPanorama extends CardImpl { static { filter.add(new CardTypePredicate(CardType.LAND)); - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); filter.add(Predicates.or( new SubtypePredicate("Forest"), new SubtypePredicate("Plains"), @@ -65,7 +66,7 @@ public class BantPanorama extends CardImpl { } public BantPanorama(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.LAND},""); + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/b/BantSojourners.java b/Mage.Sets/src/mage/cards/b/BantSojourners.java index 81118e7f555..69015071f89 100644 --- a/Mage.Sets/src/mage/cards/b/BantSojourners.java +++ b/Mage.Sets/src/mage/cards/b/BantSojourners.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CycleTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.SoldierToken; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BantSureblade.java b/Mage.Sets/src/mage/cards/b/BantSureblade.java index 58c95938667..7cb06f85f5f 100644 --- a/Mage.Sets/src/mage/cards/b/BantSureblade.java +++ b/Mage.Sets/src/mage/cards/b/BantSureblade.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.MulticoloredPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BanthaHerd.java b/Mage.Sets/src/mage/cards/b/BanthaHerd.java index 59da956a40c..4c994d8d7c2 100644 --- a/Mage.Sets/src/mage/cards/b/BanthaHerd.java +++ b/Mage.Sets/src/mage/cards/b/BanthaHerd.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesMonstrousSourceTriggeredAbility; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/b/BarTheDoor.java b/Mage.Sets/src/mage/cards/b/BarTheDoor.java index 005e8758532..011937eaf66 100644 --- a/Mage.Sets/src/mage/cards/b/BarTheDoor.java +++ b/Mage.Sets/src/mage/cards/b/BarTheDoor.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BaralChiefOfCompliance.java b/Mage.Sets/src/mage/cards/b/BaralChiefOfCompliance.java index c314cb69d42..b56bc301b9c 100644 --- a/Mage.Sets/src/mage/cards/b/BaralChiefOfCompliance.java +++ b/Mage.Sets/src/mage/cards/b/BaralChiefOfCompliance.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SpellCounteredControllerTriggeredAbility; @@ -36,11 +35,14 @@ import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -59,7 +61,7 @@ public class BaralChiefOfCompliance extends CardImpl { public BaralChiefOfCompliance(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/b/BaralsExpertise.java b/Mage.Sets/src/mage/cards/b/BaralsExpertise.java index 67c40d1053e..4e4b5cdd634 100644 --- a/Mage.Sets/src/mage/cards/b/BaralsExpertise.java +++ b/Mage.Sets/src/mage/cards/b/BaralsExpertise.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.effects.common.cost.CastWithoutPayingManaCostEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BarbarianGeneral.java b/Mage.Sets/src/mage/cards/b/BarbarianGeneral.java index b7eecd63eb6..cf984788f88 100644 --- a/Mage.Sets/src/mage/cards/b/BarbarianGeneral.java +++ b/Mage.Sets/src/mage/cards/b/BarbarianGeneral.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HorsemanshipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BarbarianHorde.java b/Mage.Sets/src/mage/cards/b/BarbarianHorde.java index 3651033a04a..31229c50b2d 100644 --- a/Mage.Sets/src/mage/cards/b/BarbarianHorde.java +++ b/Mage.Sets/src/mage/cards/b/BarbarianHorde.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BarbarianLunatic.java b/Mage.Sets/src/mage/cards/b/BarbarianLunatic.java index 085c0ea7225..c65cd353a52 100644 --- a/Mage.Sets/src/mage/cards/b/BarbarianLunatic.java +++ b/Mage.Sets/src/mage/cards/b/BarbarianLunatic.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BarbarianOutcast.java b/Mage.Sets/src/mage/cards/b/BarbarianOutcast.java index bf288d0c640..9c8d623ba84 100644 --- a/Mage.Sets/src/mage/cards/b/BarbarianOutcast.java +++ b/Mage.Sets/src/mage/cards/b/BarbarianOutcast.java @@ -27,18 +27,19 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -61,7 +62,7 @@ public class BarbarianOutcast extends CardImpl { // When you control no Swamps, sacrifice Barbarian Outcast. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Swamp", "no Swamps"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Swamp", "no Swamps"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/b/BarbarianRiftcutter.java b/Mage.Sets/src/mage/cards/b/BarbarianRiftcutter.java index 27312d9e7fe..fdc24b28bc2 100644 --- a/Mage.Sets/src/mage/cards/b/BarbarianRiftcutter.java +++ b/Mage.Sets/src/mage/cards/b/BarbarianRiftcutter.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,10 +35,13 @@ import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BarbarianRing.java b/Mage.Sets/src/mage/cards/b/BarbarianRing.java index 0ef0fb41e17..ef739ab0bbf 100644 --- a/Mage.Sets/src/mage/cards/b/BarbarianRing.java +++ b/Mage.Sets/src/mage/cards/b/BarbarianRing.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.CardsInControllerGraveCondition; import mage.abilities.costs.common.SacrificeSourceCost; @@ -44,6 +43,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BarbaryApes.java b/Mage.Sets/src/mage/cards/b/BarbaryApes.java index 9c692a0a93f..5a7c457819c 100644 --- a/Mage.Sets/src/mage/cards/b/BarbaryApes.java +++ b/Mage.Sets/src/mage/cards/b/BarbaryApes.java @@ -27,11 +27,12 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BarbedBackWurm.java b/Mage.Sets/src/mage/cards/b/BarbedBackWurm.java index 026b6c958b8..5df9513989b 100644 --- a/Mage.Sets/src/mage/cards/b/BarbedBackWurm.java +++ b/Mage.Sets/src/mage/cards/b/BarbedBackWurm.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.BlockingAttackerIdPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BarbedBattlegear.java b/Mage.Sets/src/mage/cards/b/BarbedBattlegear.java index 676a8bdba95..6ca50c3d789 100644 --- a/Mage.Sets/src/mage/cards/b/BarbedBattlegear.java +++ b/Mage.Sets/src/mage/cards/b/BarbedBattlegear.java @@ -28,17 +28,17 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BarbedField.java b/Mage.Sets/src/mage/cards/b/BarbedField.java index b09c2f69a68..e20dacd804d 100644 --- a/Mage.Sets/src/mage/cards/b/BarbedField.java +++ b/Mage.Sets/src/mage/cards/b/BarbedField.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -47,6 +46,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BarbedLightning.java b/Mage.Sets/src/mage/cards/b/BarbedLightning.java index 47098866f42..cd18bdb0634 100644 --- a/Mage.Sets/src/mage/cards/b/BarbedLightning.java +++ b/Mage.Sets/src/mage/cards/b/BarbedLightning.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.EntwineAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BarbedSextant.java b/Mage.Sets/src/mage/cards/b/BarbedSextant.java index b3eac60f1c6..bcfab2506f3 100644 --- a/Mage.Sets/src/mage/cards/b/BarbedSextant.java +++ b/Mage.Sets/src/mage/cards/b/BarbedSextant.java @@ -27,20 +27,21 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.mana.AnyColorManaAbility; import mage.abilities.mana.ActivatedManaAbilityImpl; +import mage.abilities.mana.AnyColorManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BarbedShocker.java b/Mage.Sets/src/mage/cards/b/BarbedShocker.java index bcbf30fc0fa..c21f310b002 100644 --- a/Mage.Sets/src/mage/cards/b/BarbedShocker.java +++ b/Mage.Sets/src/mage/cards/b/BarbedShocker.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToAPlayerTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author markedagain diff --git a/Mage.Sets/src/mage/cards/b/BarbedSliver.java b/Mage.Sets/src/mage/cards/b/BarbedSliver.java index 55ac72c06e5..16c0dc403ec 100644 --- a/Mage.Sets/src/mage/cards/b/BarbedSliver.java +++ b/Mage.Sets/src/mage/cards/b/BarbedSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BarbtoothWurm.java b/Mage.Sets/src/mage/cards/b/BarbtoothWurm.java index 15a9f39b116..4bf792358de 100644 --- a/Mage.Sets/src/mage/cards/b/BarbtoothWurm.java +++ b/Mage.Sets/src/mage/cards/b/BarbtoothWurm.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/Bargain.java b/Mage.Sets/src/mage/cards/b/Bargain.java index 1a3eb4efa8b..96ddbce1c18 100644 --- a/Mage.Sets/src/mage/cards/b/Bargain.java +++ b/Mage.Sets/src/mage/cards/b/Bargain.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BarkhideMauler.java b/Mage.Sets/src/mage/cards/b/BarkhideMauler.java index 3de0a259e1d..59827be3e01 100644 --- a/Mage.Sets/src/mage/cards/b/BarkhideMauler.java +++ b/Mage.Sets/src/mage/cards/b/BarkhideMauler.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.CyclingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BarkshellBlessing.java b/Mage.Sets/src/mage/cards/b/BarkshellBlessing.java index 348aabe820e..1bec85a97bc 100644 --- a/Mage.Sets/src/mage/cards/b/BarkshellBlessing.java +++ b/Mage.Sets/src/mage/cards/b/BarkshellBlessing.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.ConspireAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BarktoothWarbeard.java b/Mage.Sets/src/mage/cards/b/BarktoothWarbeard.java index 3d212e7ee53..90d51a1bf21 100644 --- a/Mage.Sets/src/mage/cards/b/BarktoothWarbeard.java +++ b/Mage.Sets/src/mage/cards/b/BarktoothWarbeard.java @@ -27,11 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -41,7 +43,7 @@ public class BarktoothWarbeard extends CardImpl { public BarktoothWarbeard(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/b/BarlsCage.java b/Mage.Sets/src/mage/cards/b/BarlsCage.java index c92f2613a6b..a22bed1c1a2 100644 --- a/Mage.Sets/src/mage/cards/b/BarlsCage.java +++ b/Mage.Sets/src/mage/cards/b/BarlsCage.java @@ -27,17 +27,18 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; -import mage.constants.CardType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Backfir3 */ diff --git a/Mage.Sets/src/mage/cards/b/BaronSengir.java b/Mage.Sets/src/mage/cards/b/BaronSengir.java index 5fcaa90fcc0..bee4ca06eec 100644 --- a/Mage.Sets/src/mage/cards/b/BaronSengir.java +++ b/Mage.Sets/src/mage/cards/b/BaronSengir.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealtDamageAndDiedTriggeredAbility; @@ -39,6 +38,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; @@ -46,6 +46,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -61,7 +63,7 @@ public class BaronSengir extends CardImpl { public BaronSengir(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.power = new MageInt(5); this.toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/b/BaronyVampire.java b/Mage.Sets/src/mage/cards/b/BaronyVampire.java index e5fd87c4712..06436b53d60 100644 --- a/Mage.Sets/src/mage/cards/b/BaronyVampire.java +++ b/Mage.Sets/src/mage/cards/b/BaronyVampire.java @@ -28,11 +28,12 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BarrageOfBoulders.java b/Mage.Sets/src/mage/cards/b/BarrageOfBoulders.java index 3b9f6ad0760..2e4e6c1d15f 100644 --- a/Mage.Sets/src/mage/cards/b/BarrageOfBoulders.java +++ b/Mage.Sets/src/mage/cards/b/BarrageOfBoulders.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.common.FerociousCondition; import mage.abilities.decorator.ConditionalRestrictionEffect; @@ -42,6 +41,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BarrageOfExpendables.java b/Mage.Sets/src/mage/cards/b/BarrageOfExpendables.java index 3cc1db9f0c9..cbc4270d65a 100644 --- a/Mage.Sets/src/mage/cards/b/BarrageOfExpendables.java +++ b/Mage.Sets/src/mage/cards/b/BarrageOfExpendables.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BarrageOgre.java b/Mage.Sets/src/mage/cards/b/BarrageOgre.java index 3921312b8b6..b1c4337ce8c 100644 --- a/Mage.Sets/src/mage/cards/b/BarrageOgre.java +++ b/Mage.Sets/src/mage/cards/b/BarrageOgre.java @@ -28,8 +28,6 @@ package mage.cards.b; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +36,8 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledPermanent; diff --git a/Mage.Sets/src/mage/cards/b/BarrageTyrant.java b/Mage.Sets/src/mage/cards/b/BarrageTyrant.java index 44c470a4bc5..6b5bb142399 100644 --- a/Mage.Sets/src/mage/cards/b/BarrageTyrant.java +++ b/Mage.Sets/src/mage/cards/b/BarrageTyrant.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -47,6 +46,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BarrelDownSokenzan.java b/Mage.Sets/src/mage/cards/b/BarrelDownSokenzan.java index 0b633049e5e..f03adc21b55 100644 --- a/Mage.Sets/src/mage/cards/b/BarrelDownSokenzan.java +++ b/Mage.Sets/src/mage/cards/b/BarrelDownSokenzan.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.MultipliedValue; import mage.abilities.dynamicvalue.common.SweepNumber; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BarrenGlory.java b/Mage.Sets/src/mage/cards/b/BarrenGlory.java index cb712fe77a8..fc218110f24 100644 --- a/Mage.Sets/src/mage/cards/b/BarrenGlory.java +++ b/Mage.Sets/src/mage/cards/b/BarrenGlory.java @@ -27,9 +27,7 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.condition.Condition; @@ -46,6 +44,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * @author fireshoes */ @@ -55,7 +55,7 @@ public class BarrenGlory extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{W}{W}"); // At the beginning of your upkeep, if you control no permanents other than Barren Glory and have no cards in hand, you win the game. - Condition condition = new CardsInHandCondition(CountType.EQUAL_TO, 0); + Condition condition = new CardsInHandCondition(ComparisonType.EQUAL_TO, 0); TriggeredAbility ability = new BarrenGloryTriggeredAbility(); this.addAbility(new ConditionalTriggeredAbility(ability, condition, diff --git a/Mage.Sets/src/mage/cards/b/BarrenMoor.java b/Mage.Sets/src/mage/cards/b/BarrenMoor.java index 14815b4782f..b32df7811ef 100644 --- a/Mage.Sets/src/mage/cards/b/BarrenMoor.java +++ b/Mage.Sets/src/mage/cards/b/BarrenMoor.java @@ -27,14 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.CyclingAbility; import mage.abilities.mana.BlackManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BarrentonCragtreads.java b/Mage.Sets/src/mage/cards/b/BarrentonCragtreads.java index 82e26b54f74..a5a9f854d35 100644 --- a/Mage.Sets/src/mage/cards/b/BarrentonCragtreads.java +++ b/Mage.Sets/src/mage/cards/b/BarrentonCragtreads.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleEvasionAbility; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BarrentonMedic.java b/Mage.Sets/src/mage/cards/b/BarrentonMedic.java index d6907bd891d..33b076fe31b 100644 --- a/Mage.Sets/src/mage/cards/b/BarrentonMedic.java +++ b/Mage.Sets/src/mage/cards/b/BarrentonMedic.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BarricadeBreaker.java b/Mage.Sets/src/mage/cards/b/BarricadeBreaker.java index d47ef28caea..0a47c5ce3e7 100644 --- a/Mage.Sets/src/mage/cards/b/BarricadeBreaker.java +++ b/Mage.Sets/src/mage/cards/b/BarricadeBreaker.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksEachCombatStaticAbility; import mage.abilities.keyword.ImproviseAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/b/BarrinMasterWizard.java b/Mage.Sets/src/mage/cards/b/BarrinMasterWizard.java index 9c670a600bb..242af98c769 100644 --- a/Mage.Sets/src/mage/cards/b/BarrinMasterWizard.java +++ b/Mage.Sets/src/mage/cards/b/BarrinMasterWizard.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -37,9 +34,14 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 @@ -48,7 +50,7 @@ public class BarrinMasterWizard extends CardImpl { public BarrinMasterWizard(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/b/BarrinsCodex.java b/Mage.Sets/src/mage/cards/b/BarrinsCodex.java index bd37281f6b1..1ab47af453d 100644 --- a/Mage.Sets/src/mage/cards/b/BarrinsCodex.java +++ b/Mage.Sets/src/mage/cards/b/BarrinsCodex.java @@ -27,24 +27,24 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.dynamicvalue.common.CountersSourceCount; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; +import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/b/BarrowGhoul.java b/Mage.Sets/src/mage/cards/b/BarrowGhoul.java index 1b020a070e9..0895b8a04f0 100644 --- a/Mage.Sets/src/mage/cards/b/BarrowGhoul.java +++ b/Mage.Sets/src/mage/cards/b/BarrowGhoul.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.costs.common.ExileTopCreatureCardOfGraveyardCost; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BartelRuneaxe.java b/Mage.Sets/src/mage/cards/b/BartelRuneaxe.java index 03be0ceb3d0..9c4c7ed34bd 100644 --- a/Mage.Sets/src/mage/cards/b/BartelRuneaxe.java +++ b/Mage.Sets/src/mage/cards/b/BartelRuneaxe.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -35,15 +34,14 @@ import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.game.stack.StackObject; +import java.util.UUID; + /** * * @author JRHerlehy @@ -52,7 +50,7 @@ public class BartelRuneaxe extends CardImpl { public BartelRuneaxe(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Giant"); this.subtype.add("Warrior"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/b/BarterInBlood.java b/Mage.Sets/src/mage/cards/b/BarterInBlood.java index 688bb45002c..db07d14a960 100644 --- a/Mage.Sets/src/mage/cards/b/BarterInBlood.java +++ b/Mage.Sets/src/mage/cards/b/BarterInBlood.java @@ -27,14 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.SacrificeAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BaruFistOfKrosa.java b/Mage.Sets/src/mage/cards/b/BaruFistOfKrosa.java index 4c2249081b3..2deff0a3b51 100644 --- a/Mage.Sets/src/mage/cards/b/BaruFistOfKrosa.java +++ b/Mage.Sets/src/mage/cards/b/BaruFistOfKrosa.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -39,10 +38,7 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; +import mage.constants.*; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterCreaturePermanent; @@ -53,6 +49,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author emerald000 @@ -70,7 +68,7 @@ public class BaruFistOfKrosa extends CardImpl { public BaruFistOfKrosa(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Druid"); diff --git a/Mage.Sets/src/mage/cards/b/BasalSliver.java b/Mage.Sets/src/mage/cards/b/BasalSliver.java index 7b54a35c4d5..b074ccf76c4 100644 --- a/Mage.Sets/src/mage/cards/b/BasalSliver.java +++ b/Mage.Sets/src/mage/cards/b/BasalSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/b/BasalThrull.java b/Mage.Sets/src/mage/cards/b/BasalThrull.java index 2af03ae819b..45aad0f7183 100644 --- a/Mage.Sets/src/mage/cards/b/BasalThrull.java +++ b/Mage.Sets/src/mage/cards/b/BasalThrull.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BasaltGargoyle.java b/Mage.Sets/src/mage/cards/b/BasaltGargoyle.java index c4e8e71592d..8417e7a863a 100644 --- a/Mage.Sets/src/mage/cards/b/BasaltGargoyle.java +++ b/Mage.Sets/src/mage/cards/b/BasaltGargoyle.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BasaltMonolith.java b/Mage.Sets/src/mage/cards/b/BasaltMonolith.java index 0d55b96e071..fa9735f03f7 100644 --- a/Mage.Sets/src/mage/cards/b/BasaltMonolith.java +++ b/Mage.Sets/src/mage/cards/b/BasaltMonolith.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.Mana; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BasandraBattleSeraph.java b/Mage.Sets/src/mage/cards/b/BasandraBattleSeraph.java index 92e3435f59b..ede2bca5d53 100644 --- a/Mage.Sets/src/mage/cards/b/BasandraBattleSeraph.java +++ b/Mage.Sets/src/mage/cards/b/BasandraBattleSeraph.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,15 +39,13 @@ import mage.abilities.keyword.AttacksThisTurnMarkerAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TurnPhase; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -57,7 +54,7 @@ public class BasandraBattleSeraph extends CardImpl { public BasandraBattleSeraph(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/b/BashToBits.java b/Mage.Sets/src/mage/cards/b/BashToBits.java index 47d9315bace..25207f34a8d 100644 --- a/Mage.Sets/src/mage/cards/b/BashToBits.java +++ b/Mage.Sets/src/mage/cards/b/BashToBits.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.FlashbackAbility; @@ -38,6 +37,8 @@ import mage.constants.TimingRule; import mage.target.Target; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BasilicaGuards.java b/Mage.Sets/src/mage/cards/b/BasilicaGuards.java index 61188ef9ff2..d06cc50c17c 100644 --- a/Mage.Sets/src/mage/cards/b/BasilicaGuards.java +++ b/Mage.Sets/src/mage/cards/b/BasilicaGuards.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.ExtortAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BasilicaScreecher.java b/Mage.Sets/src/mage/cards/b/BasilicaScreecher.java index d161b1467f1..0c382b91077 100644 --- a/Mage.Sets/src/mage/cards/b/BasilicaScreecher.java +++ b/Mage.Sets/src/mage/cards/b/BasilicaScreecher.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ExtortAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BasiliskCollar.java b/Mage.Sets/src/mage/cards/b/BasiliskCollar.java index cfcc35c3353..93dd763614e 100644 --- a/Mage.Sets/src/mage/cards/b/BasiliskCollar.java +++ b/Mage.Sets/src/mage/cards/b/BasiliskCollar.java @@ -28,11 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; @@ -42,6 +37,11 @@ import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BaskingRootwalla.java b/Mage.Sets/src/mage/cards/b/BaskingRootwalla.java index 5f65a64c0d1..21ebafd56c9 100644 --- a/Mage.Sets/src/mage/cards/b/BaskingRootwalla.java +++ b/Mage.Sets/src/mage/cards/b/BaskingRootwalla.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -35,6 +34,7 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.MadnessAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; diff --git a/Mage.Sets/src/mage/cards/b/BassaraTowerArcher.java b/Mage.Sets/src/mage/cards/b/BassaraTowerArcher.java index 8e93bf03132..daae7485acd 100644 --- a/Mage.Sets/src/mage/cards/b/BassaraTowerArcher.java +++ b/Mage.Sets/src/mage/cards/b/BassaraTowerArcher.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HexproofAbility; import mage.abilities.keyword.ReachAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BastionEnforcer.java b/Mage.Sets/src/mage/cards/b/BastionEnforcer.java index 4890d9de2cc..4f215fb2dd4 100644 --- a/Mage.Sets/src/mage/cards/b/BastionEnforcer.java +++ b/Mage.Sets/src/mage/cards/b/BastionEnforcer.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/b/BastionInventor.java b/Mage.Sets/src/mage/cards/b/BastionInventor.java index 0bca7c1cebc..84dc0f51617 100644 --- a/Mage.Sets/src/mage/cards/b/BastionInventor.java +++ b/Mage.Sets/src/mage/cards/b/BastionInventor.java @@ -27,14 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.ImproviseAbility; import mage.abilities.keyword.HexproofAbility; +import mage.abilities.keyword.ImproviseAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/b/BastionMastodon.java b/Mage.Sets/src/mage/cards/b/BastionMastodon.java index e7b06d259e0..c224b71b2d1 100644 --- a/Mage.Sets/src/mage/cards/b/BastionMastodon.java +++ b/Mage.Sets/src/mage/cards/b/BastionMastodon.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/b/BastionProtector.java b/Mage.Sets/src/mage/cards/b/BastionProtector.java index 1ed1cc6724f..0a03f9d698c 100644 --- a/Mage.Sets/src/mage/cards/b/BastionProtector.java +++ b/Mage.Sets/src/mage/cards/b/BastionProtector.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.CommanderPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BatheInBacta.java b/Mage.Sets/src/mage/cards/b/BatheInBacta.java index 794aaca6446..2a5fac063ec 100644 --- a/Mage.Sets/src/mage/cards/b/BatheInBacta.java +++ b/Mage.Sets/src/mage/cards/b/BatheInBacta.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.HateCondition; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.watchers.common.LifeLossOtherFromCombatWatcher; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/b/BatheInDragonfire.java b/Mage.Sets/src/mage/cards/b/BatheInDragonfire.java index 092fdd474c1..bc5cd7e3d55 100644 --- a/Mage.Sets/src/mage/cards/b/BatheInDragonfire.java +++ b/Mage.Sets/src/mage/cards/b/BatheInDragonfire.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BatheInLight.java b/Mage.Sets/src/mage/cards/b/BatheInLight.java index ea9c1bf2530..1cd8d649bca 100644 --- a/Mage.Sets/src/mage/cards/b/BatheInLight.java +++ b/Mage.Sets/src/mage/cards/b/BatheInLight.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; @@ -47,6 +46,8 @@ import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BatonOfCourage.java b/Mage.Sets/src/mage/cards/b/BatonOfCourage.java index 66823f779ed..85adcbe6ab4 100644 --- a/Mage.Sets/src/mage/cards/b/BatonOfCourage.java +++ b/Mage.Sets/src/mage/cards/b/BatonOfCourage.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; @@ -38,11 +35,14 @@ import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.SunburstAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BatteredGolem.java b/Mage.Sets/src/mage/cards/b/BatteredGolem.java index f247d67fe8e..1d6d29da962 100644 --- a/Mage.Sets/src/mage/cards/b/BatteredGolem.java +++ b/Mage.Sets/src/mage/cards/b/BatteredGolem.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterArtifactPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/Batterhorn.java b/Mage.Sets/src/mage/cards/b/Batterhorn.java index 095542e1bcc..5146d4e07ff 100644 --- a/Mage.Sets/src/mage/cards/b/Batterhorn.java +++ b/Mage.Sets/src/mage/cards/b/Batterhorn.java @@ -28,16 +28,17 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BatteringCraghorn.java b/Mage.Sets/src/mage/cards/b/BatteringCraghorn.java index 36fcd931da6..58960343e8a 100644 --- a/Mage.Sets/src/mage/cards/b/BatteringCraghorn.java +++ b/Mage.Sets/src/mage/cards/b/BatteringCraghorn.java @@ -27,15 +27,16 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.MorphAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BatteringKrasis.java b/Mage.Sets/src/mage/cards/b/BatteringKrasis.java index 6a171b826f8..0aa9adbfbbc 100644 --- a/Mage.Sets/src/mage/cards/b/BatteringKrasis.java +++ b/Mage.Sets/src/mage/cards/b/BatteringKrasis.java @@ -28,13 +28,14 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.EvolveAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BatteringSliver.java b/Mage.Sets/src/mage/cards/b/BatteringSliver.java index d9d03160841..d60a5a1a9de 100644 --- a/Mage.Sets/src/mage/cards/b/BatteringSliver.java +++ b/Mage.Sets/src/mage/cards/b/BatteringSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/b/BatteringWurm.java b/Mage.Sets/src/mage/cards/b/BatteringWurm.java index 78ced09d4cf..fe3682939a2 100644 --- a/Mage.Sets/src/mage/cards/b/BatteringWurm.java +++ b/Mage.Sets/src/mage/cards/b/BatteringWurm.java @@ -27,15 +27,16 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesWithLessPowerEffect; import mage.abilities.keyword.BloodthirstAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/Batterskull.java b/Mage.Sets/src/mage/cards/b/Batterskull.java index 1ae370c9177..9e3d65ed56b 100644 --- a/Mage.Sets/src/mage/cards/b/Batterskull.java +++ b/Mage.Sets/src/mage/cards/b/Batterskull.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -43,6 +40,12 @@ import mage.abilities.keyword.LivingWeaponAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BattleAtTheBridge.java b/Mage.Sets/src/mage/cards/b/BattleAtTheBridge.java index 6fa4797ebc5..02172cb411b 100644 --- a/Mage.Sets/src/mage/cards/b/BattleAtTheBridge.java +++ b/Mage.Sets/src/mage/cards/b/BattleAtTheBridge.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.dynamicvalue.common.SignInversionDynamicValue; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BattleBrawler.java b/Mage.Sets/src/mage/cards/b/BattleBrawler.java index 92cc1e14cb2..0110c7423db 100644 --- a/Mage.Sets/src/mage/cards/b/BattleBrawler.java +++ b/Mage.Sets/src/mage/cards/b/BattleBrawler.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -46,6 +45,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BattleFrenzy.java b/Mage.Sets/src/mage/cards/b/BattleFrenzy.java index 026c640fc7f..385b0263656 100644 --- a/Mage.Sets/src/mage/cards/b/BattleFrenzy.java +++ b/Mage.Sets/src/mage/cards/b/BattleFrenzy.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BattleHurda.java b/Mage.Sets/src/mage/cards/b/BattleHurda.java index e7755d4bfa7..f7373d7edff 100644 --- a/Mage.Sets/src/mage/cards/b/BattleHurda.java +++ b/Mage.Sets/src/mage/cards/b/BattleHurda.java @@ -28,12 +28,13 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BattleHymn.java b/Mage.Sets/src/mage/cards/b/BattleHymn.java index aeb1241432d..cbf93dcbd4e 100644 --- a/Mage.Sets/src/mage/cards/b/BattleHymn.java +++ b/Mage.Sets/src/mage/cards/b/BattleHymn.java @@ -27,15 +27,16 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.Mana; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.DynamicManaEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BattleMadRonin.java b/Mage.Sets/src/mage/cards/b/BattleMadRonin.java index d8ef3af3454..711a2d14c9a 100644 --- a/Mage.Sets/src/mage/cards/b/BattleMadRonin.java +++ b/Mage.Sets/src/mage/cards/b/BattleMadRonin.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.abilities.keyword.BushidoAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author loki diff --git a/Mage.Sets/src/mage/cards/b/BattleMastery.java b/Mage.Sets/src/mage/cards/b/BattleMastery.java index ef3e04c016b..2ec1d6e2b8f 100644 --- a/Mage.Sets/src/mage/cards/b/BattleMastery.java +++ b/Mage.Sets/src/mage/cards/b/BattleMastery.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -36,6 +35,10 @@ import mage.abilities.keyword.DoubleStrikeAbility; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/b/BattleOfWits.java b/Mage.Sets/src/mage/cards/b/BattleOfWits.java index ee0098738b8..3f165a631a0 100644 --- a/Mage.Sets/src/mage/cards/b/BattleOfWits.java +++ b/Mage.Sets/src/mage/cards/b/BattleOfWits.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TargetController; import mage.abilities.Ability; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -38,9 +35,13 @@ import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.WinGameSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BattleRampart.java b/Mage.Sets/src/mage/cards/b/BattleRampart.java index 67bf244bd9f..b133a7c8241 100644 --- a/Mage.Sets/src/mage/cards/b/BattleRampart.java +++ b/Mage.Sets/src/mage/cards/b/BattleRampart.java @@ -27,10 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,8 +35,13 @@ import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BattleRattleShaman.java b/Mage.Sets/src/mage/cards/b/BattleRattleShaman.java index 60df9b6bc43..c4194ee836c 100644 --- a/Mage.Sets/src/mage/cards/b/BattleRattleShaman.java +++ b/Mage.Sets/src/mage/cards/b/BattleRattleShaman.java @@ -27,17 +27,20 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BattleScreech.java b/Mage.Sets/src/mage/cards/b/BattleScreech.java index 08de2297ae6..f84cc5f8952 100644 --- a/Mage.Sets/src/mage/cards/b/BattleScreech.java +++ b/Mage.Sets/src/mage/cards/b/BattleScreech.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.costs.common.TapTargetCost; import mage.abilities.effects.common.CreateTokenEffect; @@ -43,6 +42,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.game.permanent.token.BirdToken; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BattleSliver.java b/Mage.Sets/src/mage/cards/b/BattleSliver.java index 4d7556ccb18..ef0cf7c3259 100644 --- a/Mage.Sets/src/mage/cards/b/BattleSliver.java +++ b/Mage.Sets/src/mage/cards/b/BattleSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -38,6 +37,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BattleSquadron.java b/Mage.Sets/src/mage/cards/b/BattleSquadron.java index 0545d70c89e..e0a6236e08e 100644 --- a/Mage.Sets/src/mage/cards/b/BattleSquadron.java +++ b/Mage.Sets/src/mage/cards/b/BattleSquadron.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BattleStrain.java b/Mage.Sets/src/mage/cards/b/BattleStrain.java index a12f8e970ed..b4599d1deda 100644 --- a/Mage.Sets/src/mage/cards/b/BattleStrain.java +++ b/Mage.Sets/src/mage/cards/b/BattleStrain.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; @@ -40,6 +39,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BattleTactics.java b/Mage.Sets/src/mage/cards/b/BattleTactics.java index a8006e72388..e24cf34225f 100644 --- a/Mage.Sets/src/mage/cards/b/BattleTactics.java +++ b/Mage.Sets/src/mage/cards/b/BattleTactics.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/b/BattlefieldForge.java b/Mage.Sets/src/mage/cards/b/BattlefieldForge.java index 3d090aba3a8..facd7dd44ff 100644 --- a/Mage.Sets/src/mage/cards/b/BattlefieldForge.java +++ b/Mage.Sets/src/mage/cards/b/BattlefieldForge.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BattlefieldPercher.java b/Mage.Sets/src/mage/cards/b/BattlefieldPercher.java index c3dd5e4b60f..c8367d83472 100644 --- a/Mage.Sets/src/mage/cards/b/BattlefieldPercher.java +++ b/Mage.Sets/src/mage/cards/b/BattlefieldPercher.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CanBlockOnlyFlyingAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BattlefieldScavenger.java b/Mage.Sets/src/mage/cards/b/BattlefieldScavenger.java new file mode 100644 index 00000000000..8507a57279e --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BattlefieldScavenger.java @@ -0,0 +1,68 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.ExertCreatureControllerTriggeredAbility; +import mage.abilities.effects.common.RummageEffect; +import mage.abilities.keyword.ExertAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author anonymous + */ +public class BattlefieldScavenger extends CardImpl { + + public BattlefieldScavenger(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); + + this.subtype.add("Jackal"); + this.subtype.add("Rogue"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // You may exert Battlefield Scavenger as it attacks. + this.addAbility(new ExertAbility(null, false)); + + // Whenever you exert a creature, you may discard a card. If you do, draw a card. + this.addAbility(new ExertCreatureControllerTriggeredAbility(new RummageEffect())); + } + + public BattlefieldScavenger(final BattlefieldScavenger card) { + super(card); + } + + @Override + public BattlefieldScavenger copy() { + return new BattlefieldScavenger(this); + } +} diff --git a/Mage.Sets/src/mage/cards/b/BattlefieldScrounger.java b/Mage.Sets/src/mage/cards/b/BattlefieldScrounger.java index 3b018f1a620..0d0ba94502f 100644 --- a/Mage.Sets/src/mage/cards/b/BattlefieldScrounger.java +++ b/Mage.Sets/src/mage/cards/b/BattlefieldScrounger.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; @@ -38,16 +37,14 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AbilityWord; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BattlefieldThaumaturge.java b/Mage.Sets/src/mage/cards/b/BattlefieldThaumaturge.java index d2d8c800404..a635efd686f 100644 --- a/Mage.Sets/src/mage/cards/b/BattlefieldThaumaturge.java +++ b/Mage.Sets/src/mage/cards/b/BattlefieldThaumaturge.java @@ -27,24 +27,17 @@ */ package mage.cards.b; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.abilities.keyword.HeroicAbility; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -54,6 +47,10 @@ import mage.game.stack.Spell; import mage.target.Target; import mage.util.CardUtil; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BattleflightEagle.java b/Mage.Sets/src/mage/cards/b/BattleflightEagle.java index 52e977ba6c5..ceee1f9eaef 100644 --- a/Mage.Sets/src/mage/cards/b/BattleflightEagle.java +++ b/Mage.Sets/src/mage/cards/b/BattleflightEagle.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,9 +35,12 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BattlefrontKrushok.java b/Mage.Sets/src/mage/cards/b/BattlefrontKrushok.java index 8248bc90d0c..2eddaea783b 100644 --- a/Mage.Sets/src/mage/cards/b/BattlefrontKrushok.java +++ b/Mage.Sets/src/mage/cards/b/BattlefrontKrushok.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantBeBlockedByMoreThanOneAllEffect; @@ -40,6 +39,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.CounterPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BattlegateMimic.java b/Mage.Sets/src/mage/cards/b/BattlegateMimic.java index 5c44a235135..293a0eaa900 100644 --- a/Mage.Sets/src/mage/cards/b/BattlegateMimic.java +++ b/Mage.Sets/src/mage/cards/b/BattlegateMimic.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -43,6 +42,8 @@ import mage.constants.SubLayer; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BattlegraceAngel.java b/Mage.Sets/src/mage/cards/b/BattlegraceAngel.java index 01169cd4bfe..fe9616f5bdc 100644 --- a/Mage.Sets/src/mage/cards/b/BattlegraceAngel.java +++ b/Mage.Sets/src/mage/cards/b/BattlegraceAngel.java @@ -28,7 +28,6 @@ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -46,6 +45,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BattlegroundGeist.java b/Mage.Sets/src/mage/cards/b/BattlegroundGeist.java index eac4a719384..5cb4cd49725 100644 --- a/Mage.Sets/src/mage/cards/b/BattlegroundGeist.java +++ b/Mage.Sets/src/mage/cards/b/BattlegroundGeist.java @@ -27,13 +27,13 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/b/Battlegrowth.java b/Mage.Sets/src/mage/cards/b/Battlegrowth.java index c0a3ffca7cf..e4dd7da0358 100644 --- a/Mage.Sets/src/mage/cards/b/Battlegrowth.java +++ b/Mage.Sets/src/mage/cards/b/Battlegrowth.java @@ -27,14 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BattletideAlchemist.java b/Mage.Sets/src/mage/cards/b/BattletideAlchemist.java index 2f728555792..133671858e4 100644 --- a/Mage.Sets/src/mage/cards/b/BattletideAlchemist.java +++ b/Mage.Sets/src/mage/cards/b/BattletideAlchemist.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BattlewandOak.java b/Mage.Sets/src/mage/cards/b/BattlewandOak.java index 0ab0860d9d4..c64455a2a2c 100644 --- a/Mage.Sets/src/mage/cards/b/BattlewandOak.java +++ b/Mage.Sets/src/mage/cards/b/BattlewandOak.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -40,6 +39,8 @@ import mage.filter.FilterPermanent; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BattlewiseAven.java b/Mage.Sets/src/mage/cards/b/BattlewiseAven.java index 13ed27ee006..b1da80a32f9 100644 --- a/Mage.Sets/src/mage/cards/b/BattlewiseAven.java +++ b/Mage.Sets/src/mage/cards/b/BattlewiseAven.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BattlewiseHoplite.java b/Mage.Sets/src/mage/cards/b/BattlewiseHoplite.java index acec52373ef..5da81a92310 100644 --- a/Mage.Sets/src/mage/cards/b/BattlewiseHoplite.java +++ b/Mage.Sets/src/mage/cards/b/BattlewiseHoplite.java @@ -27,17 +27,18 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.keyword.HeroicAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BattlewiseValor.java b/Mage.Sets/src/mage/cards/b/BattlewiseValor.java index 653134f8c11..dd86dc3a8f0 100644 --- a/Mage.Sets/src/mage/cards/b/BattlewiseValor.java +++ b/Mage.Sets/src/mage/cards/b/BattlewiseValor.java @@ -27,15 +27,16 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BatwingBrume.java b/Mage.Sets/src/mage/cards/b/BatwingBrume.java index 98b0ed45eea..0c16d9a364c 100644 --- a/Mage.Sets/src/mage/cards/b/BatwingBrume.java +++ b/Mage.Sets/src/mage/cards/b/BatwingBrume.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.common.ManaWasSpentCondition; @@ -48,6 +47,8 @@ import mage.game.Game; import mage.players.Player; import mage.watchers.common.ManaSpentToCastWatcher; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BayFalcon.java b/Mage.Sets/src/mage/cards/b/BayFalcon.java index cb1db53aea9..f5bea54d4bd 100644 --- a/Mage.Sets/src/mage/cards/b/BayFalcon.java +++ b/Mage.Sets/src/mage/cards/b/BayFalcon.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/Bayou.java b/Mage.Sets/src/mage/cards/b/Bayou.java index a6b1974a202..e9267f4f3c1 100644 --- a/Mage.Sets/src/mage/cards/b/Bayou.java +++ b/Mage.Sets/src/mage/cards/b/Bayou.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BayouDragonfly.java b/Mage.Sets/src/mage/cards/b/BayouDragonfly.java index 85c5b9a7522..cc9c063570c 100644 --- a/Mage.Sets/src/mage/cards/b/BayouDragonfly.java +++ b/Mage.Sets/src/mage/cards/b/BayouDragonfly.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.SwampwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BazaarKrovod.java b/Mage.Sets/src/mage/cards/b/BazaarKrovod.java index 301f3741c0a..0e20424a68e 100644 --- a/Mage.Sets/src/mage/cards/b/BazaarKrovod.java +++ b/Mage.Sets/src/mage/cards/b/BazaarKrovod.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -37,6 +34,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.filter.common.FilterAttackingCreature; @@ -45,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetAttackingCreature; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BazaarOfBaghdad.java b/Mage.Sets/src/mage/cards/b/BazaarOfBaghdad.java index 89ab0e58290..fce9d53223c 100644 --- a/Mage.Sets/src/mage/cards/b/BazaarOfBaghdad.java +++ b/Mage.Sets/src/mage/cards/b/BazaarOfBaghdad.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DrawDiscardControllerEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BazaarTrader.java b/Mage.Sets/src/mage/cards/b/BazaarTrader.java index 0cb698d25c5..2372f67003f 100644 --- a/Mage.Sets/src/mage/cards/b/BazaarTrader.java +++ b/Mage.Sets/src/mage/cards/b/BazaarTrader.java @@ -27,13 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; @@ -42,6 +35,7 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -51,6 +45,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BeaconBehemoth.java b/Mage.Sets/src/mage/cards/b/BeaconBehemoth.java index 05643690433..10a87add3e8 100644 --- a/Mage.Sets/src/mage/cards/b/BeaconBehemoth.java +++ b/Mage.Sets/src/mage/cards/b/BeaconBehemoth.java @@ -28,23 +28,24 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki @@ -54,7 +55,7 @@ public class BeaconBehemoth extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); static { - filter.add(new PowerPredicate(ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public BeaconBehemoth (UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/b/BeaconHawk.java b/Mage.Sets/src/mage/cards/b/BeaconHawk.java index d6db2ae7d45..3b7860c0196 100644 --- a/Mage.Sets/src/mage/cards/b/BeaconHawk.java +++ b/Mage.Sets/src/mage/cards/b/BeaconHawk.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -40,8 +37,14 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BeaconOfCreation.java b/Mage.Sets/src/mage/cards/b/BeaconOfCreation.java index a69f6b25051..8b990c11b15 100644 --- a/Mage.Sets/src/mage/cards/b/BeaconOfCreation.java +++ b/Mage.Sets/src/mage/cards/b/BeaconOfCreation.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.ShuffleSpellEffect; @@ -38,6 +37,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.InsectToken; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BeaconOfDestruction.java b/Mage.Sets/src/mage/cards/b/BeaconOfDestruction.java index 9181c51d463..d8776818181 100644 --- a/Mage.Sets/src/mage/cards/b/BeaconOfDestruction.java +++ b/Mage.Sets/src/mage/cards/b/BeaconOfDestruction.java @@ -27,14 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.ShuffleSpellEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BeaconOfImmortality.java b/Mage.Sets/src/mage/cards/b/BeaconOfImmortality.java index aa5af199c3c..b7e956249c3 100644 --- a/Mage.Sets/src/mage/cards/b/BeaconOfImmortality.java +++ b/Mage.Sets/src/mage/cards/b/BeaconOfImmortality.java @@ -27,18 +27,19 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ShuffleSpellEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BeaconOfTomorrows.java b/Mage.Sets/src/mage/cards/b/BeaconOfTomorrows.java index 1a0f93cb058..7b1bb1c825e 100644 --- a/Mage.Sets/src/mage/cards/b/BeaconOfTomorrows.java +++ b/Mage.Sets/src/mage/cards/b/BeaconOfTomorrows.java @@ -27,18 +27,19 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ShuffleSpellEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.game.Game; import mage.game.turn.TurnMod; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BeaconOfUnrest.java b/Mage.Sets/src/mage/cards/b/BeaconOfUnrest.java index bb76c611b59..8effaa852ef 100644 --- a/Mage.Sets/src/mage/cards/b/BeaconOfUnrest.java +++ b/Mage.Sets/src/mage/cards/b/BeaconOfUnrest.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.effects.common.ShuffleSpellEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.Target; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BearCub.java b/Mage.Sets/src/mage/cards/b/BearCub.java index b8a58e5feff..3ab0152940e 100644 --- a/Mage.Sets/src/mage/cards/b/BearCub.java +++ b/Mage.Sets/src/mage/cards/b/BearCub.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BearUmbra.java b/Mage.Sets/src/mage/cards/b/BearUmbra.java index 075d675f288..6b6eedcbd6c 100644 --- a/Mage.Sets/src/mage/cards/b/BearUmbra.java +++ b/Mage.Sets/src/mage/cards/b/BearUmbra.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,9 +38,12 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TotemArmorAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BearerOfOverwhelmingTruths.java b/Mage.Sets/src/mage/cards/b/BearerOfOverwhelmingTruths.java index 4d7a58f0221..7007f0fa7a2 100644 --- a/Mage.Sets/src/mage/cards/b/BearerOfOverwhelmingTruths.java +++ b/Mage.Sets/src/mage/cards/b/BearerOfOverwhelmingTruths.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.keyword.InvestigateEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BearerOfSilence.java b/Mage.Sets/src/mage/cards/b/BearerOfSilence.java index 2b7bbd99d58..c55e8f3425c 100644 --- a/Mage.Sets/src/mage/cards/b/BearerOfSilence.java +++ b/Mage.Sets/src/mage/cards/b/BearerOfSilence.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CantBlockAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BearerOfTheHeavens.java b/Mage.Sets/src/mage/cards/b/BearerOfTheHeavens.java index 48b290a3bde..20e50a18ebb 100644 --- a/Mage.Sets/src/mage/cards/b/BearerOfTheHeavens.java +++ b/Mage.Sets/src/mage/cards/b/BearerOfTheHeavens.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.DiesTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.FilterPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BearsCompanion.java b/Mage.Sets/src/mage/cards/b/BearsCompanion.java index e93fd7d5bbc..1ce849891d1 100644 --- a/Mage.Sets/src/mage/cards/b/BearsCompanion.java +++ b/Mage.Sets/src/mage/cards/b/BearsCompanion.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Bearscape.java b/Mage.Sets/src/mage/cards/b/Bearscape.java index 1c32c4c27fa..22a4ceb7ed0 100644 --- a/Mage.Sets/src/mage/cards/b/Bearscape.java +++ b/Mage.Sets/src/mage/cards/b/Bearscape.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.ExileFromGraveCost; @@ -41,6 +40,8 @@ import mage.filter.FilterCard; import mage.game.permanent.token.BearToken; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BeastAttack.java b/Mage.Sets/src/mage/cards/b/BeastAttack.java index 953e8d526f2..7429bc2650b 100644 --- a/Mage.Sets/src/mage/cards/b/BeastAttack.java +++ b/Mage.Sets/src/mage/cards/b/BeastAttack.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlashbackAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.TimingRule; import mage.game.permanent.token.BeastToken2; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/b/BeastHunt.java b/Mage.Sets/src/mage/cards/b/BeastHunt.java index f3d8760c883..e97ec0423cf 100644 --- a/Mage.Sets/src/mage/cards/b/BeastHunt.java +++ b/Mage.Sets/src/mage/cards/b/BeastHunt.java @@ -27,14 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.effects.common.RevealLibraryPutIntoHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BeastOfBurden.java b/Mage.Sets/src/mage/cards/b/BeastOfBurden.java index 2f280b1d53d..f6044d5abcb 100644 --- a/Mage.Sets/src/mage/cards/b/BeastOfBurden.java +++ b/Mage.Sets/src/mage/cards/b/BeastOfBurden.java @@ -27,19 +27,19 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BeastWithin.java b/Mage.Sets/src/mage/cards/b/BeastWithin.java index 09e3901cefc..66f80adcbbc 100644 --- a/Mage.Sets/src/mage/cards/b/BeastWithin.java +++ b/Mage.Sets/src/mage/cards/b/BeastWithin.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -40,6 +39,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.BeastToken; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author North, Loki diff --git a/Mage.Sets/src/mage/cards/b/BeastcallerSavant.java b/Mage.Sets/src/mage/cards/b/BeastcallerSavant.java index 8b44a2e5ef1..e9fd60e6981 100644 --- a/Mage.Sets/src/mage/cards/b/BeastcallerSavant.java +++ b/Mage.Sets/src/mage/cards/b/BeastcallerSavant.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.abilities.mana.ConditionalAnyColorManaAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterCreatureSpell; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BeastmasterAscension.java b/Mage.Sets/src/mage/cards/b/BeastmasterAscension.java index b52b1671a93..cfb5a20b6e4 100644 --- a/Mage.Sets/src/mage/cards/b/BeastmasterAscension.java +++ b/Mage.Sets/src/mage/cards/b/BeastmasterAscension.java @@ -28,9 +28,6 @@ package mage.cards.b; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.AttacksCreatureYouControlTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -38,6 +35,9 @@ import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; diff --git a/Mage.Sets/src/mage/cards/b/BeastmastersMagemark.java b/Mage.Sets/src/mage/cards/b/BeastmastersMagemark.java index 73c3c08523b..2d95a76d9fb 100644 --- a/Mage.Sets/src/mage/cards/b/BeastmastersMagemark.java +++ b/Mage.Sets/src/mage/cards/b/BeastmastersMagemark.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BecomesBlockedAllTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,17 +38,15 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.EnchantedPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Markedagain diff --git a/Mage.Sets/src/mage/cards/b/BeastsOfBogardan.java b/Mage.Sets/src/mage/cards/b/BeastsOfBogardan.java index a0325fa9aff..96ba6f287ae 100644 --- a/Mage.Sets/src/mage/cards/b/BeastsOfBogardan.java +++ b/Mage.Sets/src/mage/cards/b/BeastsOfBogardan.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.TokenPredicate; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/b/BeckCall.java b/Mage.Sets/src/mage/cards/b/BeckCall.java index e25ff383791..b0e823795c4 100644 --- a/Mage.Sets/src/mage/cards/b/BeckCall.java +++ b/Mage.Sets/src/mage/cards/b/BeckCall.java @@ -36,6 +36,7 @@ import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SpellAbilityType; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.events.GameEvent; @@ -46,7 +47,7 @@ import mage.game.permanent.token.BirdToken; public class BeckCall extends SplitCard { public BeckCall(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{G}{U}","{4}{W}{U}",true); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{G}{U}", "{4}{W}{U}", SpellAbilityType.SPLIT_FUSED); // Beck // Whenever a creature enters the battlefield this turn, you may draw a card. diff --git a/Mage.Sets/src/mage/cards/b/BeckonApparition.java b/Mage.Sets/src/mage/cards/b/BeckonApparition.java index c37b7ab78bb..fbb7975f9de 100644 --- a/Mage.Sets/src/mage/cards/b/BeckonApparition.java +++ b/Mage.Sets/src/mage/cards/b/BeckonApparition.java @@ -27,18 +27,18 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.Token; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BecomeImmense.java b/Mage.Sets/src/mage/cards/b/BecomeImmense.java index 3f60e9f9628..1a4f0be8485 100644 --- a/Mage.Sets/src/mage/cards/b/BecomeImmense.java +++ b/Mage.Sets/src/mage/cards/b/BecomeImmense.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.DelveAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Bedlam.java b/Mage.Sets/src/mage/cards/b/Bedlam.java index 2d7e9025c88..40a4cff4457 100644 --- a/Mage.Sets/src/mage/cards/b/Bedlam.java +++ b/Mage.Sets/src/mage/cards/b/Bedlam.java @@ -28,19 +28,19 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.RestrictionEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/b/BedlamReveler.java b/Mage.Sets/src/mage/cards/b/BedlamReveler.java index da88611a9be..b0a2370d0f6 100644 --- a/Mage.Sets/src/mage/cards/b/BedlamReveler.java +++ b/Mage.Sets/src/mage/cards/b/BedlamReveler.java @@ -30,25 +30,17 @@ package mage.cards.b; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.SpellAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.effects.common.cost.CostModificationEffectImpl; +import mage.abilities.effects.common.cost.SourceCostReductionForEachCardInGraveyardEffect; import mage.abilities.effects.common.discard.DiscardHandControllerEffect; import mage.abilities.keyword.ProwessAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterInstantOrSorceryCard; -import mage.game.Game; -import mage.players.Player; -import mage.util.CardUtil; /** * @@ -57,14 +49,14 @@ import mage.util.CardUtil; public class BedlamReveler extends CardImpl { public BedlamReveler(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{R}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{6}{R}{R}"); this.subtype.add("Devil"); this.subtype.add("Horror"); this.power = new MageInt(3); this.toughness = new MageInt(4); // Bedlam Reveler costs {1} less to cast for each instant or sorcery card in your graveyard. - Ability ability = new SimpleStaticAbility(Zone.ALL, new BedlamRevelerCostReductionEffect()); + Ability ability = new SimpleStaticAbility(Zone.ALL, new SourceCostReductionForEachCardInGraveyardEffect(new FilterInstantOrSorceryCard())); ability.setRuleAtTheTop(true); this.addAbility(ability); @@ -88,39 +80,3 @@ public class BedlamReveler extends CardImpl { return new BedlamReveler(this); } } - -class BedlamRevelerCostReductionEffect extends CostModificationEffectImpl { - - BedlamRevelerCostReductionEffect() { - super(Duration.WhileOnStack, Outcome.Benefit, CostModificationType.REDUCE_COST); - staticText = "{this} costs {1} less to cast for each instant or sorcery card in your graveyard"; - } - - BedlamRevelerCostReductionEffect(BedlamRevelerCostReductionEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source, Ability abilityToModify) { - Player player = game.getPlayer(source.getControllerId()); - if (player != null) { - int reductionAmount = player.getGraveyard().count(new FilterInstantOrSorceryCard(), game); - CardUtil.reduceCost(abilityToModify, reductionAmount); - return true; - } - return false; - } - - @Override - public boolean applies(Ability abilityToModify, Ability source, Game game) { - if ((abilityToModify instanceof SpellAbility) && abilityToModify.getSourceId().equals(source.getSourceId())) { - return game.getCard(abilityToModify.getSourceId()) != null; - } - return false; - } - - @Override - public BedlamRevelerCostReductionEffect copy() { - return new BedlamRevelerCostReductionEffect(this); - } -} diff --git a/Mage.Sets/src/mage/cards/b/BeeSting.java b/Mage.Sets/src/mage/cards/b/BeeSting.java index 2fecd72824a..e86766d30d5 100644 --- a/Mage.Sets/src/mage/cards/b/BeeSting.java +++ b/Mage.Sets/src/mage/cards/b/BeeSting.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/b/BeetlebackChief.java b/Mage.Sets/src/mage/cards/b/BeetlebackChief.java index a23b2c500c9..84955827147 100644 --- a/Mage.Sets/src/mage/cards/b/BeetlebackChief.java +++ b/Mage.Sets/src/mage/cards/b/BeetlebackChief.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.GoblinToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BeetleformMage.java b/Mage.Sets/src/mage/cards/b/BeetleformMage.java index 4181eb3c5ee..d717db99303 100644 --- a/Mage.Sets/src/mage/cards/b/BeetleformMage.java +++ b/Mage.Sets/src/mage/cards/b/BeetleformMage.java @@ -28,10 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; @@ -41,6 +37,11 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/Befoul.java b/Mage.Sets/src/mage/cards/b/Befoul.java index f493609f866..e3dfd748a71 100644 --- a/Mage.Sets/src/mage/cards/b/Befoul.java +++ b/Mage.Sets/src/mage/cards/b/Befoul.java @@ -29,19 +29,19 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/b/BeguilerOfWills.java b/Mage.Sets/src/mage/cards/b/BeguilerOfWills.java index da8fcb50f19..b10b115a549 100644 --- a/Mage.Sets/src/mage/cards/b/BeguilerOfWills.java +++ b/Mage.Sets/src/mage/cards/b/BeguilerOfWills.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,6 +34,9 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; diff --git a/Mage.Sets/src/mage/cards/b/BehemothSledge.java b/Mage.Sets/src/mage/cards/b/BehemothSledge.java index 0d18d9cdb3e..19314c0318c 100644 --- a/Mage.Sets/src/mage/cards/b/BehemothSledge.java +++ b/Mage.Sets/src/mage/cards/b/BehemothSledge.java @@ -28,11 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.BoostEquippedEffect; @@ -43,6 +38,11 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** diff --git a/Mage.Sets/src/mage/cards/b/BehemothsHerald.java b/Mage.Sets/src/mage/cards/b/BehemothsHerald.java index 9c398ceadd5..2b6f3d92fcb 100644 --- a/Mage.Sets/src/mage/cards/b/BehemothsHerald.java +++ b/Mage.Sets/src/mage/cards/b/BehemothsHerald.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -40,6 +37,8 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.NamePredicate; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BehindTheScenes.java b/Mage.Sets/src/mage/cards/b/BehindTheScenes.java index 857e16f42cd..7fde57f6345 100644 --- a/Mage.Sets/src/mage/cards/b/BehindTheScenes.java +++ b/Mage.Sets/src/mage/cards/b/BehindTheScenes.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BeholdTheBeyond.java b/Mage.Sets/src/mage/cards/b/BeholdTheBeyond.java index b688c86744a..dc95b5898fc 100644 --- a/Mage.Sets/src/mage/cards/b/BeholdTheBeyond.java +++ b/Mage.Sets/src/mage/cards/b/BeholdTheBeyond.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.discard.DiscardHandControllerEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BelbesPercher.java b/Mage.Sets/src/mage/cards/b/BelbesPercher.java index 27a8039fc87..925ab33d072 100644 --- a/Mage.Sets/src/mage/cards/b/BelbesPercher.java +++ b/Mage.Sets/src/mage/cards/b/BelbesPercher.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CanBlockOnlyFlyingAbility; import mage.abilities.keyword.FlyingAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BelbesPortal.java b/Mage.Sets/src/mage/cards/b/BelbesPortal.java index ee9ea16cb34..648ddf5d379 100644 --- a/Mage.Sets/src/mage/cards/b/BelbesPortal.java +++ b/Mage.Sets/src/mage/cards/b/BelbesPortal.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +42,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ChosenSubtypePredicate; +import java.util.UUID; + /** * * @author andyfries diff --git a/Mage.Sets/src/mage/cards/b/BelfrySpirit.java b/Mage.Sets/src/mage/cards/b/BelfrySpirit.java index 6c8298ca67a..e19ca86b1e2 100644 --- a/Mage.Sets/src/mage/cards/b/BelfrySpirit.java +++ b/Mage.Sets/src/mage/cards/b/BelfrySpirit.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.CreateTokenEffect; @@ -36,8 +34,11 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HauntAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.BatToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BelligerentHatchling.java b/Mage.Sets/src/mage/cards/b/BelligerentHatchling.java index df2f1deec40..194e13a09d5 100644 --- a/Mage.Sets/src/mage/cards/b/BelligerentHatchling.java +++ b/Mage.Sets/src/mage/cards/b/BelligerentHatchling.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.EntersBattlefieldAbility; @@ -42,6 +41,8 @@ import mage.counters.CounterType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BelligerentSliver.java b/Mage.Sets/src/mage/cards/b/BelligerentSliver.java index ce485225a8f..501b4695761 100644 --- a/Mage.Sets/src/mage/cards/b/BelligerentSliver.java +++ b/Mage.Sets/src/mage/cards/b/BelligerentSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -43,6 +42,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/b/BelligerentWhiptail.java b/Mage.Sets/src/mage/cards/b/BelligerentWhiptail.java index 5ad18df4c2e..c3d3614a34f 100644 --- a/Mage.Sets/src/mage/cards/b/BelligerentWhiptail.java +++ b/Mage.Sets/src/mage/cards/b/BelligerentWhiptail.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LandfallAbility; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BellowingFiend.java b/Mage.Sets/src/mage/cards/b/BellowingFiend.java index 2030cdb81ec..cd180da0eb6 100644 --- a/Mage.Sets/src/mage/cards/b/BellowingFiend.java +++ b/Mage.Sets/src/mage/cards/b/BellowingFiend.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToACreatureTriggeredAbility; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BellowingSaddlebrute.java b/Mage.Sets/src/mage/cards/b/BellowingSaddlebrute.java index 1fdb503a408..d9413688b52 100644 --- a/Mage.Sets/src/mage/cards/b/BellowingSaddlebrute.java +++ b/Mage.Sets/src/mage/cards/b/BellowingSaddlebrute.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.InvertCondition; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BellowingTanglewurm.java b/Mage.Sets/src/mage/cards/b/BellowingTanglewurm.java index 14eae938df1..e628a58d415 100644 --- a/Mage.Sets/src/mage/cards/b/BellowingTanglewurm.java +++ b/Mage.Sets/src/mage/cards/b/BellowingTanglewurm.java @@ -28,10 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -39,10 +35,15 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.IntimidateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BellowsLizard.java b/Mage.Sets/src/mage/cards/b/BellowsLizard.java index 4119ecb5cda..743ab0db6d6 100644 --- a/Mage.Sets/src/mage/cards/b/BellowsLizard.java +++ b/Mage.Sets/src/mage/cards/b/BellowsLizard.java @@ -28,18 +28,18 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BelltollDragon.java b/Mage.Sets/src/mage/cards/b/BelltollDragon.java index 9a64e3dd9b6..eaddc06ec8a 100644 --- a/Mage.Sets/src/mage/cards/b/BelltollDragon.java +++ b/Mage.Sets/src/mage/cards/b/BelltollDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -43,6 +42,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BelltowerSphinx.java b/Mage.Sets/src/mage/cards/b/BelltowerSphinx.java index 36732754dbf..df6d6f44fbb 100644 --- a/Mage.Sets/src/mage/cards/b/BelltowerSphinx.java +++ b/Mage.Sets/src/mage/cards/b/BelltowerSphinx.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.dynamicvalue.common.StaticValue; @@ -43,6 +42,8 @@ import mage.game.events.GameEvent.EventType; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/b/BelovedChaplain.java b/Mage.Sets/src/mage/cards/b/BelovedChaplain.java index 4a694e619ac..4c2d1a8edd7 100644 --- a/Mage.Sets/src/mage/cards/b/BelovedChaplain.java +++ b/Mage.Sets/src/mage/cards/b/BelovedChaplain.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author cbt33, BetaSteward (Black Knight) diff --git a/Mage.Sets/src/mage/cards/b/BenBenAkkiHermit.java b/Mage.Sets/src/mage/cards/b/BenBenAkkiHermit.java index cfb33fcf7d8..58aefd6e530 100644 --- a/Mage.Sets/src/mage/cards/b/BenBenAkkiHermit.java +++ b/Mage.Sets/src/mage/cards/b/BenBenAkkiHermit.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +36,8 @@ import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.Predicates; @@ -46,6 +45,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetAttackingCreature; +import java.util.UUID; + /** * * @author Loki @@ -61,7 +62,7 @@ public class BenBenAkkiHermit extends CardImpl { public BenBenAkkiHermit (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/b/BenalishCavalry.java b/Mage.Sets/src/mage/cards/b/BenalishCavalry.java index 533188d2ca6..d684f31add4 100644 --- a/Mage.Sets/src/mage/cards/b/BenalishCavalry.java +++ b/Mage.Sets/src/mage/cards/b/BenalishCavalry.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlankingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BenalishCommander.java b/Mage.Sets/src/mage/cards/b/BenalishCommander.java index ec1dedcfa84..a0688618863 100644 --- a/Mage.Sets/src/mage/cards/b/BenalishCommander.java +++ b/Mage.Sets/src/mage/cards/b/BenalishCommander.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; @@ -49,6 +48,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.token.SoldierToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BenalishEmissary.java b/Mage.Sets/src/mage/cards/b/BenalishEmissary.java index b49a8650a92..178fa7378ff 100644 --- a/Mage.Sets/src/mage/cards/b/BenalishEmissary.java +++ b/Mage.Sets/src/mage/cards/b/BenalishEmissary.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BenalishHeralds.java b/Mage.Sets/src/mage/cards/b/BenalishHeralds.java index 3e96dbe32e6..7000c42375d 100644 --- a/Mage.Sets/src/mage/cards/b/BenalishHeralds.java +++ b/Mage.Sets/src/mage/cards/b/BenalishHeralds.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,8 +35,11 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BenalishKnight.java b/Mage.Sets/src/mage/cards/b/BenalishKnight.java index ddb74c0135f..f1f1a7d6fea 100644 --- a/Mage.Sets/src/mage/cards/b/BenalishKnight.java +++ b/Mage.Sets/src/mage/cards/b/BenalishKnight.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; -import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BenalishLancer.java b/Mage.Sets/src/mage/cards/b/BenalishLancer.java index d8fd25dd1bf..4da9ae74fa9 100644 --- a/Mage.Sets/src/mage/cards/b/BenalishLancer.java +++ b/Mage.Sets/src/mage/cards/b/BenalishLancer.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author FenrisulfrX diff --git a/Mage.Sets/src/mage/cards/b/BenalishMissionary.java b/Mage.Sets/src/mage/cards/b/BenalishMissionary.java index 8ff6c68b71c..477d66f57e7 100644 --- a/Mage.Sets/src/mage/cards/b/BenalishMissionary.java +++ b/Mage.Sets/src/mage/cards/b/BenalishMissionary.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.BlockedPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BenalishTrapper.java b/Mage.Sets/src/mage/cards/b/BenalishTrapper.java index 897bbb989ae..35635128401 100644 --- a/Mage.Sets/src/mage/cards/b/BenalishTrapper.java +++ b/Mage.Sets/src/mage/cards/b/BenalishTrapper.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,10 +35,13 @@ import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BenalishVeteran.java b/Mage.Sets/src/mage/cards/b/BenalishVeteran.java index 685da60deb6..51e73faa99a 100644 --- a/Mage.Sets/src/mage/cards/b/BenalishVeteran.java +++ b/Mage.Sets/src/mage/cards/b/BenalishVeteran.java @@ -28,16 +28,16 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BenedictionOfMoons.java b/Mage.Sets/src/mage/cards/b/BenedictionOfMoons.java index edf9abb5f27..f0cb1fef530 100644 --- a/Mage.Sets/src/mage/cards/b/BenedictionOfMoons.java +++ b/Mage.Sets/src/mage/cards/b/BenedictionOfMoons.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.Game; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/b/BenefactionOfRhonas.java b/Mage.Sets/src/mage/cards/b/BenefactionOfRhonas.java new file mode 100644 index 00000000000..d5728f154aa --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BenefactionOfRhonas.java @@ -0,0 +1,138 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import java.util.UUID; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.Cards; +import mage.cards.CardsImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.filter.common.FilterCreatureCard; +import mage.filter.common.FilterEnchantmentCard; +import mage.game.Game; +import mage.players.Player; +import mage.target.TargetCard; + +/** + * + * @author fireshoes + */ +public class BenefactionOfRhonas extends CardImpl { + + public BenefactionOfRhonas(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{G}"); + + // Reveal the top five cards of your library. You may put a creature card and/or enchantment card from among them into your hand. Put the rest into your graveyard. + getSpellAbility().addEffect(new BenefactionOfRhonasEffect()); + } + + public BenefactionOfRhonas(final BenefactionOfRhonas card) { + super(card); + } + + @Override + public BenefactionOfRhonas copy() { + return new BenefactionOfRhonas(this); + } +} + +class BenefactionOfRhonasEffect extends OneShotEffect { + + public BenefactionOfRhonasEffect() { + super(Outcome.DrawCard); + this.staticText = "Reveal the top five cards of your library. You may put a creature card and/or enchantment card from among them into your hand. Put the rest into your graveyard"; + } + + public BenefactionOfRhonasEffect(final BenefactionOfRhonasEffect effect) { + super(effect); + } + + @Override + public BenefactionOfRhonasEffect copy() { + return new BenefactionOfRhonasEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + MageObject sourceObject = game.getObject(source.getSourceId()); + if (sourceObject != null && controller != null) { + Cards cards = new CardsImpl(); + cards.addAll(controller.getLibrary().getTopCards(game, 5)); + boolean creatureCardFound = false; + boolean enchantmentCardFound = false; + for (UUID cardId : cards) { + Card card = game.getCard(cardId); + if (card != null) { + cards.add(card); + if (card.isCreature()) { + creatureCardFound = true; + } + if (card.isEnchantment()) { + enchantmentCardFound = true; + } + } + } + + if (!cards.isEmpty()) { + controller.revealCards(sourceObject.getName(), cards, game); + if ((creatureCardFound || enchantmentCardFound) + && controller.chooseUse(Outcome.DrawCard, + "Put a creature card and/or enchantment card into your hand?", source, game)) { + TargetCard target = new TargetCard(Zone.LIBRARY, new FilterCreatureCard("creature card to put into your hand")); + if (creatureCardFound && controller.chooseTarget(Outcome.DrawCard, cards, target, source, game)) { + Card card = cards.get(target.getFirstTarget(), game); + if (card != null) { + cards.remove(card); + controller.moveCards(card, Zone.HAND, source, game); + } + } + + target = new TargetCard(Zone.LIBRARY, new FilterEnchantmentCard("enchantment card to put into your hand")); + if (enchantmentCardFound && controller.chooseTarget(Outcome.DrawCard, cards, target, source, game)) { + Card card = cards.get(target.getFirstTarget(), game); + if (card != null) { + cards.remove(card); + controller.moveCards(card, Zone.HAND, source, game); + } + } + } + } + controller.moveCards(cards, Zone.GRAVEYARD, source, game); + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/cards/b/BenefactorsDraught.java b/Mage.Sets/src/mage/cards/b/BenefactorsDraught.java index 7abc822e65f..ec6f8975785 100644 --- a/Mage.Sets/src/mage/cards/b/BenefactorsDraught.java +++ b/Mage.Sets/src/mage/cards/b/BenefactorsDraught.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -43,6 +42,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BenevolentAncestor.java b/Mage.Sets/src/mage/cards/b/BenevolentAncestor.java index b9018726367..8beb77dde26 100644 --- a/Mage.Sets/src/mage/cards/b/BenevolentAncestor.java +++ b/Mage.Sets/src/mage/cards/b/BenevolentAncestor.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,10 +35,13 @@ import mage.abilities.effects.common.PreventDamageToTargetEffect; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BenevolentBodyguard.java b/Mage.Sets/src/mage/cards/b/BenevolentBodyguard.java index 34c93b8d412..a090e8c591b 100644 --- a/Mage.Sets/src/mage/cards/b/BenevolentBodyguard.java +++ b/Mage.Sets/src/mage/cards/b/BenevolentBodyguard.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BenevolentOffering.java b/Mage.Sets/src/mage/cards/b/BenevolentOffering.java index 0e0c67a0862..91ff5f517c3 100644 --- a/Mage.Sets/src/mage/cards/b/BenevolentOffering.java +++ b/Mage.Sets/src/mage/cards/b/BenevolentOffering.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; @@ -45,6 +44,8 @@ import mage.target.Target; import mage.target.common.TargetOpponent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BenthicBehemoth.java b/Mage.Sets/src/mage/cards/b/BenthicBehemoth.java index e2e16fff196..bed5cbf0c38 100644 --- a/Mage.Sets/src/mage/cards/b/BenthicBehemoth.java +++ b/Mage.Sets/src/mage/cards/b/BenthicBehemoth.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.IslandwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BenthicDjinn.java b/Mage.Sets/src/mage/cards/b/BenthicDjinn.java index ca25d0a7b9e..b1228ce67c8 100644 --- a/Mage.Sets/src/mage/cards/b/BenthicDjinn.java +++ b/Mage.Sets/src/mage/cards/b/BenthicDjinn.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BenthicGiant.java b/Mage.Sets/src/mage/cards/b/BenthicGiant.java index 3d64f29979f..8c98afe0d0c 100644 --- a/Mage.Sets/src/mage/cards/b/BenthicGiant.java +++ b/Mage.Sets/src/mage/cards/b/BenthicGiant.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BenthicInfiltrator.java b/Mage.Sets/src/mage/cards/b/BenthicInfiltrator.java index 6b126283a30..05760f44ceb 100644 --- a/Mage.Sets/src/mage/cards/b/BenthicInfiltrator.java +++ b/Mage.Sets/src/mage/cards/b/BenthicInfiltrator.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.CantBeBlockedSourceAbility; import mage.abilities.keyword.DevoidAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/Benthicore.java b/Mage.Sets/src/mage/cards/b/Benthicore.java index 87cab4b8c3c..e74017fe5f1 100644 --- a/Mage.Sets/src/mage/cards/b/Benthicore.java +++ b/Mage.Sets/src/mage/cards/b/Benthicore.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,6 +38,7 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; diff --git a/Mage.Sets/src/mage/cards/b/Bequeathal.java b/Mage.Sets/src/mage/cards/b/Bequeathal.java index 6e5abfa4432..dbf35e2f16e 100644 --- a/Mage.Sets/src/mage/cards/b/Bequeathal.java +++ b/Mage.Sets/src/mage/cards/b/Bequeathal.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.effects.common.AttachEffect; @@ -40,6 +39,8 @@ import mage.constants.Outcome; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Bereavement.java b/Mage.Sets/src/mage/cards/b/Bereavement.java index b1a25c167ea..485a4e0e896 100644 --- a/Mage.Sets/src/mage/cards/b/Bereavement.java +++ b/Mage.Sets/src/mage/cards/b/Bereavement.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; @@ -41,6 +40,8 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/b/Berserk.java b/Mage.Sets/src/mage/cards/b/Berserk.java index ef1400a701a..f192e321d53 100644 --- a/Mage.Sets/src/mage/cards/b/Berserk.java +++ b/Mage.Sets/src/mage/cards/b/Berserk.java @@ -28,6 +28,7 @@ package mage.cards.b; import java.util.UUID; +import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -41,11 +42,7 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; @@ -62,7 +59,7 @@ import mage.watchers.common.AttackedThisTurnWatcher; public class Berserk extends CardImpl { public Berserk(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{G}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}"); // Cast Berserk only before the combat damage step. (Zone = all because it can be at least graveyard or hand) this.addAbility(new SimpleStaticAbility(Zone.ALL, new BerserkReplacementEffect()), new CombatDamageStepStartedWatcher()); @@ -199,9 +196,9 @@ class BerserkDelayedDestroyEffect extends OneShotEffect { if (controller != null) { Permanent permanent = game.getPermanent(this.getTargetPointer().getFirst(game, source)); if (permanent != null) { - Watcher watcher = game.getState().getWatchers().get("AttackedThisTurn"); + Watcher watcher = game.getState().getWatchers().get(AttackedThisTurnWatcher.class.getName()); if (watcher != null && watcher instanceof AttackedThisTurnWatcher) { - if (((AttackedThisTurnWatcher) watcher).getAttackedThisTurnCreatures().contains(permanent.getId())) { + if (((AttackedThisTurnWatcher) watcher).getAttackedThisTurnCreatures().contains(new MageObjectReference(permanent, game))) { return permanent.destroy(source.getSourceId(), game, false); } } diff --git a/Mage.Sets/src/mage/cards/b/BerserkMurlodont.java b/Mage.Sets/src/mage/cards/b/BerserkMurlodont.java index 4a95017f99f..5d7007ae5b0 100644 --- a/Mage.Sets/src/mage/cards/b/BerserkMurlodont.java +++ b/Mage.Sets/src/mage/cards/b/BerserkMurlodont.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesBlockedAllTriggeredAbility; import mage.abilities.dynamicvalue.common.BlockedCreatureCount; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Markedagain diff --git a/Mage.Sets/src/mage/cards/b/BerserkersOfBloodRidge.java b/Mage.Sets/src/mage/cards/b/BerserkersOfBloodRidge.java index aed713504b1..634d8626e4b 100644 --- a/Mage.Sets/src/mage/cards/b/BerserkersOfBloodRidge.java +++ b/Mage.Sets/src/mage/cards/b/BerserkersOfBloodRidge.java @@ -28,12 +28,13 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BerserkersOnslaught.java b/Mage.Sets/src/mage/cards/b/BerserkersOnslaught.java index 03d1faa1f3a..37838e5a411 100644 --- a/Mage.Sets/src/mage/cards/b/BerserkersOnslaught.java +++ b/Mage.Sets/src/mage/cards/b/BerserkersOnslaught.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.DoubleStrikeAbility; @@ -38,6 +37,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterAttackingCreature; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BeseechTheQueen.java b/Mage.Sets/src/mage/cards/b/BeseechTheQueen.java index ad25832c944..9100ad9fe49 100644 --- a/Mage.Sets/src/mage/cards/b/BeseechTheQueen.java +++ b/Mage.Sets/src/mage/cards/b/BeseechTheQueen.java @@ -27,18 +27,19 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.predicate.Predicate; import mage.game.Game; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BestialMenace.java b/Mage.Sets/src/mage/cards/b/BestialMenace.java index 0ec0d23c36b..71c682c2b72 100644 --- a/Mage.Sets/src/mage/cards/b/BestialMenace.java +++ b/Mage.Sets/src/mage/cards/b/BestialMenace.java @@ -28,15 +28,16 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.ElephantToken; import mage.game.permanent.token.SnakeToken; import mage.game.permanent.token.WolfToken; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/Betrayal.java b/Mage.Sets/src/mage/cards/b/Betrayal.java index 6a0525f9074..ee6dbfdfd8f 100644 --- a/Mage.Sets/src/mage/cards/b/Betrayal.java +++ b/Mage.Sets/src/mage/cards/b/Betrayal.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BecomesTappedAttachedTriggeredAbility; import mage.abilities.effects.common.AttachEffect; @@ -43,6 +42,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BetrayalOfFlesh.java b/Mage.Sets/src/mage/cards/b/BetrayalOfFlesh.java index 66f23cef42d..c71b467d9a7 100644 --- a/Mage.Sets/src/mage/cards/b/BetrayalOfFlesh.java +++ b/Mage.Sets/src/mage/cards/b/BetrayalOfFlesh.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.DestroyTargetEffect; @@ -42,6 +41,8 @@ import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/Bewilder.java b/Mage.Sets/src/mage/cards/b/Bewilder.java index c6bd93015fc..40237cf7a11 100644 --- a/Mage.Sets/src/mage/cards/b/Bewilder.java +++ b/Mage.Sets/src/mage/cards/b/Bewilder.java @@ -27,16 +27,16 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BibFortuna.java b/Mage.Sets/src/mage/cards/b/BibFortuna.java index cd762667050..93c8e581e51 100644 --- a/Mage.Sets/src/mage/cards/b/BibFortuna.java +++ b/Mage.Sets/src/mage/cards/b/BibFortuna.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -38,8 +37,11 @@ import mage.abilities.effects.common.search.SearchLibraryPutOnLibraryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Styxo @@ -48,7 +50,7 @@ public class BibFortuna extends CardImpl { public BibFortuna(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Twi'lek"); this.subtype.add("Advisor"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/b/BidentOfThassa.java b/Mage.Sets/src/mage/cards/b/BidentOfThassa.java index 58cf52ce561..44f3eb9d7d4 100644 --- a/Mage.Sets/src/mage/cards/b/BidentOfThassa.java +++ b/Mage.Sets/src/mage/cards/b/BidentOfThassa.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.DamagedPlayerEvent; @@ -46,6 +46,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +56,7 @@ public class BidentOfThassa extends CardImpl { public BidentOfThassa(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.ARTIFACT},"{2}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Whenever a creature you control deals combat damage to a player, you may draw a card. diff --git a/Mage.Sets/src/mage/cards/b/BigGameHunter.java b/Mage.Sets/src/mage/cards/b/BigGameHunter.java index c2eb5ed0081..2a047c025c9 100644 --- a/Mage.Sets/src/mage/cards/b/BigGameHunter.java +++ b/Mage.Sets/src/mage/cards/b/BigGameHunter.java @@ -27,9 +27,9 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; @@ -37,11 +37,12 @@ import mage.abilities.keyword.MadnessAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -51,7 +52,7 @@ public class BigGameHunter extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 4 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public BigGameHunter(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/b/BileBlight.java b/Mage.Sets/src/mage/cards/b/BileBlight.java index 62b65e92302..fd802a13612 100644 --- a/Mage.Sets/src/mage/cards/b/BileBlight.java +++ b/Mage.Sets/src/mage/cards/b/BileBlight.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.effects.common.continuous.BoostAllEffect; @@ -39,6 +38,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/b/BileUrchin.java b/Mage.Sets/src/mage/cards/b/BileUrchin.java index 1e5d176eacc..80964d184cb 100644 --- a/Mage.Sets/src/mage/cards/b/BileUrchin.java +++ b/Mage.Sets/src/mage/cards/b/BileUrchin.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +34,12 @@ import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/Bind.java b/Mage.Sets/src/mage/cards/b/Bind.java index 8d1b8c51be1..8c5b5f15fd0 100644 --- a/Mage.Sets/src/mage/cards/b/Bind.java +++ b/Mage.Sets/src/mage/cards/b/Bind.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetActivatedAbility; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BindingAgony.java b/Mage.Sets/src/mage/cards/b/BindingAgony.java index 5b8ea3ca688..5cb0c87ab02 100644 --- a/Mage.Sets/src/mage/cards/b/BindingAgony.java +++ b/Mage.Sets/src/mage/cards/b/BindingAgony.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DealtDamageAttachedTriggeredAbility; import mage.abilities.dynamicvalue.common.NumericSetToEffectValues; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BindingGrasp.java b/Mage.Sets/src/mage/cards/b/BindingGrasp.java index 68b0089cd6b..9c468bd6f17 100644 --- a/Mage.Sets/src/mage/cards/b/BindingGrasp.java +++ b/Mage.Sets/src/mage/cards/b/BindingGrasp.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,14 +38,12 @@ import mage.abilities.effects.common.continuous.ControlEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BindingMummy.java b/Mage.Sets/src/mage/cards/b/BindingMummy.java new file mode 100644 index 00000000000..e84f8dbf919 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BindingMummy.java @@ -0,0 +1,79 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; +import mage.abilities.effects.common.TapTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import static mage.filter.StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_CREATURE; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.AnotherPredicate; +import mage.target.TargetPermanent; + +/** + * + * @author fireshoes + */ +public class BindingMummy extends CardImpl { + + private static final FilterControlledPermanent filter = new FilterControlledPermanent("another Zombie"); + + static { + filter.add(new AnotherPredicate()); + filter.add(new SubtypePredicate("Zombie")); + } + + public BindingMummy(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); + + this.subtype.add("Zombie"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Whenever another Zombie enters the battlefield under your control, you may tap target artifact or creature. + Ability ability = new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new TapTargetEffect(), filter, true, null, true); + ability.addTarget(new TargetPermanent(FILTER_PERMANENT_ARTIFACT_OR_CREATURE)); + this.addAbility(ability); + } + + public BindingMummy(final BindingMummy card) { + super(card); + } + + @Override + public BindingMummy copy() { + return new BindingMummy(this); + } +} diff --git a/Mage.Sets/src/mage/cards/b/BiomanticMastery.java b/Mage.Sets/src/mage/cards/b/BiomanticMastery.java index 322e667f6b8..b5c2d1c29e1 100644 --- a/Mage.Sets/src/mage/cards/b/BiomanticMastery.java +++ b/Mage.Sets/src/mage/cards/b/BiomanticMastery.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BiomassMutation.java b/Mage.Sets/src/mage/cards/b/BiomassMutation.java index 259226b738e..6d379e84ff4 100644 --- a/Mage.Sets/src/mage/cards/b/BiomassMutation.java +++ b/Mage.Sets/src/mage/cards/b/BiomassMutation.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.continuous.SetPowerToughnessAllEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Biorhythm.java b/Mage.Sets/src/mage/cards/b/Biorhythm.java index e7dae760730..05601bfade4 100644 --- a/Mage.Sets/src/mage/cards/b/Biorhythm.java +++ b/Mage.Sets/src/mage/cards/b/Biorhythm.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/Bioshift.java b/Mage.Sets/src/mage/cards/b/Bioshift.java index 70ef879b1ff..28d0ffba0a7 100644 --- a/Mage.Sets/src/mage/cards/b/Bioshift.java +++ b/Mage.Sets/src/mage/cards/b/Bioshift.java @@ -27,14 +27,12 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageItem; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; @@ -47,6 +45,8 @@ import mage.game.stack.StackObject; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Biovisionary.java b/Mage.Sets/src/mage/cards/b/Biovisionary.java index fa15ca9084f..470a326338c 100644 --- a/Mage.Sets/src/mage/cards/b/Biovisionary.java +++ b/Mage.Sets/src/mage/cards/b/Biovisionary.java @@ -27,9 +27,8 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.effects.common.WinGameSourceControllerEffect; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.NamePredicate; +import java.util.UUID; + /** * * @author Plopman @@ -63,7 +64,7 @@ public class Biovisionary extends CardImpl { this.addAbility(new BeginningOfEndStepTriggeredAbility( Zone.BATTLEFIELD, new WinGameSourceControllerEffect(), TargetController.ANY, - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 3), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 3), false)); } diff --git a/Mage.Sets/src/mage/cards/b/BirchloreRangers.java b/Mage.Sets/src/mage/cards/b/BirchloreRangers.java index c3313b84b69..c84cc40f358 100644 --- a/Mage.Sets/src/mage/cards/b/BirchloreRangers.java +++ b/Mage.Sets/src/mage/cards/b/BirchloreRangers.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.common.TapTargetCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +41,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BirdMaiden.java b/Mage.Sets/src/mage/cards/b/BirdMaiden.java index 304e9f37a5a..d3d9d38b957 100644 --- a/Mage.Sets/src/mage/cards/b/BirdMaiden.java +++ b/Mage.Sets/src/mage/cards/b/BirdMaiden.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BirdsOfParadise.java b/Mage.Sets/src/mage/cards/b/BirdsOfParadise.java index 01880bcdd12..96f1cef118c 100644 --- a/Mage.Sets/src/mage/cards/b/BirdsOfParadise.java +++ b/Mage.Sets/src/mage/cards/b/BirdsOfParadise.java @@ -28,13 +28,14 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.mana.AnyColorManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BirthingHulk.java b/Mage.Sets/src/mage/cards/b/BirthingHulk.java index 8de09ea216e..868566fc1f5 100644 --- a/Mage.Sets/src/mage/cards/b/BirthingHulk.java +++ b/Mage.Sets/src/mage/cards/b/BirthingHulk.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.game.permanent.token.EldraziScionToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BirthingPod.java b/Mage.Sets/src/mage/cards/b/BirthingPod.java index 79db6507537..98449eb5905 100644 --- a/Mage.Sets/src/mage/cards/b/BirthingPod.java +++ b/Mage.Sets/src/mage/cards/b/BirthingPod.java @@ -27,8 +27,8 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.ActivateAsSorceryActivatedAbility; import mage.abilities.costs.Cost; import mage.abilities.costs.common.SacrificeTargetCost; @@ -41,7 +41,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -51,6 +50,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ @@ -105,7 +106,7 @@ class BirthingPodEffect extends OneShotEffect { if (sacrificedPermanent != null && controller != null) { int newConvertedCost = sacrificedPermanent.getConvertedManaCost() + 1; FilterCard filter = new FilterCard("creature card with converted mana cost " + newConvertedCost); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, newConvertedCost)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, newConvertedCost)); filter.add(new CardTypePredicate(CardType.CREATURE)); TargetCardInLibrary target = new TargetCardInLibrary(filter); if (controller.searchLibrary(target, game)) { diff --git a/Mage.Sets/src/mage/cards/b/BiteOfTheBlackRose.java b/Mage.Sets/src/mage/cards/b/BiteOfTheBlackRose.java index e66bf7968cf..3493596253d 100644 --- a/Mage.Sets/src/mage/cards/b/BiteOfTheBlackRose.java +++ b/Mage.Sets/src/mage/cards/b/BiteOfTheBlackRose.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.ContinuousEffect; @@ -43,6 +42,8 @@ import mage.constants.TargetController; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BitingRain.java b/Mage.Sets/src/mage/cards/b/BitingRain.java index cc8a0cc7012..82a15428224 100644 --- a/Mage.Sets/src/mage/cards/b/BitingRain.java +++ b/Mage.Sets/src/mage/cards/b/BitingRain.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.abilities.keyword.MadnessAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BitingTether.java b/Mage.Sets/src/mage/cards/b/BitingTether.java index e3a2d38975f..1a0dd0a1ace 100644 --- a/Mage.Sets/src/mage/cards/b/BitingTether.java +++ b/Mage.Sets/src/mage/cards/b/BitingTether.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.counters.CounterType; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BitterFeud.java b/Mage.Sets/src/mage/cards/b/BitterFeud.java index 5297a739da0..59b439a698b 100644 --- a/Mage.Sets/src/mage/cards/b/BitterFeud.java +++ b/Mage.Sets/src/mage/cards/b/BitterFeud.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.AsEntersBattlefieldAbility; @@ -48,6 +47,8 @@ import mage.game.stack.StackObject; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BitterOrdeal.java b/Mage.Sets/src/mage/cards/b/BitterOrdeal.java index 4ec58216d76..2500e28707f 100644 --- a/Mage.Sets/src/mage/cards/b/BitterOrdeal.java +++ b/Mage.Sets/src/mage/cards/b/BitterOrdeal.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.GravestormAbility; @@ -43,6 +42,8 @@ import mage.target.TargetPlayer; import mage.target.common.TargetCardInLibrary; import mage.watchers.common.GravestormWatcher; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BitterRevelation.java b/Mage.Sets/src/mage/cards/b/BitterRevelation.java index d5f7c2ca83c..e807eca7116 100644 --- a/Mage.Sets/src/mage/cards/b/BitterRevelation.java +++ b/Mage.Sets/src/mage/cards/b/BitterRevelation.java @@ -27,15 +27,10 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -44,6 +39,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BitterbladeWarrior.java b/Mage.Sets/src/mage/cards/b/BitterbladeWarrior.java new file mode 100644 index 00000000000..aca7d8f47dd --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BitterbladeWarrior.java @@ -0,0 +1,75 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.DeathtouchAbility; +import mage.abilities.keyword.ExertAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author fireshoes + */ +public class BitterbladeWarrior extends CardImpl { + + public BitterbladeWarrior(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}"); + + this.subtype.add("Jackal"); + this.subtype.add("Warrior"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // You may exert Bitterblade Warrior as it attacks. When you do, it gets +1/+0 and gains deathtouch until end of turn. + Effect effect = new BoostSourceEffect(1, 0, Duration.EndOfTurn); + effect.setText("it gets +1/+0"); + BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(effect); + effect = new GainAbilitySourceEffect(DeathtouchAbility.getInstance(), Duration.EndOfTurn); + effect.setText("and gains deathtouch until end of turn"); + ability.addEffect(effect); + this.addAbility(new ExertAbility(ability)); + } + + public BitterbladeWarrior(final BitterbladeWarrior card) { + super(card); + } + + @Override + public BitterbladeWarrior copy() { + return new BitterbladeWarrior(this); + } +} diff --git a/Mage.Sets/src/mage/cards/b/Bitterblossom.java b/Mage.Sets/src/mage/cards/b/Bitterblossom.java index 791b24ceda6..3dab91f66da 100644 --- a/Mage.Sets/src/mage/cards/b/Bitterblossom.java +++ b/Mage.Sets/src/mage/cards/b/Bitterblossom.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.game.permanent.token.FaerieRogueToken; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BitterheartWitch.java b/Mage.Sets/src/mage/cards/b/BitterheartWitch.java index 43637aa013e..1927e3db142 100644 --- a/Mage.Sets/src/mage/cards/b/BitterheartWitch.java +++ b/Mage.Sets/src/mage/cards/b/BitterheartWitch.java @@ -27,11 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -40,6 +35,9 @@ import mage.abilities.keyword.DeathtouchAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; @@ -47,6 +45,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/b/BituminousBlast.java b/Mage.Sets/src/mage/cards/b/BituminousBlast.java index b45be46c63b..0ddc277c771 100644 --- a/Mage.Sets/src/mage/cards/b/BituminousBlast.java +++ b/Mage.Sets/src/mage/cards/b/BituminousBlast.java @@ -28,14 +28,15 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.CascadeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/BlackCarriage.java b/Mage.Sets/src/mage/cards/b/BlackCarriage.java index b9da94fc162..70993753282 100644 --- a/Mage.Sets/src/mage/cards/b/BlackCarriage.java +++ b/Mage.Sets/src/mage/cards/b/BlackCarriage.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.IsStepCondition; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BlackCat.java b/Mage.Sets/src/mage/cards/b/BlackCat.java index 7a3e889ff9b..089e673f5fe 100644 --- a/Mage.Sets/src/mage/cards/b/BlackCat.java +++ b/Mage.Sets/src/mage/cards/b/BlackCat.java @@ -29,13 +29,13 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetOpponent; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/b/BlackKnight.java b/Mage.Sets/src/mage/cards/b/BlackKnight.java index b298458de49..d25932c2a45 100644 --- a/Mage.Sets/src/mage/cards/b/BlackKnight.java +++ b/Mage.Sets/src/mage/cards/b/BlackKnight.java @@ -28,14 +28,15 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlackLotus.java b/Mage.Sets/src/mage/cards/b/BlackLotus.java index 2d8d4e2ecec..359b66ac09e 100644 --- a/Mage.Sets/src/mage/cards/b/BlackLotus.java +++ b/Mage.Sets/src/mage/cards/b/BlackLotus.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.TapSourceCost; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlackMarket.java b/Mage.Sets/src/mage/cards/b/BlackMarket.java index 13045c2e492..507e8008fa3 100644 --- a/Mage.Sets/src/mage/cards/b/BlackMarket.java +++ b/Mage.Sets/src/mage/cards/b/BlackMarket.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.BeginningOfPreCombatMainTriggeredAbility; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author markedagain diff --git a/Mage.Sets/src/mage/cards/b/BlackMarketDealer.java b/Mage.Sets/src/mage/cards/b/BlackMarketDealer.java index fb5e651977e..0a17c645daa 100644 --- a/Mage.Sets/src/mage/cards/b/BlackMarketDealer.java +++ b/Mage.Sets/src/mage/cards/b/BlackMarketDealer.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; @@ -48,6 +47,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPlayer; import mage.target.common.TargetOpponentsCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/b/BlackOakOfOdunos.java b/Mage.Sets/src/mage/cards/b/BlackOakOfOdunos.java index 02f64022675..8aa0c99c484 100644 --- a/Mage.Sets/src/mage/cards/b/BlackOakOfOdunos.java +++ b/Mage.Sets/src/mage/cards/b/BlackOakOfOdunos.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/b/BlackPoplarShaman.java b/Mage.Sets/src/mage/cards/b/BlackPoplarShaman.java index a2b18e85d6e..06335ea3b73 100644 --- a/Mage.Sets/src/mage/cards/b/BlackPoplarShaman.java +++ b/Mage.Sets/src/mage/cards/b/BlackPoplarShaman.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -35,6 +34,7 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.RegenerateTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; diff --git a/Mage.Sets/src/mage/cards/b/BlackScarab.java b/Mage.Sets/src/mage/cards/b/BlackScarab.java index df2b59028ae..6ad280553ee 100644 --- a/Mage.Sets/src/mage/cards/b/BlackScarab.java +++ b/Mage.Sets/src/mage/cards/b/BlackScarab.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -40,17 +39,15 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Zeplar1_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/BlackSunsZenith.java b/Mage.Sets/src/mage/cards/b/BlackSunsZenith.java index 1e41703544b..ebb5643ef89 100644 --- a/Mage.Sets/src/mage/cards/b/BlackSunsZenith.java +++ b/Mage.Sets/src/mage/cards/b/BlackSunsZenith.java @@ -28,19 +28,19 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ShuffleSpellEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BlackVise.java b/Mage.Sets/src/mage/cards/b/BlackVise.java index b7610204d97..7d6eb5329e4 100644 --- a/Mage.Sets/src/mage/cards/b/BlackVise.java +++ b/Mage.Sets/src/mage/cards/b/BlackVise.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.AsEntersBattlefieldAbility; @@ -43,6 +42,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.players.Player; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/b/BlackWard.java b/Mage.Sets/src/mage/cards/b/BlackWard.java index 4dd1c5d6827..8989ac3ef24 100644 --- a/Mage.Sets/src/mage/cards/b/BlackWard.java +++ b/Mage.Sets/src/mage/cards/b/BlackWard.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -46,6 +45,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BlackcleaveCliffs.java b/Mage.Sets/src/mage/cards/b/BlackcleaveCliffs.java index 33f9f244505..731fb288fa4 100644 --- a/Mage.Sets/src/mage/cards/b/BlackcleaveCliffs.java +++ b/Mage.Sets/src/mage/cards/b/BlackcleaveCliffs.java @@ -27,9 +27,7 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; @@ -43,6 +41,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author maurer.it_at_gmail.com @@ -54,7 +54,7 @@ public class BlackcleaveCliffs extends CardImpl { public BlackcleaveCliffs(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 3)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 3)); String abilityText = "tapped unless you control fewer than 3 lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlackManaAbility()); diff --git a/Mage.Sets/src/mage/cards/b/BlackcleaveGoblin.java b/Mage.Sets/src/mage/cards/b/BlackcleaveGoblin.java index e4f04513692..cc6bd038514 100644 --- a/Mage.Sets/src/mage/cards/b/BlackcleaveGoblin.java +++ b/Mage.Sets/src/mage/cards/b/BlackcleaveGoblin.java @@ -28,13 +28,14 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/Blackmail.java b/Mage.Sets/src/mage/cards/b/Blackmail.java index ffe9f9b4573..b23f6a3f14d 100644 --- a/Mage.Sets/src/mage/cards/b/Blackmail.java +++ b/Mage.Sets/src/mage/cards/b/Blackmail.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.discard.DiscardCardYouChooseTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BladeOfSelves.java b/Mage.Sets/src/mage/cards/b/BladeOfSelves.java index 2a21c767389..2963381bdee 100644 --- a/Mage.Sets/src/mage/cards/b/BladeOfSelves.java +++ b/Mage.Sets/src/mage/cards/b/BladeOfSelves.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BladeOfTheBloodchief.java b/Mage.Sets/src/mage/cards/b/BladeOfTheBloodchief.java index 1773c640858..2d7f0fd9110 100644 --- a/Mage.Sets/src/mage/cards/b/BladeOfTheBloodchief.java +++ b/Mage.Sets/src/mage/cards/b/BladeOfTheBloodchief.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.GenericManaCost; @@ -45,6 +44,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author mamaurer, nantuko diff --git a/Mage.Sets/src/mage/cards/b/BladeOfTheSixthPride.java b/Mage.Sets/src/mage/cards/b/BladeOfTheSixthPride.java index 0f0d7c146f5..e9f7ed761e3 100644 --- a/Mage.Sets/src/mage/cards/b/BladeOfTheSixthPride.java +++ b/Mage.Sets/src/mage/cards/b/BladeOfTheSixthPride.java @@ -27,11 +27,12 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BladeSliver.java b/Mage.Sets/src/mage/cards/b/BladeSliver.java index f9d682b0c2b..cf078e94224 100644 --- a/Mage.Sets/src/mage/cards/b/BladeSliver.java +++ b/Mage.Sets/src/mage/cards/b/BladeSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; @@ -38,6 +37,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/b/BladeSplicer.java b/Mage.Sets/src/mage/cards/b/BladeSplicer.java index c4ab6162667..2a51a479724 100644 --- a/Mage.Sets/src/mage/cards/b/BladeSplicer.java +++ b/Mage.Sets/src/mage/cards/b/BladeSplicer.java @@ -28,11 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,11 +36,16 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.GolemToken; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BladeTribeBerserkers.java b/Mage.Sets/src/mage/cards/b/BladeTribeBerserkers.java index ae34244fdc2..49aaaac3057 100644 --- a/Mage.Sets/src/mage/cards/b/BladeTribeBerserkers.java +++ b/Mage.Sets/src/mage/cards/b/BladeTribeBerserkers.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,6 +37,10 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BladedBracers.java b/Mage.Sets/src/mage/cards/b/BladedBracers.java index f0b18a301c3..71956a0f4eb 100644 --- a/Mage.Sets/src/mage/cards/b/BladedBracers.java +++ b/Mage.Sets/src/mage/cards/b/BladedBracers.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import mage.constants.*; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.EquippedHasSubtypeCondition; import mage.abilities.costs.mana.GenericManaCost; @@ -38,6 +37,10 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/b/BladedPinions.java b/Mage.Sets/src/mage/cards/b/BladedPinions.java index 541d830505f..c4b2b955a9b 100644 --- a/Mage.Sets/src/mage/cards/b/BladedPinions.java +++ b/Mage.Sets/src/mage/cards/b/BladedPinions.java @@ -28,11 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; @@ -41,7 +36,12 @@ import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BladedSentinel.java b/Mage.Sets/src/mage/cards/b/BladedSentinel.java index 56aae0c5b8e..803e4b3e01f 100644 --- a/Mage.Sets/src/mage/cards/b/BladedSentinel.java +++ b/Mage.Sets/src/mage/cards/b/BladedSentinel.java @@ -28,10 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +35,11 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BladesOfVelisVel.java b/Mage.Sets/src/mage/cards/b/BladesOfVelisVel.java index 712629f0f5e..dd9e92c4409 100644 --- a/Mage.Sets/src/mage/cards/b/BladesOfVelisVel.java +++ b/Mage.Sets/src/mage/cards/b/BladesOfVelisVel.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BladetuskBoar.java b/Mage.Sets/src/mage/cards/b/BladetuskBoar.java index e8683dc245c..a7ee32bef5a 100644 --- a/Mage.Sets/src/mage/cards/b/BladetuskBoar.java +++ b/Mage.Sets/src/mage/cards/b/BladetuskBoar.java @@ -28,12 +28,13 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.IntimidateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BladewingTheRisen.java b/Mage.Sets/src/mage/cards/b/BladewingTheRisen.java index adef596d147..31692c33147 100644 --- a/Mage.Sets/src/mage/cards/b/BladewingTheRisen.java +++ b/Mage.Sets/src/mage/cards/b/BladewingTheRisen.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,6 +39,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterPermanentCard; @@ -47,6 +47,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -62,7 +64,7 @@ public class BladewingTheRisen extends CardImpl { public BladewingTheRisen(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Dragon"); diff --git a/Mage.Sets/src/mage/cards/b/BladewingsThrall.java b/Mage.Sets/src/mage/cards/b/BladewingsThrall.java index 730ab58920d..18649626f39 100644 --- a/Mage.Sets/src/mage/cards/b/BladewingsThrall.java +++ b/Mage.Sets/src/mage/cards/b/BladewingsThrall.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author nomage diff --git a/Mage.Sets/src/mage/cards/b/BlanchwoodArmor.java b/Mage.Sets/src/mage/cards/b/BlanchwoodArmor.java index f513e4969c2..4feed5616c5 100644 --- a/Mage.Sets/src/mage/cards/b/BlanchwoodArmor.java +++ b/Mage.Sets/src/mage/cards/b/BlanchwoodArmor.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -38,11 +35,17 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BlanchwoodTreefolk.java b/Mage.Sets/src/mage/cards/b/BlanchwoodTreefolk.java index 94fdc31832b..cd905413c8a 100644 --- a/Mage.Sets/src/mage/cards/b/BlanchwoodTreefolk.java +++ b/Mage.Sets/src/mage/cards/b/BlanchwoodTreefolk.java @@ -28,11 +28,12 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlanketOfNight.java b/Mage.Sets/src/mage/cards/b/BlanketOfNight.java index 5807f7a5a6d..3daf758aab0 100644 --- a/Mage.Sets/src/mage/cards/b/BlanketOfNight.java +++ b/Mage.Sets/src/mage/cards/b/BlanketOfNight.java @@ -27,21 +27,21 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.continuous.AddCardSubtypeAllEffect; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.mana.BlackManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.abilities.effects.common.continuous.AddCardSubtypeAllEffect; import mage.constants.CardType; import mage.constants.DependencyType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author Galatolol diff --git a/Mage.Sets/src/mage/cards/b/BlasphemousAct.java b/Mage.Sets/src/mage/cards/b/BlasphemousAct.java index 89ebe4f7754..60fa924a641 100644 --- a/Mage.Sets/src/mage/cards/b/BlasphemousAct.java +++ b/Mage.Sets/src/mage/cards/b/BlasphemousAct.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.common.SimpleStaticAbility; @@ -37,15 +34,14 @@ import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.players.Player; import mage.util.CardUtil; +import java.util.UUID; + /** * @author nantuko diff --git a/Mage.Sets/src/mage/cards/b/BlastOfGenius.java b/Mage.Sets/src/mage/cards/b/BlastOfGenius.java index 5c815b321ea..7eaf0234bf1 100644 --- a/Mage.Sets/src/mage/cards/b/BlastOfGenius.java +++ b/Mage.Sets/src/mage/cards/b/BlastOfGenius.java @@ -28,20 +28,21 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetDiscard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlastedLandscape.java b/Mage.Sets/src/mage/cards/b/BlastedLandscape.java index c9d7ff86439..061399ce8a1 100644 --- a/Mage.Sets/src/mage/cards/b/BlastedLandscape.java +++ b/Mage.Sets/src/mage/cards/b/BlastedLandscape.java @@ -28,13 +28,14 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.CyclingAbility; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlasterMage.java b/Mage.Sets/src/mage/cards/b/BlasterMage.java index 0fca26691e5..0022e28fa22 100644 --- a/Mage.Sets/src/mage/cards/b/BlasterMage.java +++ b/Mage.Sets/src/mage/cards/b/BlasterMage.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BlastfireBolt.java b/Mage.Sets/src/mage/cards/b/BlastfireBolt.java index ea0ce6df855..b49ac26a0e9 100644 --- a/Mage.Sets/src/mage/cards/b/BlastfireBolt.java +++ b/Mage.Sets/src/mage/cards/b/BlastfireBolt.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.ArrayList; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DamageTargetEffect; @@ -41,6 +39,9 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.ArrayList; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/b/BlastingStation.java b/Mage.Sets/src/mage/cards/b/BlastingStation.java index 75957e0f8fe..ff3094a5c7e 100644 --- a/Mage.Sets/src/mage/cards/b/BlastingStation.java +++ b/Mage.Sets/src/mage/cards/b/BlastingStation.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Blastoderm.java b/Mage.Sets/src/mage/cards/b/Blastoderm.java index d1939746bd7..d81824ea9a3 100644 --- a/Mage.Sets/src/mage/cards/b/Blastoderm.java +++ b/Mage.Sets/src/mage/cards/b/Blastoderm.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FadingAbility; import mage.abilities.keyword.ShroudAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlatantThievery.java b/Mage.Sets/src/mage/cards/b/BlatantThievery.java index f802b0e0fd1..091e1d1a1fd 100644 --- a/Mage.Sets/src/mage/cards/b/BlatantThievery.java +++ b/Mage.Sets/src/mage/cards/b/BlatantThievery.java @@ -27,11 +27,6 @@ */ package mage.cards.b; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.SpellAbility; @@ -49,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.*; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/Blaze.java b/Mage.Sets/src/mage/cards/b/Blaze.java index 23205b53b39..91a5de51e91 100644 --- a/Mage.Sets/src/mage/cards/b/Blaze.java +++ b/Mage.Sets/src/mage/cards/b/Blaze.java @@ -27,14 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BlazeCommando.java b/Mage.Sets/src/mage/cards/b/BlazeCommando.java index 2fb26e9b1d6..8d1d2fa618d 100644 --- a/Mage.Sets/src/mage/cards/b/BlazeCommando.java +++ b/Mage.Sets/src/mage/cards/b/BlazeCommando.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.TriggeredAbilityImpl; @@ -40,10 +37,14 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; import mage.game.Game; -import mage.game.events.GameEvent.EventType; import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; import mage.game.permanent.token.SoldierTokenWithHaste; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlazethornScarecrow.java b/Mage.Sets/src/mage/cards/b/BlazethornScarecrow.java index 2d8c728961b..e40c71c5085 100644 --- a/Mage.Sets/src/mage/cards/b/BlazethornScarecrow.java +++ b/Mage.Sets/src/mage/cards/b/BlazethornScarecrow.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BlazingArchon.java b/Mage.Sets/src/mage/cards/b/BlazingArchon.java index 0345be22bae..ee637326381 100644 --- a/Mage.Sets/src/mage/cards/b/BlazingArchon.java +++ b/Mage.Sets/src/mage/cards/b/BlazingArchon.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantAttackYouAllEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlazingBladeAskari.java b/Mage.Sets/src/mage/cards/b/BlazingBladeAskari.java index f5fbca171a8..bcda1dab5b6 100644 --- a/Mage.Sets/src/mage/cards/b/BlazingBladeAskari.java +++ b/Mage.Sets/src/mage/cards/b/BlazingBladeAskari.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BlazingHellhound.java b/Mage.Sets/src/mage/cards/b/BlazingHellhound.java index feabcbb52ad..d1bb7f99b08 100644 --- a/Mage.Sets/src/mage/cards/b/BlazingHellhound.java +++ b/Mage.Sets/src/mage/cards/b/BlazingHellhound.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BlazingSalvo.java b/Mage.Sets/src/mage/cards/b/BlazingSalvo.java index ce5b8a90087..23ed1d511cb 100644 --- a/Mage.Sets/src/mage/cards/b/BlazingSalvo.java +++ b/Mage.Sets/src/mage/cards/b/BlazingSalvo.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/b/BlazingShoal.java b/Mage.Sets/src/mage/cards/b/BlazingShoal.java index 94770b9d9c3..bbca7c6081e 100644 --- a/Mage.Sets/src/mage/cards/b/BlazingShoal.java +++ b/Mage.Sets/src/mage/cards/b/BlazingShoal.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.ExileFromHandCost; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlazingSpecter.java b/Mage.Sets/src/mage/cards/b/BlazingSpecter.java index 2e2db758bf8..ef6a09402a6 100644 --- a/Mage.Sets/src/mage/cards/b/BlazingSpecter.java +++ b/Mage.Sets/src/mage/cards/b/BlazingSpecter.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.discard.DiscardTargetEffect; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BlazingTorch.java b/Mage.Sets/src/mage/cards/b/BlazingTorch.java index 089eea6380a..eab39fc829c 100644 --- a/Mage.Sets/src/mage/cards/b/BlazingTorch.java +++ b/Mage.Sets/src/mage/cards/b/BlazingTorch.java @@ -27,13 +27,6 @@ */ package mage.cards.b; -import java.util.List; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -47,11 +40,15 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.List; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BlazingVolley.java b/Mage.Sets/src/mage/cards/b/BlazingVolley.java new file mode 100644 index 00000000000..c2d7958281d --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BlazingVolley.java @@ -0,0 +1,58 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import java.util.UUID; +import mage.abilities.effects.common.DamageAllEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterOpponentsCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class BlazingVolley extends CardImpl { + + public BlazingVolley(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{R}"); + + // Blazing Volley deals 1 damage to each creature your opponents control. + getSpellAbility().addEffect(new DamageAllEffect(1, new FilterOpponentsCreaturePermanent("creature your opponents control"))); + } + + public BlazingVolley(final BlazingVolley card) { + super(card); + } + + @Override + public BlazingVolley copy() { + return new BlazingVolley(this); + } +} diff --git a/Mage.Sets/src/mage/cards/b/BleakCovenVampires.java b/Mage.Sets/src/mage/cards/b/BleakCovenVampires.java index 416c2895888..dc19ec80b94 100644 --- a/Mage.Sets/src/mage/cards/b/BleakCovenVampires.java +++ b/Mage.Sets/src/mage/cards/b/BleakCovenVampires.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,9 +36,12 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.Target; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BlessedAlliance.java b/Mage.Sets/src/mage/cards/b/BlessedAlliance.java index bda99e75e57..51d9a6ff332 100644 --- a/Mage.Sets/src/mage/cards/b/BlessedAlliance.java +++ b/Mage.Sets/src/mage/cards/b/BlessedAlliance.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.Effect; @@ -46,6 +45,8 @@ import mage.filter.predicate.other.PlayerPredicate; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BlessedBreath.java b/Mage.Sets/src/mage/cards/b/BlessedBreath.java index 8f5c8904ac4..0c77595a449 100644 --- a/Mage.Sets/src/mage/cards/b/BlessedBreath.java +++ b/Mage.Sets/src/mage/cards/b/BlessedBreath.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.continuous.GainProtectionFromColorTargetEffect; import mage.abilities.keyword.SpliceOntoArcaneAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlessedOrator.java b/Mage.Sets/src/mage/cards/b/BlessedOrator.java index e2117ebf92b..208b184accd 100644 --- a/Mage.Sets/src/mage/cards/b/BlessedOrator.java +++ b/Mage.Sets/src/mage/cards/b/BlessedOrator.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author noxx (Angel of Jubilation), cbt33 diff --git a/Mage.Sets/src/mage/cards/b/BlessedReincarnation.java b/Mage.Sets/src/mage/cards/b/BlessedReincarnation.java index b4f3f4b2c7c..cb45a8cb370 100644 --- a/Mage.Sets/src/mage/cards/b/BlessedReincarnation.java +++ b/Mage.Sets/src/mage/cards/b/BlessedReincarnation.java @@ -27,17 +27,11 @@ */ package mage.cards.b; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.keyword.ReboundAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; @@ -50,6 +44,9 @@ import mage.players.Library; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.Set; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BlessedSpirits.java b/Mage.Sets/src/mage/cards/b/BlessedSpirits.java index 45bd825eb81..349065cdb27 100644 --- a/Mage.Sets/src/mage/cards/b/BlessedSpirits.java +++ b/Mage.Sets/src/mage/cards/b/BlessedSpirits.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -39,6 +38,8 @@ import mage.counters.CounterType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BlessedWind.java b/Mage.Sets/src/mage/cards/b/BlessedWind.java index db252890d15..816dcae5299 100644 --- a/Mage.Sets/src/mage/cards/b/BlessedWind.java +++ b/Mage.Sets/src/mage/cards/b/BlessedWind.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.SetPlayerLifeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/b/BlessedWine.java b/Mage.Sets/src/mage/cards/b/BlessedWine.java index d7eb38727f2..ff38fd414a4 100644 --- a/Mage.Sets/src/mage/cards/b/BlessedWine.java +++ b/Mage.Sets/src/mage/cards/b/BlessedWine.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/Blessing.java b/Mage.Sets/src/mage/cards/b/Blessing.java index eaf36613bce..2beb2af7b01 100644 --- a/Mage.Sets/src/mage/cards/b/Blessing.java +++ b/Mage.Sets/src/mage/cards/b/Blessing.java @@ -27,12 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; @@ -41,9 +35,12 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/b/BlessingOfLeeches.java b/Mage.Sets/src/mage/cards/b/BlessingOfLeeches.java index 95003e3c179..57f266c709b 100644 --- a/Mage.Sets/src/mage/cards/b/BlessingOfLeeches.java +++ b/Mage.Sets/src/mage/cards/b/BlessingOfLeeches.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -42,9 +39,12 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlessingOfTheNephilim.java b/Mage.Sets/src/mage/cards/b/BlessingOfTheNephilim.java index f51cfedf418..4476690d685 100644 --- a/Mage.Sets/src/mage/cards/b/BlessingOfTheNephilim.java +++ b/Mage.Sets/src/mage/cards/b/BlessingOfTheNephilim.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -38,12 +36,17 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/b/BlessingsOfNature.java b/Mage.Sets/src/mage/cards/b/BlessingsOfNature.java index 1ead36fabba..cbe93b7c878 100644 --- a/Mage.Sets/src/mage/cards/b/BlessingsOfNature.java +++ b/Mage.Sets/src/mage/cards/b/BlessingsOfNature.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.counter.DistributeCountersEffect; import mage.abilities.keyword.MiracleAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanentAmount; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/Blight.java b/Mage.Sets/src/mage/cards/b/Blight.java index 02539205c52..fa515041b7f 100644 --- a/Mage.Sets/src/mage/cards/b/Blight.java +++ b/Mage.Sets/src/mage/cards/b/Blight.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BecomesTappedAttachedTriggeredAbility; import mage.abilities.effects.common.AttachEffect; @@ -40,6 +39,8 @@ import mage.constants.Outcome; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BlightHerder.java b/Mage.Sets/src/mage/cards/b/BlightHerder.java index 7d727400bb7..56b797e4b4d 100644 --- a/Mage.Sets/src/mage/cards/b/BlightHerder.java +++ b/Mage.Sets/src/mage/cards/b/BlightHerder.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -49,6 +48,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInExile; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlightMamba.java b/Mage.Sets/src/mage/cards/b/BlightMamba.java index 4132fff113a..e0b28ab7d45 100644 --- a/Mage.Sets/src/mage/cards/b/BlightMamba.java +++ b/Mage.Sets/src/mage/cards/b/BlightMamba.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +35,10 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlightSickle.java b/Mage.Sets/src/mage/cards/b/BlightSickle.java index ef93a18eb4e..67a42d25219 100644 --- a/Mage.Sets/src/mage/cards/b/BlightSickle.java +++ b/Mage.Sets/src/mage/cards/b/BlightSickle.java @@ -27,11 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.BoostEquippedEffect; @@ -40,6 +35,12 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.WitherAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/Blightcaster.java b/Mage.Sets/src/mage/cards/b/Blightcaster.java index bcea513aeb3..6cb6bab4141 100644 --- a/Mage.Sets/src/mage/cards/b/Blightcaster.java +++ b/Mage.Sets/src/mage/cards/b/Blightcaster.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -41,6 +40,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlightedAgent.java b/Mage.Sets/src/mage/cards/b/BlightedAgent.java index f7b6e4bfb6e..cd2a1f46b2d 100644 --- a/Mage.Sets/src/mage/cards/b/BlightedAgent.java +++ b/Mage.Sets/src/mage/cards/b/BlightedAgent.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; -import mage.abilities.keyword.InfectAbility; import mage.abilities.keyword.CantBeBlockedSourceAbility; +import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlightedBat.java b/Mage.Sets/src/mage/cards/b/BlightedBat.java new file mode 100644 index 00000000000..92255eb84e5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BlightedBat.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.HasteAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +/** + * + * @author fireshoes + */ +public class BlightedBat extends CardImpl { + + public BlightedBat(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); + + this.subtype.add("Zombie"); + this.subtype.add("Bat"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // {1}: Blighted Bat gains haste until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.EndOfTurn), new GenericManaCost(1))); + } + + public BlightedBat(final BlightedBat card) { + super(card); + } + + @Override + public BlightedBat copy() { + return new BlightedBat(this); + } +} diff --git a/Mage.Sets/src/mage/cards/b/BlightedCataract.java b/Mage.Sets/src/mage/cards/b/BlightedCataract.java index a74b147b86a..2f6e52f994e 100644 --- a/Mage.Sets/src/mage/cards/b/BlightedCataract.java +++ b/Mage.Sets/src/mage/cards/b/BlightedCataract.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BlightedFen.java b/Mage.Sets/src/mage/cards/b/BlightedFen.java index 4e7d4625eee..586f3ddc924 100644 --- a/Mage.Sets/src/mage/cards/b/BlightedFen.java +++ b/Mage.Sets/src/mage/cards/b/BlightedFen.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlightedGorge.java b/Mage.Sets/src/mage/cards/b/BlightedGorge.java index dc371a11046..c20cc6ba063 100644 --- a/Mage.Sets/src/mage/cards/b/BlightedGorge.java +++ b/Mage.Sets/src/mage/cards/b/BlightedGorge.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlightedShaman.java b/Mage.Sets/src/mage/cards/b/BlightedShaman.java index 7c2cef93d53..903d30ec102 100644 --- a/Mage.Sets/src/mage/cards/b/BlightedShaman.java +++ b/Mage.Sets/src/mage/cards/b/BlightedShaman.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/b/BlightedSteppe.java b/Mage.Sets/src/mage/cards/b/BlightedSteppe.java index 0e4f986474d..ad6d1714485 100644 --- a/Mage.Sets/src/mage/cards/b/BlightedSteppe.java +++ b/Mage.Sets/src/mage/cards/b/BlightedSteppe.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlightedWoodland.java b/Mage.Sets/src/mage/cards/b/BlightedWoodland.java index 3579049c405..d32db14d33e 100644 --- a/Mage.Sets/src/mage/cards/b/BlightedWoodland.java +++ b/Mage.Sets/src/mage/cards/b/BlightedWoodland.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Blightning.java b/Mage.Sets/src/mage/cards/b/Blightning.java index 70946304124..a5e5878d9f8 100644 --- a/Mage.Sets/src/mage/cards/b/Blightning.java +++ b/Mage.Sets/src/mage/cards/b/Blightning.java @@ -28,7 +28,6 @@ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/BlightsoilDruid.java b/Mage.Sets/src/mage/cards/b/BlightsoilDruid.java index b84a7278fd8..df59065ab10 100644 --- a/Mage.Sets/src/mage/cards/b/BlightsoilDruid.java +++ b/Mage.Sets/src/mage/cards/b/BlightsoilDruid.java @@ -27,15 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.costs.common.PayLifeCost; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/Blightspeaker.java b/Mage.Sets/src/mage/cards/b/Blightspeaker.java index f9f2f35e668..6700fcacc65 100644 --- a/Mage.Sets/src/mage/cards/b/Blightspeaker.java +++ b/Mage.Sets/src/mage/cards/b/Blightspeaker.java @@ -27,9 +27,9 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,13 +39,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPlayer; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,7 +57,7 @@ public class Blightspeaker extends CardImpl { static { filter.add(new SubtypePredicate("Rebel")); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public Blightspeaker(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/b/BlightsteelColossus.java b/Mage.Sets/src/mage/cards/b/BlightsteelColossus.java index e1594a8f89e..11c5338d5ec 100644 --- a/Mage.Sets/src/mage/cards/b/BlightsteelColossus.java +++ b/Mage.Sets/src/mage/cards/b/BlightsteelColossus.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.PutIntoGraveFromAnywhereSourceAbility; import mage.abilities.effects.common.RevealAndShuffleIntoLibrarySourceEffect; @@ -39,6 +36,9 @@ import mage.abilities.keyword.InfectAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/Blightwidow.java b/Mage.Sets/src/mage/cards/b/Blightwidow.java index 94d9cec9eb0..0b7466f6625 100644 --- a/Mage.Sets/src/mage/cards/b/Blightwidow.java +++ b/Mage.Sets/src/mage/cards/b/Blightwidow.java @@ -28,13 +28,14 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.InfectAbility; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlindCreeper.java b/Mage.Sets/src/mage/cards/b/BlindCreeper.java index cf8d9579cae..9103ab3922d 100644 --- a/Mage.Sets/src/mage/cards/b/BlindCreeper.java +++ b/Mage.Sets/src/mage/cards/b/BlindCreeper.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BlindHunter.java b/Mage.Sets/src/mage/cards/b/BlindHunter.java index 91c739a4ed4..6d379f57ca3 100644 --- a/Mage.Sets/src/mage/cards/b/BlindHunter.java +++ b/Mage.Sets/src/mage/cards/b/BlindHunter.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.GainLifeEffect; @@ -37,8 +35,11 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HauntAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlindObedience.java b/Mage.Sets/src/mage/cards/b/BlindObedience.java index ee2b8547c3f..19936856954 100644 --- a/Mage.Sets/src/mage/cards/b/BlindObedience.java +++ b/Mage.Sets/src/mage/cards/b/BlindObedience.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; @@ -43,6 +42,8 @@ import mage.game.events.EntersTheBattlefieldEvent; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlindPhantasm.java b/Mage.Sets/src/mage/cards/b/BlindPhantasm.java index 19f7bef014f..96aca01c7e8 100644 --- a/Mage.Sets/src/mage/cards/b/BlindPhantasm.java +++ b/Mage.Sets/src/mage/cards/b/BlindPhantasm.java @@ -27,11 +27,12 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlindSeer.java b/Mage.Sets/src/mage/cards/b/BlindSeer.java index 30762c3f2d3..35977c3a4fd 100644 --- a/Mage.Sets/src/mage/cards/b/BlindSeer.java +++ b/Mage.Sets/src/mage/cards/b/BlindSeer.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +36,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetSpellOrPermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -49,7 +51,7 @@ public class BlindSeer extends CardImpl { public BlindSeer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/b/BlindSpotGiant.java b/Mage.Sets/src/mage/cards/b/BlindSpotGiant.java index 34c8aabe45a..63f9bf99091 100644 --- a/Mage.Sets/src/mage/cards/b/BlindSpotGiant.java +++ b/Mage.Sets/src/mage/cards/b/BlindSpotGiant.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlindWithAnger.java b/Mage.Sets/src/mage/cards/b/BlindWithAnger.java index 782a032e225..4c1134ea122 100644 --- a/Mage.Sets/src/mage/cards/b/BlindWithAnger.java +++ b/Mage.Sets/src/mage/cards/b/BlindWithAnger.java @@ -28,22 +28,23 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ @@ -52,7 +53,7 @@ public class BlindWithAnger extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nonlegendary creature"); static { - filter.add(Predicates.not(new SupertypePredicate("Legendary"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.LEGENDARY))); } public BlindWithAnger(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/b/BlindWorship.java b/Mage.Sets/src/mage/cards/b/BlindWorship.java index 567e38f8e53..a9c2d49997f 100644 --- a/Mage.Sets/src/mage/cards/b/BlindWorship.java +++ b/Mage.Sets/src/mage/cards/b/BlindWorship.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,15 +39,13 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/b/BlindZealot.java b/Mage.Sets/src/mage/cards/b/BlindZealot.java index 74d7892455c..f839c176c02 100644 --- a/Mage.Sets/src/mage/cards/b/BlindZealot.java +++ b/Mage.Sets/src/mage/cards/b/BlindZealot.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -48,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BlindingAngel.java b/Mage.Sets/src/mage/cards/b/BlindingAngel.java index c11b7d9193f..957d371754b 100644 --- a/Mage.Sets/src/mage/cards/b/BlindingAngel.java +++ b/Mage.Sets/src/mage/cards/b/BlindingAngel.java @@ -27,15 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; +import mage.abilities.effects.common.SkipNextCombatEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.abilities.effects.common.SkipNextCombatEffect; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlindingBeam.java b/Mage.Sets/src/mage/cards/b/BlindingBeam.java index 549a575b482..a6024c756c6 100644 --- a/Mage.Sets/src/mage/cards/b/BlindingBeam.java +++ b/Mage.Sets/src/mage/cards/b/BlindingBeam.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; @@ -50,6 +49,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlindingDrone.java b/Mage.Sets/src/mage/cards/b/BlindingDrone.java index 675dabc7cd4..c3a59831f3b 100644 --- a/Mage.Sets/src/mage/cards/b/BlindingDrone.java +++ b/Mage.Sets/src/mage/cards/b/BlindingDrone.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BlindingFlare.java b/Mage.Sets/src/mage/cards/b/BlindingFlare.java index 22f4db052eb..e40a88a9a23 100644 --- a/Mage.Sets/src/mage/cards/b/BlindingFlare.java +++ b/Mage.Sets/src/mage/cards/b/BlindingFlare.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.abilityword.StriveAbility; import mage.abilities.effects.common.combat.CantBlockTargetEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlindingLight.java b/Mage.Sets/src/mage/cards/b/BlindingLight.java index 9c128d2f4a4..886098c501a 100644 --- a/Mage.Sets/src/mage/cards/b/BlindingLight.java +++ b/Mage.Sets/src/mage/cards/b/BlindingLight.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.TapAllEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BlindingMage.java b/Mage.Sets/src/mage/cards/b/BlindingMage.java index c82f21cfb87..016b1138eb5 100644 --- a/Mage.Sets/src/mage/cards/b/BlindingMage.java +++ b/Mage.Sets/src/mage/cards/b/BlindingMage.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,8 +36,12 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/BlindingPowder.java b/Mage.Sets/src/mage/cards/b/BlindingPowder.java index 67155c4a7e9..f631066d9d8 100644 --- a/Mage.Sets/src/mage/cards/b/BlindingPowder.java +++ b/Mage.Sets/src/mage/cards/b/BlindingPowder.java @@ -27,10 +27,10 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.UnattachCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.Effect; import mage.abilities.effects.common.PreventCombatDamageToSourceEffect; @@ -38,12 +38,9 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; -import mage.abilities.costs.common.UnattachCost; +import mage.constants.*; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlindingSouleater.java b/Mage.Sets/src/mage/cards/b/BlindingSouleater.java index 5cd65289f26..43ddacdc4cf 100644 --- a/Mage.Sets/src/mage/cards/b/BlindingSouleater.java +++ b/Mage.Sets/src/mage/cards/b/BlindingSouleater.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,6 +39,8 @@ import mage.constants.ColoredManaSymbol; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BlindingSpray.java b/Mage.Sets/src/mage/cards/b/BlindingSpray.java index e3b2800025f..7b4c73a9870 100644 --- a/Mage.Sets/src/mage/cards/b/BlindingSpray.java +++ b/Mage.Sets/src/mage/cards/b/BlindingSpray.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlinkingSpirit.java b/Mage.Sets/src/mage/cards/b/BlinkingSpirit.java index f1540b7bfb9..f580a2378c8 100644 --- a/Mage.Sets/src/mage/cards/b/BlinkingSpirit.java +++ b/Mage.Sets/src/mage/cards/b/BlinkingSpirit.java @@ -27,17 +27,17 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BlinkmothInfusion.java b/Mage.Sets/src/mage/cards/b/BlinkmothInfusion.java index 705254a6698..dcd2421c1cb 100644 --- a/Mage.Sets/src/mage/cards/b/BlinkmothInfusion.java +++ b/Mage.Sets/src/mage/cards/b/BlinkmothInfusion.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.AffinityForArtifactsAbility; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BlinkmothNexus.java b/Mage.Sets/src/mage/cards/b/BlinkmothNexus.java index 6f40bd5b166..3a386d36f22 100644 --- a/Mage.Sets/src/mage/cards/b/BlinkmothNexus.java +++ b/Mage.Sets/src/mage/cards/b/BlinkmothNexus.java @@ -28,10 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,12 +39,16 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.Token; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BlinkmothUrn.java b/Mage.Sets/src/mage/cards/b/BlinkmothUrn.java index 8113d514b21..c81b11b1c19 100644 --- a/Mage.Sets/src/mage/cards/b/BlinkmothUrn.java +++ b/Mage.Sets/src/mage/cards/b/BlinkmothUrn.java @@ -5,7 +5,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.BeginningOfPreCombatMainTriggeredAbility; @@ -21,6 +20,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author nickmyers diff --git a/Mage.Sets/src/mage/cards/b/BlinkmothWell.java b/Mage.Sets/src/mage/cards/b/BlinkmothWell.java index 15403306e87..cfe01f43cb3 100644 --- a/Mage.Sets/src/mage/cards/b/BlinkmothWell.java +++ b/Mage.Sets/src/mage/cards/b/BlinkmothWell.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -43,6 +42,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BlisterBeetle.java b/Mage.Sets/src/mage/cards/b/BlisterBeetle.java index b864ef5f800..a2e44249473 100644 --- a/Mage.Sets/src/mage/cards/b/BlisterBeetle.java +++ b/Mage.Sets/src/mage/cards/b/BlisterBeetle.java @@ -27,17 +27,18 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BlistercoilWeird.java b/Mage.Sets/src/mage/cards/b/BlistercoilWeird.java index ffdf2220ef3..93ec6c1ad16 100644 --- a/Mage.Sets/src/mage/cards/b/BlistercoilWeird.java +++ b/Mage.Sets/src/mage/cards/b/BlistercoilWeird.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -37,11 +34,14 @@ import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * @author LevelX2 */ diff --git a/Mage.Sets/src/mage/cards/b/Blistergrub.java b/Mage.Sets/src/mage/cards/b/Blistergrub.java index e2482efdc0b..5dde249652f 100644 --- a/Mage.Sets/src/mage/cards/b/Blistergrub.java +++ b/Mage.Sets/src/mage/cards/b/Blistergrub.java @@ -28,15 +28,15 @@ package mage.cards.b; -import java.util.UUID; - -import mage.abilities.effects.common.LoseLifeOpponentsEffect; -import mage.abilities.keyword.SwampwalkAbility; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.LoseLifeOpponentsEffect; +import mage.abilities.keyword.SwampwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlisteringBarrier.java b/Mage.Sets/src/mage/cards/b/BlisteringBarrier.java index 37601d4462a..baf5296896f 100644 --- a/Mage.Sets/src/mage/cards/b/BlisteringBarrier.java +++ b/Mage.Sets/src/mage/cards/b/BlisteringBarrier.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlisteringDieflyn.java b/Mage.Sets/src/mage/cards/b/BlisteringDieflyn.java index e9301d9e155..2a5feb0a49b 100644 --- a/Mage.Sets/src/mage/cards/b/BlisteringDieflyn.java +++ b/Mage.Sets/src/mage/cards/b/BlisteringDieflyn.java @@ -27,10 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +34,11 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlisteringFirecat.java b/Mage.Sets/src/mage/cards/b/BlisteringFirecat.java index ad67fbe332c..432498831d2 100644 --- a/Mage.Sets/src/mage/cards/b/BlisteringFirecat.java +++ b/Mage.Sets/src/mage/cards/b/BlisteringFirecat.java @@ -27,19 +27,20 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.OnEventTriggeredAbility; -import mage.abilities.keyword.TrampleAbility; -import mage.abilities.keyword.HasteAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.SacrificeSourceEffect; +import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.MorphAbility; +import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Blisterpod.java b/Mage.Sets/src/mage/cards/b/Blisterpod.java index eaae5b653fa..d0bca49b417 100644 --- a/Mage.Sets/src/mage/cards/b/Blisterpod.java +++ b/Mage.Sets/src/mage/cards/b/Blisterpod.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.Effect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.EldraziScionToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlisterstickShaman.java b/Mage.Sets/src/mage/cards/b/BlisterstickShaman.java index 02bcbefa7e6..174fe948b4d 100644 --- a/Mage.Sets/src/mage/cards/b/BlisterstickShaman.java +++ b/Mage.Sets/src/mage/cards/b/BlisterstickShaman.java @@ -28,16 +28,17 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BlitzHellion.java b/Mage.Sets/src/mage/cards/b/BlitzHellion.java index 970da3de244..eaa24b035a3 100644 --- a/Mage.Sets/src/mage/cards/b/BlitzHellion.java +++ b/Mage.Sets/src/mage/cards/b/BlitzHellion.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.MageInt; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.effects.Effect; @@ -37,7 +35,11 @@ import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlizzardElemental.java b/Mage.Sets/src/mage/cards/b/BlizzardElemental.java index 03bd03e4248..9b83bb50e14 100644 --- a/Mage.Sets/src/mage/cards/b/BlizzardElemental.java +++ b/Mage.Sets/src/mage/cards/b/BlizzardElemental.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +34,10 @@ import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlizzardSpecter.java b/Mage.Sets/src/mage/cards/b/BlizzardSpecter.java index 8e9c2fc4b11..2142baf4264 100644 --- a/Mage.Sets/src/mage/cards/b/BlizzardSpecter.java +++ b/Mage.Sets/src/mage/cards/b/BlizzardSpecter.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -39,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.game.Game; @@ -47,6 +47,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author anonymous @@ -55,7 +57,7 @@ public class BlizzardSpecter extends CardImpl { public BlizzardSpecter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{B}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Specter"); this.power = new MageInt(2); this.toughness = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/b/BloatedToad.java b/Mage.Sets/src/mage/cards/b/BloatedToad.java index 49cb0db1785..3c8c0e77c30 100644 --- a/Mage.Sets/src/mage/cards/b/BloatedToad.java +++ b/Mage.Sets/src/mage/cards/b/BloatedToad.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.costs.mana.ManaCostsImpl; @@ -36,6 +34,9 @@ import mage.abilities.keyword.CyclingAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BlockadeRunner.java b/Mage.Sets/src/mage/cards/b/BlockadeRunner.java index 60b6fd0c002..c929b1191af 100644 --- a/Mage.Sets/src/mage/cards/b/BlockadeRunner.java +++ b/Mage.Sets/src/mage/cards/b/BlockadeRunner.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author djbrez diff --git a/Mage.Sets/src/mage/cards/b/Blockbuster.java b/Mage.Sets/src/mage/cards/b/Blockbuster.java index 5023ecbfdf6..f688ba172a7 100644 --- a/Mage.Sets/src/mage/cards/b/Blockbuster.java +++ b/Mage.Sets/src/mage/cards/b/Blockbuster.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.TappedPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BloodArtist.java b/Mage.Sets/src/mage/cards/b/BloodArtist.java index 4b9f1ed0c22..e852e03fd5f 100644 --- a/Mage.Sets/src/mage/cards/b/BloodArtist.java +++ b/Mage.Sets/src/mage/cards/b/BloodArtist.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; @@ -35,6 +34,7 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.Target; import mage.target.TargetPlayer; diff --git a/Mage.Sets/src/mage/cards/b/BloodBairn.java b/Mage.Sets/src/mage/cards/b/BloodBairn.java index e3cc66a8b33..a9a14a02c80 100644 --- a/Mage.Sets/src/mage/cards/b/BloodBairn.java +++ b/Mage.Sets/src/mage/cards/b/BloodBairn.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -41,6 +40,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodBaronOfVizkopa.java b/Mage.Sets/src/mage/cards/b/BloodBaronOfVizkopa.java index 014b9ea2365..e3456d7155d 100644 --- a/Mage.Sets/src/mage/cards/b/BloodBaronOfVizkopa.java +++ b/Mage.Sets/src/mage/cards/b/BloodBaronOfVizkopa.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -38,16 +37,13 @@ import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + public class BloodBaronOfVizkopa extends CardImpl { public BloodBaronOfVizkopa(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/b/BloodCelebrant.java b/Mage.Sets/src/mage/cards/b/BloodCelebrant.java index 51ab6d63ed4..0e70752ddd5 100644 --- a/Mage.Sets/src/mage/cards/b/BloodCelebrant.java +++ b/Mage.Sets/src/mage/cards/b/BloodCelebrant.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.costs.common.PayLifeCost; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.ColoredManaSymbol; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BloodChinFanatic.java b/Mage.Sets/src/mage/cards/b/BloodChinFanatic.java index 782ffcc778c..be504b13a7d 100644 --- a/Mage.Sets/src/mage/cards/b/BloodChinFanatic.java +++ b/Mage.Sets/src/mage/cards/b/BloodChinFanatic.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -47,6 +46,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BloodChinRager.java b/Mage.Sets/src/mage/cards/b/BloodChinRager.java index 3731a5e4f17..51e0c08b7cd 100644 --- a/Mage.Sets/src/mage/cards/b/BloodChinRager.java +++ b/Mage.Sets/src/mage/cards/b/BloodChinRager.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -40,6 +39,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodClock.java b/Mage.Sets/src/mage/cards/b/BloodClock.java index 4dbc36dfe79..38850779080 100644 --- a/Mage.Sets/src/mage/cards/b/BloodClock.java +++ b/Mage.Sets/src/mage/cards/b/BloodClock.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -43,6 +42,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodCrypt.java b/Mage.Sets/src/mage/cards/b/BloodCrypt.java index 7fa0064e640..98470fd2c2e 100644 --- a/Mage.Sets/src/mage/cards/b/BloodCrypt.java +++ b/Mage.Sets/src/mage/cards/b/BloodCrypt.java @@ -28,8 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.costs.common.PayLifeCost; import mage.abilities.effects.common.TapSourceUnlessPaysEffect; @@ -37,6 +35,9 @@ import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BloodCultist.java b/Mage.Sets/src/mage/cards/b/BloodCultist.java index 40964cc35ea..11a80c23e7b 100644 --- a/Mage.Sets/src/mage/cards/b/BloodCultist.java +++ b/Mage.Sets/src/mage/cards/b/BloodCultist.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealtDamageAndDiedTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BloodCursedKnight.java b/Mage.Sets/src/mage/cards/b/BloodCursedKnight.java index ed5d4c25b57..ac2a19aec85 100644 --- a/Mage.Sets/src/mage/cards/b/BloodCursedKnight.java +++ b/Mage.Sets/src/mage/cards/b/BloodCursedKnight.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledEnchantmentPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BloodFeud.java b/Mage.Sets/src/mage/cards/b/BloodFeud.java index 565f0717938..d9b5c778154 100644 --- a/Mage.Sets/src/mage/cards/b/BloodFeud.java +++ b/Mage.Sets/src/mage/cards/b/BloodFeud.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.FightTargetsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AnotherTargetPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author intimidatingant diff --git a/Mage.Sets/src/mage/cards/b/BloodFrenzy.java b/Mage.Sets/src/mage/cards/b/BloodFrenzy.java index 68b0b3c1b85..a756b1e89b3 100644 --- a/Mage.Sets/src/mage/cards/b/BloodFrenzy.java +++ b/Mage.Sets/src/mage/cards/b/BloodFrenzy.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; @@ -35,16 +34,13 @@ import mage.abilities.effects.common.DestroyTargetAtBeginningOfNextEndStepEffect import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.PhaseStep; -import mage.constants.TurnPhase; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BloodFunnel.java b/Mage.Sets/src/mage/cards/b/BloodFunnel.java index 6118ef717e4..61699ab22ab 100644 --- a/Mage.Sets/src/mage/cards/b/BloodFunnel.java +++ b/Mage.Sets/src/mage/cards/b/BloodFunnel.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -44,6 +43,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BloodHost.java b/Mage.Sets/src/mage/cards/b/BloodHost.java index 208acb1f6b7..2b6bf81db6d 100644 --- a/Mage.Sets/src/mage/cards/b/BloodHost.java +++ b/Mage.Sets/src/mage/cards/b/BloodHost.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BloodKnight.java b/Mage.Sets/src/mage/cards/b/BloodKnight.java index e13169e2f86..ddd8a3433d1 100644 --- a/Mage.Sets/src/mage/cards/b/BloodKnight.java +++ b/Mage.Sets/src/mage/cards/b/BloodKnight.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.FirstStrikeAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/b/BloodLust.java b/Mage.Sets/src/mage/cards/b/BloodLust.java index 835f436c065..90ebfd4f504 100644 --- a/Mage.Sets/src/mage/cards/b/BloodLust.java +++ b/Mage.Sets/src/mage/cards/b/BloodLust.java @@ -27,8 +27,8 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.condition.Condition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.dynamicvalue.DynamicValue; @@ -40,7 +40,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; @@ -48,6 +47,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -57,7 +58,7 @@ public class BloodLust extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { - filter.add(new ToughnessPredicate(Filter.ComparisonType.GreaterThan, 4)); + filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 4)); } public BloodLust(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/b/BloodMist.java b/Mage.Sets/src/mage/cards/b/BloodMist.java index 783e7f48e70..b516bf51bf6 100644 --- a/Mage.Sets/src/mage/cards/b/BloodMist.java +++ b/Mage.Sets/src/mage/cards/b/BloodMist.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.TargetController; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodMoon.java b/Mage.Sets/src/mage/cards/b/BloodMoon.java index 6088112e971..1893837119a 100644 --- a/Mage.Sets/src/mage/cards/b/BloodMoon.java +++ b/Mage.Sets/src/mage/cards/b/BloodMoon.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; @@ -35,18 +34,15 @@ import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.repository.CardRepository; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -75,7 +71,7 @@ class BloodMoonEffect extends ContinuousEffectImpl { private static final FilterLandPermanent filter = new FilterLandPermanent(); static { - filter.add(Predicates.not(new SupertypePredicate("Basic"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); } BloodMoonEffect() { diff --git a/Mage.Sets/src/mage/cards/b/BloodOgre.java b/Mage.Sets/src/mage/cards/b/BloodOgre.java index 9712a8e04d3..b4a9d84967c 100644 --- a/Mage.Sets/src/mage/cards/b/BloodOgre.java +++ b/Mage.Sets/src/mage/cards/b/BloodOgre.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.BloodthirstAbility; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BloodPet.java b/Mage.Sets/src/mage/cards/b/BloodPet.java index 43b7120bd18..0132932d205 100644 --- a/Mage.Sets/src/mage/cards/b/BloodPet.java +++ b/Mage.Sets/src/mage/cards/b/BloodPet.java @@ -27,17 +27,17 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.Mana; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BloodReckoning.java b/Mage.Sets/src/mage/cards/b/BloodReckoning.java index 15360b62bda..3a81e67bf2f 100644 --- a/Mage.Sets/src/mage/cards/b/BloodReckoning.java +++ b/Mage.Sets/src/mage/cards/b/BloodReckoning.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.AttacksAllTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.LoseLifeTargetEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.SetTargetPointer; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BloodRites.java b/Mage.Sets/src/mage/cards/b/BloodRites.java index 8435c288b65..f8062a97df3 100644 --- a/Mage.Sets/src/mage/cards/b/BloodRites.java +++ b/Mage.Sets/src/mage/cards/b/BloodRites.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -38,10 +35,13 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BloodScrivener.java b/Mage.Sets/src/mage/cards/b/BloodScrivener.java index eb6256e7787..2486588eaf8 100644 --- a/Mage.Sets/src/mage/cards/b/BloodScrivener.java +++ b/Mage.Sets/src/mage/cards/b/BloodScrivener.java @@ -28,21 +28,22 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodSeeker.java b/Mage.Sets/src/mage/cards/b/BloodSeeker.java index 03b76a26625..5b7b35a5bc0 100644 --- a/Mage.Sets/src/mage/cards/b/BloodSeeker.java +++ b/Mage.Sets/src/mage/cards/b/BloodSeeker.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -43,6 +42,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BloodSpeaker.java b/Mage.Sets/src/mage/cards/b/BloodSpeaker.java index 1bfd7bce99f..57bc50da82b 100644 --- a/Mage.Sets/src/mage/cards/b/BloodSpeaker.java +++ b/Mage.Sets/src/mage/cards/b/BloodSpeaker.java @@ -28,10 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -41,12 +37,16 @@ import mage.abilities.effects.common.SacrificeSourceEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodTithe.java b/Mage.Sets/src/mage/cards/b/BloodTithe.java index 88d3237b9d3..bf8b86c39af 100644 --- a/Mage.Sets/src/mage/cards/b/BloodTithe.java +++ b/Mage.Sets/src/mage/cards/b/BloodTithe.java @@ -28,7 +28,6 @@ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/BloodTollHarpy.java b/Mage.Sets/src/mage/cards/b/BloodTollHarpy.java index eb069706ddd..f570678ce8e 100644 --- a/Mage.Sets/src/mage/cards/b/BloodTollHarpy.java +++ b/Mage.Sets/src/mage/cards/b/BloodTollHarpy.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.LoseLifeAllPlayersEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodTribute.java b/Mage.Sets/src/mage/cards/b/BloodTribute.java index 75e34cd69fd..f6130c8cfe5 100644 --- a/Mage.Sets/src/mage/cards/b/BloodTribute.java +++ b/Mage.Sets/src/mage/cards/b/BloodTribute.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.condition.common.KickedCondition; import mage.abilities.costs.common.TapTargetCost; @@ -39,6 +36,8 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -48,6 +47,8 @@ import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BloodTyrant.java b/Mage.Sets/src/mage/cards/b/BloodTyrant.java index effe6402bf9..dfa6e3c5dab 100644 --- a/Mage.Sets/src/mage/cards/b/BloodTyrant.java +++ b/Mage.Sets/src/mage/cards/b/BloodTyrant.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -49,6 +48,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BloodVassal.java b/Mage.Sets/src/mage/cards/b/BloodVassal.java index ef16ea0e6d0..ad0cc51902d 100644 --- a/Mage.Sets/src/mage/cards/b/BloodVassal.java +++ b/Mage.Sets/src/mage/cards/b/BloodVassal.java @@ -27,15 +27,16 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.Mana; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** diff --git a/Mage.Sets/src/mage/cards/b/BloodbondMarch.java b/Mage.Sets/src/mage/cards/b/BloodbondMarch.java index da7b086ba98..ee7d27b6f59 100644 --- a/Mage.Sets/src/mage/cards/b/BloodbondMarch.java +++ b/Mage.Sets/src/mage/cards/b/BloodbondMarch.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.effects.Effect; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.game.stack.Spell; import mage.players.Player; +import java.util.UUID; + /** * * @author JRHerlehy diff --git a/Mage.Sets/src/mage/cards/b/BloodbondVampire.java b/Mage.Sets/src/mage/cards/b/BloodbondVampire.java index 45bcc169f15..b3ede615f42 100644 --- a/Mage.Sets/src/mage/cards/b/BloodbondVampire.java +++ b/Mage.Sets/src/mage/cards/b/BloodbondVampire.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.GainLifeControllerTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodbraidElf.java b/Mage.Sets/src/mage/cards/b/BloodbraidElf.java index 7b74545377c..9be47ff59c7 100644 --- a/Mage.Sets/src/mage/cards/b/BloodbraidElf.java +++ b/Mage.Sets/src/mage/cards/b/BloodbraidElf.java @@ -28,13 +28,14 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.CascadeAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** diff --git a/Mage.Sets/src/mage/cards/b/Bloodbriar.java b/Mage.Sets/src/mage/cards/b/Bloodbriar.java index fa0f4175ebb..d73174c7403 100644 --- a/Mage.Sets/src/mage/cards/b/Bloodbriar.java +++ b/Mage.Sets/src/mage/cards/b/Bloodbriar.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SacrificeAllTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -40,6 +39,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodchiefAscension.java b/Mage.Sets/src/mage/cards/b/BloodchiefAscension.java index ba0828d2e2e..76f64835690 100644 --- a/Mage.Sets/src/mage/cards/b/BloodchiefAscension.java +++ b/Mage.Sets/src/mage/cards/b/BloodchiefAscension.java @@ -27,11 +27,10 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.PutCardIntoGraveFromAnywhereAllTriggeredAbility; -import mage.abilities.condition.Condition; import mage.abilities.condition.common.OpponentLostLifeCondition; import mage.abilities.condition.common.SourceHasCounterCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -47,6 +46,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.FilterCard; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,20 +55,20 @@ import mage.filter.FilterCard; public class BloodchiefAscension extends CardImpl { public BloodchiefAscension(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{B}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{B}"); // At the beginning of each end step, if an opponent lost 2 or more life this turn, you may put a quest counter on Bloodchief Ascension. (Damage causes loss of life.) this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.QUEST.createInstance(1), false), TargetController.ANY, - new OpponentLostLifeCondition(Condition.ComparisonType.GreaterThan, 1), + new OpponentLostLifeCondition(ComparisonType.MORE_THAN, 1), true)); // Whenever a card is put into an opponent's graveyard from anywhere, if Bloodchief Ascension has three or more quest counters on it, you may have that player lose 2 life. If you do, you gain 2 life. Ability ability = new ConditionalTriggeredAbility( new PutCardIntoGraveFromAnywhereAllTriggeredAbility( new LoseLifeTargetEffect(2), true, new FilterCard("a card"), TargetController.OPPONENT, SetTargetPointer.PLAYER), - new SourceHasCounterCondition(CounterType.QUEST, 3), + new SourceHasCounterCondition(CounterType.QUEST, 3, Integer.MAX_VALUE), "Whenever a card is put into an opponent's graveyard from anywhere, if {this} has three or more quest counters on it, you may have that player lose 2 life. If you do, you gain 2 life"); ability.addEffect(new GainLifeEffect(2)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/b/BloodcrazedGoblin.java b/Mage.Sets/src/mage/cards/b/BloodcrazedGoblin.java index 7267931ec74..c3afe951675 100644 --- a/Mage.Sets/src/mage/cards/b/BloodcrazedGoblin.java +++ b/Mage.Sets/src/mage/cards/b/BloodcrazedGoblin.java @@ -28,7 +28,6 @@ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.watchers.common.BloodthirstWatcher; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/BloodcrazedHoplite.java b/Mage.Sets/src/mage/cards/b/BloodcrazedHoplite.java index d14d4f2c11c..42c3a3cc299 100644 --- a/Mage.Sets/src/mage/cards/b/BloodcrazedHoplite.java +++ b/Mage.Sets/src/mage/cards/b/BloodcrazedHoplite.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -47,6 +46,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodcrazedNeonate.java b/Mage.Sets/src/mage/cards/b/BloodcrazedNeonate.java index a86c6baa6b7..509cd1c3f87 100644 --- a/Mage.Sets/src/mage/cards/b/BloodcrazedNeonate.java +++ b/Mage.Sets/src/mage/cards/b/BloodcrazedNeonate.java @@ -27,16 +27,17 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/Bloodcurdler.java b/Mage.Sets/src/mage/cards/b/Bloodcurdler.java index 5ac9f33270d..1d29da4a34a 100644 --- a/Mage.Sets/src/mage/cards/b/Bloodcurdler.java +++ b/Mage.Sets/src/mage/cards/b/Bloodcurdler.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -44,11 +43,9 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AbilityWord; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BloodcurdlingScream.java b/Mage.Sets/src/mage/cards/b/BloodcurdlingScream.java index e8bd1f841a5..1fa46759a23 100644 --- a/Mage.Sets/src/mage/cards/b/BloodcurdlingScream.java +++ b/Mage.Sets/src/mage/cards/b/BloodcurdlingScream.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.dynamicvalue.common.ExileFromHandCostCardConvertedMana; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BloodfellCaves.java b/Mage.Sets/src/mage/cards/b/BloodfellCaves.java index 6f6d9040550..e430f3b066f 100644 --- a/Mage.Sets/src/mage/cards/b/BloodfellCaves.java +++ b/Mage.Sets/src/mage/cards/b/BloodfellCaves.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodfireColossus.java b/Mage.Sets/src/mage/cards/b/BloodfireColossus.java index 98639ae8fac..e8ba045fcdd 100644 --- a/Mage.Sets/src/mage/cards/b/BloodfireColossus.java +++ b/Mage.Sets/src/mage/cards/b/BloodfireColossus.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,9 +36,12 @@ import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.DamageEverythingEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BloodfireDwarf.java b/Mage.Sets/src/mage/cards/b/BloodfireDwarf.java index bb9c79453e5..2bc46a0882d 100644 --- a/Mage.Sets/src/mage/cards/b/BloodfireDwarf.java +++ b/Mage.Sets/src/mage/cards/b/BloodfireDwarf.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,12 +37,15 @@ import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BloodfireEnforcers.java b/Mage.Sets/src/mage/cards/b/BloodfireEnforcers.java index f173eb7def5..2446a8f7c4d 100644 --- a/Mage.Sets/src/mage/cards/b/BloodfireEnforcers.java +++ b/Mage.Sets/src/mage/cards/b/BloodfireEnforcers.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -46,6 +45,8 @@ import mage.filter.common.FilterInstantOrSorceryCard; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodfireExpert.java b/Mage.Sets/src/mage/cards/b/BloodfireExpert.java index ed976bb029f..392d5114efb 100644 --- a/Mage.Sets/src/mage/cards/b/BloodfireExpert.java +++ b/Mage.Sets/src/mage/cards/b/BloodfireExpert.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.ProwessAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodfireKavu.java b/Mage.Sets/src/mage/cards/b/BloodfireKavu.java index fc866434949..0fa6e79f4c1 100644 --- a/Mage.Sets/src/mage/cards/b/BloodfireKavu.java +++ b/Mage.Sets/src/mage/cards/b/BloodfireKavu.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,10 +36,13 @@ import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.DamageAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BloodfireMentor.java b/Mage.Sets/src/mage/cards/b/BloodfireMentor.java index f54eb614cf3..b0780f761d9 100644 --- a/Mage.Sets/src/mage/cards/b/BloodfireMentor.java +++ b/Mage.Sets/src/mage/cards/b/BloodfireMentor.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodflowConnoisseur.java b/Mage.Sets/src/mage/cards/b/BloodflowConnoisseur.java index 0a81caa3522..093cc4183db 100644 --- a/Mage.Sets/src/mage/cards/b/BloodflowConnoisseur.java +++ b/Mage.Sets/src/mage/cards/b/BloodflowConnoisseur.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -36,6 +35,7 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetControlledCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/b/BloodfrayGiant.java b/Mage.Sets/src/mage/cards/b/BloodfrayGiant.java index 3ae86662f82..6aa2d2d4506 100644 --- a/Mage.Sets/src/mage/cards/b/BloodfrayGiant.java +++ b/Mage.Sets/src/mage/cards/b/BloodfrayGiant.java @@ -26,14 +26,15 @@ * or implied, of BetaSteward_at_googlemail.com. */ package mage.cards.b; - -import java.util.UUID; -import mage.constants.CardType; + import mage.MageInt; import mage.abilities.keyword.TrampleAbility; import mage.abilities.keyword.UnleashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/Bloodghast.java b/Mage.Sets/src/mage/cards/b/Bloodghast.java index dd4e294a0b7..f0553026120 100644 --- a/Mage.Sets/src/mage/cards/b/Bloodghast.java +++ b/Mage.Sets/src/mage/cards/b/Bloodghast.java @@ -27,15 +27,11 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.CantBlockAbility; import mage.abilities.common.LandfallAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.condition.common.TenOrLessLifeCondition; +import mage.abilities.condition.common.XorLessLifeCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect; @@ -43,6 +39,11 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * @@ -63,7 +64,7 @@ public class Bloodghast extends CardImpl { // Bloodghast has haste as long as an opponent has 10 or less life. ContinuousEffect effect = new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.WhileOnBattlefield); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(effect, - new TenOrLessLifeCondition(TenOrLessLifeCondition.CheckType.AN_OPPONENT), + new XorLessLifeCondition(XorLessLifeCondition.CheckType.AN_OPPONENT, 10), "Bloodghast has haste as long as an opponent has 10 or less life"))); // Landfall — Whenever a land enters the battlefield under your control, you may return Bloodghast from your graveyard to the battlefield. this.addAbility(new LandfallAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(), true)); diff --git a/Mage.Sets/src/mage/cards/b/BloodgiftDemon.java b/Mage.Sets/src/mage/cards/b/BloodgiftDemon.java index a79f1fafb88..d30d7d28fc2 100644 --- a/Mage.Sets/src/mage/cards/b/BloodgiftDemon.java +++ b/Mage.Sets/src/mage/cards/b/BloodgiftDemon.java @@ -27,20 +27,20 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.OnEventTriggeredAbility; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.events.GameEvent.EventType; import mage.target.TargetPlayer; import java.util.UUID; -import mage.abilities.effects.Effect; /** * diff --git a/Mage.Sets/src/mage/cards/b/BloodhallOoze.java b/Mage.Sets/src/mage/cards/b/BloodhallOoze.java index 77b238ff0f3..011fab78d18 100644 --- a/Mage.Sets/src/mage/cards/b/BloodhallOoze.java +++ b/Mage.Sets/src/mage/cards/b/BloodhallOoze.java @@ -28,7 +28,6 @@ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.TriggeredAbilityImpl; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author loki diff --git a/Mage.Sets/src/mage/cards/b/BloodhallPriest.java b/Mage.Sets/src/mage/cards/b/BloodhallPriest.java index 470e643c6d2..9a0859a9bca 100644 --- a/Mage.Sets/src/mage/cards/b/BloodhallPriest.java +++ b/Mage.Sets/src/mage/cards/b/BloodhallPriest.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility; @@ -41,6 +40,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BloodhunterBat.java b/Mage.Sets/src/mage/cards/b/BloodhunterBat.java index 945f8526efa..bc80f312edc 100644 --- a/Mage.Sets/src/mage/cards/b/BloodhunterBat.java +++ b/Mage.Sets/src/mage/cards/b/BloodhunterBat.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,8 +35,11 @@ import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BloodhuskRitualist.java b/Mage.Sets/src/mage/cards/b/BloodhuskRitualist.java index b163edbed28..7441dd9d23b 100644 --- a/Mage.Sets/src/mage/cards/b/BloodhuskRitualist.java +++ b/Mage.Sets/src/mage/cards/b/BloodhuskRitualist.java @@ -28,8 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,8 +36,11 @@ import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.keyword.MultikickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BloodiedGhost.java b/Mage.Sets/src/mage/cards/b/BloodiedGhost.java index f62b7695cc9..2938030036c 100644 --- a/Mage.Sets/src/mage/cards/b/BloodiedGhost.java +++ b/Mage.Sets/src/mage/cards/b/BloodiedGhost.java @@ -28,7 +28,6 @@ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BloodlineKeeper.java b/Mage.Sets/src/mage/cards/b/BloodlineKeeper.java index ca75d6b74de..dff74ced117 100644 --- a/Mage.Sets/src/mage/cards/b/BloodlineKeeper.java +++ b/Mage.Sets/src/mage/cards/b/BloodlineKeeper.java @@ -27,10 +27,9 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -40,15 +39,17 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TransformAbility; -import mage.cards.l.LordOfLineage; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.l.LordOfLineage; import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Loki @@ -79,7 +80,7 @@ public class BloodlineKeeper extends CardImpl { Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new TransformSourceEffect(true), new ManaCostsImpl("{B}"), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 4)); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 4)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/b/BloodlineShaman.java b/Mage.Sets/src/mage/cards/b/BloodlineShaman.java index 753f52cceea..bcfb5017d98 100644 --- a/Mage.Sets/src/mage/cards/b/BloodlineShaman.java +++ b/Mage.Sets/src/mage/cards/b/BloodlineShaman.java @@ -27,18 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.cards.repository.CardRepository; import mage.choices.Choice; import mage.choices.ChoiceImpl; @@ -50,6 +45,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BloodlordOfVaasgoth.java b/Mage.Sets/src/mage/cards/b/BloodlordOfVaasgoth.java index f9fcc6aaf5e..9d28a122696 100644 --- a/Mage.Sets/src/mage/cards/b/BloodlordOfVaasgoth.java +++ b/Mage.Sets/src/mage/cards/b/BloodlordOfVaasgoth.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -36,11 +35,7 @@ import mage.abilities.keyword.BloodthirstAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; +import mage.constants.*; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -48,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.stack.Spell; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/b/BloodlustInciter.java b/Mage.Sets/src/mage/cards/b/BloodlustInciter.java new file mode 100644 index 00000000000..464f7dc996c --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BloodlustInciter.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.HasteAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class BloodlustInciter extends CardImpl { + + public BloodlustInciter(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}"); + + this.subtype.add("Human"); + this.subtype.add("Warrior"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // {T}: Target creature gains haste until end of turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn), new TapSourceCost()); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public BloodlustInciter(final BloodlustInciter card) { + super(card); + } + + @Override + public BloodlustInciter copy() { + return new BloodlustInciter(this); + } +} diff --git a/Mage.Sets/src/mage/cards/b/BloodmadVampire.java b/Mage.Sets/src/mage/cards/b/BloodmadVampire.java index fe528b46850..2e6f166cc0d 100644 --- a/Mage.Sets/src/mage/cards/b/BloodmadVampire.java +++ b/Mage.Sets/src/mage/cards/b/BloodmadVampire.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BloodmarkMentor.java b/Mage.Sets/src/mage/cards/b/BloodmarkMentor.java index 2ab9ae8112b..b07fc1c0817 100644 --- a/Mage.Sets/src/mage/cards/b/BloodmarkMentor.java +++ b/Mage.Sets/src/mage/cards/b/BloodmarkMentor.java @@ -27,10 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -38,9 +34,14 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BloodpyreElemental.java b/Mage.Sets/src/mage/cards/b/BloodpyreElemental.java index eac06c800c0..a292c764a9f 100644 --- a/Mage.Sets/src/mage/cards/b/BloodpyreElemental.java +++ b/Mage.Sets/src/mage/cards/b/BloodpyreElemental.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; @@ -37,9 +34,12 @@ import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BloodrageBrawler.java b/Mage.Sets/src/mage/cards/b/BloodrageBrawler.java new file mode 100644 index 00000000000..415d9d50f66 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BloodrageBrawler.java @@ -0,0 +1,64 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.discard.DiscardControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author Styxo + */ +public class BloodrageBrawler extends CardImpl { + + public BloodrageBrawler(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); + + this.subtype.add("Minotaur"); + this.subtype.add("Warrior"); + this.power = new MageInt(4); + this.toughness = new MageInt(3); + + // When Bloodfury Militant enters the battlefield, discard a card. + this.addAbility(new EntersBattlefieldTriggeredAbility(new DiscardControllerEffect(1))); + } + + public BloodrageBrawler(final BloodrageBrawler card) { + super(card); + } + + @Override + public BloodrageBrawler copy() { + return new BloodrageBrawler(this); + } +} diff --git a/Mage.Sets/src/mage/cards/b/BloodrageVampire.java b/Mage.Sets/src/mage/cards/b/BloodrageVampire.java index 72547c863e3..5750fd1cd73 100644 --- a/Mage.Sets/src/mage/cards/b/BloodrageVampire.java +++ b/Mage.Sets/src/mage/cards/b/BloodrageVampire.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.BloodthirstAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BloodriteInvoker.java b/Mage.Sets/src/mage/cards/b/BloodriteInvoker.java index 2ea66d72187..7d9f9f9f6c8 100644 --- a/Mage.Sets/src/mage/cards/b/BloodriteInvoker.java +++ b/Mage.Sets/src/mage/cards/b/BloodriteInvoker.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,9 +36,12 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BloodrockCyclops.java b/Mage.Sets/src/mage/cards/b/BloodrockCyclops.java index 6a463b2153e..6dedc7511dc 100644 --- a/Mage.Sets/src/mage/cards/b/BloodrockCyclops.java +++ b/Mage.Sets/src/mage/cards/b/BloodrockCyclops.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BloodscaleProwler.java b/Mage.Sets/src/mage/cards/b/BloodscaleProwler.java index 69599b0493e..032b9436136 100644 --- a/Mage.Sets/src/mage/cards/b/BloodscaleProwler.java +++ b/Mage.Sets/src/mage/cards/b/BloodscaleProwler.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.BloodthirstAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/b/Bloodscent.java b/Mage.Sets/src/mage/cards/b/Bloodscent.java index 2f1d02f9daa..d85557b81d6 100644 --- a/Mage.Sets/src/mage/cards/b/Bloodscent.java +++ b/Mage.Sets/src/mage/cards/b/Bloodscent.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.combat.MustBeBlockedByAllTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BloodshedFever.java b/Mage.Sets/src/mage/cards/b/BloodshedFever.java index 4a3b3c35dce..e32ccb27c4e 100644 --- a/Mage.Sets/src/mage/cards/b/BloodshedFever.java +++ b/Mage.Sets/src/mage/cards/b/BloodshedFever.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -35,14 +34,12 @@ import mage.abilities.effects.common.combat.AttacksIfAbleAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BloodshotCyclops.java b/Mage.Sets/src/mage/cards/b/BloodshotCyclops.java index 3a32943848e..27cae769747 100644 --- a/Mage.Sets/src/mage/cards/b/BloodshotCyclops.java +++ b/Mage.Sets/src/mage/cards/b/BloodshotCyclops.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/b/BloodshotTrainee.java b/Mage.Sets/src/mage/cards/b/BloodshotTrainee.java index dacf940b21f..46b16db38f7 100644 --- a/Mage.Sets/src/mage/cards/b/BloodshotTrainee.java +++ b/Mage.Sets/src/mage/cards/b/BloodshotTrainee.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,10 +36,14 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BloodsoakedChampion.java b/Mage.Sets/src/mage/cards/b/BloodsoakedChampion.java index 79bba0a6915..b910c226f40 100644 --- a/Mage.Sets/src/mage/cards/b/BloodsoakedChampion.java +++ b/Mage.Sets/src/mage/cards/b/BloodsoakedChampion.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CantBlockAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BloodsporeThrinax.java b/Mage.Sets/src/mage/cards/b/BloodsporeThrinax.java index 111287c4d78..0f3d828e356 100644 --- a/Mage.Sets/src/mage/cards/b/BloodsporeThrinax.java +++ b/Mage.Sets/src/mage/cards/b/BloodsporeThrinax.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -47,6 +46,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BloodstainedMire.java b/Mage.Sets/src/mage/cards/b/BloodstainedMire.java index 82db75842b1..fcf584bd202 100644 --- a/Mage.Sets/src/mage/cards/b/BloodstainedMire.java +++ b/Mage.Sets/src/mage/cards/b/BloodstainedMire.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; import mage.ObjectColor; -import mage.constants.CardType; import mage.abilities.common.FetchLandActivatedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BloodstoneCameo.java b/Mage.Sets/src/mage/cards/b/BloodstoneCameo.java index 047225bf68a..e81e53ff115 100644 --- a/Mage.Sets/src/mage/cards/b/BloodstoneCameo.java +++ b/Mage.Sets/src/mage/cards/b/BloodstoneCameo.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BloodthirstyOgre.java b/Mage.Sets/src/mage/cards/b/BloodthirstyOgre.java index cf0f9597f52..90ca2567e89 100644 --- a/Mage.Sets/src/mage/cards/b/BloodthirstyOgre.java +++ b/Mage.Sets/src/mage/cards/b/BloodthirstyOgre.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -49,6 +48,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/b/BloodthornTaunter.java b/Mage.Sets/src/mage/cards/b/BloodthornTaunter.java index 7125972abe5..3178612ec13 100644 --- a/Mage.Sets/src/mage/cards/b/BloodthornTaunter.java +++ b/Mage.Sets/src/mage/cards/b/BloodthornTaunter.java @@ -27,22 +27,23 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -52,7 +53,7 @@ public class BloodthornTaunter extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); static { - filter.add(new PowerPredicate(ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public BloodthornTaunter(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/b/BloodthroneVampire.java b/Mage.Sets/src/mage/cards/b/BloodthroneVampire.java index 55188108dd3..468057499e8 100644 --- a/Mage.Sets/src/mage/cards/b/BloodthroneVampire.java +++ b/Mage.Sets/src/mage/cards/b/BloodthroneVampire.java @@ -28,18 +28,19 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/BloomTender.java b/Mage.Sets/src/mage/cards/b/BloomTender.java index 60e9975b1df..bfacf36dcd4 100644 --- a/Mage.Sets/src/mage/cards/b/BloomTender.java +++ b/Mage.Sets/src/mage/cards/b/BloomTender.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BloomingMarsh.java b/Mage.Sets/src/mage/cards/b/BloomingMarsh.java index 257700f891b..cc15acea0ed 100644 --- a/Mage.Sets/src/mage/cards/b/BloomingMarsh.java +++ b/Mage.Sets/src/mage/cards/b/BloomingMarsh.java @@ -27,9 +27,7 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; @@ -43,6 +41,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +53,7 @@ public class BloomingMarsh extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); // Blooming Marsh enters the battlefield tapped unless you control two or fewer other lands. - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.FEWER_THAN, 3)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.FEWER_THAN, 3)); String abilityText = "tapped unless you control fewer than 3 lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); diff --git a/Mage.Sets/src/mage/cards/b/BlossomingDefense.java b/Mage.Sets/src/mage/cards/b/BlossomingDefense.java index 72d3d62309d..74b0c453bad 100644 --- a/Mage.Sets/src/mage/cards/b/BlossomingDefense.java +++ b/Mage.Sets/src/mage/cards/b/BlossomingDefense.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BlossomingSands.java b/Mage.Sets/src/mage/cards/b/BlossomingSands.java index ccdd1ea1f0b..cedb44adac5 100644 --- a/Mage.Sets/src/mage/cards/b/BlossomingSands.java +++ b/Mage.Sets/src/mage/cards/b/BlossomingSands.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BlowflyInfestation.java b/Mage.Sets/src/mage/cards/b/BlowflyInfestation.java index ae4980f72cd..2bac40307b2 100644 --- a/Mage.Sets/src/mage/cards/b/BlowflyInfestation.java +++ b/Mage.Sets/src/mage/cards/b/BlowflyInfestation.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbility; import mage.abilities.common.DiesCreatureTriggeredAbility; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * diff --git a/Mage.Sets/src/mage/cards/b/BludgeonBrawl.java b/Mage.Sets/src/mage/cards/b/BludgeonBrawl.java index 8bb2c7eb5a9..07eaf6f5e6d 100644 --- a/Mage.Sets/src/mage/cards/b/BludgeonBrawl.java +++ b/Mage.Sets/src/mage/cards/b/BludgeonBrawl.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.StaticAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,12 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.Cards; import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -53,6 +46,9 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.List; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BlueElementalBlast.java b/Mage.Sets/src/mage/cards/b/BlueElementalBlast.java index dbd1f888cf7..71fc6796e53 100644 --- a/Mage.Sets/src/mage/cards/b/BlueElementalBlast.java +++ b/Mage.Sets/src/mage/cards/b/BlueElementalBlast.java @@ -27,20 +27,21 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.Mode; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BlueScarab.java b/Mage.Sets/src/mage/cards/b/BlueScarab.java index 277839674ad..d4dd91bea4c 100644 --- a/Mage.Sets/src/mage/cards/b/BlueScarab.java +++ b/Mage.Sets/src/mage/cards/b/BlueScarab.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -40,17 +39,15 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Zeplar1_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/BlueSunsZenith.java b/Mage.Sets/src/mage/cards/b/BlueSunsZenith.java index 78a8e869d22..309497abb23 100644 --- a/Mage.Sets/src/mage/cards/b/BlueSunsZenith.java +++ b/Mage.Sets/src/mage/cards/b/BlueSunsZenith.java @@ -28,15 +28,16 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.effects.common.ShuffleSpellEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BlueWard.java b/Mage.Sets/src/mage/cards/b/BlueWard.java index 8985ef36c33..563eb426c5b 100644 --- a/Mage.Sets/src/mage/cards/b/BlueWard.java +++ b/Mage.Sets/src/mage/cards/b/BlueWard.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -46,6 +45,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BluntTheAssault.java b/Mage.Sets/src/mage/cards/b/BluntTheAssault.java index 6733f1542b0..9f81a918909 100644 --- a/Mage.Sets/src/mage/cards/b/BluntTheAssault.java +++ b/Mage.Sets/src/mage/cards/b/BluntTheAssault.java @@ -28,17 +28,17 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BlurSliver.java b/Mage.Sets/src/mage/cards/b/BlurSliver.java index 251ead76d9e..d78e0568c67 100644 --- a/Mage.Sets/src/mage/cards/b/BlurSliver.java +++ b/Mage.Sets/src/mage/cards/b/BlurSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BlurredMongoose.java b/Mage.Sets/src/mage/cards/b/BlurredMongoose.java index accab87c13d..cd83f8f7cdc 100644 --- a/Mage.Sets/src/mage/cards/b/BlurredMongoose.java +++ b/Mage.Sets/src/mage/cards/b/BlurredMongoose.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.CantBeCounteredAbility; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/Blustersquall.java b/Mage.Sets/src/mage/cards/b/Blustersquall.java index fedc75aa678..4002b73d36c 100644 --- a/Mage.Sets/src/mage/cards/b/Blustersquall.java +++ b/Mage.Sets/src/mage/cards/b/Blustersquall.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; @@ -37,6 +34,7 @@ import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.keyword.OverloadAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; @@ -45,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/b/BoarUmbra.java b/Mage.Sets/src/mage/cards/b/BoarUmbra.java index d06dd0e4e98..9bbac9cc4de 100644 --- a/Mage.Sets/src/mage/cards/b/BoarUmbra.java +++ b/Mage.Sets/src/mage/cards/b/BoarUmbra.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -38,9 +35,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TotemArmorAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BoartuskLiege.java b/Mage.Sets/src/mage/cards/b/BoartuskLiege.java index e658da1cc74..5bdf59d1404 100644 --- a/Mage.Sets/src/mage/cards/b/BoartuskLiege.java +++ b/Mage.Sets/src/mage/cards/b/BoartuskLiege.java @@ -27,10 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -38,9 +34,14 @@ import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BobaFett.java b/Mage.Sets/src/mage/cards/b/BobaFett.java index 0d043f00f4b..add581b5d65 100644 --- a/Mage.Sets/src/mage/cards/b/BobaFett.java +++ b/Mage.Sets/src/mage/cards/b/BobaFett.java @@ -27,22 +27,24 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DrawDiscardControllerEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.abilities.keyword.BountyAbility; -import mage.abilities.keyword.MenaceAbility; import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.MenaceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.counters.CounterType; import mage.target.common.TargetOpponentsCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo @@ -51,7 +53,7 @@ public class BobaFett extends CardImpl { public BobaFett(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Hunter"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/b/BodyDouble.java b/Mage.Sets/src/mage/cards/b/BodyDouble.java index c9bafb6f701..ddbbdf46361 100644 --- a/Mage.Sets/src/mage/cards/b/BodyDouble.java +++ b/Mage.Sets/src/mage/cards/b/BodyDouble.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -45,6 +44,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BodyOfJukai.java b/Mage.Sets/src/mage/cards/b/BodyOfJukai.java index 76036776617..33b025b3515 100644 --- a/Mage.Sets/src/mage/cards/b/BodyOfJukai.java +++ b/Mage.Sets/src/mage/cards/b/BodyOfJukai.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; -import mage.abilities.keyword.TrampleAbility; import mage.abilities.keyword.SoulshiftAbility; +import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BodySnatcher.java b/Mage.Sets/src/mage/cards/b/BodySnatcher.java index ae40cbe9764..651f1770bec 100644 --- a/Mage.Sets/src/mage/cards/b/BodySnatcher.java +++ b/Mage.Sets/src/mage/cards/b/BodySnatcher.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BogDown.java b/Mage.Sets/src/mage/cards/b/BogDown.java index 79f1cf5b915..e5321b3ccbc 100644 --- a/Mage.Sets/src/mage/cards/b/BogDown.java +++ b/Mage.Sets/src/mage/cards/b/BogDown.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.condition.common.KickedCondition; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -40,6 +39,8 @@ import mage.filter.common.FilterControlledLandPermanent; import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BogElemental.java b/Mage.Sets/src/mage/cards/b/BogElemental.java index 70563818523..e50a06e2c64 100644 --- a/Mage.Sets/src/mage/cards/b/BogElemental.java +++ b/Mage.Sets/src/mage/cards/b/BogElemental.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BogGlider.java b/Mage.Sets/src/mage/cards/b/BogGlider.java index f6f9ab98779..4f5c07a420c 100644 --- a/Mage.Sets/src/mage/cards/b/BogGlider.java +++ b/Mage.Sets/src/mage/cards/b/BogGlider.java @@ -27,11 +27,9 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.common.TapSourceCost; @@ -39,7 +37,8 @@ import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterPermanentCard; @@ -48,6 +47,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Backfir3 @@ -59,7 +60,7 @@ public class BogGlider extends CardImpl { static { filter.add(new SubtypePredicate("Mercenary")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); } public BogGlider(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/b/BogGnarr.java b/Mage.Sets/src/mage/cards/b/BogGnarr.java index e936fc6db20..73ddce37a42 100644 --- a/Mage.Sets/src/mage/cards/b/BogGnarr.java +++ b/Mage.Sets/src/mage/cards/b/BogGnarr.java @@ -28,7 +28,6 @@ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SpellCastAllTriggeredAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BogHoodlums.java b/Mage.Sets/src/mage/cards/b/BogHoodlums.java index 3db05c7b42e..72e84f44592 100644 --- a/Mage.Sets/src/mage/cards/b/BogHoodlums.java +++ b/Mage.Sets/src/mage/cards/b/BogHoodlums.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CantBlockAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BogImp.java b/Mage.Sets/src/mage/cards/b/BogImp.java index f4a98698f51..d5e3de5ab8f 100644 --- a/Mage.Sets/src/mage/cards/b/BogImp.java +++ b/Mage.Sets/src/mage/cards/b/BogImp.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BogInitiate.java b/Mage.Sets/src/mage/cards/b/BogInitiate.java index 693ce9d5403..ddc9c2aeea4 100644 --- a/Mage.Sets/src/mage/cards/b/BogInitiate.java +++ b/Mage.Sets/src/mage/cards/b/BogInitiate.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BogRaiders.java b/Mage.Sets/src/mage/cards/b/BogRaiders.java index 50db7be5448..01e7cdb26b3 100644 --- a/Mage.Sets/src/mage/cards/b/BogRaiders.java +++ b/Mage.Sets/src/mage/cards/b/BogRaiders.java @@ -28,12 +28,13 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.SwampwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BogRats.java b/Mage.Sets/src/mage/cards/b/BogRats.java index 438a01ee660..2a3c675ac4d 100644 --- a/Mage.Sets/src/mage/cards/b/BogRats.java +++ b/Mage.Sets/src/mage/cards/b/BogRats.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; @@ -38,6 +37,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/b/BogSerpent.java b/Mage.Sets/src/mage/cards/b/BogSerpent.java index d3d0256c8d9..30974bfbbea 100644 --- a/Mage.Sets/src/mage/cards/b/BogSerpent.java +++ b/Mage.Sets/src/mage/cards/b/BogSerpent.java @@ -27,8 +27,8 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.SacrificeSourceEffect; @@ -37,9 +37,10 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -57,7 +58,7 @@ public class BogSerpent extends CardImpl { // When you control no Swamps, sacrifice Bog Serpent. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Swamp", "no Swamps"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Swamp", "no Swamps"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/b/BogSmugglers.java b/Mage.Sets/src/mage/cards/b/BogSmugglers.java index f8fd1770be9..92aa1aede84 100644 --- a/Mage.Sets/src/mage/cards/b/BogSmugglers.java +++ b/Mage.Sets/src/mage/cards/b/BogSmugglers.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.SwampwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BogStriderAsh.java b/Mage.Sets/src/mage/cards/b/BogStriderAsh.java index 55036c1e8f8..10df9f84751 100644 --- a/Mage.Sets/src/mage/cards/b/BogStriderAsh.java +++ b/Mage.Sets/src/mage/cards/b/BogStriderAsh.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.MageInt; import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,6 +39,8 @@ import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author EvilGeek diff --git a/Mage.Sets/src/mage/cards/b/BogTatters.java b/Mage.Sets/src/mage/cards/b/BogTatters.java index 403992645e6..1da3ac27a0f 100644 --- a/Mage.Sets/src/mage/cards/b/BogTatters.java +++ b/Mage.Sets/src/mage/cards/b/BogTatters.java @@ -28,12 +28,13 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.SwampwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BogWitch.java b/Mage.Sets/src/mage/cards/b/BogWitch.java index 4d446b1d5ba..1a6589b76c1 100644 --- a/Mage.Sets/src/mage/cards/b/BogWitch.java +++ b/Mage.Sets/src/mage/cards/b/BogWitch.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BogWraith.java b/Mage.Sets/src/mage/cards/b/BogWraith.java index 30459554998..dde74e3553d 100644 --- a/Mage.Sets/src/mage/cards/b/BogWraith.java +++ b/Mage.Sets/src/mage/cards/b/BogWraith.java @@ -28,12 +28,13 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.SwampwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BogWreckage.java b/Mage.Sets/src/mage/cards/b/BogWreckage.java index e076cacd650..8ae561fffdd 100644 --- a/Mage.Sets/src/mage/cards/b/BogWreckage.java +++ b/Mage.Sets/src/mage/cards/b/BogWreckage.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BogardanFirefiend.java b/Mage.Sets/src/mage/cards/b/BogardanFirefiend.java index 0c955b2fc5f..97b609be31f 100644 --- a/Mage.Sets/src/mage/cards/b/BogardanFirefiend.java +++ b/Mage.Sets/src/mage/cards/b/BogardanFirefiend.java @@ -27,16 +27,17 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BogardanHellkite.java b/Mage.Sets/src/mage/cards/b/BogardanHellkite.java index 7cd864bd693..58b42fed4f9 100644 --- a/Mage.Sets/src/mage/cards/b/BogardanHellkite.java +++ b/Mage.Sets/src/mage/cards/b/BogardanHellkite.java @@ -28,8 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,8 +36,11 @@ import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayerAmount; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/BogardanLancer.java b/Mage.Sets/src/mage/cards/b/BogardanLancer.java index 68ae2695c32..7cfa73979f2 100644 --- a/Mage.Sets/src/mage/cards/b/BogardanLancer.java +++ b/Mage.Sets/src/mage/cards/b/BogardanLancer.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.BloodthirstAbility; import mage.abilities.keyword.FlankingAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BogardanRager.java b/Mage.Sets/src/mage/cards/b/BogardanRager.java index 059cb21ed25..e8bad9dd7e1 100644 --- a/Mage.Sets/src/mage/cards/b/BogardanRager.java +++ b/Mage.Sets/src/mage/cards/b/BogardanRager.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,9 +34,12 @@ import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BogbrewWitch.java b/Mage.Sets/src/mage/cards/b/BogbrewWitch.java index 53f53dc6d8a..12c3f33c31d 100644 --- a/Mage.Sets/src/mage/cards/b/BogbrewWitch.java +++ b/Mage.Sets/src/mage/cards/b/BogbrewWitch.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.NamePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BoggartArsonists.java b/Mage.Sets/src/mage/cards/b/BoggartArsonists.java index e19bc0a33f7..c03dbfb4de9 100644 --- a/Mage.Sets/src/mage/cards/b/BoggartArsonists.java +++ b/Mage.Sets/src/mage/cards/b/BoggartArsonists.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BoggartBirthRite.java b/Mage.Sets/src/mage/cards/b/BoggartBirthRite.java index 2fcf5127337..1e83479996c 100644 --- a/Mage.Sets/src/mage/cards/b/BoggartBirthRite.java +++ b/Mage.Sets/src/mage/cards/b/BoggartBirthRite.java @@ -27,13 +27,13 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; -import mage.target.common.TargetCardInYourGraveyard; import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.common.TargetCardInYourGraveyard; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/b/BoggartBrute.java b/Mage.Sets/src/mage/cards/b/BoggartBrute.java index c2165670936..ea2cc38adc4 100644 --- a/Mage.Sets/src/mage/cards/b/BoggartBrute.java +++ b/Mage.Sets/src/mage/cards/b/BoggartBrute.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.MenaceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BoggartForager.java b/Mage.Sets/src/mage/cards/b/BoggartForager.java index a1ae83ce9f8..b00a642bc14 100644 --- a/Mage.Sets/src/mage/cards/b/BoggartForager.java +++ b/Mage.Sets/src/mage/cards/b/BoggartForager.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Wehk diff --git a/Mage.Sets/src/mage/cards/b/BoggartHarbinger.java b/Mage.Sets/src/mage/cards/b/BoggartHarbinger.java index 6f206e6411a..6db78c932a2 100644 --- a/Mage.Sets/src/mage/cards/b/BoggartHarbinger.java +++ b/Mage.Sets/src/mage/cards/b/BoggartHarbinger.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutOnLibraryEffect; @@ -38,6 +37,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/b/BoggartLoggers.java b/Mage.Sets/src/mage/cards/b/BoggartLoggers.java index cc2d31299c2..fe989000600 100644 --- a/Mage.Sets/src/mage/cards/b/BoggartLoggers.java +++ b/Mage.Sets/src/mage/cards/b/BoggartLoggers.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BoggartMob.java b/Mage.Sets/src/mage/cards/b/BoggartMob.java index 384899f394d..a2c74a48579 100644 --- a/Mage.Sets/src/mage/cards/b/BoggartMob.java +++ b/Mage.Sets/src/mage/cards/b/BoggartMob.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsDamageToAPlayerAllTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -40,6 +39,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.GoblinRogueToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BoggartRamGang.java b/Mage.Sets/src/mage/cards/b/BoggartRamGang.java index 081eff85c9d..d0ad3b791cb 100644 --- a/Mage.Sets/src/mage/cards/b/BoggartRamGang.java +++ b/Mage.Sets/src/mage/cards/b/BoggartRamGang.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.WitherAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BoggartShenanigans.java b/Mage.Sets/src/mage/cards/b/BoggartShenanigans.java index 02fdaf83051..618bf9549a7 100644 --- a/Mage.Sets/src/mage/cards/b/BoggartShenanigans.java +++ b/Mage.Sets/src/mage/cards/b/BoggartShenanigans.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; @@ -40,6 +39,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BoggartSpriteChaser.java b/Mage.Sets/src/mage/cards/b/BoggartSpriteChaser.java index 027dfc95f67..24fd2c94d38 100644 --- a/Mage.Sets/src/mage/cards/b/BoggartSpriteChaser.java +++ b/Mage.Sets/src/mage/cards/b/BoggartSpriteChaser.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.FilterPermanent; +import java.util.UUID; + /** * * @author BursegSardaukar diff --git a/Mage.Sets/src/mage/cards/b/Boil.java b/Mage.Sets/src/mage/cards/b/Boil.java index 9077af8e164..82771100200 100644 --- a/Mage.Sets/src/mage/cards/b/Boil.java +++ b/Mage.Sets/src/mage/cards/b/Boil.java @@ -27,14 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BoilingBlood.java b/Mage.Sets/src/mage/cards/b/BoilingBlood.java index eb10f3423d2..17db3b12fb3 100644 --- a/Mage.Sets/src/mage/cards/b/BoilingBlood.java +++ b/Mage.Sets/src/mage/cards/b/BoilingBlood.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.combat.AttacksIfAbleTargetEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BoilingEarth.java b/Mage.Sets/src/mage/cards/b/BoilingEarth.java index fb255160561..9341f91347f 100644 --- a/Mage.Sets/src/mage/cards/b/BoilingEarth.java +++ b/Mage.Sets/src/mage/cards/b/BoilingEarth.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.keyword.AwakenAbility; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BoilingSeas.java b/Mage.Sets/src/mage/cards/b/BoilingSeas.java index e851a363fbc..c248ccfa3e0 100644 --- a/Mage.Sets/src/mage/cards/b/BoilingSeas.java +++ b/Mage.Sets/src/mage/cards/b/BoilingSeas.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BojukaBog.java b/Mage.Sets/src/mage/cards/b/BojukaBog.java index 86439be6887..025068d2d4e 100644 --- a/Mage.Sets/src/mage/cards/b/BojukaBog.java +++ b/Mage.Sets/src/mage/cards/b/BojukaBog.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.ExileGraveyardAllTargetPlayerEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BojukaBrigand.java b/Mage.Sets/src/mage/cards/b/BojukaBrigand.java index ada9292f29b..7ab965a5913 100644 --- a/Mage.Sets/src/mage/cards/b/BojukaBrigand.java +++ b/Mage.Sets/src/mage/cards/b/BojukaBrigand.java @@ -27,16 +27,17 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility; import mage.abilities.common.CantBlockAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BoldDefense.java b/Mage.Sets/src/mage/cards/b/BoldDefense.java index 3f309ee3211..32be186a43b 100644 --- a/Mage.Sets/src/mage/cards/b/BoldDefense.java +++ b/Mage.Sets/src/mage/cards/b/BoldDefense.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalContinuousEffect; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * @author nantuko, Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BoldImpaler.java b/Mage.Sets/src/mage/cards/b/BoldImpaler.java index 4beb2ce326f..c860383e40f 100644 --- a/Mage.Sets/src/mage/cards/b/BoldImpaler.java +++ b/Mage.Sets/src/mage/cards/b/BoldImpaler.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BoldwyrHeavyweights.java b/Mage.Sets/src/mage/cards/b/BoldwyrHeavyweights.java index 828c5aca8ef..629b318bdab 100644 --- a/Mage.Sets/src/mage/cards/b/BoldwyrHeavyweights.java +++ b/Mage.Sets/src/mage/cards/b/BoldwyrHeavyweights.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -46,6 +43,10 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BoltOfKeranos.java b/Mage.Sets/src/mage/cards/b/BoltOfKeranos.java index 52acc39fb1d..e69dc000c73 100644 --- a/Mage.Sets/src/mage/cards/b/BoltOfKeranos.java +++ b/Mage.Sets/src/mage/cards/b/BoltOfKeranos.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BoltwingMarauder.java b/Mage.Sets/src/mage/cards/b/BoltwingMarauder.java index 1fc0ff5e464..459dc8a6b8c 100644 --- a/Mage.Sets/src/mage/cards/b/BoltwingMarauder.java +++ b/Mage.Sets/src/mage/cards/b/BoltwingMarauder.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BomatBazaarBarge.java b/Mage.Sets/src/mage/cards/b/BomatBazaarBarge.java index 7fa6c091b3d..eaf0569e668 100644 --- a/Mage.Sets/src/mage/cards/b/BomatBazaarBarge.java +++ b/Mage.Sets/src/mage/cards/b/BomatBazaarBarge.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BomatCourier.java b/Mage.Sets/src/mage/cards/b/BomatCourier.java index cb730430db0..3c50851850c 100644 --- a/Mage.Sets/src/mage/cards/b/BomatCourier.java +++ b/Mage.Sets/src/mage/cards/b/BomatCourier.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -50,6 +49,8 @@ import mage.game.Game; import mage.players.Player; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BombSquad.java b/Mage.Sets/src/mage/cards/b/BombSquad.java index 6e9784a89c3..a1b7530fac5 100644 --- a/Mage.Sets/src/mage/cards/b/BombSquad.java +++ b/Mage.Sets/src/mage/cards/b/BombSquad.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -55,6 +54,8 @@ import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * 10/4/2004: If the creature regenerates, the fuse counters are still removed and * the four damage is still dealt. diff --git a/Mage.Sets/src/mage/cards/b/BomberCorps.java b/Mage.Sets/src/mage/cards/b/BomberCorps.java index 993876dd00c..95815e9f001 100644 --- a/Mage.Sets/src/mage/cards/b/BomberCorps.java +++ b/Mage.Sets/src/mage/cards/b/BomberCorps.java @@ -27,16 +27,17 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.BattalionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BondBeetle.java b/Mage.Sets/src/mage/cards/b/BondBeetle.java index 875b081138f..85a78497c00 100644 --- a/Mage.Sets/src/mage/cards/b/BondBeetle.java +++ b/Mage.Sets/src/mage/cards/b/BondBeetle.java @@ -27,13 +27,13 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/b/BondedConstruct.java b/Mage.Sets/src/mage/cards/b/BondedConstruct.java index cc7888002d5..fe45a315cfb 100644 --- a/Mage.Sets/src/mage/cards/b/BondedConstruct.java +++ b/Mage.Sets/src/mage/cards/b/BondedConstruct.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.CantAttackAloneAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BondedFetch.java b/Mage.Sets/src/mage/cards/b/BondedFetch.java index 73508d248ec..03a95fc7b94 100644 --- a/Mage.Sets/src/mage/cards/b/BondedFetch.java +++ b/Mage.Sets/src/mage/cards/b/BondedFetch.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BondsOfFaith.java b/Mage.Sets/src/mage/cards/b/BondsOfFaith.java index a61432a02a8..4d8cf936074 100644 --- a/Mage.Sets/src/mage/cards/b/BondsOfFaith.java +++ b/Mage.Sets/src/mage/cards/b/BondsOfFaith.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.InvertCondition; @@ -48,6 +47,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/b/BondsOfMortality.java b/Mage.Sets/src/mage/cards/b/BondsOfMortality.java index c08f5acaef3..7f63cec1f43 100644 --- a/Mage.Sets/src/mage/cards/b/BondsOfMortality.java +++ b/Mage.Sets/src/mage/cards/b/BondsOfMortality.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -65,10 +66,10 @@ public class BondsOfMortality extends CardImpl { this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1), false)); // {G}: Creatures your opponents control lose hexproof and indestructible until end of turn. - Effect effect = new LoseAbilityAllEffect(filter, HexproofAbility.getInstance(), Duration.EndOfTurn); + Effect effect = new LoseAbilityAllEffect(HexproofAbility.getInstance(), Duration.EndOfTurn, filter); effect.setText("Creatures your opponents control lose hexproof"); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{G}")); - effect = new LoseAbilityAllEffect(filter, IndestructibleAbility.getInstance(), Duration.EndOfTurn); + effect = new LoseAbilityAllEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn, filter); effect.setText("and indestructible until end of turn"); ability.addEffect(effect); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/b/BondsOfQuicksilver.java b/Mage.Sets/src/mage/cards/b/BondsOfQuicksilver.java index 77b42977781..63345177a5a 100644 --- a/Mage.Sets/src/mage/cards/b/BondsOfQuicksilver.java +++ b/Mage.Sets/src/mage/cards/b/BondsOfQuicksilver.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -39,11 +36,14 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/b/BoneDancer.java b/Mage.Sets/src/mage/cards/b/BoneDancer.java index 833d24b4958..e0385499b63 100644 --- a/Mage.Sets/src/mage/cards/b/BoneDancer.java +++ b/Mage.Sets/src/mage/cards/b/BoneDancer.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BoneFlute.java b/Mage.Sets/src/mage/cards/b/BoneFlute.java index 5c8a42f9b51..cd113f311de 100644 --- a/Mage.Sets/src/mage/cards/b/BoneFlute.java +++ b/Mage.Sets/src/mage/cards/b/BoneFlute.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BoneHarvest.java b/Mage.Sets/src/mage/cards/b/BoneHarvest.java index be8211fcdd5..de5a0d688f9 100644 --- a/Mage.Sets/src/mage/cards/b/BoneHarvest.java +++ b/Mage.Sets/src/mage/cards/b/BoneHarvest.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BonePicker.java b/Mage.Sets/src/mage/cards/b/BonePicker.java new file mode 100644 index 00000000000..8ad905c6b95 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BonePicker.java @@ -0,0 +1,111 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.SpellAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.common.MorbidCondition; +import mage.abilities.costs.AdjustingSourceCosts; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.DeathtouchAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterLandPermanent; +import mage.game.Game; +import mage.util.CardUtil; +import mage.watchers.common.MorbidWatcher; + +/** + * + * @author stravant + */ +public class BonePicker extends CardImpl { + + public BonePicker(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); + + this.subtype.add("Bird"); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // Bone Picker costs {3} less to cast if a creature died this turn. + this.addAbility(new BonePickerCostAdjustmentAbility(), new MorbidWatcher()); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Deathtouch + this.addAbility(DeathtouchAbility.getInstance()); + + } + + public BonePicker(final BonePicker card) { + super(card); + } + + @Override + public BonePicker copy() { + return new BonePicker(this); + } +} + +class BonePickerCostAdjustmentAbility extends SimpleStaticAbility implements AdjustingSourceCosts { + + public BonePickerCostAdjustmentAbility() { + super(Zone.OUTSIDE, null); + } + + public BonePickerCostAdjustmentAbility(final BonePickerCostAdjustmentAbility ability) { + super(ability); + } + + @Override + public SimpleStaticAbility copy() { + return new BonePickerCostAdjustmentAbility(this); + } + + @Override + public String getRule() { + return "If a creature died this turn, {this} costs {3} less to cast."; + } + + @Override + public void adjustCosts(Ability ability, Game game) { + if (ability instanceof SpellAbility) { // Prevent adjustment of activated ability + if (MorbidCondition.instance.apply(game, ability)) { + CardUtil.adjustCost((SpellAbility) ability, 3); + } + } + } +} diff --git a/Mage.Sets/src/mage/cards/b/BoneSaw.java b/Mage.Sets/src/mage/cards/b/BoneSaw.java index 15b650f088f..f0b5d3773c1 100644 --- a/Mage.Sets/src/mage/cards/b/BoneSaw.java +++ b/Mage.Sets/src/mage/cards/b/BoneSaw.java @@ -28,16 +28,17 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BoneShredder.java b/Mage.Sets/src/mage/cards/b/BoneShredder.java index 9aed0f9d7fc..53ffe4fcee7 100644 --- a/Mage.Sets/src/mage/cards/b/BoneShredder.java +++ b/Mage.Sets/src/mage/cards/b/BoneShredder.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -38,6 +36,7 @@ import mage.abilities.keyword.EchoAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/b/BoneSplinters.java b/Mage.Sets/src/mage/cards/b/BoneSplinters.java index 4ce0bab55f3..c0739a81f90 100644 --- a/Mage.Sets/src/mage/cards/b/BoneSplinters.java +++ b/Mage.Sets/src/mage/cards/b/BoneSplinters.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BoneToAsh.java b/Mage.Sets/src/mage/cards/b/BoneToAsh.java index 0d0418a1457..ccae035e972 100644 --- a/Mage.Sets/src/mage/cards/b/BoneToAsh.java +++ b/Mage.Sets/src/mage/cards/b/BoneToAsh.java @@ -27,16 +27,17 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BonebreakerGiant.java b/Mage.Sets/src/mage/cards/b/BonebreakerGiant.java index 8453be94df4..c5939dc7bf8 100644 --- a/Mage.Sets/src/mage/cards/b/BonebreakerGiant.java +++ b/Mage.Sets/src/mage/cards/b/BonebreakerGiant.java @@ -28,12 +28,12 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/Bonehoard.java b/Mage.Sets/src/mage/cards/b/Bonehoard.java index 2c3ba5a632c..0c6e4466118 100644 --- a/Mage.Sets/src/mage/cards/b/Bonehoard.java +++ b/Mage.Sets/src/mage/cards/b/Bonehoard.java @@ -27,10 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.dynamicvalue.common.CardsInAllGraveyardsCount; @@ -39,8 +35,13 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.LivingWeaponAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/Boneknitter.java b/Mage.Sets/src/mage/cards/b/Boneknitter.java index 6dbde7a4ed4..7762e53fb32 100644 --- a/Mage.Sets/src/mage/cards/b/Boneknitter.java +++ b/Mage.Sets/src/mage/cards/b/Boneknitter.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BonescytheSliver.java b/Mage.Sets/src/mage/cards/b/BonescytheSliver.java index 0b094aebe73..587722b8d64 100644 --- a/Mage.Sets/src/mage/cards/b/BonescytheSliver.java +++ b/Mage.Sets/src/mage/cards/b/BonescytheSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BoneshardSlasher.java b/Mage.Sets/src/mage/cards/b/BoneshardSlasher.java index 8cc22b7a7b6..16679911e9e 100644 --- a/Mage.Sets/src/mage/cards/b/BoneshardSlasher.java +++ b/Mage.Sets/src/mage/cards/b/BoneshardSlasher.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesTargetTriggeredAbility; @@ -46,6 +45,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/Bonesplitter.java b/Mage.Sets/src/mage/cards/b/Bonesplitter.java index 373d6d67c8d..312257c22ea 100644 --- a/Mage.Sets/src/mage/cards/b/Bonesplitter.java +++ b/Mage.Sets/src/mage/cards/b/Bonesplitter.java @@ -27,18 +27,18 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BonesplitterSliver.java b/Mage.Sets/src/mage/cards/b/BonesplitterSliver.java index b6348ad778c..9f9dc15b272 100644 --- a/Mage.Sets/src/mage/cards/b/BonesplitterSliver.java +++ b/Mage.Sets/src/mage/cards/b/BonesplitterSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; @@ -38,6 +37,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author Sir-Speshkitty diff --git a/Mage.Sets/src/mage/cards/b/BoneyardWurm.java b/Mage.Sets/src/mage/cards/b/BoneyardWurm.java index 42ffe58b00e..089317427f9 100644 --- a/Mage.Sets/src/mage/cards/b/BoneyardWurm.java +++ b/Mage.Sets/src/mage/cards/b/BoneyardWurm.java @@ -27,15 +27,15 @@ */ package mage.cards.b; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/b/BonfireOfTheDamned.java b/Mage.Sets/src/mage/cards/b/BonfireOfTheDamned.java index 27adc407b2a..b472393c0b7 100644 --- a/Mage.Sets/src/mage/cards/b/BonfireOfTheDamned.java +++ b/Mage.Sets/src/mage/cards/b/BonfireOfTheDamned.java @@ -27,13 +27,13 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.MiracleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/b/BontuTheGlorified.java b/Mage.Sets/src/mage/cards/b/BontuTheGlorified.java new file mode 100644 index 00000000000..5ba3a53b97b --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BontuTheGlorified.java @@ -0,0 +1,146 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.game.Game; +import mage.game.permanent.Permanent; +import java.util.UUID; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.RestrictionEffect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.LoseLifeOpponentsEffect; +import mage.abilities.effects.keyword.ScryEffect; +import mage.abilities.keyword.IndestructibleAbility; +import mage.abilities.keyword.MenaceAbility; +import mage.constants.Duration; +import mage.constants.SuperType; +import mage.constants.Zone; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.permanent.AnotherPredicate; +import mage.players.Player; +import mage.target.common.TargetControlledPermanent; +import mage.watchers.common.CreaturesDiedWatcher; + +/** + * + * @author jeffwadsworth + */ +public class BontuTheGlorified extends CardImpl { + + private static final FilterControlledPermanent filter = new FilterControlledPermanent("another creature"); + + static { + filter.add(new AnotherPredicate()); + } + + public BontuTheGlorified(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); + addSuperType(SuperType.LEGENDARY); + this.subtype.add("God"); + this.power = new MageInt(4); + this.toughness = new MageInt(6); + + //Menace + this.addAbility(new MenaceAbility()); + + //Indestructible + this.addAbility(IndestructibleAbility.getInstance()); + + //Bontu the Glorified can't attack or block unless a creature died under your control this turn. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BontuTheGlorifiedRestrictionEffect()), new CreaturesDiedWatcher()); + + //{1}{B}, Sacrifice another creature: Scry 1. Each opponent loses 1 life and you gain 1 life. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new ManaCostsImpl("{1}{B}")); + ability.addEffect(new LoseLifeOpponentsEffect(1)); + Effect effect = new GainLifeEffect(1); + effect.setText("and you gain 1 life"); + ability.addEffect(effect); + ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter))); + this.addAbility(ability); + + } + + public BontuTheGlorified(final BontuTheGlorified card) { + super(card); + } + + @Override + public BontuTheGlorified copy() { + return new BontuTheGlorified(this); + } +} + +class BontuTheGlorifiedRestrictionEffect extends RestrictionEffect { + + public BontuTheGlorifiedRestrictionEffect() { + super(Duration.WhileOnBattlefield); + staticText = "{this} can't attack or block unless a creature died under your control this turn"; + } + + public BontuTheGlorifiedRestrictionEffect(final BontuTheGlorifiedRestrictionEffect effect) { + super(effect); + } + + @Override + public BontuTheGlorifiedRestrictionEffect copy() { + return new BontuTheGlorifiedRestrictionEffect(this); + } + + @Override + public boolean canAttack(Game game) { + return false; + } + + @Override + public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game) { + return false; + } + + @Override + public boolean applies(Permanent permanent, Ability source, Game game) { + if (permanent.getId().equals(source.getSourceId())) { + Player controller = game.getPlayer(source.getControllerId()); + CreaturesDiedWatcher watcher = (CreaturesDiedWatcher) game.getState().getWatchers().get("CreaturesDiedWatcher"); + if (controller != null + && watcher != null) { + return (watcher.getAmountOfCreaturesDiesThisTurn(controller.getId()) == 0); + } + return true; + } // do not apply to other creatures. + return false; + } +} diff --git a/Mage.Sets/src/mage/cards/b/BontusMonument.java b/Mage.Sets/src/mage/cards/b/BontusMonument.java new file mode 100644 index 00000000000..f60d6c9bd0b --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BontusMonument.java @@ -0,0 +1,86 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import java.util.UUID; +import mage.ObjectColor; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.LoseLifeOpponentsEffect; +import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; +import mage.filter.FilterCard; +import static mage.filter.StaticFilters.FILTER_SPELL_A_CREATURE; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.filter.predicate.mageobject.ColorPredicate; + +/** + * + * @author fireshoes + */ +public class BontusMonument extends CardImpl { + + private static final FilterCard filter = new FilterCard("black creature spells"); + + static { + filter.add(Predicates.and(new ColorPredicate(ObjectColor.BLACK), new CardTypePredicate(CardType.CREATURE))); + } + + public BontusMonument(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); + + addSuperType(SuperType.LEGENDARY); + + // Black creature spells you cast cost {1} less to cast. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(filter, 1))); + + // Whenever you cast a creature spell, each opponent loses 1 life and you gain 1 life. + Ability ability = new SpellCastControllerTriggeredAbility(new LoseLifeOpponentsEffect(1), FILTER_SPELL_A_CREATURE, false); + Effect effect = new GainLifeEffect(1); + effect.setText("and you gain 1 life"); + ability.addEffect(effect); + this.addAbility(ability); + } + + public BontusMonument(final BontusMonument card) { + super(card); + } + + @Override + public BontusMonument copy() { + return new BontusMonument(this); + } +} diff --git a/Mage.Sets/src/mage/cards/b/BookBurning.java b/Mage.Sets/src/mage/cards/b/BookBurning.java index 21182c8a428..1f703346cb6 100644 --- a/Mage.Sets/src/mage/cards/b/BookBurning.java +++ b/Mage.Sets/src/mage/cards/b/BookBurning.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author tomd1990 diff --git a/Mage.Sets/src/mage/cards/b/BookOfRass.java b/Mage.Sets/src/mage/cards/b/BookOfRass.java index ec2190ee4e3..11031353ef5 100644 --- a/Mage.Sets/src/mage/cards/b/BookOfRass.java +++ b/Mage.Sets/src/mage/cards/b/BookOfRass.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.PayLifeCost; @@ -39,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/b/BoomBust.java b/Mage.Sets/src/mage/cards/b/BoomBust.java index af2f68c27c1..7edf763ed8d 100644 --- a/Mage.Sets/src/mage/cards/b/BoomBust.java +++ b/Mage.Sets/src/mage/cards/b/BoomBust.java @@ -34,6 +34,7 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; +import mage.constants.SpellAbilityType; import mage.constants.TargetController; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.permanent.ControllerPredicate; @@ -50,7 +51,7 @@ public class BoomBust extends SplitCard { } public BoomBust(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}","{5}{R}",false); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}", "{5}{R}", SpellAbilityType.SPLIT); // Boom // Destroy target land you control and target land you don't control. diff --git a/Mage.Sets/src/mage/cards/b/Boomerang.java b/Mage.Sets/src/mage/cards/b/Boomerang.java index e3404c9c038..d92ebe3cf54 100644 --- a/Mage.Sets/src/mage/cards/b/Boomerang.java +++ b/Mage.Sets/src/mage/cards/b/Boomerang.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/Boompile.java b/Mage.Sets/src/mage/cards/b/Boompile.java index 7b418d055bd..c2f33b150de 100644 --- a/Mage.Sets/src/mage/cards/b/Boompile.java +++ b/Mage.Sets/src/mage/cards/b/Boompile.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DestroyAllEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterNonlandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BoonOfEmrakul.java b/Mage.Sets/src/mage/cards/b/BoonOfEmrakul.java index c8eeee1936d..1724a92cfd9 100644 --- a/Mage.Sets/src/mage/cards/b/BoonOfEmrakul.java +++ b/Mage.Sets/src/mage/cards/b/BoonOfEmrakul.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/b/BoonOfErebos.java b/Mage.Sets/src/mage/cards/b/BoonOfErebos.java index 328b29cb012..d89d62f8f00 100644 --- a/Mage.Sets/src/mage/cards/b/BoonOfErebos.java +++ b/Mage.Sets/src/mage/cards/b/BoonOfErebos.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.abilities.effects.common.RegenerateTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BoonReflection.java b/Mage.Sets/src/mage/cards/b/BoonReflection.java index 6d17eb2bdcc..84ec58ff2bd 100644 --- a/Mage.Sets/src/mage/cards/b/BoonReflection.java +++ b/Mage.Sets/src/mage/cards/b/BoonReflection.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BoonSatyr.java b/Mage.Sets/src/mage/cards/b/BoonSatyr.java index 8d0f5368674..2097405ce87 100644 --- a/Mage.Sets/src/mage/cards/b/BoonSatyr.java +++ b/Mage.Sets/src/mage/cards/b/BoonSatyr.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BoonweaverGiant.java b/Mage.Sets/src/mage/cards/b/BoonweaverGiant.java index c4265768fde..b45ec16ef23 100644 --- a/Mage.Sets/src/mage/cards/b/BoonweaverGiant.java +++ b/Mage.Sets/src/mage/cards/b/BoonweaverGiant.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -48,6 +47,8 @@ import mage.target.common.TargetCardInHand; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Borborygmos.java b/Mage.Sets/src/mage/cards/b/Borborygmos.java index 09f611be489..7a7ac457397 100644 --- a/Mage.Sets/src/mage/cards/b/Borborygmos.java +++ b/Mage.Sets/src/mage/cards/b/Borborygmos.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersAllEffect; @@ -35,9 +34,12 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -46,7 +48,7 @@ public class Borborygmos extends CardImpl { public Borborygmos(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Cyclops"); this.power = new MageInt(6); this.toughness = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/b/BorborygmosEnraged.java b/Mage.Sets/src/mage/cards/b/BorborygmosEnraged.java index c4ebfeedbce..dbb282560eb 100644 --- a/Mage.Sets/src/mage/cards/b/BorborygmosEnraged.java +++ b/Mage.Sets/src/mage/cards/b/BorborygmosEnraged.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -40,11 +37,15 @@ import mage.abilities.effects.common.RevealLibraryPutIntoHandEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterLandCard; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Plopman @@ -55,7 +56,7 @@ public class BorborygmosEnraged extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}{R}{G}{G}"); this.subtype.add("Cyclops"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.power = new MageInt(7); this.toughness = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/b/BorderGuard.java b/Mage.Sets/src/mage/cards/b/BorderGuard.java index c93701d49fa..dd40ae0e2dc 100644 --- a/Mage.Sets/src/mage/cards/b/BorderGuard.java +++ b/Mage.Sets/src/mage/cards/b/BorderGuard.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BorderPatrol.java b/Mage.Sets/src/mage/cards/b/BorderPatrol.java index ad3f054113d..640eeb96cbc 100644 --- a/Mage.Sets/src/mage/cards/b/BorderPatrol.java +++ b/Mage.Sets/src/mage/cards/b/BorderPatrol.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BorderlandBehemoth.java b/Mage.Sets/src/mage/cards/b/BorderlandBehemoth.java index 7cd2880b0b7..bf8476f5bea 100644 --- a/Mage.Sets/src/mage/cards/b/BorderlandBehemoth.java +++ b/Mage.Sets/src/mage/cards/b/BorderlandBehemoth.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.PermanentIdPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BorderlandExplorer.java b/Mage.Sets/src/mage/cards/b/BorderlandExplorer.java index 5d7eee81fe6..c888f614d72 100644 --- a/Mage.Sets/src/mage/cards/b/BorderlandExplorer.java +++ b/Mage.Sets/src/mage/cards/b/BorderlandExplorer.java @@ -27,17 +27,11 @@ */ package mage.cards.b; -import java.util.HashMap; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.FilterCard; @@ -48,6 +42,9 @@ import mage.target.Target; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetDiscard; +import java.util.HashMap; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BorderlandMarauder.java b/Mage.Sets/src/mage/cards/b/BorderlandMarauder.java index cf02f380240..8153e2c647f 100644 --- a/Mage.Sets/src/mage/cards/b/BorderlandMarauder.java +++ b/Mage.Sets/src/mage/cards/b/BorderlandMarauder.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/b/BorderlandMinotaur.java b/Mage.Sets/src/mage/cards/b/BorderlandMinotaur.java index b344be40cf3..947c44866b7 100644 --- a/Mage.Sets/src/mage/cards/b/BorderlandMinotaur.java +++ b/Mage.Sets/src/mage/cards/b/BorderlandMinotaur.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BorderlandRanger.java b/Mage.Sets/src/mage/cards/b/BorderlandRanger.java index 30f9f132936..87605baef80 100644 --- a/Mage.Sets/src/mage/cards/b/BorderlandRanger.java +++ b/Mage.Sets/src/mage/cards/b/BorderlandRanger.java @@ -27,16 +27,17 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BorealCentaur.java b/Mage.Sets/src/mage/cards/b/BorealCentaur.java index 5b00f169b45..e5fe2af2203 100644 --- a/Mage.Sets/src/mage/cards/b/BorealCentaur.java +++ b/Mage.Sets/src/mage/cards/b/BorealCentaur.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -36,8 +35,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox @@ -46,7 +48,7 @@ public class BorealCentaur extends CardImpl { public BorealCentaur(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Centaur"); this.subtype.add("Warrior"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/b/BorealDruid.java b/Mage.Sets/src/mage/cards/b/BorealDruid.java index 253b92118f4..d822a8a5c2a 100644 --- a/Mage.Sets/src/mage/cards/b/BorealDruid.java +++ b/Mage.Sets/src/mage/cards/b/BorealDruid.java @@ -27,12 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -42,7 +44,7 @@ public class BorealDruid extends CardImpl { public BorealDruid(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Elf"); this.subtype.add("Druid"); diff --git a/Mage.Sets/src/mage/cards/b/BorealGriffin.java b/Mage.Sets/src/mage/cards/b/BorealGriffin.java index 333c4beed94..9db5882ca05 100644 --- a/Mage.Sets/src/mage/cards/b/BorealGriffin.java +++ b/Mage.Sets/src/mage/cards/b/BorealGriffin.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,8 +37,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox @@ -48,7 +50,7 @@ public class BorealGriffin extends CardImpl { public BorealGriffin(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Griffin"); this.power = new MageInt(3); this.toughness = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/b/BorealShelf.java b/Mage.Sets/src/mage/cards/b/BorealShelf.java index b6bcd2cf498..262daaf670c 100644 --- a/Mage.Sets/src/mage/cards/b/BorealShelf.java +++ b/Mage.Sets/src/mage/cards/b/BorealShelf.java @@ -27,14 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.BlueManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -44,7 +45,7 @@ public class BorealShelf extends CardImpl { public BorealShelf(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); // Boreal Shelf enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); diff --git a/Mage.Sets/src/mage/cards/b/BorisDevilboon.java b/Mage.Sets/src/mage/cards/b/BorisDevilboon.java index f319e61bf3b..9fdfab72a25 100644 --- a/Mage.Sets/src/mage/cards/b/BorisDevilboon.java +++ b/Mage.Sets/src/mage/cards/b/BorisDevilboon.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +36,12 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LoneFox @@ -48,7 +50,7 @@ public class BorisDevilboon extends CardImpl { public BorisDevilboon(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Wizard"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/b/BorosBattleshaper.java b/Mage.Sets/src/mage/cards/b/BorosBattleshaper.java index 030eb88cf8d..d7047644d01 100644 --- a/Mage.Sets/src/mage/cards/b/BorosBattleshaper.java +++ b/Mage.Sets/src/mage/cards/b/BorosBattleshaper.java @@ -28,12 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; @@ -48,13 +42,15 @@ import mage.abilities.keyword.AttacksThisTurnMarkerAbility; import mage.abilities.keyword.BlocksThisTurnMarkerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.TargetController; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BorosCharm.java b/Mage.Sets/src/mage/cards/b/BorosCharm.java index b421f3af2c7..e357544505c 100644 --- a/Mage.Sets/src/mage/cards/b/BorosCharm.java +++ b/Mage.Sets/src/mage/cards/b/BorosCharm.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Mode; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -39,11 +36,14 @@ import mage.abilities.keyword.DoubleStrikeAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterControlledPermanent; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BorosCluestone.java b/Mage.Sets/src/mage/cards/b/BorosCluestone.java index 372008d36bf..32b8f4408d7 100644 --- a/Mage.Sets/src/mage/cards/b/BorosCluestone.java +++ b/Mage.Sets/src/mage/cards/b/BorosCluestone.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +38,10 @@ import mage.abilities.mana.RedManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BorosElite.java b/Mage.Sets/src/mage/cards/b/BorosElite.java index 5b7579478f3..a846825f7f4 100644 --- a/Mage.Sets/src/mage/cards/b/BorosElite.java +++ b/Mage.Sets/src/mage/cards/b/BorosElite.java @@ -27,16 +27,16 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.BattalionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BorosGarrison.java b/Mage.Sets/src/mage/cards/b/BorosGarrison.java index b517519ed40..f8ae95fa1b9 100644 --- a/Mage.Sets/src/mage/cards/b/BorosGarrison.java +++ b/Mage.Sets/src/mage/cards/b/BorosGarrison.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.Mana; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/b/BorosGuildgate.java b/Mage.Sets/src/mage/cards/b/BorosGuildgate.java index 12423f75305..2768e0fe61c 100644 --- a/Mage.Sets/src/mage/cards/b/BorosGuildgate.java +++ b/Mage.Sets/src/mage/cards/b/BorosGuildgate.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.RedManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BorosGuildmage.java b/Mage.Sets/src/mage/cards/b/BorosGuildmage.java index 44cb5f8ffa5..a3bb07dbd60 100644 --- a/Mage.Sets/src/mage/cards/b/BorosGuildmage.java +++ b/Mage.Sets/src/mage/cards/b/BorosGuildmage.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,10 +37,13 @@ import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BorosMastiff.java b/Mage.Sets/src/mage/cards/b/BorosMastiff.java index 6b370b2bf09..a8d6d7e355b 100644 --- a/Mage.Sets/src/mage/cards/b/BorosMastiff.java +++ b/Mage.Sets/src/mage/cards/b/BorosMastiff.java @@ -28,15 +28,16 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.BattalionAbility; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BorosReckoner.java b/Mage.Sets/src/mage/cards/b/BorosReckoner.java index 1d61280cf87..3e0f2d4156d 100644 --- a/Mage.Sets/src/mage/cards/b/BorosReckoner.java +++ b/Mage.Sets/src/mage/cards/b/BorosReckoner.java @@ -27,11 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealtDamageToSourceTriggeredAbility; @@ -42,11 +37,17 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BorosRecruit.java b/Mage.Sets/src/mage/cards/b/BorosRecruit.java index 45457cbb746..58ace908a8e 100644 --- a/Mage.Sets/src/mage/cards/b/BorosRecruit.java +++ b/Mage.Sets/src/mage/cards/b/BorosRecruit.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BorosSignet.java b/Mage.Sets/src/mage/cards/b/BorosSignet.java index e61f658a2f6..9c64d88cc82 100644 --- a/Mage.Sets/src/mage/cards/b/BorosSignet.java +++ b/Mage.Sets/src/mage/cards/b/BorosSignet.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -38,6 +35,10 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BorosSwiftblade.java b/Mage.Sets/src/mage/cards/b/BorosSwiftblade.java index bc1d22f99cd..005424359e3 100644 --- a/Mage.Sets/src/mage/cards/b/BorosSwiftblade.java +++ b/Mage.Sets/src/mage/cards/b/BorosSwiftblade.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DoubleStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BorrowedGrace.java b/Mage.Sets/src/mage/cards/b/BorrowedGrace.java index b4df378b401..519c4ea038f 100644 --- a/Mage.Sets/src/mage/cards/b/BorrowedGrace.java +++ b/Mage.Sets/src/mage/cards/b/BorrowedGrace.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BorrowedHostility.java b/Mage.Sets/src/mage/cards/b/BorrowedHostility.java index 235ddc6b31d..221a2e33e4a 100644 --- a/Mage.Sets/src/mage/cards/b/BorrowedHostility.java +++ b/Mage.Sets/src/mage/cards/b/BorrowedHostility.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BorrowedMalevolence.java b/Mage.Sets/src/mage/cards/b/BorrowedMalevolence.java index cc7fc412d41..dd472787720 100644 --- a/Mage.Sets/src/mage/cards/b/BorrowedMalevolence.java +++ b/Mage.Sets/src/mage/cards/b/BorrowedMalevolence.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.Effect; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/Borrowing100000Arrows.java b/Mage.Sets/src/mage/cards/b/Borrowing100000Arrows.java index bcf374841e8..85e6037dde6 100644 --- a/Mage.Sets/src/mage/cards/b/Borrowing100000Arrows.java +++ b/Mage.Sets/src/mage/cards/b/Borrowing100000Arrows.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BorrowingTheEastWind.java b/Mage.Sets/src/mage/cards/b/BorrowingTheEastWind.java index 46a9d9c3a70..d280cee2ad8 100644 --- a/Mage.Sets/src/mage/cards/b/BorrowingTheEastWind.java +++ b/Mage.Sets/src/mage/cards/b/BorrowingTheEastWind.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DamageEverythingEffect; import mage.abilities.keyword.HorsemanshipAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BoseijuWhoSheltersAll.java b/Mage.Sets/src/mage/cards/b/BoseijuWhoSheltersAll.java index 16048507631..4c7f7aad763 100644 --- a/Mage.Sets/src/mage/cards/b/BoseijuWhoSheltersAll.java +++ b/Mage.Sets/src/mage/cards/b/BoseijuWhoSheltersAll.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageObject; import mage.Mana; import mage.abilities.Ability; @@ -41,11 +38,7 @@ import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.common.FilterInstantOrSorceryCard; import mage.game.Game; @@ -53,6 +46,10 @@ import mage.game.events.GameEvent; import mage.game.stack.Spell; import mage.watchers.Watcher; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 @@ -61,7 +58,7 @@ public class BoseijuWhoSheltersAll extends CardImpl { public BoseijuWhoSheltersAll(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); // Boseiju, Who Shelters All enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); @@ -106,7 +103,7 @@ class BoseijuWhoSheltersAllWatcher extends Watcher { @Override public void watch(GameEvent event, Game game) { - if (event.getType() == GameEvent.EventType.MANA_PAYED) { + if (event.getType() == GameEvent.EventType.MANA_PAID) { MageObject object = game.getObject(event.getSourceId()); // TODO: Replace identification by name by better method that also works if ability is copied from other land with other name if (object != null && object.getName().equals("Boseiju, Who Shelters All") && event.getFlag()) { diff --git a/Mage.Sets/src/mage/cards/b/BoshIronGolem.java b/Mage.Sets/src/mage/cards/b/BoshIronGolem.java index de81e57ee4a..449d2d9f9a1 100644 --- a/Mage.Sets/src/mage/cards/b/BoshIronGolem.java +++ b/Mage.Sets/src/mage/cards/b/BoshIronGolem.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,11 +39,14 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledArtifactPermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -54,7 +55,7 @@ public class BoshIronGolem extends CardImpl { public BoshIronGolem(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{8}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Golem"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/b/BoskBanneret.java b/Mage.Sets/src/mage/cards/b/BoskBanneret.java index b4d4ded3c10..ac42feadd1c 100644 --- a/Mage.Sets/src/mage/cards/b/BoskBanneret.java +++ b/Mage.Sets/src/mage/cards/b/BoskBanneret.java @@ -27,18 +27,19 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/Bossk.java b/Mage.Sets/src/mage/cards/b/Bossk.java index 9b62092777d..5746debedf9 100644 --- a/Mage.Sets/src/mage/cards/b/Bossk.java +++ b/Mage.Sets/src/mage/cards/b/Bossk.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.counter.AddCountersTargetEffect; @@ -37,6 +36,7 @@ import mage.abilities.keyword.DeathtouchAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterBasicLandCard; @@ -47,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetOpponentsCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo @@ -55,7 +57,7 @@ public class Bossk extends CardImpl { public Bossk(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Trandoshan"); this.subtype.add("Hunter"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/b/BotanicalSanctum.java b/Mage.Sets/src/mage/cards/b/BotanicalSanctum.java index b322d71c6bc..b3f915e816f 100644 --- a/Mage.Sets/src/mage/cards/b/BotanicalSanctum.java +++ b/Mage.Sets/src/mage/cards/b/BotanicalSanctum.java @@ -27,9 +27,7 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; @@ -43,6 +41,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +53,7 @@ public class BotanicalSanctum extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); // Botanical Sanctum enters the battlefield tapped unless you control two or fewer other lands. - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.FEWER_THAN, 3)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.FEWER_THAN, 3)); String abilityText = "tapped unless you control fewer than 3 lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); diff --git a/Mage.Sets/src/mage/cards/b/BottleGnomes.java b/Mage.Sets/src/mage/cards/b/BottleGnomes.java index 759e3e11360..4a4c530b549 100644 --- a/Mage.Sets/src/mage/cards/b/BottleGnomes.java +++ b/Mage.Sets/src/mage/cards/b/BottleGnomes.java @@ -27,17 +27,17 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BottleOfSuleiman.java b/Mage.Sets/src/mage/cards/b/BottleOfSuleiman.java index c379949865e..a702d139472 100644 --- a/Mage.Sets/src/mage/cards/b/BottleOfSuleiman.java +++ b/Mage.Sets/src/mage/cards/b/BottleOfSuleiman.java @@ -27,8 +27,7 @@ */ package mage.cards.b; -import java.util.UUID; - +import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -43,7 +42,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.token.Token; import mage.players.Player; -import mage.MageInt; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BottledCloister.java b/Mage.Sets/src/mage/cards/b/BottledCloister.java index 7b133224297..1bab7e9a8d3 100644 --- a/Mage.Sets/src/mage/cards/b/BottledCloister.java +++ b/Mage.Sets/src/mage/cards/b/BottledCloister.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.Effect; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BottomlessPit.java b/Mage.Sets/src/mage/cards/b/BottomlessPit.java index ec8ac2e1b10..f2741fa123f 100644 --- a/Mage.Sets/src/mage/cards/b/BottomlessPit.java +++ b/Mage.Sets/src/mage/cards/b/BottomlessPit.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; @@ -36,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/b/BottomlessVault.java b/Mage.Sets/src/mage/cards/b/BottomlessVault.java index e04d74b3a75..97cd9ecf2aa 100644 --- a/Mage.Sets/src/mage/cards/b/BottomlessVault.java +++ b/Mage.Sets/src/mage/cards/b/BottomlessVault.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -50,6 +49,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/b/BoulderSalvo.java b/Mage.Sets/src/mage/cards/b/BoulderSalvo.java index 03197d52f32..d1f3e93d465 100644 --- a/Mage.Sets/src/mage/cards/b/BoulderSalvo.java +++ b/Mage.Sets/src/mage/cards/b/BoulderSalvo.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.SurgeAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/Boulderfall.java b/Mage.Sets/src/mage/cards/b/Boulderfall.java index 6811d577e24..571f417f622 100644 --- a/Mage.Sets/src/mage/cards/b/Boulderfall.java +++ b/Mage.Sets/src/mage/cards/b/Boulderfall.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DamageMultiEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayerAmount; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BouncingBeebles.java b/Mage.Sets/src/mage/cards/b/BouncingBeebles.java index 1f80504e22c..1251322dc03 100644 --- a/Mage.Sets/src/mage/cards/b/BouncingBeebles.java +++ b/Mage.Sets/src/mage/cards/b/BouncingBeebles.java @@ -27,10 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.DefendingPlayerControlsCondition; @@ -39,8 +35,12 @@ import mage.abilities.effects.Effect; import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterArtifactPermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/b/BoundByMoonsilver.java b/Mage.Sets/src/mage/cards/b/BoundByMoonsilver.java index ee28f5a5c88..945980ffb0c 100644 --- a/Mage.Sets/src/mage/cards/b/BoundByMoonsilver.java +++ b/Mage.Sets/src/mage/cards/b/BoundByMoonsilver.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -48,6 +47,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author halljared diff --git a/Mage.Sets/src/mage/cards/b/BoundDetermined.java b/Mage.Sets/src/mage/cards/b/BoundDetermined.java index 37307ac9b0f..f70f4127ac0 100644 --- a/Mage.Sets/src/mage/cards/b/BoundDetermined.java +++ b/Mage.Sets/src/mage/cards/b/BoundDetermined.java @@ -35,12 +35,13 @@ import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.ExileSourceEffect; -import mage.cards.CardsImpl; import mage.cards.CardSetInfo; +import mage.cards.CardsImpl; import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; +import mage.constants.SpellAbilityType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.FilterSpell; @@ -67,7 +68,7 @@ public class BoundDetermined extends SplitCard { } public BoundDetermined(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{B}{G}","{G}{U}",false); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{B}{G}", "{G}{U}", SpellAbilityType.SPLIT); // Bound // Sacrifice a creature. Return up to X cards from your graveyard to your hand, where X is the number of colors that creature was. Exile this card. diff --git a/Mage.Sets/src/mage/cards/b/BoundInSilence.java b/Mage.Sets/src/mage/cards/b/BoundInSilence.java index aace82c01ad..f8a4e248746 100644 --- a/Mage.Sets/src/mage/cards/b/BoundInSilence.java +++ b/Mage.Sets/src/mage/cards/b/BoundInSilence.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -37,9 +34,15 @@ import mage.abilities.effects.common.combat.CantAttackBlockAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BoundingKrasis.java b/Mage.Sets/src/mage/cards/b/BoundingKrasis.java index d3c10004c78..b727674dc8c 100644 --- a/Mage.Sets/src/mage/cards/b/BoundingKrasis.java +++ b/Mage.Sets/src/mage/cards/b/BoundingKrasis.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BoundlessRealms.java b/Mage.Sets/src/mage/cards/b/BoundlessRealms.java index 8edb2bfa554..aabda636a62 100644 --- a/Mage.Sets/src/mage/cards/b/BoundlessRealms.java +++ b/Mage.Sets/src/mage/cards/b/BoundlessRealms.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.OneShotEffect; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BounteousKirin.java b/Mage.Sets/src/mage/cards/b/BounteousKirin.java index 756b4c3ffc1..139f2eb5bc5 100644 --- a/Mage.Sets/src/mage/cards/b/BounteousKirin.java +++ b/Mage.Sets/src/mage/cards/b/BounteousKirin.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -37,12 +36,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterSpiritOrArcaneCard; import mage.game.Game; import mage.game.stack.Spell; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -51,7 +53,7 @@ public class BounteousKirin extends CardImpl { public BounteousKirin(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Kirin"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/b/BountifulHarvest.java b/Mage.Sets/src/mage/cards/b/BountifulHarvest.java index a12c920163b..7082845615d 100644 --- a/Mage.Sets/src/mage/cards/b/BountifulHarvest.java +++ b/Mage.Sets/src/mage/cards/b/BountifulHarvest.java @@ -28,15 +28,16 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BountyCollector.java b/Mage.Sets/src/mage/cards/b/BountyCollector.java index af42d1e6409..3e6edaa06cf 100644 --- a/Mage.Sets/src/mage/cards/b/BountyCollector.java +++ b/Mage.Sets/src/mage/cards/b/BountyCollector.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/b/BountyHunter.java b/Mage.Sets/src/mage/cards/b/BountyHunter.java index a8113cfc3ad..ac879d37556 100644 --- a/Mage.Sets/src/mage/cards/b/BountyHunter.java +++ b/Mage.Sets/src/mage/cards/b/BountyHunter.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -46,6 +45,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.CounterPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BountyOfTheHunt.java b/Mage.Sets/src/mage/cards/b/BountyOfTheHunt.java index f7689d4557e..216b66a4b8c 100644 --- a/Mage.Sets/src/mage/cards/b/BountyOfTheHunt.java +++ b/Mage.Sets/src/mage/cards/b/BountyOfTheHunt.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.ExileFromHandCost; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCreaturePermanentAmount; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BountyOfTheLuxa.java b/Mage.Sets/src/mage/cards/b/BountyOfTheLuxa.java new file mode 100644 index 00000000000..b384a567ed5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BountyOfTheLuxa.java @@ -0,0 +1,116 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.BeginningOfPreCombatMainTriggeredAbility; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.TargetController; +import mage.counters.CounterType; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; + +/** + * + * @author jeffwadsworth + */ +public class BountyOfTheLuxa extends CardImpl { + + public BountyOfTheLuxa(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}{U}"); + + //At the beginning of your precombat main phase, remove all flood counters from Bounty of the Luxa. If no counters were removed this way, put a flood counter on Bounty of the Luxa and draw a card. Otherwise, add {C}{G}{U} to your mana pool. + this.addAbility(new BeginningOfPreCombatMainTriggeredAbility(new BountyOfTheLuxaEffect(), TargetController.YOU, false)); + + } + + public BountyOfTheLuxa(final BountyOfTheLuxa card) { + super(card); + } + + @Override + public BountyOfTheLuxa copy() { + return new BountyOfTheLuxa(this); + } + +} + +class BountyOfTheLuxaEffect extends OneShotEffect { + + public BountyOfTheLuxaEffect() { + super(Outcome.Benefit); + staticText = "remove all flood counters from {this}. If no counters were removed this way, put a flood counter on {this} and draw a card. Otherwise, add {C}{G}{U} to your mana pool"; + } + + public BountyOfTheLuxaEffect(final BountyOfTheLuxaEffect effect) { + super(effect); + } + + @Override + public BountyOfTheLuxaEffect copy() { + return new BountyOfTheLuxaEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + Permanent bountyOfLuxa = game.getPermanent(source.getSourceId()); + if (bountyOfLuxa != null && bountyOfLuxa.getZoneChangeCounter(game) != source.getSourceObjectZoneChangeCounter()) { + bountyOfLuxa = null; + } + if (controller != null) { + if (bountyOfLuxa != null + && bountyOfLuxa.getCounters(game).getCount(CounterType.FLOOD) > 0) { + bountyOfLuxa.removeCounters(CounterType.FLOOD.createInstance(bountyOfLuxa.getCounters(game).getCount(CounterType.FLOOD)), game); + if (bountyOfLuxa.getCounters(game).getCount(CounterType.FLOOD) == 0) { + Mana manaToAdd = new Mana(); + manaToAdd.increaseColorless(); + manaToAdd.increaseGreen(); + manaToAdd.increaseBlue(); + controller.getManaPool().addMana(manaToAdd, game, source); + } + } else { + if (bountyOfLuxa != null) { + new AddCountersSourceEffect(CounterType.FLOOD.createInstance()).apply(game, source); + } + controller.drawCards(1, game); + } + return true; + } + return false; + } + +} diff --git a/Mage.Sets/src/mage/cards/b/BountySniper.java b/Mage.Sets/src/mage/cards/b/BountySniper.java index a383cb0024c..e7d95bd0cc8 100644 --- a/Mage.Sets/src/mage/cards/b/BountySniper.java +++ b/Mage.Sets/src/mage/cards/b/BountySniper.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/b/BountySpotter.java b/Mage.Sets/src/mage/cards/b/BountySpotter.java index 0208ef26f81..f9aa5065168 100644 --- a/Mage.Sets/src/mage/cards/b/BountySpotter.java +++ b/Mage.Sets/src/mage/cards/b/BountySpotter.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetOpponentsCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/b/BowOfNylea.java b/Mage.Sets/src/mage/cards/b/BowOfNylea.java index b4481eb7850..8dcb21d3286 100644 --- a/Mage.Sets/src/mage/cards/b/BowOfNylea.java +++ b/Mage.Sets/src/mage/cards/b/BowOfNylea.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.common.SimpleActivatedAbility; @@ -41,15 +40,8 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.FlyingAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.cards.*; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.FilterCard; import mage.filter.common.FilterAttackingCreature; @@ -61,6 +53,8 @@ import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -74,7 +68,7 @@ public class BowOfNylea extends CardImpl { public BowOfNylea(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.ARTIFACT},"{1}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Attacking creatures you control have deathtouch. diff --git a/Mage.Sets/src/mage/cards/b/BowerPassage.java b/Mage.Sets/src/mage/cards/b/BowerPassage.java index e35cc35bd2c..e1b4a2d2421 100644 --- a/Mage.Sets/src/mage/cards/b/BowerPassage.java +++ b/Mage.Sets/src/mage/cards/b/BowerPassage.java @@ -27,13 +27,13 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.RestrictionEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.game.Game; diff --git a/Mage.Sets/src/mage/cards/b/BrackwaterElemental.java b/Mage.Sets/src/mage/cards/b/BrackwaterElemental.java index d24c91a12b1..4f6b1b4a979 100644 --- a/Mage.Sets/src/mage/cards/b/BrackwaterElemental.java +++ b/Mage.Sets/src/mage/cards/b/BrackwaterElemental.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BragoKingEternal.java b/Mage.Sets/src/mage/cards/b/BragoKingEternal.java index 0c2b328361f..790279a79a7 100644 --- a/Mage.Sets/src/mage/cards/b/BragoKingEternal.java +++ b/Mage.Sets/src/mage/cards/b/BragoKingEternal.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -38,12 +37,15 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,7 +54,7 @@ public class BragoKingEternal extends CardImpl { public BragoKingEternal(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/b/BraidOfFire.java b/Mage.Sets/src/mage/cards/b/BraidOfFire.java index a2d5142684b..b0887d9c857 100644 --- a/Mage.Sets/src/mage/cards/b/BraidOfFire.java +++ b/Mage.Sets/src/mage/cards/b/BraidOfFire.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.Cost; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author AlumiuN diff --git a/Mage.Sets/src/mage/cards/b/BraidsCabalMinion.java b/Mage.Sets/src/mage/cards/b/BraidsCabalMinion.java index 7aa9e9c0565..c500d7c571c 100644 --- a/Mage.Sets/src/mage/cards/b/BraidsCabalMinion.java +++ b/Mage.Sets/src/mage/cards/b/BraidsCabalMinion.java @@ -27,19 +27,21 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.SacrificeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author cbt33, North (Karma) @@ -56,7 +58,7 @@ public class BraidsCabalMinion extends CardImpl { public BraidsCabalMinion(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Minion"); diff --git a/Mage.Sets/src/mage/cards/b/BraidsConjurerAdept.java b/Mage.Sets/src/mage/cards/b/BraidsConjurerAdept.java index f736f9ca992..1a7d66fd501 100644 --- a/Mage.Sets/src/mage/cards/b/BraidsConjurerAdept.java +++ b/Mage.Sets/src/mage/cards/b/BraidsConjurerAdept.java @@ -27,18 +27,20 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.PutPermanentOnBattlefieldEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LoneFox @@ -56,7 +58,7 @@ public class BraidsConjurerAdept extends CardImpl { public BraidsConjurerAdept(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/b/BraidwoodCup.java b/Mage.Sets/src/mage/cards/b/BraidwoodCup.java index d9fe67705cc..43bbe137745 100644 --- a/Mage.Sets/src/mage/cards/b/BraidwoodCup.java +++ b/Mage.Sets/src/mage/cards/b/BraidwoodCup.java @@ -27,17 +27,17 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/b/BraidwoodSextant.java b/Mage.Sets/src/mage/cards/b/BraidwoodSextant.java index dccfb31038e..bbf15ffc88e 100644 --- a/Mage.Sets/src/mage/cards/b/BraidwoodSextant.java +++ b/Mage.Sets/src/mage/cards/b/BraidwoodSextant.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BrainFreeze.java b/Mage.Sets/src/mage/cards/b/BrainFreeze.java index 7b07ec7235c..0046d0d628c 100644 --- a/Mage.Sets/src/mage/cards/b/BrainFreeze.java +++ b/Mage.Sets/src/mage/cards/b/BrainFreeze.java @@ -27,14 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; import mage.abilities.keyword.StormAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BrainGorgers.java b/Mage.Sets/src/mage/cards/b/BrainGorgers.java index 3edc1039285..1c751ef54ac 100644 --- a/Mage.Sets/src/mage/cards/b/BrainGorgers.java +++ b/Mage.Sets/src/mage/cards/b/BrainGorgers.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -45,6 +44,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BrainInAJar.java b/Mage.Sets/src/mage/cards/b/BrainInAJar.java index c539edc0925..7d4b3a5a31c 100644 --- a/Mage.Sets/src/mage/cards/b/BrainInAJar.java +++ b/Mage.Sets/src/mage/cards/b/BrainInAJar.java @@ -27,8 +27,8 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveVariableCountersSourceCost; import mage.abilities.costs.common.TapSourceCost; @@ -43,7 +43,6 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.common.FilterInstantOrSorceryCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -52,6 +51,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 @@ -107,7 +108,7 @@ class BrainInAJarCastEffect extends OneShotEffect { if (controller != null && sourceObject != null) { int counters = sourceObject.getCounters(game).getCount(CounterType.CHARGE); FilterCard filter = new FilterInstantOrSorceryCard(); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, counters)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, counters)); int cardsToCast = controller.getHand().count(filter, source.getControllerId(), source.getSourceId(), game); if (cardsToCast > 0 && controller.chooseUse(outcome, "Cast an instant or sorcery card with converted mana costs of " + counters + " from your hand without paying its mana cost?", source, game)) { TargetCardInHand target = new TargetCardInHand(filter); diff --git a/Mage.Sets/src/mage/cards/b/BrainMaggot.java b/Mage.Sets/src/mage/cards/b/BrainMaggot.java index 26ff8d1b750..bd08753084a 100644 --- a/Mage.Sets/src/mage/cards/b/BrainMaggot.java +++ b/Mage.Sets/src/mage/cards/b/BrainMaggot.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -54,6 +53,8 @@ import mage.target.TargetCard; import mage.target.common.TargetOpponent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BrainPry.java b/Mage.Sets/src/mage/cards/b/BrainPry.java index fe92f3c9a99..dcae66062c6 100644 --- a/Mage.Sets/src/mage/cards/b/BrainPry.java +++ b/Mage.Sets/src/mage/cards/b/BrainPry.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/b/BrainWeevil.java b/Mage.Sets/src/mage/cards/b/BrainWeevil.java index 99517b1392c..aaf646de250 100644 --- a/Mage.Sets/src/mage/cards/b/BrainWeevil.java +++ b/Mage.Sets/src/mage/cards/b/BrainWeevil.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; @@ -38,9 +35,12 @@ import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.keyword.IntimidateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/Brainbite.java b/Mage.Sets/src/mage/cards/b/Brainbite.java index e9e04a740e3..1f86c4b66df 100644 --- a/Mage.Sets/src/mage/cards/b/Brainbite.java +++ b/Mage.Sets/src/mage/cards/b/Brainbite.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.discard.DiscardCardYouChooseTargetEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/Braingeyser.java b/Mage.Sets/src/mage/cards/b/Braingeyser.java index eb6649d95e8..7ec60325fa5 100644 --- a/Mage.Sets/src/mage/cards/b/Braingeyser.java +++ b/Mage.Sets/src/mage/cards/b/Braingeyser.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/b/Brainspoil.java b/Mage.Sets/src/mage/cards/b/Brainspoil.java index f432d4d1f7a..986f3358ebb 100644 --- a/Mage.Sets/src/mage/cards/b/Brainspoil.java +++ b/Mage.Sets/src/mage/cards/b/Brainspoil.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.TransmuteAbility; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.EnchantedPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/Brainstorm.java b/Mage.Sets/src/mage/cards/b/Brainstorm.java index 3b2d714f69b..a28d53ce3e9 100644 --- a/Mage.Sets/src/mage/cards/b/Brainstorm.java +++ b/Mage.Sets/src/mage/cards/b/Brainstorm.java @@ -27,13 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.abilities.effects.common.BrainstormEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/b/Brainwash.java b/Mage.Sets/src/mage/cards/b/Brainwash.java index c90e0e887bf..1032d464d56 100644 --- a/Mage.Sets/src/mage/cards/b/Brainwash.java +++ b/Mage.Sets/src/mage/cards/b/Brainwash.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -44,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Galatolol diff --git a/Mage.Sets/src/mage/cards/b/BrambleCreeper.java b/Mage.Sets/src/mage/cards/b/BrambleCreeper.java index 90d22e7dce4..32ad636222c 100644 --- a/Mage.Sets/src/mage/cards/b/BrambleCreeper.java +++ b/Mage.Sets/src/mage/cards/b/BrambleCreeper.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BrambleElemental.java b/Mage.Sets/src/mage/cards/b/BrambleElemental.java index 514507be7c7..14de3eb1721 100644 --- a/Mage.Sets/src/mage/cards/b/BrambleElemental.java +++ b/Mage.Sets/src/mage/cards/b/BrambleElemental.java @@ -27,15 +27,16 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AuraAttachedTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.SaprolingToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Bramblecrush.java b/Mage.Sets/src/mage/cards/b/Bramblecrush.java index f890f257f96..6499fa7261c 100644 --- a/Mage.Sets/src/mage/cards/b/Bramblecrush.java +++ b/Mage.Sets/src/mage/cards/b/Bramblecrush.java @@ -27,16 +27,17 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/Bramblesnap.java b/Mage.Sets/src/mage/cards/b/Bramblesnap.java index e23bd92290a..e782487aa1f 100644 --- a/Mage.Sets/src/mage/cards/b/Bramblesnap.java +++ b/Mage.Sets/src/mage/cards/b/Bramblesnap.java @@ -27,10 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; @@ -38,8 +34,13 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BramblewoodParagon.java b/Mage.Sets/src/mage/cards/b/BramblewoodParagon.java index b080bea4fac..363ace046df 100644 --- a/Mage.Sets/src/mage/cards/b/BramblewoodParagon.java +++ b/Mage.Sets/src/mage/cards/b/BramblewoodParagon.java @@ -61,7 +61,7 @@ public class BramblewoodParagon extends CardImpl { } public BramblewoodParagon(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}"); this.subtype.add("Elf"); this.subtype.add("Warrior"); this.power = new MageInt(2); @@ -119,7 +119,7 @@ class BramblewoodParagonReplacementEffect extends ReplacementEffectImpl { public boolean replaceEvent(GameEvent event, Ability source, Game game) { Permanent creature = ((EntersTheBattlefieldEvent) event).getTarget(); if (creature != null) { - creature.addCounters(CounterType.P1P1.createInstance(), source, game); + creature.addCounters(CounterType.P1P1.createInstance(), source, game, event.getAppliedEffects()); } return false; } diff --git a/Mage.Sets/src/mage/cards/b/BranchingBolt.java b/Mage.Sets/src/mage/cards/b/BranchingBolt.java index 6755253d311..9652b85859a 100644 --- a/Mage.Sets/src/mage/cards/b/BranchingBolt.java +++ b/Mage.Sets/src/mage/cards/b/BranchingBolt.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.OneShotEffect; @@ -37,6 +34,8 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BranchsnapLorian.java b/Mage.Sets/src/mage/cards/b/BranchsnapLorian.java index 1e1014ac8c7..32a73c22905 100644 --- a/Mage.Sets/src/mage/cards/b/BranchsnapLorian.java +++ b/Mage.Sets/src/mage/cards/b/BranchsnapLorian.java @@ -27,15 +27,16 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.TrampleAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.MorphAbility; +import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/Brand.java b/Mage.Sets/src/mage/cards/b/Brand.java index df16bcd9b3b..a57f74a0add 100644 --- a/Mage.Sets/src/mage/cards/b/Brand.java +++ b/Mage.Sets/src/mage/cards/b/Brand.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.GainControlAllEffect; import mage.abilities.keyword.CyclingAbility; @@ -40,6 +38,8 @@ import mage.constants.TargetController; import mage.filter.FilterPermanent; import mage.filter.predicate.other.OwnerPredicate; +import java.util.UUID; + /** * * @author fenhl diff --git a/Mage.Sets/src/mage/cards/b/BrandedHowler.java b/Mage.Sets/src/mage/cards/b/BrandedHowler.java index 556002ee6f6..f16c5fdf5c9 100644 --- a/Mage.Sets/src/mage/cards/b/BrandedHowler.java +++ b/Mage.Sets/src/mage/cards/b/BrandedHowler.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BrassGnat.java b/Mage.Sets/src/mage/cards/b/BrassGnat.java index 5d93bf8d8fc..bf9f82f5027 100644 --- a/Mage.Sets/src/mage/cards/b/BrassGnat.java +++ b/Mage.Sets/src/mage/cards/b/BrassGnat.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/b/BrassHerald.java b/Mage.Sets/src/mage/cards/b/BrassHerald.java index 3af6b53f7ea..484e0c38819 100644 --- a/Mage.Sets/src/mage/cards/b/BrassHerald.java +++ b/Mage.Sets/src/mage/cards/b/BrassHerald.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AsEntersBattlefieldAbility; @@ -47,6 +46,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ChosenSubtypePredicate; import mage.game.Game; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BrassMan.java b/Mage.Sets/src/mage/cards/b/BrassMan.java index 49edc0c1545..fb91d7c20e6 100644 --- a/Mage.Sets/src/mage/cards/b/BrassMan.java +++ b/Mage.Sets/src/mage/cards/b/BrassMan.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/b/BrassSecretary.java b/Mage.Sets/src/mage/cards/b/BrassSecretary.java index 6165726551a..9ad48f2e032 100644 --- a/Mage.Sets/src/mage/cards/b/BrassSecretary.java +++ b/Mage.Sets/src/mage/cards/b/BrassSecretary.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,8 +35,11 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/b/BrassSquire.java b/Mage.Sets/src/mage/cards/b/BrassSquire.java index d679a30f843..5350d17c7d3 100644 --- a/Mage.Sets/src/mage/cards/b/BrassSquire.java +++ b/Mage.Sets/src/mage/cards/b/BrassSquire.java @@ -27,10 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +34,9 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; @@ -45,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BrassclawOrcs.java b/Mage.Sets/src/mage/cards/b/BrassclawOrcs.java index 9a0b68146d4..fe1e7359506 100644 --- a/Mage.Sets/src/mage/cards/b/BrassclawOrcs.java +++ b/Mage.Sets/src/mage/cards/b/BrassclawOrcs.java @@ -27,18 +27,19 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantBlockCreaturesSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author dustinconrad @@ -47,7 +48,7 @@ public class BrassclawOrcs extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 1)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 1)); } public BrassclawOrcs(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/b/Bravado.java b/Mage.Sets/src/mage/cards/b/Bravado.java index 2210c335c8f..9655ddccb62 100644 --- a/Mage.Sets/src/mage/cards/b/Bravado.java +++ b/Mage.Sets/src/mage/cards/b/Bravado.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; @@ -37,12 +34,15 @@ import mage.abilities.effects.common.AttachEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/b/BraveTheElements.java b/Mage.Sets/src/mage/cards/b/BraveTheElements.java index f08e5ff9b03..5b6551faf41 100644 --- a/Mage.Sets/src/mage/cards/b/BraveTheElements.java +++ b/Mage.Sets/src/mage/cards/b/BraveTheElements.java @@ -28,7 +28,6 @@ package mage.cards.b; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.continuous.GainProtectionFromColorAllEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.constants.Duration; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/BraveTheSands.java b/Mage.Sets/src/mage/cards/b/BraveTheSands.java index 44cd2ae2b79..847a3c46aab 100644 --- a/Mage.Sets/src/mage/cards/b/BraveTheSands.java +++ b/Mage.Sets/src/mage/cards/b/BraveTheSands.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CanBlockAdditionalCreatureAllEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BrawlersPlate.java b/Mage.Sets/src/mage/cards/b/BrawlersPlate.java index 53160388b28..629a393ec50 100644 --- a/Mage.Sets/src/mage/cards/b/BrawlersPlate.java +++ b/Mage.Sets/src/mage/cards/b/BrawlersPlate.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.Effect; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/Brawn.java b/Mage.Sets/src/mage/cards/b/Brawn.java index a01bfa915ec..9372e0db319 100644 --- a/Mage.Sets/src/mage/cards/b/Brawn.java +++ b/Mage.Sets/src/mage/cards/b/Brawn.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -38,6 +36,7 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; @@ -45,6 +44,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/b/BrazenScourge.java b/Mage.Sets/src/mage/cards/b/BrazenScourge.java index cd3d569ddc6..5bf4ba203c4 100644 --- a/Mage.Sets/src/mage/cards/b/BrazenScourge.java +++ b/Mage.Sets/src/mage/cards/b/BrazenScourge.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BrazenWolves.java b/Mage.Sets/src/mage/cards/b/BrazenWolves.java index 6e550cf0d3b..684dd6ef4bf 100644 --- a/Mage.Sets/src/mage/cards/b/BrazenWolves.java +++ b/Mage.Sets/src/mage/cards/b/BrazenWolves.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.Effect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Breach.java b/Mage.Sets/src/mage/cards/b/Breach.java index 3f6a49478d4..8875c53b407 100644 --- a/Mage.Sets/src/mage/cards/b/Breach.java +++ b/Mage.Sets/src/mage/cards/b/Breach.java @@ -27,17 +27,17 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BreachingHippocamp.java b/Mage.Sets/src/mage/cards/b/BreachingHippocamp.java index da5cea6ecd3..fd61293142e 100644 --- a/Mage.Sets/src/mage/cards/b/BreachingHippocamp.java +++ b/Mage.Sets/src/mage/cards/b/BreachingHippocamp.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,6 +39,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BreachingLeviathan.java b/Mage.Sets/src/mage/cards/b/BreachingLeviathan.java index 283213340b1..37dfcb11b45 100644 --- a/Mage.Sets/src/mage/cards/b/BreachingLeviathan.java +++ b/Mage.Sets/src/mage/cards/b/BreachingLeviathan.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -51,6 +48,10 @@ import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTargets; import mage.watchers.common.CastFromHandWatcher; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 @@ -67,7 +68,7 @@ public class BreachingLeviathan extends CardImpl { // When Breaching Leviathan enters the battlefield, if you cast it from your hand, tap all nonblue creatures. Those creatures don't untap during their controllers' next untap steps. this.addAbility(new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new BreachingLeviathanEffect(), false), - new CastFromHandSourceCondition(), + CastFromHandSourceCondition.instance, "When {this} enters the battlefield, if you cast it from your hand, tap all nonblue creatures. Those creatures don't untap during their controllers' next untap steps."), new CastFromHandWatcher()); } diff --git a/Mage.Sets/src/mage/cards/b/BreakAsunder.java b/Mage.Sets/src/mage/cards/b/BreakAsunder.java index 11ceffa37ef..2ae34987e7b 100644 --- a/Mage.Sets/src/mage/cards/b/BreakAsunder.java +++ b/Mage.Sets/src/mage/cards/b/BreakAsunder.java @@ -27,15 +27,16 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.CyclingAbility; -import mage.filter.common.FilterArtifactOrEnchantmentPermanent; -import mage.target.TargetPermanent; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.filter.common.FilterArtifactOrEnchantmentPermanent; +import mage.target.TargetPermanent; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BreakOfDay.java b/Mage.Sets/src/mage/cards/b/BreakOfDay.java index fc8f4611c28..0f03217091b 100644 --- a/Mage.Sets/src/mage/cards/b/BreakOfDay.java +++ b/Mage.Sets/src/mage/cards/b/BreakOfDay.java @@ -27,10 +27,7 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.condition.LockedInCondition; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.condition.common.FatefulHourCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -38,8 +35,12 @@ import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BreakThroughTheLine.java b/Mage.Sets/src/mage/cards/b/BreakThroughTheLine.java index 7831c8000e8..dea188b4e3c 100644 --- a/Mage.Sets/src/mage/cards/b/BreakThroughTheLine.java +++ b/Mage.Sets/src/mage/cards/b/BreakThroughTheLine.java @@ -27,8 +27,8 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; @@ -40,11 +40,12 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +55,7 @@ public class BreakThroughTheLine extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public BreakThroughTheLine(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/b/BreakerOfArmies.java b/Mage.Sets/src/mage/cards/b/BreakerOfArmies.java index 87ab083b04e..c6fc31754e3 100644 --- a/Mage.Sets/src/mage/cards/b/BreakerOfArmies.java +++ b/Mage.Sets/src/mage/cards/b/BreakerOfArmies.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.MustBeBlockedByAllSourceEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BreakingEntering.java b/Mage.Sets/src/mage/cards/b/BreakingEntering.java index a8584cd023a..3f2cb0e954e 100644 --- a/Mage.Sets/src/mage/cards/b/BreakingEntering.java +++ b/Mage.Sets/src/mage/cards/b/BreakingEntering.java @@ -40,6 +40,7 @@ import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; +import mage.constants.SpellAbilityType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.game.Game; @@ -52,7 +53,7 @@ import mage.target.targetpointer.FixedTarget; public class BreakingEntering extends SplitCard { public BreakingEntering(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{U}{B}","{4}{B}{R}",true); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{U}{B}", "{4}{B}{R}", SpellAbilityType.SPLIT_FUSED); // Breaking // Target player puts the top eight cards of his or her library into his or her graveyard. diff --git a/Mage.Sets/src/mage/cards/b/BreakingPoint.java b/Mage.Sets/src/mage/cards/b/BreakingPoint.java index 843c348a197..308bc5019b0 100644 --- a/Mage.Sets/src/mage/cards/b/BreakingPoint.java +++ b/Mage.Sets/src/mage/cards/b/BreakingPoint.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -41,6 +40,8 @@ import mage.game.stack.Spell; import mage.game.stack.StackObject; import mage.players.Player; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/b/BreakingWave.java b/Mage.Sets/src/mage/cards/b/BreakingWave.java index 0680e8ae953..bcc9a861d63 100644 --- a/Mage.Sets/src/mage/cards/b/BreakingWave.java +++ b/Mage.Sets/src/mage/cards/b/BreakingWave.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.PayMoreToCastAsThoughtItHadFlashAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +40,9 @@ import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.List; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BreakneckRider.java b/Mage.Sets/src/mage/cards/b/BreakneckRider.java index 3836d9492de..f8ebccee6ed 100644 --- a/Mage.Sets/src/mage/cards/b/BreakneckRider.java +++ b/Mage.Sets/src/mage/cards/b/BreakneckRider.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -35,12 +34,14 @@ import mage.abilities.condition.common.NoSpellsWereCastLastTurnCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.TransformAbility; -import mage.cards.n.NeckBreaker; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.n.NeckBreaker; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/Breakthrough.java b/Mage.Sets/src/mage/cards/b/Breakthrough.java index f8f2e05451b..2d756f29c00 100644 --- a/Mage.Sets/src/mage/cards/b/Breakthrough.java +++ b/Mage.Sets/src/mage/cards/b/Breakthrough.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BreathOfDarigaaz.java b/Mage.Sets/src/mage/cards/b/BreathOfDarigaaz.java index dd872e0929e..1ebfa467f8f 100644 --- a/Mage.Sets/src/mage/cards/b/BreathOfDarigaaz.java +++ b/Mage.Sets/src/mage/cards/b/BreathOfDarigaaz.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DamageEverythingEffect; @@ -40,6 +39,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author FenrisulfrX diff --git a/Mage.Sets/src/mage/cards/b/BreathOfFury.java b/Mage.Sets/src/mage/cards/b/BreathOfFury.java index 74c8da96e24..a5075c21f8e 100644 --- a/Mage.Sets/src/mage/cards/b/BreathOfFury.java +++ b/Mage.Sets/src/mage/cards/b/BreathOfFury.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -52,6 +51,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; + +import java.util.UUID; /** * @author duncant */ diff --git a/Mage.Sets/src/mage/cards/b/BreathOfLife.java b/Mage.Sets/src/mage/cards/b/BreathOfLife.java index 02e0855a287..1aba4d07e5a 100644 --- a/Mage.Sets/src/mage/cards/b/BreathOfLife.java +++ b/Mage.Sets/src/mage/cards/b/BreathOfLife.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +34,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/b/BreathOfMalfegor.java b/Mage.Sets/src/mage/cards/b/BreathOfMalfegor.java index 2c47b6c6966..354dc4dc344 100644 --- a/Mage.Sets/src/mage/cards/b/BreathOfMalfegor.java +++ b/Mage.Sets/src/mage/cards/b/BreathOfMalfegor.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DamagePlayersEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/Breathstealer.java b/Mage.Sets/src/mage/cards/b/Breathstealer.java index cc0de9546d6..7bf4f372b0d 100644 --- a/Mage.Sets/src/mage/cards/b/Breathstealer.java +++ b/Mage.Sets/src/mage/cards/b/Breathstealer.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BredForTheHunt.java b/Mage.Sets/src/mage/cards/b/BredForTheHunt.java index 5490121f311..9df5bcb0f6a 100644 --- a/Mage.Sets/src/mage/cards/b/BredForTheHunt.java +++ b/Mage.Sets/src/mage/cards/b/BredForTheHunt.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; @@ -41,6 +40,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + public class BredForTheHunt extends CardImpl { diff --git a/Mage.Sets/src/mage/cards/b/BreedingPit.java b/Mage.Sets/src/mage/cards/b/BreedingPit.java index 78a23badb70..d8c9a987317 100644 --- a/Mage.Sets/src/mage/cards/b/BreedingPit.java +++ b/Mage.Sets/src/mage/cards/b/BreedingPit.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility; @@ -38,10 +35,13 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BreedingPool.java b/Mage.Sets/src/mage/cards/b/BreedingPool.java index fd0cfab3933..8fc6865a972 100644 --- a/Mage.Sets/src/mage/cards/b/BreedingPool.java +++ b/Mage.Sets/src/mage/cards/b/BreedingPool.java @@ -28,8 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.costs.common.PayLifeCost; import mage.abilities.effects.common.TapSourceUnlessPaysEffect; @@ -37,6 +35,9 @@ import mage.abilities.mana.BlueManaAbility; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/Breezekeeper.java b/Mage.Sets/src/mage/cards/b/Breezekeeper.java index 1e99cec92e9..a8bb25e27eb 100644 --- a/Mage.Sets/src/mage/cards/b/Breezekeeper.java +++ b/Mage.Sets/src/mage/cards/b/Breezekeeper.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.PhasingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BreyaEtheriumShaper.java b/Mage.Sets/src/mage/cards/b/BreyaEtheriumShaper.java index 0d174e03187..b581ca9f34f 100644 --- a/Mage.Sets/src/mage/cards/b/BreyaEtheriumShaper.java +++ b/Mage.Sets/src/mage/cards/b/BreyaEtheriumShaper.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -44,6 +43,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledArtifactPermanent; import mage.game.permanent.token.Token; @@ -51,6 +51,8 @@ import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -60,7 +62,7 @@ public class BreyaEtheriumShaper extends CardImpl { public BreyaEtheriumShaper(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{W}{U}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.power = new MageInt(4); this.toughness = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/b/BriarShield.java b/Mage.Sets/src/mage/cards/b/BriarShield.java index 35251bb1861..fc82a5501f9 100644 --- a/Mage.Sets/src/mage/cards/b/BriarShield.java +++ b/Mage.Sets/src/mage/cards/b/BriarShield.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BriarberryCohort.java b/Mage.Sets/src/mage/cards/b/BriarberryCohort.java index 90f844d0b76..9daa2bb5031 100644 --- a/Mage.Sets/src/mage/cards/b/BriarberryCohort.java +++ b/Mage.Sets/src/mage/cards/b/BriarberryCohort.java @@ -27,10 +27,9 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -47,6 +46,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -75,7 +76,7 @@ public class BriarberryCohort extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Briarberry Cohort gets +1/+1 as long as you control another blue creature. - Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0); + Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0); Effect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), condition, rule); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); diff --git a/Mage.Sets/src/mage/cards/b/BriarbridgePatrol.java b/Mage.Sets/src/mage/cards/b/BriarbridgePatrol.java index 91bb60491dd..cebd9af1535 100644 --- a/Mage.Sets/src/mage/cards/b/BriarbridgePatrol.java +++ b/Mage.Sets/src/mage/cards/b/BriarbridgePatrol.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -46,6 +44,9 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.watchers.common.PermanentsSacrificedWatcher; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Briarhorn.java b/Mage.Sets/src/mage/cards/b/Briarhorn.java index 32d7e308fd9..ef0c43d0ac8 100644 --- a/Mage.Sets/src/mage/cards/b/Briarhorn.java +++ b/Mage.Sets/src/mage/cards/b/Briarhorn.java @@ -27,19 +27,20 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.continuous.BoostTargetEffect; -import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.EvokeAbility; +import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BriarknitKami.java b/Mage.Sets/src/mage/cards/b/BriarknitKami.java index 61548d03e55..f896586d8e6 100644 --- a/Mage.Sets/src/mage/cards/b/BriarknitKami.java +++ b/Mage.Sets/src/mage/cards/b/BriarknitKami.java @@ -27,18 +27,19 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; import mage.filter.common.FilterSpiritOrArcaneCard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BriarpackAlpha.java b/Mage.Sets/src/mage/cards/b/BriarpackAlpha.java index f80001a9474..9f6eb1a6c22 100644 --- a/Mage.Sets/src/mage/cards/b/BriarpackAlpha.java +++ b/Mage.Sets/src/mage/cards/b/BriarpackAlpha.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,9 +34,12 @@ import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BribersPurse.java b/Mage.Sets/src/mage/cards/b/BribersPurse.java index 56ee979ae07..28224f0bd98 100644 --- a/Mage.Sets/src/mage/cards/b/BribersPurse.java +++ b/Mage.Sets/src/mage/cards/b/BribersPurse.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.counters.Counter; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Bribery.java b/Mage.Sets/src/mage/cards/b/Bribery.java index 84b85e511dd..518e9918af5 100644 --- a/Mage.Sets/src/mage/cards/b/Bribery.java +++ b/Mage.Sets/src/mage/cards/b/Bribery.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -42,6 +41,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BridgeFromBelow.java b/Mage.Sets/src/mage/cards/b/BridgeFromBelow.java index 8c5dcb5ee01..4781c84dd24 100644 --- a/Mage.Sets/src/mage/cards/b/BridgeFromBelow.java +++ b/Mage.Sets/src/mage/cards/b/BridgeFromBelow.java @@ -27,15 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.ExileSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; @@ -49,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.ZombieToken; import mage.players.Player; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/Brightflame.java b/Mage.Sets/src/mage/cards/b/Brightflame.java index 385ca6d6fa5..aa314a06d43 100644 --- a/Mage.Sets/src/mage/cards/b/Brightflame.java +++ b/Mage.Sets/src/mage/cards/b/Brightflame.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; @@ -45,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Dilnu diff --git a/Mage.Sets/src/mage/cards/b/BrighthearthBanneret.java b/Mage.Sets/src/mage/cards/b/BrighthearthBanneret.java index 8008f8a6222..6721f69e8ce 100644 --- a/Mage.Sets/src/mage/cards/b/BrighthearthBanneret.java +++ b/Mage.Sets/src/mage/cards/b/BrighthearthBanneret.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,10 +34,14 @@ import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.abilities.keyword.ReinforceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BrightstoneRitual.java b/Mage.Sets/src/mage/cards/b/BrightstoneRitual.java index df0e562c544..78e631c0b42 100644 --- a/Mage.Sets/src/mage/cards/b/BrightstoneRitual.java +++ b/Mage.Sets/src/mage/cards/b/BrightstoneRitual.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.Mana; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.DynamicManaEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BrigidHeroOfKinsbaile.java b/Mage.Sets/src/mage/cards/b/BrigidHeroOfKinsbaile.java index ef287091193..06fed705781 100644 --- a/Mage.Sets/src/mage/cards/b/BrigidHeroOfKinsbaile.java +++ b/Mage.Sets/src/mage/cards/b/BrigidHeroOfKinsbaile.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterAttackingOrBlockingCreature; import mage.game.Game; @@ -45,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -53,7 +55,7 @@ public class BrigidHeroOfKinsbaile extends CardImpl { public BrigidHeroOfKinsbaile(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Kithkin"); this.subtype.add("Archer"); diff --git a/Mage.Sets/src/mage/cards/b/BrilliantHalo.java b/Mage.Sets/src/mage/cards/b/BrilliantHalo.java index aa39aa6bb71..da4f396f209 100644 --- a/Mage.Sets/src/mage/cards/b/BrilliantHalo.java +++ b/Mage.Sets/src/mage/cards/b/BrilliantHalo.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,9 +36,15 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BrilliantPlan.java b/Mage.Sets/src/mage/cards/b/BrilliantPlan.java index 0c73f589632..5d1a7a73b5c 100644 --- a/Mage.Sets/src/mage/cards/b/BrilliantPlan.java +++ b/Mage.Sets/src/mage/cards/b/BrilliantPlan.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BrilliantSpectrum.java b/Mage.Sets/src/mage/cards/b/BrilliantSpectrum.java index 14598aff258..4774c8aaeab 100644 --- a/Mage.Sets/src/mage/cards/b/BrilliantSpectrum.java +++ b/Mage.Sets/src/mage/cards/b/BrilliantSpectrum.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.dynamicvalue.common.ColorsOfManaSpentToCastCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.AbilityWord; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BrilliantUltimatum.java b/Mage.Sets/src/mage/cards/b/BrilliantUltimatum.java index 6f892ed356a..dbb904768ba 100644 --- a/Mage.Sets/src/mage/cards/b/BrilliantUltimatum.java +++ b/Mage.Sets/src/mage/cards/b/BrilliantUltimatum.java @@ -27,17 +27,10 @@ */ package mage.cards.b; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -47,6 +40,10 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetOpponent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BrimazKingOfOreskos.java b/Mage.Sets/src/mage/cards/b/BrimazKingOfOreskos.java index 8a3d6149b8a..54854a64892 100644 --- a/Mage.Sets/src/mage/cards/b/BrimazKingOfOreskos.java +++ b/Mage.Sets/src/mage/cards/b/BrimazKingOfOreskos.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -39,12 +38,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.game.Game; import mage.game.combat.CombatGroup; import mage.game.permanent.Permanent; +import mage.game.permanent.token.CatSoldierCreatureToken; import mage.game.permanent.token.Token; import mage.players.Player; -import mage.game.permanent.token.CatSoldierCreatureToken; + +import java.util.UUID; /** * @@ -54,7 +56,7 @@ public class BrimazKingOfOreskos extends CardImpl { public BrimazKingOfOreskos(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Cat"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/b/BrimstoneDragon.java b/Mage.Sets/src/mage/cards/b/BrimstoneDragon.java index b824d695e0d..500bfe9e3ae 100644 --- a/Mage.Sets/src/mage/cards/b/BrimstoneDragon.java +++ b/Mage.Sets/src/mage/cards/b/BrimstoneDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BrimstoneVolley.java b/Mage.Sets/src/mage/cards/b/BrimstoneVolley.java index 4528f8f6540..f825212a342 100644 --- a/Mage.Sets/src/mage/cards/b/BrimstoneVolley.java +++ b/Mage.Sets/src/mage/cards/b/BrimstoneVolley.java @@ -27,11 +27,11 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.Permanent; diff --git a/Mage.Sets/src/mage/cards/b/BrindleBoar.java b/Mage.Sets/src/mage/cards/b/BrindleBoar.java index 6637a02fdf1..666eb505085 100644 --- a/Mage.Sets/src/mage/cards/b/BrindleBoar.java +++ b/Mage.Sets/src/mage/cards/b/BrindleBoar.java @@ -28,15 +28,16 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BrindleShoat.java b/Mage.Sets/src/mage/cards/b/BrindleShoat.java index 49eb6c7d42f..de484a90138 100644 --- a/Mage.Sets/src/mage/cards/b/BrindleShoat.java +++ b/Mage.Sets/src/mage/cards/b/BrindleShoat.java @@ -27,15 +27,16 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BrineElemental.java b/Mage.Sets/src/mage/cards/b/BrineElemental.java index fd6b1fb237f..84d310ab52c 100644 --- a/Mage.Sets/src/mage/cards/b/BrineElemental.java +++ b/Mage.Sets/src/mage/cards/b/BrineElemental.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.turn.TurnMod; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BringLow.java b/Mage.Sets/src/mage/cards/b/BringLow.java index 7b5fcdf59f8..a79eee1ec09 100644 --- a/Mage.Sets/src/mage/cards/b/BringLow.java +++ b/Mage.Sets/src/mage/cards/b/BringLow.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.Condition; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BringToLight.java b/Mage.Sets/src/mage/cards/b/BringToLight.java index dcf7ff54973..b5e761f4ed0 100644 --- a/Mage.Sets/src/mage/cards/b/BringToLight.java +++ b/Mage.Sets/src/mage/cards/b/BringToLight.java @@ -27,8 +27,8 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.dynamicvalue.common.ColorsOfManaSpentToCastCount; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -37,7 +37,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -47,6 +46,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import org.apache.log4j.Logger; +import java.util.UUID; + /** * * @author LevelX2 @@ -97,7 +98,7 @@ class BringToLightEffect extends OneShotEffect { int numberColors = ColorsOfManaSpentToCastCount.getInstance().calculate(game, source, this); FilterCard filter = new FilterCard(); filter.add(Predicates.or(new CardTypePredicate(CardType.CREATURE), new CardTypePredicate(CardType.INSTANT), new CardTypePredicate(CardType.SORCERY))); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, numberColors + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, numberColors + 1)); TargetCardInLibrary target = new TargetCardInLibrary(filter); controller.searchLibrary(target, game); Card card = controller.getLibrary().getCard(target.getFirstTarget(), game); diff --git a/Mage.Sets/src/mage/cards/b/BringerOfTheBlackDawn.java b/Mage.Sets/src/mage/cards/b/BringerOfTheBlackDawn.java index b8edff4b8cb..9944c9cf892 100644 --- a/Mage.Sets/src/mage/cards/b/BringerOfTheBlackDawn.java +++ b/Mage.Sets/src/mage/cards/b/BringerOfTheBlackDawn.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -44,6 +43,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BringerOfTheBlueDawn.java b/Mage.Sets/src/mage/cards/b/BringerOfTheBlueDawn.java index f16901c01fd..4412591ca14 100644 --- a/Mage.Sets/src/mage/cards/b/BringerOfTheBlueDawn.java +++ b/Mage.Sets/src/mage/cards/b/BringerOfTheBlueDawn.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BringerOfTheGreenDawn.java b/Mage.Sets/src/mage/cards/b/BringerOfTheGreenDawn.java index 8b4eba3e484..d62fc4bf110 100644 --- a/Mage.Sets/src/mage/cards/b/BringerOfTheGreenDawn.java +++ b/Mage.Sets/src/mage/cards/b/BringerOfTheGreenDawn.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.game.permanent.token.BeastToken; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BringerOfTheRedDawn.java b/Mage.Sets/src/mage/cards/b/BringerOfTheRedDawn.java index 4352bb37861..0928b4e7821 100644 --- a/Mage.Sets/src/mage/cards/b/BringerOfTheRedDawn.java +++ b/Mage.Sets/src/mage/cards/b/BringerOfTheRedDawn.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -47,6 +46,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BringerOfTheWhiteDawn.java b/Mage.Sets/src/mage/cards/b/BringerOfTheWhiteDawn.java index 38b8341993d..d0f95bac9c2 100644 --- a/Mage.Sets/src/mage/cards/b/BringerOfTheWhiteDawn.java +++ b/Mage.Sets/src/mage/cards/b/BringerOfTheWhiteDawn.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.filter.common.FilterArtifactCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BrinkOfDisaster.java b/Mage.Sets/src/mage/cards/b/BrinkOfDisaster.java index 48afe240586..8d666e478e2 100644 --- a/Mage.Sets/src/mage/cards/b/BrinkOfDisaster.java +++ b/Mage.Sets/src/mage/cards/b/BrinkOfDisaster.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BecomesTappedAttachedTriggeredAbility; import mage.abilities.effects.common.AttachEffect; @@ -42,6 +41,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/b/BrinkOfMadness.java b/Mage.Sets/src/mage/cards/b/BrinkOfMadness.java index ed975ce678f..927ee2a5b2d 100644 --- a/Mage.Sets/src/mage/cards/b/BrinkOfMadness.java +++ b/Mage.Sets/src/mage/cards/b/BrinkOfMadness.java @@ -28,7 +28,7 @@ package mage.cards.b; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.CardsInHandCondition; @@ -63,7 +63,7 @@ public class BrinkOfMadness extends CardImpl { TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new SacrificeSourceEffect(), TargetController.YOU, false); ability.addEffect(new BrinkOfMadnessEffect()); ability.addTarget(new TargetOpponent()); - CardsInHandCondition contition = new CardsInHandCondition(CountType.EQUAL_TO, 0); + CardsInHandCondition contition = new CardsInHandCondition(ComparisonType.EQUAL_TO, 0); this.addAbility(new ConditionalTriggeredAbility(ability, contition, "At the beginning of your upkeep, if you have no cards in hand, sacrifice {this} and target opponent discards his or her hand.")); } diff --git a/Mage.Sets/src/mage/cards/b/BrionStoutarm.java b/Mage.Sets/src/mage/cards/b/BrionStoutarm.java index 83a6d95488e..dc84e723074 100644 --- a/Mage.Sets/src/mage/cards/b/BrionStoutarm.java +++ b/Mage.Sets/src/mage/cards/b/BrionStoutarm.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; @@ -49,6 +49,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -63,7 +65,7 @@ public class BrionStoutarm extends CardImpl { public BrionStoutarm(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Giant"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/b/BriselaVoiceOfNightmares.java b/Mage.Sets/src/mage/cards/b/BriselaVoiceOfNightmares.java index e8d022c5bce..f071b100bbf 100644 --- a/Mage.Sets/src/mage/cards/b/BriselaVoiceOfNightmares.java +++ b/Mage.Sets/src/mage/cards/b/BriselaVoiceOfNightmares.java @@ -53,7 +53,7 @@ import java.util.UUID; public class BriselaVoiceOfNightmares extends MeldCard { public BriselaVoiceOfNightmares(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, ""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Eldrazi"); this.subtype.add("Angel"); this.power = new MageInt(9); diff --git a/Mage.Sets/src/mage/cards/b/BristlingHydra.java b/Mage.Sets/src/mage/cards/b/BristlingHydra.java index 97002c8a1ac..af60e9f1265 100644 --- a/Mage.Sets/src/mage/cards/b/BristlingHydra.java +++ b/Mage.Sets/src/mage/cards/b/BristlingHydra.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -45,6 +44,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BrittleEffigy.java b/Mage.Sets/src/mage/cards/b/BrittleEffigy.java index f62fcc3f819..f7202b93f43 100644 --- a/Mage.Sets/src/mage/cards/b/BrittleEffigy.java +++ b/Mage.Sets/src/mage/cards/b/BrittleEffigy.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.ExileSourceCost; @@ -39,8 +36,12 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/BrokenAmbitions.java b/Mage.Sets/src/mage/cards/b/BrokenAmbitions.java index 14b610dedc4..37884100a3f 100644 --- a/Mage.Sets/src/mage/cards/b/BrokenAmbitions.java +++ b/Mage.Sets/src/mage/cards/b/BrokenAmbitions.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.mana.GenericManaCost; @@ -46,6 +45,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BrokenConcentration.java b/Mage.Sets/src/mage/cards/b/BrokenConcentration.java index ae331bcce0b..a877df8cf18 100644 --- a/Mage.Sets/src/mage/cards/b/BrokenConcentration.java +++ b/Mage.Sets/src/mage/cards/b/BrokenConcentration.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.keyword.MadnessAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BrokenDam.java b/Mage.Sets/src/mage/cards/b/BrokenDam.java index 08d90df075f..df9a823a52f 100644 --- a/Mage.Sets/src/mage/cards/b/BrokenDam.java +++ b/Mage.Sets/src/mage/cards/b/BrokenDam.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.keyword.HorsemanshipAbility; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BrokenFall.java b/Mage.Sets/src/mage/cards/b/BrokenFall.java index 06ba74a2de6..4c8dd0a2278 100644 --- a/Mage.Sets/src/mage/cards/b/BrokenFall.java +++ b/Mage.Sets/src/mage/cards/b/BrokenFall.java @@ -27,18 +27,18 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.ReturnToHandFromBattlefieldSourceCost; import mage.abilities.effects.common.RegenerateTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/Brontotherium.java b/Mage.Sets/src/mage/cards/b/Brontotherium.java index 626412468c2..7db980f590f 100644 --- a/Mage.Sets/src/mage/cards/b/Brontotherium.java +++ b/Mage.Sets/src/mage/cards/b/Brontotherium.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.ProvokeAbility; import mage.abilities.keyword.TrampleAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/b/BronzeBombshell.java b/Mage.Sets/src/mage/cards/b/BronzeBombshell.java new file mode 100644 index 00000000000..f061e90ad3f --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BronzeBombshell.java @@ -0,0 +1,141 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.players.Player; + +/** + * + * @author jeffwadsworth + */ +public class BronzeBombshell extends CardImpl { + + public BronzeBombshell(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}"); + + this.subtype.add("Construct"); + this.power = new MageInt(4); + this.toughness = new MageInt(1); + + // When a player other than Bronze Bombshell's owner controls it, that player sacrifices it. If the player does, Bronze Bombshell deals 7 damage to him or her. + this.addAbility(new LoseControlTriggeredAbility(new BronzeBombshellEffect(), false)); + + } + + public BronzeBombshell(final BronzeBombshell card) { + super(card); + } + + @Override + public BronzeBombshell copy() { + return new BronzeBombshell(this); + } +} + +class LoseControlTriggeredAbility extends TriggeredAbilityImpl { + + public LoseControlTriggeredAbility(Effect effect, boolean optional) { + super(Zone.BATTLEFIELD, effect, optional); + } + + public LoseControlTriggeredAbility(final LoseControlTriggeredAbility ability) { + super(ability); + } + + @Override + public LoseControlTriggeredAbility copy() { + return new LoseControlTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return (event.getType() == GameEvent.EventType.LOST_CONTROL); + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getSourceId().equals(getSourceId())) { + Permanent sourcePermanent = game.getPermanent(event.getSourceId()); + if (sourcePermanent != null) { + return !(sourcePermanent.getControllerId()).equals(sourcePermanent.getOwnerId()); + } + } + return false; + } + + @Override + public String getRule() { + return "When a player other than {this}'s owner controls it, " + super.getRule(); + } +} + +class BronzeBombshellEffect extends OneShotEffect { + + public BronzeBombshellEffect() { + super(Outcome.Damage); + this.staticText = "that player sacrifices it. If the player does, {this} deals 7 damage to him or her."; + } + + public BronzeBombshellEffect(final BronzeBombshellEffect effect) { + super(effect); + } + + @Override + public BronzeBombshellEffect copy() { + return new BronzeBombshellEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent bronzeBombshell = game.getPermanent(source.getSourceId()); + if (bronzeBombshell != null) { + Player newController = game.getPlayer(bronzeBombshell.getControllerId()); + if (newController != null) { + if (bronzeBombshell.sacrifice(source.getId(), game)) {//sacrificed by the new controlling player + newController.damage(7, source.getSourceId(), game, false, true);//bronze bombshell does 7 damage to the controller + return true; + } + } + } + return false; + } +} diff --git a/Mage.Sets/src/mage/cards/b/BronzeSable.java b/Mage.Sets/src/mage/cards/b/BronzeSable.java index 3e91f9c67b5..51d93aed169 100644 --- a/Mage.Sets/src/mage/cards/b/BronzeSable.java +++ b/Mage.Sets/src/mage/cards/b/BronzeSable.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BronzebeakMoa.java b/Mage.Sets/src/mage/cards/b/BronzebeakMoa.java index cd10a4308cd..1c739309e8f 100644 --- a/Mage.Sets/src/mage/cards/b/BronzebeakMoa.java +++ b/Mage.Sets/src/mage/cards/b/BronzebeakMoa.java @@ -28,18 +28,19 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BroodBirthing.java b/Mage.Sets/src/mage/cards/b/BroodBirthing.java index 288ceb9cf65..db7825d2983 100644 --- a/Mage.Sets/src/mage/cards/b/BroodBirthing.java +++ b/Mage.Sets/src/mage/cards/b/BroodBirthing.java @@ -27,18 +27,19 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.game.permanent.token.EldraziSpawnToken; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BroodButcher.java b/Mage.Sets/src/mage/cards/b/BroodButcher.java index d9bc0fb310b..725743dab4b 100644 --- a/Mage.Sets/src/mage/cards/b/BroodButcher.java +++ b/Mage.Sets/src/mage/cards/b/BroodButcher.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -47,6 +46,8 @@ import mage.game.permanent.token.EldraziScionToken; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BroodKeeper.java b/Mage.Sets/src/mage/cards/b/BroodKeeper.java index 4aa0e872113..8b06fe15e7e 100644 --- a/Mage.Sets/src/mage/cards/b/BroodKeeper.java +++ b/Mage.Sets/src/mage/cards/b/BroodKeeper.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AuraAttachedTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/b/BroodMonitor.java b/Mage.Sets/src/mage/cards/b/BroodMonitor.java index 21e9c0afb03..0576d6f7218 100644 --- a/Mage.Sets/src/mage/cards/b/BroodMonitor.java +++ b/Mage.Sets/src/mage/cards/b/BroodMonitor.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.Effect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.EldraziScionToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BroodSliver.java b/Mage.Sets/src/mage/cards/b/BroodSliver.java index 034c65de114..52aac00a44a 100644 --- a/Mage.Sets/src/mage/cards/b/BroodSliver.java +++ b/Mage.Sets/src/mage/cards/b/BroodSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToAPlayerAllTriggeredAbility; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.permanent.token.SliverToken; import mage.players.Player; +import java.util.UUID; + /** * * @author cbt33, LevelX2 (Ogre Slumlord) diff --git a/Mage.Sets/src/mage/cards/b/BroodbirthViper.java b/Mage.Sets/src/mage/cards/b/BroodbirthViper.java index 3f3014f6eb2..15ee8dde4a0 100644 --- a/Mage.Sets/src/mage/cards/b/BroodbirthViper.java +++ b/Mage.Sets/src/mage/cards/b/BroodbirthViper.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BroodhatchNantuko.java b/Mage.Sets/src/mage/cards/b/BroodhatchNantuko.java index 468c61fd0fd..2ac34399e6c 100644 --- a/Mage.Sets/src/mage/cards/b/BroodhatchNantuko.java +++ b/Mage.Sets/src/mage/cards/b/BroodhatchNantuko.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealtDamageToSourceTriggeredAbility; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.token.InsectToken; import mage.players.Player; +import java.util.UUID; + /** * * @author Temba21 diff --git a/Mage.Sets/src/mage/cards/b/BroodhunterWurm.java b/Mage.Sets/src/mage/cards/b/BroodhunterWurm.java index 1cb9b154efc..97393862359 100644 --- a/Mage.Sets/src/mage/cards/b/BroodhunterWurm.java +++ b/Mage.Sets/src/mage/cards/b/BroodhunterWurm.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BroodingSaurian.java b/Mage.Sets/src/mage/cards/b/BroodingSaurian.java index 1103b1a5883..291b8d7514b 100644 --- a/Mage.Sets/src/mage/cards/b/BroodingSaurian.java +++ b/Mage.Sets/src/mage/cards/b/BroodingSaurian.java @@ -27,8 +27,6 @@ */ package mage.cards.b; -import java.util.Iterator; -import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; @@ -36,12 +34,7 @@ import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -51,6 +44,9 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.Iterator; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BroodmateDragon.java b/Mage.Sets/src/mage/cards/b/BroodmateDragon.java index 4f1581d7851..f9cbf0dbbfb 100644 --- a/Mage.Sets/src/mage/cards/b/BroodmateDragon.java +++ b/Mage.Sets/src/mage/cards/b/BroodmateDragon.java @@ -28,7 +28,6 @@ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.DragonToken; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/Broodstar.java b/Mage.Sets/src/mage/cards/b/Broodstar.java index 1d66a2c00fc..6b0d8c6f501 100644 --- a/Mage.Sets/src/mage/cards/b/Broodstar.java +++ b/Mage.Sets/src/mage/cards/b/Broodstar.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -38,11 +35,14 @@ import mage.abilities.keyword.AffinityForArtifactsAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/Broodwarden.java b/Mage.Sets/src/mage/cards/b/Broodwarden.java index 65912ada89d..46af2fc33ba 100644 --- a/Mage.Sets/src/mage/cards/b/Broodwarden.java +++ b/Mage.Sets/src/mage/cards/b/Broodwarden.java @@ -27,18 +27,19 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BrothersOfFire.java b/Mage.Sets/src/mage/cards/b/BrothersOfFire.java index 4b3d9000a3d..4061f128b08 100644 --- a/Mage.Sets/src/mage/cards/b/BrothersOfFire.java +++ b/Mage.Sets/src/mage/cards/b/BrothersOfFire.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BrothersYamazaki.java b/Mage.Sets/src/mage/cards/b/BrothersYamazaki.java index 976a9133c97..79ae074cf14 100644 --- a/Mage.Sets/src/mage/cards/b/BrothersYamazaki.java +++ b/Mage.Sets/src/mage/cards/b/BrothersYamazaki.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -39,10 +38,7 @@ import mage.abilities.keyword.BushidoAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.NamePredicate; @@ -50,6 +46,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -64,7 +62,7 @@ public class BrothersYamazaki extends CardImpl { public BrothersYamazaki(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Samurai"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/b/Browbeat.java b/Mage.Sets/src/mage/cards/b/Browbeat.java index fd2a2632eb4..1b72c92c6c5 100644 --- a/Mage.Sets/src/mage/cards/b/Browbeat.java +++ b/Mage.Sets/src/mage/cards/b/Browbeat.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -40,6 +39,8 @@ import mage.game.stack.StackObject; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/b/Browse.java b/Mage.Sets/src/mage/cards/b/Browse.java index a31cedc6408..9ce6d9fde04 100644 --- a/Mage.Sets/src/mage/cards/b/Browse.java +++ b/Mage.Sets/src/mage/cards/b/Browse.java @@ -27,16 +27,11 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -45,6 +40,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/b/BrunaLightOfAlabaster.java b/Mage.Sets/src/mage/cards/b/BrunaLightOfAlabaster.java index 19596b621ae..9d5f7f5a447 100644 --- a/Mage.Sets/src/mage/cards/b/BrunaLightOfAlabaster.java +++ b/Mage.Sets/src/mage/cards/b/BrunaLightOfAlabaster.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; @@ -39,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.FilterPermanent; @@ -52,6 +52,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetCard; import mage.target.TargetPermanent; + +import java.util.UUID; /** * @author noxx */ @@ -59,7 +61,7 @@ public class BrunaLightOfAlabaster extends CardImpl { public BrunaLightOfAlabaster(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/b/BrunaTheFadingLight.java b/Mage.Sets/src/mage/cards/b/BrunaTheFadingLight.java index f0b268085b5..48e1e8d033f 100644 --- a/Mage.Sets/src/mage/cards/b/BrunaTheFadingLight.java +++ b/Mage.Sets/src/mage/cards/b/BrunaTheFadingLight.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +39,7 @@ import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; @@ -47,6 +47,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes @@ -63,7 +65,7 @@ public class BrunaTheFadingLight extends CardImpl { public BrunaTheFadingLight(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.subtype.add("Horror"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/b/BruseTarlBoorishHerder.java b/Mage.Sets/src/mage/cards/b/BruseTarlBoorishHerder.java index 3428205b8fd..b5d111e46e1 100644 --- a/Mage.Sets/src/mage/cards/b/BruseTarlBoorishHerder.java +++ b/Mage.Sets/src/mage/cards/b/BruseTarlBoorishHerder.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility; @@ -40,9 +39,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author spjspj @@ -52,7 +54,7 @@ public class BruseTarlBoorishHerder extends CardImpl { public BruseTarlBoorishHerder(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Ally"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/b/BrushWithDeath.java b/Mage.Sets/src/mage/cards/b/BrushWithDeath.java index e68a6b8637e..da694a78c8b 100644 --- a/Mage.Sets/src/mage/cards/b/BrushWithDeath.java +++ b/Mage.Sets/src/mage/cards/b/BrushWithDeath.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.keyword.BuybackAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/Brushland.java b/Mage.Sets/src/mage/cards/b/Brushland.java index 65db181439e..77ad40f4c72 100644 --- a/Mage.Sets/src/mage/cards/b/Brushland.java +++ b/Mage.Sets/src/mage/cards/b/Brushland.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/Brushstrider.java b/Mage.Sets/src/mage/cards/b/Brushstrider.java index bb63d03e085..fd34e8d4fd1 100644 --- a/Mage.Sets/src/mage/cards/b/Brushstrider.java +++ b/Mage.Sets/src/mage/cards/b/Brushstrider.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/Brushwagg.java b/Mage.Sets/src/mage/cards/b/Brushwagg.java index b65be46b404..f091a47d161 100644 --- a/Mage.Sets/src/mage/cards/b/Brushwagg.java +++ b/Mage.Sets/src/mage/cards/b/Brushwagg.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BrutalDeceiver.java b/Mage.Sets/src/mage/cards/b/BrutalDeceiver.java index 1741582bd65..00f2367b66e 100644 --- a/Mage.Sets/src/mage/cards/b/BrutalDeceiver.java +++ b/Mage.Sets/src/mage/cards/b/BrutalDeceiver.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; @@ -40,17 +39,15 @@ import mage.abilities.effects.common.LookLibraryControllerEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FirstStrikeAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/b/BrutalExpulsion.java b/Mage.Sets/src/mage/cards/b/BrutalExpulsion.java index bb80f96cab9..e350eca9f0b 100644 --- a/Mage.Sets/src/mage/cards/b/BrutalExpulsion.java +++ b/Mage.Sets/src/mage/cards/b/BrutalExpulsion.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.Effect; @@ -45,6 +44,8 @@ import mage.target.common.TargetCreatureOrPlaneswalker; import mage.target.common.TargetSpellOrPermanent; import mage.watchers.common.DamagedByWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BrutalHordechief.java b/Mage.Sets/src/mage/cards/b/BrutalHordechief.java index 57df96e7b10..f8e08bd4b9c 100644 --- a/Mage.Sets/src/mage/cards/b/BrutalHordechief.java +++ b/Mage.Sets/src/mage/cards/b/BrutalHordechief.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -39,11 +38,7 @@ import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.effects.common.combat.BlocksIfAbleAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; @@ -52,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BrutalNightstalker.java b/Mage.Sets/src/mage/cards/b/BrutalNightstalker.java index 44934541a06..dc85da414fd 100644 --- a/Mage.Sets/src/mage/cards/b/BrutalNightstalker.java +++ b/Mage.Sets/src/mage/cards/b/BrutalNightstalker.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BrutalizerExarch.java b/Mage.Sets/src/mage/cards/b/BrutalizerExarch.java index 57a00f45a18..40e198560f5 100644 --- a/Mage.Sets/src/mage/cards/b/BrutalizerExarch.java +++ b/Mage.Sets/src/mage/cards/b/BrutalizerExarch.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -49,6 +48,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BruteForce.java b/Mage.Sets/src/mage/cards/b/BruteForce.java index f5405215b18..c295e2e19ec 100644 --- a/Mage.Sets/src/mage/cards/b/BruteForce.java +++ b/Mage.Sets/src/mage/cards/b/BruteForce.java @@ -27,14 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BruteStrength.java b/Mage.Sets/src/mage/cards/b/BruteStrength.java index 639c35df1f8..c35d065a1b2 100644 --- a/Mage.Sets/src/mage/cards/b/BruteStrength.java +++ b/Mage.Sets/src/mage/cards/b/BruteStrength.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BubbleMatrix.java b/Mage.Sets/src/mage/cards/b/BubbleMatrix.java index 35a606f3b03..b99ced818f4 100644 --- a/Mage.Sets/src/mage/cards/b/BubbleMatrix.java +++ b/Mage.Sets/src/mage/cards/b/BubbleMatrix.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.PreventAllDamageToAllEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BubblingBeebles.java b/Mage.Sets/src/mage/cards/b/BubblingBeebles.java index 859d75ad5ef..21d5785ee5e 100644 --- a/Mage.Sets/src/mage/cards/b/BubblingBeebles.java +++ b/Mage.Sets/src/mage/cards/b/BubblingBeebles.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.DefendingPlayerControlsCondition; @@ -38,8 +35,12 @@ import mage.abilities.effects.Effect; import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterEnchantmentPermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/b/BubblingCauldron.java b/Mage.Sets/src/mage/cards/b/BubblingCauldron.java index 59ec77a5941..92d58052193 100644 --- a/Mage.Sets/src/mage/cards/b/BubblingCauldron.java +++ b/Mage.Sets/src/mage/cards/b/BubblingCauldron.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BubblingMuck.java b/Mage.Sets/src/mage/cards/b/BubblingMuck.java index a34057f42e5..4e7d72a9413 100644 --- a/Mage.Sets/src/mage/cards/b/BubblingMuck.java +++ b/Mage.Sets/src/mage/cards/b/BubblingMuck.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.Mana; import mage.abilities.effects.Effect; import mage.abilities.effects.common.AddManaToManaPoolTargetControllerEffect; @@ -46,6 +45,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/b/BudokaGardener.java b/Mage.Sets/src/mage/cards/b/BudokaGardener.java index 1735e57b0d8..b9e52bd8193 100644 --- a/Mage.Sets/src/mage/cards/b/BudokaGardener.java +++ b/Mage.Sets/src/mage/cards/b/BudokaGardener.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,16 +42,15 @@ import mage.abilities.effects.common.PutLandFromHandOntoBattlefieldEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.game.Game; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * @author Loki */ @@ -119,7 +117,7 @@ class DokaiWeaverofLife extends Token { DokaiWeaverofLife() { super("Dokai, Weaver of Life", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setGreen(true); subtype.add("Human"); diff --git a/Mage.Sets/src/mage/cards/b/BudokaPupil.java b/Mage.Sets/src/mage/cards/b/BudokaPupil.java index fe0b70a1603..b4ac3495ec6 100644 --- a/Mage.Sets/src/mage/cards/b/BudokaPupil.java +++ b/Mage.Sets/src/mage/cards/b/BudokaPupil.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.OnEventTriggeredAbility; @@ -44,6 +43,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterSpiritOrArcaneCard; @@ -51,6 +51,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.token.Token; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -93,7 +95,7 @@ class IchigaWhoTopplesOaks extends Token { IchigaWhoTopplesOaks() { super("Ichiga, Who Topples Oaks", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setGreen(true); subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/b/BuildersBlessing.java b/Mage.Sets/src/mage/cards/b/BuildersBlessing.java index 337ff1c5119..a5f8df2a1f3 100644 --- a/Mage.Sets/src/mage/cards/b/BuildersBlessing.java +++ b/Mage.Sets/src/mage/cards/b/BuildersBlessing.java @@ -27,11 +27,11 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterUntappedCreature; diff --git a/Mage.Sets/src/mage/cards/b/BuiltToLast.java b/Mage.Sets/src/mage/cards/b/BuiltToLast.java index 8e0d519029e..c3f4b68c2d3 100644 --- a/Mage.Sets/src/mage/cards/b/BuiltToLast.java +++ b/Mage.Sets/src/mage/cards/b/BuiltToLast.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.common.TargetHasCardTypeCondition; import mage.abilities.decorator.ConditionalContinuousEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BuiltToSmash.java b/Mage.Sets/src/mage/cards/b/BuiltToSmash.java index f207d1e0330..0143750f2e1 100644 --- a/Mage.Sets/src/mage/cards/b/BuiltToSmash.java +++ b/Mage.Sets/src/mage/cards/b/BuiltToSmash.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.common.TargetHasCardTypeCondition; import mage.abilities.decorator.ConditionalContinuousEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetAttackingCreature; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/b/BullAurochs.java b/Mage.Sets/src/mage/cards/b/BullAurochs.java index 758a389d209..1342ae8f8cc 100644 --- a/Mage.Sets/src/mage/cards/b/BullAurochs.java +++ b/Mage.Sets/src/mage/cards/b/BullAurochs.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -42,6 +41,8 @@ import mage.filter.common.FilterAttackingCreature; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BullCerodon.java b/Mage.Sets/src/mage/cards/b/BullCerodon.java index bef9bc362f9..c3d643701a1 100644 --- a/Mage.Sets/src/mage/cards/b/BullCerodon.java +++ b/Mage.Sets/src/mage/cards/b/BullCerodon.java @@ -28,13 +28,14 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BullHippo.java b/Mage.Sets/src/mage/cards/b/BullHippo.java index 9c4821572fc..da070f73dd0 100644 --- a/Mage.Sets/src/mage/cards/b/BullHippo.java +++ b/Mage.Sets/src/mage/cards/b/BullHippo.java @@ -28,12 +28,13 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.IslandwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BullRancor.java b/Mage.Sets/src/mage/cards/b/BullRancor.java index 6a8105600d9..66cc0ab1cba 100644 --- a/Mage.Sets/src/mage/cards/b/BullRancor.java +++ b/Mage.Sets/src/mage/cards/b/BullRancor.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.MonstrousCondition; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/b/BullRush.java b/Mage.Sets/src/mage/cards/b/BullRush.java index 6b9634575f2..f3a2547666b 100644 --- a/Mage.Sets/src/mage/cards/b/BullRush.java +++ b/Mage.Sets/src/mage/cards/b/BullRush.java @@ -28,14 +28,15 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/Bullwhip.java b/Mage.Sets/src/mage/cards/b/Bullwhip.java index b42cfb50fad..1bc1b16918f 100644 --- a/Mage.Sets/src/mage/cards/b/Bullwhip.java +++ b/Mage.Sets/src/mage/cards/b/Bullwhip.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/Bulwark.java b/Mage.Sets/src/mage/cards/b/Bulwark.java index e220e6ee2cd..888035ebabd 100644 --- a/Mage.Sets/src/mage/cards/b/Bulwark.java +++ b/Mage.Sets/src/mage/cards/b/Bulwark.java @@ -27,20 +27,20 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.TargetController; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/b/BumpInTheNight.java b/Mage.Sets/src/mage/cards/b/BumpInTheNight.java index dddb168a562..7e488ad4abc 100644 --- a/Mage.Sets/src/mage/cards/b/BumpInTheNight.java +++ b/Mage.Sets/src/mage/cards/b/BumpInTheNight.java @@ -27,12 +27,12 @@ */ package mage.cards.b; -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TimingRule; import mage.target.common.TargetOpponent; diff --git a/Mage.Sets/src/mage/cards/b/Buoyancy.java b/Mage.Sets/src/mage/cards/b/Buoyancy.java index 353be6be7c0..1edc6581f6a 100644 --- a/Mage.Sets/src/mage/cards/b/Buoyancy.java +++ b/Mage.Sets/src/mage/cards/b/Buoyancy.java @@ -27,23 +27,23 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; -import mage.abilities.keyword.FlyingAbility; -import mage.abilities.keyword.FlashAbility; -import mage.constants.AttachmentType; -import mage.constants.Zone; -import mage.target.common.TargetCreaturePermanent; import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.constants.Outcome; -import mage.target.TargetPermanent; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; +import mage.abilities.keyword.FlashAbility; +import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BurdenOfGreed.java b/Mage.Sets/src/mage/cards/b/BurdenOfGreed.java index 19a9ff4f991..58400e0c4e6 100644 --- a/Mage.Sets/src/mage/cards/b/BurdenOfGreed.java +++ b/Mage.Sets/src/mage/cards/b/BurdenOfGreed.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; @@ -41,6 +40,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.game.Game; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author wetterlicht diff --git a/Mage.Sets/src/mage/cards/b/BurdenOfGuilt.java b/Mage.Sets/src/mage/cards/b/BurdenOfGuilt.java index 4ceaa0b6412..d8e218c773d 100644 --- a/Mage.Sets/src/mage/cards/b/BurdenOfGuilt.java +++ b/Mage.Sets/src/mage/cards/b/BurdenOfGuilt.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -38,11 +35,14 @@ import mage.abilities.effects.common.TapEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/Burgeoning.java b/Mage.Sets/src/mage/cards/b/Burgeoning.java index aeb7593fbc5..eddd5e1d975 100644 --- a/Mage.Sets/src/mage/cards/b/Burgeoning.java +++ b/Mage.Sets/src/mage/cards/b/Burgeoning.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.PutLandFromHandOntoBattlefieldEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * @author duncant */ diff --git a/Mage.Sets/src/mage/cards/b/BuriedAlive.java b/Mage.Sets/src/mage/cards/b/BuriedAlive.java index 90e03292ef6..929f7b37e85 100644 --- a/Mage.Sets/src/mage/cards/b/BuriedAlive.java +++ b/Mage.Sets/src/mage/cards/b/BuriedAlive.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.SearchEffect; import mage.cards.CardImpl; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author cbt33, plopman (Entomb) diff --git a/Mage.Sets/src/mage/cards/b/BuriedRuin.java b/Mage.Sets/src/mage/cards/b/BuriedRuin.java index 27240cf0dea..66d166e8d5a 100644 --- a/Mage.Sets/src/mage/cards/b/BuriedRuin.java +++ b/Mage.Sets/src/mage/cards/b/BuriedRuin.java @@ -28,9 +28,6 @@ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -40,10 +37,13 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterArtifactCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/b/BurnAtTheStake.java b/Mage.Sets/src/mage/cards/b/BurnAtTheStake.java index 0d9e581e8f9..1cfd99d4dd4 100644 --- a/Mage.Sets/src/mage/cards/b/BurnAtTheStake.java +++ b/Mage.Sets/src/mage/cards/b/BurnAtTheStake.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.common.TapVariableTargetCost; import mage.abilities.dynamicvalue.common.GetXValue; @@ -44,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BurnAway.java b/Mage.Sets/src/mage/cards/b/BurnAway.java index 4ce566f629e..2188ac2c12f 100644 --- a/Mage.Sets/src/mage/cards/b/BurnAway.java +++ b/Mage.Sets/src/mage/cards/b/BurnAway.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.DamageTargetEffect; @@ -43,6 +42,8 @@ import mage.target.Target; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BurnFromWithin.java b/Mage.Sets/src/mage/cards/b/BurnFromWithin.java index 594c3208f5f..e27a27c3b97 100644 --- a/Mage.Sets/src/mage/cards/b/BurnFromWithin.java +++ b/Mage.Sets/src/mage/cards/b/BurnFromWithin.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.Effect; @@ -47,6 +46,8 @@ import mage.target.common.TargetCreatureOrPlayer; import mage.target.targetpointer.FixedTarget; import mage.watchers.common.DamagedByWatcher; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BurnTrail.java b/Mage.Sets/src/mage/cards/b/BurnTrail.java index 2054c390200..9e35a64fe27 100644 --- a/Mage.Sets/src/mage/cards/b/BurnTrail.java +++ b/Mage.Sets/src/mage/cards/b/BurnTrail.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.ConspireAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/BurningAnger.java b/Mage.Sets/src/mage/cards/b/BurningAnger.java index 35753e70ab9..42e1993e4e5 100644 --- a/Mage.Sets/src/mage/cards/b/BurningAnger.java +++ b/Mage.Sets/src/mage/cards/b/BurningAnger.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,15 +39,13 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BurningCloak.java b/Mage.Sets/src/mage/cards/b/BurningCloak.java index 2c438c493e6..244e0839d38 100644 --- a/Mage.Sets/src/mage/cards/b/BurningCloak.java +++ b/Mage.Sets/src/mage/cards/b/BurningCloak.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BurningEarth.java b/Mage.Sets/src/mage/cards/b/BurningEarth.java index ed72b97e06b..06f967f5b8e 100644 --- a/Mage.Sets/src/mage/cards/b/BurningEarth.java +++ b/Mage.Sets/src/mage/cards/b/BurningEarth.java @@ -27,17 +27,19 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.TapForManaAllTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SetTargetPointer; +import mage.constants.SuperType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -47,7 +49,7 @@ public class BurningEarth extends CardImpl { private final static FilterLandPermanent filter = new FilterLandPermanent("a player taps a nonbasic land"); static { - filter.add(Predicates.not(new SupertypePredicate("Basic"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); } public BurningEarth(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/b/BurningEyeZubera.java b/Mage.Sets/src/mage/cards/b/BurningEyeZubera.java index 85068d9bf19..7cc6c4ae4ec 100644 --- a/Mage.Sets/src/mage/cards/b/BurningEyeZubera.java +++ b/Mage.Sets/src/mage/cards/b/BurningEyeZubera.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BurningFields.java b/Mage.Sets/src/mage/cards/b/BurningFields.java index c8aaeae03f5..c42aef5c42e 100644 --- a/Mage.Sets/src/mage/cards/b/BurningFields.java +++ b/Mage.Sets/src/mage/cards/b/BurningFields.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/b/BurningInquiry.java b/Mage.Sets/src/mage/cards/b/BurningInquiry.java index 4bd239d3ff7..697047a164d 100644 --- a/Mage.Sets/src/mage/cards/b/BurningInquiry.java +++ b/Mage.Sets/src/mage/cards/b/BurningInquiry.java @@ -27,14 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.Effect; -import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; import mage.abilities.effects.common.DrawCardAllEffect; +import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BurningOfXinye.java b/Mage.Sets/src/mage/cards/b/BurningOfXinye.java index 3a4d46af541..e34ef88aa96 100644 --- a/Mage.Sets/src/mage/cards/b/BurningOfXinye.java +++ b/Mage.Sets/src/mage/cards/b/BurningOfXinye.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DamageAllEffect; @@ -44,6 +43,8 @@ import mage.target.Target; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BurningOil.java b/Mage.Sets/src/mage/cards/b/BurningOil.java index 4e217223bb8..51b289107fd 100644 --- a/Mage.Sets/src/mage/cards/b/BurningOil.java +++ b/Mage.Sets/src/mage/cards/b/BurningOil.java @@ -27,16 +27,17 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TimingRule; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TimingRule; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/b/BurningSands.java b/Mage.Sets/src/mage/cards/b/BurningSands.java index cdacdd746cc..a6bec6f2c9c 100644 --- a/Mage.Sets/src/mage/cards/b/BurningSands.java +++ b/Mage.Sets/src/mage/cards/b/BurningSands.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.SacrificeEffect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BurningShieldAskari.java b/Mage.Sets/src/mage/cards/b/BurningShieldAskari.java index 8f1a54ad911..91c80e51599 100644 --- a/Mage.Sets/src/mage/cards/b/BurningShieldAskari.java +++ b/Mage.Sets/src/mage/cards/b/BurningShieldAskari.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,9 +35,12 @@ import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.FlankingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BurningTreeBloodscale.java b/Mage.Sets/src/mage/cards/b/BurningTreeBloodscale.java index b0c10444bdd..f42f827f528 100644 --- a/Mage.Sets/src/mage/cards/b/BurningTreeBloodscale.java +++ b/Mage.Sets/src/mage/cards/b/BurningTreeBloodscale.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/b/BurningTreeEmissary.java b/Mage.Sets/src/mage/cards/b/BurningTreeEmissary.java index 77925152bd2..eee122ca1bc 100644 --- a/Mage.Sets/src/mage/cards/b/BurningTreeEmissary.java +++ b/Mage.Sets/src/mage/cards/b/BurningTreeEmissary.java @@ -27,14 +27,15 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.Mana; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.BasicManaEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BurningTreeShaman.java b/Mage.Sets/src/mage/cards/b/BurningTreeShaman.java index c77f5308e11..55f07413e4a 100644 --- a/Mage.Sets/src/mage/cards/b/BurningTreeShaman.java +++ b/Mage.Sets/src/mage/cards/b/BurningTreeShaman.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.dynamicvalue.common.StaticValue; @@ -44,6 +43,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.stack.StackAbility; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BurningVengeance.java b/Mage.Sets/src/mage/cards/b/BurningVengeance.java index 24a100e8665..5878b8c840e 100644 --- a/Mage.Sets/src/mage/cards/b/BurningVengeance.java +++ b/Mage.Sets/src/mage/cards/b/BurningVengeance.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/b/BurningWish.java b/Mage.Sets/src/mage/cards/b/BurningWish.java index fc67edefb56..f0063642ac2 100644 --- a/Mage.Sets/src/mage/cards/b/BurningWish.java +++ b/Mage.Sets/src/mage/cards/b/BurningWish.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.common.ExileSpellEffect; import mage.abilities.effects.common.WishEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BurnishedHart.java b/Mage.Sets/src/mage/cards/b/BurnishedHart.java index beb8bc12bde..0db1cab9274 100644 --- a/Mage.Sets/src/mage/cards/b/BurnishedHart.java +++ b/Mage.Sets/src/mage/cards/b/BurnishedHart.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/Burnout.java b/Mage.Sets/src/mage/cards/b/Burnout.java index e150055d32c..09d460e95c2 100644 --- a/Mage.Sets/src/mage/cards/b/Burnout.java +++ b/Mage.Sets/src/mage/cards/b/Burnout.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; import mage.abilities.effects.Effect; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.game.stack.Spell; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/b/BurntheImpure.java b/Mage.Sets/src/mage/cards/b/BurntheImpure.java index 5a9a0aa6099..0e5c7d81b7c 100644 --- a/Mage.Sets/src/mage/cards/b/BurntheImpure.java +++ b/Mage.Sets/src/mage/cards/b/BurntheImpure.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.InfectAbility; @@ -40,6 +39,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author ayratn diff --git a/Mage.Sets/src/mage/cards/b/BurrGrafter.java b/Mage.Sets/src/mage/cards/b/BurrGrafter.java index 599d42e4b9c..a2ec59d5a9d 100644 --- a/Mage.Sets/src/mage/cards/b/BurrGrafter.java +++ b/Mage.Sets/src/mage/cards/b/BurrGrafter.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,10 +35,13 @@ import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.SoulshiftAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BurrentonBombardier.java b/Mage.Sets/src/mage/cards/b/BurrentonBombardier.java index 3d8c50aedd6..28f14a87cc7 100644 --- a/Mage.Sets/src/mage/cards/b/BurrentonBombardier.java +++ b/Mage.Sets/src/mage/cards/b/BurrentonBombardier.java @@ -28,14 +28,15 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.ReinforceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/BurrentonForgeTender.java b/Mage.Sets/src/mage/cards/b/BurrentonForgeTender.java index bdb374fd5d6..8e3350d6328 100644 --- a/Mage.Sets/src/mage/cards/b/BurrentonForgeTender.java +++ b/Mage.Sets/src/mage/cards/b/BurrentonForgeTender.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.FilterObject; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/BurrentonShieldBearers.java b/Mage.Sets/src/mage/cards/b/BurrentonShieldBearers.java index 54fbbe5e330..ef0970fbf00 100644 --- a/Mage.Sets/src/mage/cards/b/BurrentonShieldBearers.java +++ b/Mage.Sets/src/mage/cards/b/BurrentonShieldBearers.java @@ -27,18 +27,18 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/Burrowing.java b/Mage.Sets/src/mage/cards/b/Burrowing.java index 0cca74a0a40..2cff999a65a 100644 --- a/Mage.Sets/src/mage/cards/b/Burrowing.java +++ b/Mage.Sets/src/mage/cards/b/Burrowing.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/b/BurstLightning.java b/Mage.Sets/src/mage/cards/b/BurstLightning.java index 95ef098148c..23cd00fa473 100644 --- a/Mage.Sets/src/mage/cards/b/BurstLightning.java +++ b/Mage.Sets/src/mage/cards/b/BurstLightning.java @@ -28,16 +28,17 @@ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/b/BurstOfEnergy.java b/Mage.Sets/src/mage/cards/b/BurstOfEnergy.java index fb7cdd9e8fd..b07d4ff779f 100644 --- a/Mage.Sets/src/mage/cards/b/BurstOfEnergy.java +++ b/Mage.Sets/src/mage/cards/b/BurstOfEnergy.java @@ -27,13 +27,14 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.UntapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BurstOfSpeed.java b/Mage.Sets/src/mage/cards/b/BurstOfSpeed.java index 884f18791b4..00150056706 100644 --- a/Mage.Sets/src/mage/cards/b/BurstOfSpeed.java +++ b/Mage.Sets/src/mage/cards/b/BurstOfSpeed.java @@ -27,16 +27,16 @@ */ package mage.cards.b; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/b/BurstOfStrength.java b/Mage.Sets/src/mage/cards/b/BurstOfStrength.java index 6d902e638ae..ee94eaab3b6 100644 --- a/Mage.Sets/src/mage/cards/b/BurstOfStrength.java +++ b/Mage.Sets/src/mage/cards/b/BurstOfStrength.java @@ -27,15 +27,16 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/b/BushiTenderfoot.java b/Mage.Sets/src/mage/cards/b/BushiTenderfoot.java index 6b6425e0602..3cc03928671 100644 --- a/Mage.Sets/src/mage/cards/b/BushiTenderfoot.java +++ b/Mage.Sets/src/mage/cards/b/BushiTenderfoot.java @@ -30,7 +30,6 @@ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealtDamageAndDiedTriggeredAbility; import mage.abilities.effects.Effect; @@ -40,10 +39,13 @@ import mage.abilities.keyword.DoubleStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * @author LevelX */ @@ -56,7 +58,7 @@ public class BushiTenderfoot extends CardImpl { } public BushiTenderfoot(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}"); this.subtype.add("Human"); this.subtype.add("Soldier"); @@ -85,7 +87,7 @@ class KenzoTheHardhearted extends Token { KenzoTheHardhearted() { super("Kenzo the Hardhearted", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setWhite(true); subtype.add("Human"); diff --git a/Mage.Sets/src/mage/cards/b/ButcherGhoul.java b/Mage.Sets/src/mage/cards/b/ButcherGhoul.java index b3c1862a812..91929e9894f 100644 --- a/Mage.Sets/src/mage/cards/b/ButcherGhoul.java +++ b/Mage.Sets/src/mage/cards/b/ButcherGhoul.java @@ -27,12 +27,13 @@ */ package mage.cards.b; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.UndyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/b/ButcherOfMalakir.java b/Mage.Sets/src/mage/cards/b/ButcherOfMalakir.java index 40b3d49d468..d5770e6fbb8 100644 --- a/Mage.Sets/src/mage/cards/b/ButcherOfMalakir.java +++ b/Mage.Sets/src/mage/cards/b/ButcherOfMalakir.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; import mage.abilities.effects.common.SacrificeOpponentsEffect; @@ -40,6 +39,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/b/ButcherOfTheHorde.java b/Mage.Sets/src/mage/cards/b/ButcherOfTheHorde.java index 4dbac5c2fd4..ce2fc76b969 100644 --- a/Mage.Sets/src/mage/cards/b/ButcherOfTheHorde.java +++ b/Mage.Sets/src/mage/cards/b/ButcherOfTheHorde.java @@ -27,9 +27,6 @@ */ package mage.cards.b; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -56,6 +53,10 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/ButchersCleaver.java b/Mage.Sets/src/mage/cards/b/ButchersCleaver.java index a5fa07fe486..6d374950a85 100644 --- a/Mage.Sets/src/mage/cards/b/ButchersCleaver.java +++ b/Mage.Sets/src/mage/cards/b/ButchersCleaver.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.EquippedHasSubtypeCondition; import mage.abilities.costs.mana.GenericManaCost; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/b/ButchersGlee.java b/Mage.Sets/src/mage/cards/b/ButchersGlee.java index db8d45a5b4a..02d0b16b738 100644 --- a/Mage.Sets/src/mage/cards/b/ButchersGlee.java +++ b/Mage.Sets/src/mage/cards/b/ButchersGlee.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.RegenerateTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/b/ByForce.java b/Mage.Sets/src/mage/cards/b/ByForce.java new file mode 100644 index 00000000000..bb551d1e8e9 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/ByForce.java @@ -0,0 +1,71 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.b; + +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.SpellAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.game.Game; + +/** + * + * @author spjspj + */ +public class ByForce extends CardImpl { + + public ByForce(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}"); + + // Destroy X target artifacts. + this.getSpellAbility().addEffect(new DestroyTargetEffect("Destroy X target artifacts")); + this.getSpellAbility().addTarget(new TargetArtifactPermanent()); + } + + @Override + public void adjustTargets(Ability ability, Game game) { + if (ability instanceof SpellAbility) { + ability.getTargets().clear(); + int xValue = ability.getManaCostsToPay().getX(); + ability.addTarget(new TargetArtifactPermanent(xValue, xValue)); + } + } + + public ByForce(final ByForce card) { + super(card); + } + + @Override + public ByForce copy() { + return new ByForce(this); + } +} diff --git a/Mage.Sets/src/mage/cards/b/BygoneBishop.java b/Mage.Sets/src/mage/cards/b/BygoneBishop.java index d4c2a08083d..269c66c3e2c 100644 --- a/Mage.Sets/src/mage/cards/b/BygoneBishop.java +++ b/Mage.Sets/src/mage/cards/b/BygoneBishop.java @@ -27,19 +27,20 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.keyword.InvestigateEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -50,7 +51,7 @@ public class BygoneBishop extends CardImpl { static { filterSpell.add(new CardTypePredicate(CardType.CREATURE)); - filterSpell.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filterSpell.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public BygoneBishop(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/b/BywayCourier.java b/Mage.Sets/src/mage/cards/b/BywayCourier.java index 2516a55f1ae..fe4bdcbb2e5 100644 --- a/Mage.Sets/src/mage/cards/b/BywayCourier.java +++ b/Mage.Sets/src/mage/cards/b/BywayCourier.java @@ -27,7 +27,6 @@ */ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.keyword.InvestigateEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/C3POAndR2D2.java b/Mage.Sets/src/mage/cards/c/C3POAndR2D2.java index b3c3393f876..22d73cf5cd3 100644 --- a/Mage.Sets/src/mage/cards/c/C3POAndR2D2.java +++ b/Mage.Sets/src/mage/cards/c/C3POAndR2D2.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LeavesBattlefieldTriggeredAbility; @@ -38,6 +37,9 @@ import mage.abilities.keyword.RepairAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -47,7 +49,7 @@ public class C3POAndR2D2 extends CardImpl { public C3POAndR2D2(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{2}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Droid"); this.power = new MageInt(2); this.toughness = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/c/CabalArchon.java b/Mage.Sets/src/mage/cards/c/CabalArchon.java index 87658e77400..19e15dc1976 100644 --- a/Mage.Sets/src/mage/cards/c/CabalArchon.java +++ b/Mage.Sets/src/mage/cards/c/CabalArchon.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CabalCoffers.java b/Mage.Sets/src/mage/cards/c/CabalCoffers.java index f4701b6e71c..f16c8d5697a 100644 --- a/Mage.Sets/src/mage/cards/c/CabalCoffers.java +++ b/Mage.Sets/src/mage/cards/c/CabalCoffers.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CabalConditioning.java b/Mage.Sets/src/mage/cards/c/CabalConditioning.java index 97a563397d2..b261033e598 100644 --- a/Mage.Sets/src/mage/cards/c/CabalConditioning.java +++ b/Mage.Sets/src/mage/cards/c/CabalConditioning.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.abilities.dynamicvalue.common.HighestConvertedManaCostValue; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; @@ -36,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/c/CabalExecutioner.java b/Mage.Sets/src/mage/cards/c/CabalExecutioner.java index 0356d4d52ed..8973e7806d2 100644 --- a/Mage.Sets/src/mage/cards/c/CabalExecutioner.java +++ b/Mage.Sets/src/mage/cards/c/CabalExecutioner.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.ManaCostsImpl; @@ -45,6 +44,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CabalInquisitor.java b/Mage.Sets/src/mage/cards/c/CabalInquisitor.java index 9735801ddd3..d4c6d0d94d5 100644 --- a/Mage.Sets/src/mage/cards/c/CabalInquisitor.java +++ b/Mage.Sets/src/mage/cards/c/CabalInquisitor.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.ActivatedAbilityImpl; @@ -42,16 +41,14 @@ import mage.abilities.effects.Effects; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AbilityWord; -import mage.constants.CardType; -import mage.constants.EffectType; -import mage.constants.TimingRule; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.game.Game; import mage.target.TargetPlayer; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/c/CabalInterrogator.java b/Mage.Sets/src/mage/cards/c/CabalInterrogator.java index b8bdccbb4f6..bfcc0af127c 100644 --- a/Mage.Sets/src/mage/cards/c/CabalInterrogator.java +++ b/Mage.Sets/src/mage/cards/c/CabalInterrogator.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; @@ -36,11 +34,7 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -50,6 +44,9 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.TargetPlayer; +import java.util.List; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CabalPatriarch.java b/Mage.Sets/src/mage/cards/c/CabalPatriarch.java index 9571a2f6ae1..d4b5df04f3b 100644 --- a/Mage.Sets/src/mage/cards/c/CabalPatriarch.java +++ b/Mage.Sets/src/mage/cards/c/CabalPatriarch.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreatureCard; @@ -46,6 +46,8 @@ import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author cbt33, LevelX2 @@ -54,7 +56,7 @@ public class CabalPatriarch extends CardImpl { public CabalPatriarch(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/c/CabalPit.java b/Mage.Sets/src/mage/cards/c/CabalPit.java index 90b404facb5..c5b71eb8f26 100644 --- a/Mage.Sets/src/mage/cards/c/CabalPit.java +++ b/Mage.Sets/src/mage/cards/c/CabalPit.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.CardsInControllerGraveCondition; import mage.abilities.costs.common.SacrificeSourceCost; @@ -45,6 +44,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CabalRitual.java b/Mage.Sets/src/mage/cards/c/CabalRitual.java index ce54456006b..0c1d71abc63 100644 --- a/Mage.Sets/src/mage/cards/c/CabalRitual.java +++ b/Mage.Sets/src/mage/cards/c/CabalRitual.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.abilities.condition.common.CardsInControllerGraveCondition; import mage.abilities.decorator.ConditionalManaEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CabalSlaver.java b/Mage.Sets/src/mage/cards/c/CabalSlaver.java index 693539a3561..e33af6e6c07 100644 --- a/Mage.Sets/src/mage/cards/c/CabalSlaver.java +++ b/Mage.Sets/src/mage/cards/c/CabalSlaver.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsDamageToAPlayerAllTriggeredAbility; import mage.abilities.effects.common.discard.DiscardTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.SetTargetPointer; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author markedagain diff --git a/Mage.Sets/src/mage/cards/c/CabalSurgeon.java b/Mage.Sets/src/mage/cards/c/CabalSurgeon.java index cbc8265fb7d..03126c09c5f 100644 --- a/Mage.Sets/src/mage/cards/c/CabalSurgeon.java +++ b/Mage.Sets/src/mage/cards/c/CabalSurgeon.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author markedagain diff --git a/Mage.Sets/src/mage/cards/c/CabalTherapy.java b/Mage.Sets/src/mage/cards/c/CabalTherapy.java index fc3fc9fb449..8b3bebb7658 100644 --- a/Mage.Sets/src/mage/cards/c/CabalTherapy.java +++ b/Mage.Sets/src/mage/cards/c/CabalTherapy.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.costs.common.SacrificeTargetCost; @@ -47,6 +46,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/c/CabalTorturer.java b/Mage.Sets/src/mage/cards/c/CabalTorturer.java index cfea1c87fe0..c5b9230e747 100644 --- a/Mage.Sets/src/mage/cards/c/CabalTorturer.java +++ b/Mage.Sets/src/mage/cards/c/CabalTorturer.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CabalTrainee.java b/Mage.Sets/src/mage/cards/c/CabalTrainee.java index d9d623be5f6..237978f6fd4 100644 --- a/Mage.Sets/src/mage/cards/c/CabalTrainee.java +++ b/Mage.Sets/src/mage/cards/c/CabalTrainee.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CacheRaiders.java b/Mage.Sets/src/mage/cards/c/CacheRaiders.java index 75c148930fc..2d6128484ef 100644 --- a/Mage.Sets/src/mage/cards/c/CacheRaiders.java +++ b/Mage.Sets/src/mage/cards/c/CacheRaiders.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.ReturnToHandChosenControlledPermanentEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.common.FilterControlledPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CachedDefenses.java b/Mage.Sets/src/mage/cards/c/CachedDefenses.java index 7f29d5982f9..06b264bd20e 100644 --- a/Mage.Sets/src/mage/cards/c/CachedDefenses.java +++ b/Mage.Sets/src/mage/cards/c/CachedDefenses.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.keyword.BolsterEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CacklingCounterpart.java b/Mage.Sets/src/mage/cards/c/CacklingCounterpart.java index 22c7c059e95..dbac7648838 100644 --- a/Mage.Sets/src/mage/cards/c/CacklingCounterpart.java +++ b/Mage.Sets/src/mage/cards/c/CacklingCounterpart.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.PutTokenOntoBattlefieldCopyTargetEffect; import mage.abilities.keyword.FlashbackAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.TimingRule; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/c/CacklingFiend.java b/Mage.Sets/src/mage/cards/c/CacklingFiend.java index 7d18409cb18..956657fa8f8 100644 --- a/Mage.Sets/src/mage/cards/c/CacklingFiend.java +++ b/Mage.Sets/src/mage/cards/c/CacklingFiend.java @@ -28,7 +28,6 @@ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/c/CacklingFlames.java b/Mage.Sets/src/mage/cards/c/CacklingFlames.java index e4946b1444c..5c2e5a9be51 100644 --- a/Mage.Sets/src/mage/cards/c/CacklingFlames.java +++ b/Mage.Sets/src/mage/cards/c/CacklingFlames.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.HellbentCondition; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author JotaPeRL diff --git a/Mage.Sets/src/mage/cards/c/CacklingImp.java b/Mage.Sets/src/mage/cards/c/CacklingImp.java index 4fb4e13753f..6a499090615 100644 --- a/Mage.Sets/src/mage/cards/c/CacklingImp.java +++ b/Mage.Sets/src/mage/cards/c/CacklingImp.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CacklingWitch.java b/Mage.Sets/src/mage/cards/c/CacklingWitch.java index 3bbfd8e1be8..249130ed75f 100644 --- a/Mage.Sets/src/mage/cards/c/CacklingWitch.java +++ b/Mage.Sets/src/mage/cards/c/CacklingWitch.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CadaverImp.java b/Mage.Sets/src/mage/cards/c/CadaverImp.java index ffdcc69aa7a..0cc5d24c375 100644 --- a/Mage.Sets/src/mage/cards/c/CadaverImp.java +++ b/Mage.Sets/src/mage/cards/c/CadaverImp.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -36,9 +34,12 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CadaverousBloom.java b/Mage.Sets/src/mage/cards/c/CadaverousBloom.java index 73ec03e022a..3a25055140e 100644 --- a/Mage.Sets/src/mage/cards/c/CadaverousBloom.java +++ b/Mage.Sets/src/mage/cards/c/CadaverousBloom.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.abilities.costs.common.ExileFromHandCost; import mage.abilities.mana.SimpleManaAbility; @@ -38,6 +37,8 @@ import mage.constants.Zone; import mage.filter.common.FilterOwnedCard; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CadaverousKnight.java b/Mage.Sets/src/mage/cards/c/CadaverousKnight.java index 096caa5e910..919d5a1151a 100644 --- a/Mage.Sets/src/mage/cards/c/CadaverousKnight.java +++ b/Mage.Sets/src/mage/cards/c/CadaverousKnight.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,8 +34,11 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.keyword.FlankingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CageOfHands.java b/Mage.Sets/src/mage/cards/c/CageOfHands.java index 194ffbc0ee7..be0cc61549c 100644 --- a/Mage.Sets/src/mage/cards/c/CageOfHands.java +++ b/Mage.Sets/src/mage/cards/c/CageOfHands.java @@ -28,9 +28,6 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,11 +38,17 @@ import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CagedSun.java b/Mage.Sets/src/mage/cards/c/CagedSun.java index c2e245dc8d8..90120daf309 100644 --- a/Mage.Sets/src/mage/cards/c/CagedSun.java +++ b/Mage.Sets/src/mage/cards/c/CagedSun.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.ObjectColor; import mage.abilities.Ability; @@ -39,13 +38,7 @@ import mage.abilities.effects.common.ManaEffect; import mage.abilities.mana.TriggeredManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.events.GameEvent; @@ -53,6 +46,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/c/Cagemail.java b/Mage.Sets/src/mage/cards/c/Cagemail.java index 78100ca0502..3f0b1367c0f 100644 --- a/Mage.Sets/src/mage/cards/c/Cagemail.java +++ b/Mage.Sets/src/mage/cards/c/Cagemail.java @@ -27,10 +27,9 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.combat.CantBlockAttachedEffect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; @@ -40,7 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; -import mage.abilities.effects.Effect; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/Calciderm.java b/Mage.Sets/src/mage/cards/c/Calciderm.java index 4864062645c..3052786267e 100644 --- a/Mage.Sets/src/mage/cards/c/Calciderm.java +++ b/Mage.Sets/src/mage/cards/c/Calciderm.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CalciformPools.java b/Mage.Sets/src/mage/cards/c/CalciformPools.java index 111a6f7d970..11c97d41a40 100644 --- a/Mage.Sets/src/mage/cards/c/CalciformPools.java +++ b/Mage.Sets/src/mage/cards/c/CalciformPools.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveVariableCountersSourceCost; @@ -45,6 +44,8 @@ import mage.constants.ColoredManaSymbol; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CalciteSnapper.java b/Mage.Sets/src/mage/cards/c/CalciteSnapper.java index 9b7b773d6c2..5d6da573fa0 100644 --- a/Mage.Sets/src/mage/cards/c/CalciteSnapper.java +++ b/Mage.Sets/src/mage/cards/c/CalciteSnapper.java @@ -27,15 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.LandfallAbility; import mage.abilities.effects.common.continuous.SwitchPowerToughnessSourceEffect; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CalculatedDismissal.java b/Mage.Sets/src/mage/cards/c/CalculatedDismissal.java index e269a5690a7..7089623da0f 100644 --- a/Mage.Sets/src/mage/cards/c/CalculatedDismissal.java +++ b/Mage.Sets/src/mage/cards/c/CalculatedDismissal.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.condition.common.SpellMasteryCondition; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CalderaHellion.java b/Mage.Sets/src/mage/cards/c/CalderaHellion.java index 6c4585e0a89..a57058387dc 100644 --- a/Mage.Sets/src/mage/cards/c/CalderaHellion.java +++ b/Mage.Sets/src/mage/cards/c/CalderaHellion.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DamageAllEffect; @@ -36,8 +34,11 @@ import mage.abilities.effects.common.DevourEffect.DevourFactor; import mage.abilities.keyword.DevourAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CalderaKavu.java b/Mage.Sets/src/mage/cards/c/CalderaKavu.java index 9a7a023a3aa..fea7940df73 100644 --- a/Mage.Sets/src/mage/cards/c/CalderaKavu.java +++ b/Mage.Sets/src/mage/cards/c/CalderaKavu.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CalderaLake.java b/Mage.Sets/src/mage/cards/c/CalderaLake.java index 6e41e5dcb73..aa8dabf8d60 100644 --- a/Mage.Sets/src/mage/cards/c/CalderaLake.java +++ b/Mage.Sets/src/mage/cards/c/CalderaLake.java @@ -27,14 +27,17 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.effects.common.DamageControllerEffect; -import mage.abilities.mana.*; +import mage.abilities.mana.BlueManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CallForBlood.java b/Mage.Sets/src/mage/cards/c/CallForBlood.java index 77393fc26f3..5d620cf788d 100644 --- a/Mage.Sets/src/mage/cards/c/CallForBlood.java +++ b/Mage.Sets/src/mage/cards/c/CallForBlood.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.dynamicvalue.DynamicValue; @@ -44,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CallForUnity.java b/Mage.Sets/src/mage/cards/c/CallForUnity.java index b5391cd15a6..87a58e0b236 100644 --- a/Mage.Sets/src/mage/cards/c/CallForUnity.java +++ b/Mage.Sets/src/mage/cards/c/CallForUnity.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -46,6 +45,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.watchers.common.RevoltWatcher; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CallOfTheConclave.java b/Mage.Sets/src/mage/cards/c/CallOfTheConclave.java index c91cfd05ae9..814e7fdd714 100644 --- a/Mage.Sets/src/mage/cards/c/CallOfTheConclave.java +++ b/Mage.Sets/src/mage/cards/c/CallOfTheConclave.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.CentaurToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CallOfTheFullMoon.java b/Mage.Sets/src/mage/cards/c/CallOfTheFullMoon.java index 7ee6412aa13..5432a15091f 100644 --- a/Mage.Sets/src/mage/cards/c/CallOfTheFullMoon.java +++ b/Mage.Sets/src/mage/cards/c/CallOfTheFullMoon.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -43,15 +42,12 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CallOfTheHerd.java b/Mage.Sets/src/mage/cards/c/CallOfTheHerd.java index d60fdbfe279..576df1400bc 100644 --- a/Mage.Sets/src/mage/cards/c/CallOfTheHerd.java +++ b/Mage.Sets/src/mage/cards/c/CallOfTheHerd.java @@ -27,17 +27,17 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TimingRule; import mage.game.permanent.token.ElephantToken; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CallOfTheNightwing.java b/Mage.Sets/src/mage/cards/c/CallOfTheNightwing.java index 9e37d938a8d..23bc3d53fc2 100644 --- a/Mage.Sets/src/mage/cards/c/CallOfTheNightwing.java +++ b/Mage.Sets/src/mage/cards/c/CallOfTheNightwing.java @@ -27,16 +27,17 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.effects.common.CipherEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CallOfTheWild.java b/Mage.Sets/src/mage/cards/c/CallOfTheWild.java index c4b93b6b303..aeed2a7471a 100644 --- a/Mage.Sets/src/mage/cards/c/CallOfTheWild.java +++ b/Mage.Sets/src/mage/cards/c/CallOfTheWild.java @@ -27,23 +27,20 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CallTheBloodline.java b/Mage.Sets/src/mage/cards/c/CallTheBloodline.java index 1a5fd001673..a9d1ef9f032 100644 --- a/Mage.Sets/src/mage/cards/c/CallTheBloodline.java +++ b/Mage.Sets/src/mage/cards/c/CallTheBloodline.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; import mage.abilities.costs.common.DiscardCardCost; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.game.permanent.token.VampireKnightToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CallTheGatewatch.java b/Mage.Sets/src/mage/cards/c/CallTheGatewatch.java index ac3c5a6a3ee..b533059de83 100644 --- a/Mage.Sets/src/mage/cards/c/CallTheGatewatch.java +++ b/Mage.Sets/src/mage/cards/c/CallTheGatewatch.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.common.FilterPlaneswalkerCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CallTheScions.java b/Mage.Sets/src/mage/cards/c/CallTheScions.java index 1801eae114e..2bce6069723 100644 --- a/Mage.Sets/src/mage/cards/c/CallTheScions.java +++ b/Mage.Sets/src/mage/cards/c/CallTheScions.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.EldraziScionToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CallTheSkybreaker.java b/Mage.Sets/src/mage/cards/c/CallTheSkybreaker.java index e7ae133e68b..a6ff59ccba2 100644 --- a/Mage.Sets/src/mage/cards/c/CallTheSkybreaker.java +++ b/Mage.Sets/src/mage/cards/c/CallTheSkybreaker.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlyingAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CallToGlory.java b/Mage.Sets/src/mage/cards/c/CallToGlory.java index 1e01a85418e..18ed6672a03 100644 --- a/Mage.Sets/src/mage/cards/c/CallToGlory.java +++ b/Mage.Sets/src/mage/cards/c/CallToGlory.java @@ -28,14 +28,12 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.filter.common.FilterCreaturePermanent; @@ -44,6 +42,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/c/CallToHeel.java b/Mage.Sets/src/mage/cards/c/CallToHeel.java index aa227626279..e477a43d1ab 100644 --- a/Mage.Sets/src/mage/cards/c/CallToHeel.java +++ b/Mage.Sets/src/mage/cards/c/CallToHeel.java @@ -27,20 +27,21 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CallToMind.java b/Mage.Sets/src/mage/cards/c/CallToMind.java index 150c350b546..595c4c22196 100644 --- a/Mage.Sets/src/mage/cards/c/CallToMind.java +++ b/Mage.Sets/src/mage/cards/c/CallToMind.java @@ -28,7 +28,6 @@ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterInstantOrSorceryCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/CallToServe.java b/Mage.Sets/src/mage/cards/c/CallToServe.java index 0d39ded43a5..fe1e3825aa5 100644 --- a/Mage.Sets/src/mage/cards/c/CallToServe.java +++ b/Mage.Sets/src/mage/cards/c/CallToServe.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -40,17 +39,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CallToTheGrave.java b/Mage.Sets/src/mage/cards/c/CallToTheGrave.java index 7ff182bcdf0..0301e0dc305 100644 --- a/Mage.Sets/src/mage/cards/c/CallToTheGrave.java +++ b/Mage.Sets/src/mage/cards/c/CallToTheGrave.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/c/CallToTheKindred.java b/Mage.Sets/src/mage/cards/c/CallToTheKindred.java index 2434490d5f1..effdb2c78c0 100644 --- a/Mage.Sets/src/mage/cards/c/CallToTheKindred.java +++ b/Mage.Sets/src/mage/cards/c/CallToTheKindred.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.ArrayList; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.OnEventTriggeredAbility; @@ -36,11 +34,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.keyword.ChangelingAbility; import mage.abilities.keyword.EnchantAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -56,6 +50,9 @@ import mage.target.TargetCard; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.ArrayList; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CallToTheNetherworld.java b/Mage.Sets/src/mage/cards/c/CallToTheNetherworld.java index 26366f87238..57f4fbf2329 100644 --- a/Mage.Sets/src/mage/cards/c/CallToTheNetherworld.java +++ b/Mage.Sets/src/mage/cards/c/CallToTheNetherworld.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.ObjectColor; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ReturnToHandTargetEffect; @@ -40,6 +38,8 @@ import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/c/CallerOfGales.java b/Mage.Sets/src/mage/cards/c/CallerOfGales.java index 7e2691a6359..15a1797365b 100644 --- a/Mage.Sets/src/mage/cards/c/CallerOfGales.java +++ b/Mage.Sets/src/mage/cards/c/CallerOfGales.java @@ -28,9 +28,6 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,10 +37,13 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CallerOfTheClaw.java b/Mage.Sets/src/mage/cards/c/CallerOfTheClaw.java index e2a37461d28..cacb44b340e 100644 --- a/Mage.Sets/src/mage/cards/c/CallerOfTheClaw.java +++ b/Mage.Sets/src/mage/cards/c/CallerOfTheClaw.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -48,6 +47,8 @@ import mage.game.permanent.PermanentToken; import mage.game.permanent.token.BearToken; import mage.watchers.Watcher; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CallerOfThePack.java b/Mage.Sets/src/mage/cards/c/CallerOfThePack.java index a3da11668f4..09d1b6ecd9b 100644 --- a/Mage.Sets/src/mage/cards/c/CallerOfThePack.java +++ b/Mage.Sets/src/mage/cards/c/CallerOfThePack.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.MyriadAbility; import mage.abilities.keyword.TrampleAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CallousDeceiver.java b/Mage.Sets/src/mage/cards/c/CallousDeceiver.java index ccadd5e8939..3f949b803b0 100644 --- a/Mage.Sets/src/mage/cards/c/CallousDeceiver.java +++ b/Mage.Sets/src/mage/cards/c/CallousDeceiver.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -40,11 +39,7 @@ import mage.abilities.effects.common.LookLibraryControllerEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; @@ -52,6 +47,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/c/CallousGiant.java b/Mage.Sets/src/mage/cards/c/CallousGiant.java index 0ef2c5e9162..f28ff377254 100644 --- a/Mage.Sets/src/mage/cards/c/CallousGiant.java +++ b/Mage.Sets/src/mage/cards/c/CallousGiant.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CallowJushi.java b/Mage.Sets/src/mage/cards/c/CallowJushi.java index 680866b2a32..79ede1923ee 100644 --- a/Mage.Sets/src/mage/cards/c/CallowJushi.java +++ b/Mage.Sets/src/mage/cards/c/CallowJushi.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.OnEventTriggeredAbility; @@ -43,6 +42,7 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterSpiritOrArcaneCard; @@ -50,6 +50,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.token.Token; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 @@ -92,7 +94,7 @@ class JarakuTheInterloper extends Token { JarakuTheInterloper() { super("Jaraku the Interloper", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setBlue(true); subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/c/CalmingLicid.java b/Mage.Sets/src/mage/cards/c/CalmingLicid.java index b96dc10b9d6..7af56d6d73d 100644 --- a/Mage.Sets/src/mage/cards/c/CalmingLicid.java +++ b/Mage.Sets/src/mage/cards/c/CalmingLicid.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LicidAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CalmingVerse.java b/Mage.Sets/src/mage/cards/c/CalmingVerse.java index e350e9cdee4..5824725b789 100644 --- a/Mage.Sets/src/mage/cards/c/CalmingVerse.java +++ b/Mage.Sets/src/mage/cards/c/CalmingVerse.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/c/Caltrops.java b/Mage.Sets/src/mage/cards/c/Caltrops.java index 45eb7fecb96..d3f60b15389 100644 --- a/Mage.Sets/src/mage/cards/c/Caltrops.java +++ b/Mage.Sets/src/mage/cards/c/Caltrops.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.AttacksAllTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.SetTargetPointer; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CampaignOfVengeance.java b/Mage.Sets/src/mage/cards/c/CampaignOfVengeance.java index 6f087b53690..e9c362667fd 100644 --- a/Mage.Sets/src/mage/cards/c/CampaignOfVengeance.java +++ b/Mage.Sets/src/mage/cards/c/CampaignOfVengeance.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; @@ -40,6 +39,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CanalCourier.java b/Mage.Sets/src/mage/cards/c/CanalCourier.java index f4f9b982eeb..7514eb9f0e9 100644 --- a/Mage.Sets/src/mage/cards/c/CanalCourier.java +++ b/Mage.Sets/src/mage/cards/c/CanalCourier.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.Objects; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -45,6 +43,9 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.Objects; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Cancel.java b/Mage.Sets/src/mage/cards/c/Cancel.java index 2278a42d41e..84df300abca 100644 --- a/Mage.Sets/src/mage/cards/c/Cancel.java +++ b/Mage.Sets/src/mage/cards/c/Cancel.java @@ -28,13 +28,14 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/CandelabraOfTawnos.java b/Mage.Sets/src/mage/cards/c/CandelabraOfTawnos.java index a203852f83f..c5d13bb0368 100644 --- a/Mage.Sets/src/mage/cards/c/CandelabraOfTawnos.java +++ b/Mage.Sets/src/mage/cards/c/CandelabraOfTawnos.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -42,6 +41,8 @@ import mage.filter.common.FilterLandPermanent; import mage.game.Game; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author duncant diff --git a/Mage.Sets/src/mage/cards/c/CandlesGlow.java b/Mage.Sets/src/mage/cards/c/CandlesGlow.java index 108da9be7d2..12e22fe996a 100644 --- a/Mage.Sets/src/mage/cards/c/CandlesGlow.java +++ b/Mage.Sets/src/mage/cards/c/CandlesGlow.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.PreventionEffectImpl; import mage.abilities.keyword.SpliceOntoArcaneAbility; @@ -40,6 +39,8 @@ import mage.game.events.GameEvent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CandlesOfLeng.java b/Mage.Sets/src/mage/cards/c/CandlesOfLeng.java index 4b507698e48..f1f410ab09a 100644 --- a/Mage.Sets/src/mage/cards/c/CandlesOfLeng.java +++ b/Mage.Sets/src/mage/cards/c/CandlesOfLeng.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/c/CankerAbomination.java b/Mage.Sets/src/mage/cards/c/CankerAbomination.java index 08b82a72916..d837962f57a 100644 --- a/Mage.Sets/src/mage/cards/c/CankerAbomination.java +++ b/Mage.Sets/src/mage/cards/c/CankerAbomination.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AsEntersBattlefieldAbility; @@ -44,6 +43,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CankerousThirst.java b/Mage.Sets/src/mage/cards/c/CankerousThirst.java index 4971cdba6f0..f184d3facb5 100644 --- a/Mage.Sets/src/mage/cards/c/CankerousThirst.java +++ b/Mage.Sets/src/mage/cards/c/CankerousThirst.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.common.ManaWasSpentCondition; import mage.abilities.decorator.ConditionalContinuousEffect; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; import mage.watchers.common.ManaSpentToCastWatcher; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/Cannibalize.java b/Mage.Sets/src/mage/cards/c/Cannibalize.java index a7b41c2ea5b..8b6988a3b21 100644 --- a/Mage.Sets/src/mage/cards/c/Cannibalize.java +++ b/Mage.Sets/src/mage/cards/c/Cannibalize.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -43,6 +42,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanentSameController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CanopyClaws.java b/Mage.Sets/src/mage/cards/c/CanopyClaws.java index 3be969acee3..00b8fb5c5ea 100644 --- a/Mage.Sets/src/mage/cards/c/CanopyClaws.java +++ b/Mage.Sets/src/mage/cards/c/CanopyClaws.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.LoseAbilityTargetEffect; import mage.abilities.keyword.FlashbackAbility; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.TimingRule; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CanopyCover.java b/Mage.Sets/src/mage/cards/c/CanopyCover.java index 39e9d8af7ab..9fa17c970b2 100644 --- a/Mage.Sets/src/mage/cards/c/CanopyCover.java +++ b/Mage.Sets/src/mage/cards/c/CanopyCover.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.RestrictionEffect; @@ -38,12 +37,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterObject; import mage.filter.FilterStackObject; import mage.game.Game; @@ -51,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/c/CanopyCrawler.java b/Mage.Sets/src/mage/cards/c/CanopyCrawler.java index cccb67840bc..566e3ef1278 100644 --- a/Mage.Sets/src/mage/cards/c/CanopyCrawler.java +++ b/Mage.Sets/src/mage/cards/c/CanopyCrawler.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CanopyDragon.java b/Mage.Sets/src/mage/cards/c/CanopyDragon.java index 9123af929be..c38d972702e 100644 --- a/Mage.Sets/src/mage/cards/c/CanopyDragon.java +++ b/Mage.Sets/src/mage/cards/c/CanopyDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CanopyGorger.java b/Mage.Sets/src/mage/cards/c/CanopyGorger.java index 5142a005e2d..06cc7184d54 100644 --- a/Mage.Sets/src/mage/cards/c/CanopyGorger.java +++ b/Mage.Sets/src/mage/cards/c/CanopyGorger.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CanopySpider.java b/Mage.Sets/src/mage/cards/c/CanopySpider.java index 2a4d5254249..326fa368e69 100644 --- a/Mage.Sets/src/mage/cards/c/CanopySpider.java +++ b/Mage.Sets/src/mage/cards/c/CanopySpider.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CanopySurge.java b/Mage.Sets/src/mage/cards/c/CanopySurge.java index bc96e246978..974539e4ab4 100644 --- a/Mage.Sets/src/mage/cards/c/CanopySurge.java +++ b/Mage.Sets/src/mage/cards/c/CanopySurge.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DamageEverythingEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CanopyVista.java b/Mage.Sets/src/mage/cards/c/CanopyVista.java index 07c138a2e0e..735205468fe 100644 --- a/Mage.Sets/src/mage/cards/c/CanopyVista.java +++ b/Mage.Sets/src/mage/cards/c/CanopyVista.java @@ -27,9 +27,7 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; @@ -41,11 +39,13 @@ import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** - * * @author fireshoes */ public class CanopyVista extends CardImpl { @@ -53,16 +53,16 @@ public class CanopyVista extends CardImpl { private static final FilterLandPermanent filter = new FilterLandPermanent(); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public CanopyVista(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.LAND},""); + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); this.subtype.add("Forest"); this.subtype.add("Plains"); // Canopy Vista enters the battlefield tapped unless you control two or more basic lands. - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1)); String abilityText = "tapped unless you control two or more basic lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new GreenManaAbility()); diff --git a/Mage.Sets/src/mage/cards/c/CantinaBand.java b/Mage.Sets/src/mage/cards/c/CantinaBand.java index 290b955ca05..0a892fd3907 100644 --- a/Mage.Sets/src/mage/cards/c/CantinaBand.java +++ b/Mage.Sets/src/mage/cards/c/CantinaBand.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/c/Cantivore.java b/Mage.Sets/src/mage/cards/c/Cantivore.java index 26994b3a562..52f39734bae 100644 --- a/Mage.Sets/src/mage/cards/c/Cantivore.java +++ b/Mage.Sets/src/mage/cards/c/Cantivore.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Loki (Mortivore), cbt33 diff --git a/Mage.Sets/src/mage/cards/c/CanyonDrake.java b/Mage.Sets/src/mage/cards/c/CanyonDrake.java index 220cff3a9d1..0c06b94baec 100644 --- a/Mage.Sets/src/mage/cards/c/CanyonDrake.java +++ b/Mage.Sets/src/mage/cards/c/CanyonDrake.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CanyonLurkers.java b/Mage.Sets/src/mage/cards/c/CanyonLurkers.java index d7159a0a3f8..0e53edd2bf5 100644 --- a/Mage.Sets/src/mage/cards/c/CanyonLurkers.java +++ b/Mage.Sets/src/mage/cards/c/CanyonLurkers.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.MorphAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CanyonMinotaur.java b/Mage.Sets/src/mage/cards/c/CanyonMinotaur.java index ce4a1079178..98b556abb2f 100644 --- a/Mage.Sets/src/mage/cards/c/CanyonMinotaur.java +++ b/Mage.Sets/src/mage/cards/c/CanyonMinotaur.java @@ -28,11 +28,12 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** diff --git a/Mage.Sets/src/mage/cards/c/CanyonSlough.java b/Mage.Sets/src/mage/cards/c/CanyonSlough.java new file mode 100644 index 00000000000..51fb70a2bc6 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CanyonSlough.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.CyclingAbility; +import mage.abilities.mana.BlackManaAbility; +import mage.abilities.mana.RedManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class CanyonSlough extends CardImpl { + + public CanyonSlough(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + this.subtype.add("Swamp"); + this.subtype.add("Mountain"); + + // ({T}: Add {B} or {R} to your mana pool.) + this.addAbility(new BlackManaAbility()); + this.addAbility(new RedManaAbility()); + + // Canyon Slough enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + + } + + public CanyonSlough(final CanyonSlough card) { + super(card); + } + + @Override + public CanyonSlough copy() { + return new CanyonSlough(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/CanyonWildcat.java b/Mage.Sets/src/mage/cards/c/CanyonWildcat.java index 9818d997b5d..af68c079973 100644 --- a/Mage.Sets/src/mage/cards/c/CanyonWildcat.java +++ b/Mage.Sets/src/mage/cards/c/CanyonWildcat.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.MountainwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CaoCaoLordOfWei.java b/Mage.Sets/src/mage/cards/c/CaoCaoLordOfWei.java index a98e1c8b52e..5ec4d5e1b8b 100644 --- a/Mage.Sets/src/mage/cards/c/CaoCaoLordOfWei.java +++ b/Mage.Sets/src/mage/cards/c/CaoCaoLordOfWei.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -37,9 +36,12 @@ import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 @@ -48,7 +50,7 @@ public class CaoCaoLordOfWei extends CardImpl { public CaoCaoLordOfWei(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); @@ -56,7 +58,7 @@ public class CaoCaoLordOfWei extends CardImpl { this.toughness = new MageInt(3); // {tap}: Target opponent discards two cards. Activate this ability only during your turn, before attackers are declared. - Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(2), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(2), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetOpponent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/c/CaoRenWeiCommander.java b/Mage.Sets/src/mage/cards/c/CaoRenWeiCommander.java index 981689dddd0..ec316aeafcc 100644 --- a/Mage.Sets/src/mage/cards/c/CaoRenWeiCommander.java +++ b/Mage.Sets/src/mage/cards/c/CaoRenWeiCommander.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; @@ -35,6 +34,9 @@ import mage.abilities.keyword.HorsemanshipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -44,7 +46,7 @@ public class CaoRenWeiCommander extends CardImpl { public CaoRenWeiCommander(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/c/CapashenKnight.java b/Mage.Sets/src/mage/cards/c/CapashenKnight.java index d06a06e28ff..68a56bb5490 100644 --- a/Mage.Sets/src/mage/cards/c/CapashenKnight.java +++ b/Mage.Sets/src/mage/cards/c/CapashenKnight.java @@ -27,10 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +34,11 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CapashenStandard.java b/Mage.Sets/src/mage/cards/c/CapashenStandard.java index 1630cebc810..fa3b2a85677 100644 --- a/Mage.Sets/src/mage/cards/c/CapashenStandard.java +++ b/Mage.Sets/src/mage/cards/c/CapashenStandard.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -46,6 +45,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CapashenTemplar.java b/Mage.Sets/src/mage/cards/c/CapashenTemplar.java index 676d90cb3f5..5060709ca42 100644 --- a/Mage.Sets/src/mage/cards/c/CapashenTemplar.java +++ b/Mage.Sets/src/mage/cards/c/CapashenTemplar.java @@ -27,16 +27,17 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CapashenUnicorn.java b/Mage.Sets/src/mage/cards/c/CapashenUnicorn.java index e5a479197a5..8479d65cfb9 100644 --- a/Mage.Sets/src/mage/cards/c/CapashenUnicorn.java +++ b/Mage.Sets/src/mage/cards/c/CapashenUnicorn.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/CapriciousSorcerer.java b/Mage.Sets/src/mage/cards/c/CapriciousSorcerer.java index e13f37773a4..d99c8a0a7ce 100644 --- a/Mage.Sets/src/mage/cards/c/CapriciousSorcerer.java +++ b/Mage.Sets/src/mage/cards/c/CapriciousSorcerer.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes @@ -55,7 +56,7 @@ public class CapriciousSorcerer extends CardImpl { // {tap}: Capricious Sorcerer deals 1 damage to target creature or player. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new DamageTargetEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new DamageTargetEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCreatureOrPlayer()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/c/Capsize.java b/Mage.Sets/src/mage/cards/c/Capsize.java index 5dd53d3fac8..0764a0a5567 100644 --- a/Mage.Sets/src/mage/cards/c/Capsize.java +++ b/Mage.Sets/src/mage/cards/c/Capsize.java @@ -27,14 +27,15 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.BuybackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CaptainOfTheMists.java b/Mage.Sets/src/mage/cards/c/CaptainOfTheMists.java index 68891b02eef..fa028ce56c1 100644 --- a/Mage.Sets/src/mage/cards/c/CaptainOfTheMists.java +++ b/Mage.Sets/src/mage/cards/c/CaptainOfTheMists.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; @@ -40,12 +37,16 @@ import mage.abilities.effects.common.MayTapOrUntapTargetEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/c/CaptainOfTheWatch.java b/Mage.Sets/src/mage/cards/c/CaptainOfTheWatch.java index 98ab63f3c52..7e73b465d1c 100644 --- a/Mage.Sets/src/mage/cards/c/CaptainOfTheWatch.java +++ b/Mage.Sets/src/mage/cards/c/CaptainOfTheWatch.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,12 +37,15 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.SoldierToken; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/c/CaptainSisay.java b/Mage.Sets/src/mage/cards/c/CaptainSisay.java index 25679d3fb43..b9527079059 100644 --- a/Mage.Sets/src/mage/cards/c/CaptainSisay.java +++ b/Mage.Sets/src/mage/cards/c/CaptainSisay.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -35,11 +34,14 @@ import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -49,12 +51,12 @@ public class CaptainSisay extends CardImpl { private static final FilterCard filter = new FilterCard("legendary card"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public CaptainSisay(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/c/CaptainsCall.java b/Mage.Sets/src/mage/cards/c/CaptainsCall.java index 6458dc18f38..643a3e86696 100644 --- a/Mage.Sets/src/mage/cards/c/CaptainsCall.java +++ b/Mage.Sets/src/mage/cards/c/CaptainsCall.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.SoldierToken; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CaptainsClaws.java b/Mage.Sets/src/mage/cards/c/CaptainsClaws.java index 69c974aeb6d..853c29c32ed 100644 --- a/Mage.Sets/src/mage/cards/c/CaptainsClaws.java +++ b/Mage.Sets/src/mage/cards/c/CaptainsClaws.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.abilities.common.AttacksAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -42,6 +40,8 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.game.permanent.token.KorAllyToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CaptivatingVampire.java b/Mage.Sets/src/mage/cards/c/CaptivatingVampire.java index 57964befec8..66aa69cfffd 100644 --- a/Mage.Sets/src/mage/cards/c/CaptivatingVampire.java +++ b/Mage.Sets/src/mage/cards/c/CaptivatingVampire.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,12 +36,7 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -53,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/CaptiveFlame.java b/Mage.Sets/src/mage/cards/c/CaptiveFlame.java index 3992d9aa8a1..ab6b67bc374 100644 --- a/Mage.Sets/src/mage/cards/c/CaptiveFlame.java +++ b/Mage.Sets/src/mage/cards/c/CaptiveFlame.java @@ -27,17 +27,20 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/Capture.java b/Mage.Sets/src/mage/cards/c/Capture.java index 2da94568c51..794e9cd7236 100644 --- a/Mage.Sets/src/mage/cards/c/Capture.java +++ b/Mage.Sets/src/mage/cards/c/Capture.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.abilities.condition.common.TargetHasCounterCondition; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/c/CaptureOfJingzhou.java b/Mage.Sets/src/mage/cards/c/CaptureOfJingzhou.java index a11a6ac8009..23875322ea3 100644 --- a/Mage.Sets/src/mage/cards/c/CaptureOfJingzhou.java +++ b/Mage.Sets/src/mage/cards/c/CaptureOfJingzhou.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.turn.AddExtraTurnControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CapturedByTheConsulate.java b/Mage.Sets/src/mage/cards/c/CapturedByTheConsulate.java index 3a420d12f64..55f7442ae29 100644 --- a/Mage.Sets/src/mage/cards/c/CapturedByTheConsulate.java +++ b/Mage.Sets/src/mage/cards/c/CapturedByTheConsulate.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.TriggeredAbilityImpl; @@ -39,11 +38,7 @@ import mage.abilities.effects.common.combat.CantAttackAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; @@ -57,6 +52,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CapturedSunlight.java b/Mage.Sets/src/mage/cards/c/CapturedSunlight.java index e7f7449e3e1..f7386e40d61 100644 --- a/Mage.Sets/src/mage/cards/c/CapturedSunlight.java +++ b/Mage.Sets/src/mage/cards/c/CapturedSunlight.java @@ -28,12 +28,13 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.keyword.CascadeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/Carapace.java b/Mage.Sets/src/mage/cards/c/Carapace.java index 3d306c6b94b..4e97816718f 100644 --- a/Mage.Sets/src/mage/cards/c/Carapace.java +++ b/Mage.Sets/src/mage/cards/c/Carapace.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +41,8 @@ import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Galatolol diff --git a/Mage.Sets/src/mage/cards/c/CarapaceForger.java b/Mage.Sets/src/mage/cards/c/CarapaceForger.java index 407e612bc28..2b25bab3011 100644 --- a/Mage.Sets/src/mage/cards/c/CarapaceForger.java +++ b/Mage.Sets/src/mage/cards/c/CarapaceForger.java @@ -28,10 +28,6 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.MetalcraftCondition; @@ -40,6 +36,11 @@ import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CaravanHurda.java b/Mage.Sets/src/mage/cards/c/CaravanHurda.java index 5a62d95409e..1f8fcc5774c 100644 --- a/Mage.Sets/src/mage/cards/c/CaravanHurda.java +++ b/Mage.Sets/src/mage/cards/c/CaravanHurda.java @@ -28,12 +28,13 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CaravanVigil.java b/Mage.Sets/src/mage/cards/c/CaravanVigil.java index 097593f20db..9e2c7c0f515 100644 --- a/Mage.Sets/src/mage/cards/c/CaravanVigil.java +++ b/Mage.Sets/src/mage/cards/c/CaravanVigil.java @@ -27,16 +27,11 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.condition.common.MorbidCondition; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -45,6 +40,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CarboniteChamber.java b/Mage.Sets/src/mage/cards/c/CarboniteChamber.java index 1aad8ddd03c..f1748b52c96 100644 --- a/Mage.Sets/src/mage/cards/c/CarboniteChamber.java +++ b/Mage.Sets/src/mage/cards/c/CarboniteChamber.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.counters.CounterType; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/c/Carbonize.java b/Mage.Sets/src/mage/cards/c/Carbonize.java index 26231de9419..70293d63147 100644 --- a/Mage.Sets/src/mage/cards/c/Carbonize.java +++ b/Mage.Sets/src/mage/cards/c/Carbonize.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.replacement.DealtDamageToCreatureBySourceDies; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.target.common.TargetCreatureOrPlayer; import mage.watchers.common.DamagedByWatcher; +import java.util.UUID; + /** * * @author markedagain diff --git a/Mage.Sets/src/mage/cards/c/CarefulConsideration.java b/Mage.Sets/src/mage/cards/c/CarefulConsideration.java index e07c2e07e9b..8224b7be8db 100644 --- a/Mage.Sets/src/mage/cards/c/CarefulConsideration.java +++ b/Mage.Sets/src/mage/cards/c/CarefulConsideration.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.condition.common.MyMainPhaseCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DrawDiscardTargetEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CarefulStudy.java b/Mage.Sets/src/mage/cards/c/CarefulStudy.java index 65334d90b66..10fefa33fb0 100644 --- a/Mage.Sets/src/mage/cards/c/CarefulStudy.java +++ b/Mage.Sets/src/mage/cards/c/CarefulStudy.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.DrawDiscardControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * @author magenoxx_at_gmail.com */ diff --git a/Mage.Sets/src/mage/cards/c/Caregiver.java b/Mage.Sets/src/mage/cards/c/Caregiver.java index 7dddaf3f348..7acbe3e93ec 100644 --- a/Mage.Sets/src/mage/cards/c/Caregiver.java +++ b/Mage.Sets/src/mage/cards/c/Caregiver.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,15 @@ import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.PreventDamageToTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CaressOfPhyrexia.java b/Mage.Sets/src/mage/cards/c/CaressOfPhyrexia.java index e1456c31807..21a2b1308df 100644 --- a/Mage.Sets/src/mage/cards/c/CaressOfPhyrexia.java +++ b/Mage.Sets/src/mage/cards/c/CaressOfPhyrexia.java @@ -27,15 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.abilities.effects.common.counter.AddPoisonCounterTargetEffect; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; +import mage.abilities.effects.common.counter.AddPoisonCounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CaribouRange.java b/Mage.Sets/src/mage/cards/c/CaribouRange.java index fe9a843a86c..b244e38af75 100644 --- a/Mage.Sets/src/mage/cards/c/CaribouRange.java +++ b/Mage.Sets/src/mage/cards/c/CaribouRange.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -55,6 +54,8 @@ import mage.game.permanent.token.Token; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CarnageAltar.java b/Mage.Sets/src/mage/cards/c/CarnageAltar.java index cac6b5085c6..92cd95af537 100644 --- a/Mage.Sets/src/mage/cards/c/CarnageAltar.java +++ b/Mage.Sets/src/mage/cards/c/CarnageAltar.java @@ -27,17 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CarnageGladiator.java b/Mage.Sets/src/mage/cards/c/CarnageGladiator.java index 95b1d37507c..6e17731dd26 100644 --- a/Mage.Sets/src/mage/cards/c/CarnageGladiator.java +++ b/Mage.Sets/src/mage/cards/c/CarnageGladiator.java @@ -28,7 +28,6 @@ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + public class CarnageGladiator extends CardImpl { diff --git a/Mage.Sets/src/mage/cards/c/CarnageWurm.java b/Mage.Sets/src/mage/cards/c/CarnageWurm.java index 99269d3dfbe..8dfb5e8760d 100644 --- a/Mage.Sets/src/mage/cards/c/CarnageWurm.java +++ b/Mage.Sets/src/mage/cards/c/CarnageWurm.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.BloodthirstAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/Carnassid.java b/Mage.Sets/src/mage/cards/c/Carnassid.java index 0c5111557f6..d6d6133377c 100644 --- a/Mage.Sets/src/mage/cards/c/Carnassid.java +++ b/Mage.Sets/src/mage/cards/c/Carnassid.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -36,8 +34,11 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/c/CarnifexDemon.java b/Mage.Sets/src/mage/cards/c/CarnifexDemon.java index 5f0a86fcca9..dd69f659a8b 100644 --- a/Mage.Sets/src/mage/cards/c/CarnifexDemon.java +++ b/Mage.Sets/src/mage/cards/c/CarnifexDemon.java @@ -28,10 +28,6 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -43,11 +39,15 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CarnivalHellsteed.java b/Mage.Sets/src/mage/cards/c/CarnivalHellsteed.java index c69da0d495f..1be539e011e 100644 --- a/Mage.Sets/src/mage/cards/c/CarnivalHellsteed.java +++ b/Mage.Sets/src/mage/cards/c/CarnivalHellsteed.java @@ -26,15 +26,16 @@ * or implied, of BetaSteward_at_googlemail.com. */ package mage.cards.c; - -import java.util.UUID; -import mage.constants.CardType; + import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.UnleashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CarnivalOfSouls.java b/Mage.Sets/src/mage/cards/c/CarnivalOfSouls.java index 4f0b1878bfa..265cfef0848 100644 --- a/Mage.Sets/src/mage/cards/c/CarnivalOfSouls.java +++ b/Mage.Sets/src/mage/cards/c/CarnivalOfSouls.java @@ -27,21 +27,21 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.AddManaToManaPoolSourceControllerEffect; +import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.abilities.Ability; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.LoseLifeSourceControllerEffect; -import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; -import mage.abilities.effects.common.AddManaToManaPoolSourceControllerEffect; import mage.constants.SetTargetPointer; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Galatolol diff --git a/Mage.Sets/src/mage/cards/c/CarnivorousMossBeast.java b/Mage.Sets/src/mage/cards/c/CarnivorousMossBeast.java index ad41bda097f..d47faabe31e 100644 --- a/Mage.Sets/src/mage/cards/c/CarnivorousMossBeast.java +++ b/Mage.Sets/src/mage/cards/c/CarnivorousMossBeast.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CarnivorousPlant.java b/Mage.Sets/src/mage/cards/c/CarnivorousPlant.java index 8101b442a43..8908a8fd9ba 100644 --- a/Mage.Sets/src/mage/cards/c/CarnivorousPlant.java +++ b/Mage.Sets/src/mage/cards/c/CarnivorousPlant.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/Carnophage.java b/Mage.Sets/src/mage/cards/c/Carnophage.java index b5cc8148b60..65580ef6431 100644 --- a/Mage.Sets/src/mage/cards/c/Carnophage.java +++ b/Mage.Sets/src/mage/cards/c/Carnophage.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.costs.common.PayLifeCost; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Carom.java b/Mage.Sets/src/mage/cards/c/Carom.java index 6560f1dd33c..5b811fffb1a 100644 --- a/Mage.Sets/src/mage/cards/c/Carom.java +++ b/Mage.Sets/src/mage/cards/c/Carom.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.effects.RedirectionEffect; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Skyler Sell diff --git a/Mage.Sets/src/mage/cards/c/CarpetOfFlowers.java b/Mage.Sets/src/mage/cards/c/CarpetOfFlowers.java index d5396e47694..f12eb0b7840 100644 --- a/Mage.Sets/src/mage/cards/c/CarpetOfFlowers.java +++ b/Mage.Sets/src/mage/cards/c/CarpetOfFlowers.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.LinkedHashSet; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -49,6 +47,9 @@ import mage.game.events.GameEvent.EventType; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.LinkedHashSet; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CarrierPigeons.java b/Mage.Sets/src/mage/cards/c/CarrierPigeons.java index dbf0493c372..3456d5bef06 100644 --- a/Mage.Sets/src/mage/cards/c/CarrierPigeons.java +++ b/Mage.Sets/src/mage/cards/c/CarrierPigeons.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CarrierThrall.java b/Mage.Sets/src/mage/cards/c/CarrierThrall.java index 6a2f82f2ddf..f17f84bd3dd 100644 --- a/Mage.Sets/src/mage/cards/c/CarrierThrall.java +++ b/Mage.Sets/src/mage/cards/c/CarrierThrall.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.Effect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.EldraziScionToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CarrionAnts.java b/Mage.Sets/src/mage/cards/c/CarrionAnts.java index b350ffc5021..3a0beba19ea 100644 --- a/Mage.Sets/src/mage/cards/c/CarrionAnts.java +++ b/Mage.Sets/src/mage/cards/c/CarrionAnts.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CarrionBeetles.java b/Mage.Sets/src/mage/cards/c/CarrionBeetles.java index 60185b09416..d1164866b9f 100644 --- a/Mage.Sets/src/mage/cards/c/CarrionBeetles.java +++ b/Mage.Sets/src/mage/cards/c/CarrionBeetles.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.FilterCard; import mage.game.Game; import mage.target.common.TargetCardInASingleGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CarrionCall.java b/Mage.Sets/src/mage/cards/c/CarrionCall.java index a025c6e16ca..4ff6e061411 100644 --- a/Mage.Sets/src/mage/cards/c/CarrionCall.java +++ b/Mage.Sets/src/mage/cards/c/CarrionCall.java @@ -28,13 +28,14 @@ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.InsectInfectToken; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CarrionCrow.java b/Mage.Sets/src/mage/cards/c/CarrionCrow.java index 22af91f48be..97f97d33dea 100644 --- a/Mage.Sets/src/mage/cards/c/CarrionCrow.java +++ b/Mage.Sets/src/mage/cards/c/CarrionCrow.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.keyword.FlyingAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CarrionFeeder.java b/Mage.Sets/src/mage/cards/c/CarrionFeeder.java index 843db217074..e0b3dd8d87b 100644 --- a/Mage.Sets/src/mage/cards/c/CarrionFeeder.java +++ b/Mage.Sets/src/mage/cards/c/CarrionFeeder.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.CantBlockAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +34,13 @@ import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/c/CarrionHowler.java b/Mage.Sets/src/mage/cards/c/CarrionHowler.java index b30e25136f6..93056808f5d 100644 --- a/Mage.Sets/src/mage/cards/c/CarrionHowler.java +++ b/Mage.Sets/src/mage/cards/c/CarrionHowler.java @@ -27,18 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.PayLifeCost; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CarrionThrash.java b/Mage.Sets/src/mage/cards/c/CarrionThrash.java index aed82bb602e..ecd6b95fb05 100644 --- a/Mage.Sets/src/mage/cards/c/CarrionThrash.java +++ b/Mage.Sets/src/mage/cards/c/CarrionThrash.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -36,10 +34,13 @@ import mage.abilities.effects.common.DoIfCostPaid; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CarrionWall.java b/Mage.Sets/src/mage/cards/c/CarrionWall.java index d319e917e5b..edf434730cb 100644 --- a/Mage.Sets/src/mage/cards/c/CarrionWall.java +++ b/Mage.Sets/src/mage/cards/c/CarrionWall.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,8 +34,11 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CartelAristocrat.java b/Mage.Sets/src/mage/cards/c/CartelAristocrat.java index c96493427d8..18b4f515dd1 100644 --- a/Mage.Sets/src/mage/cards/c/CartelAristocrat.java +++ b/Mage.Sets/src/mage/cards/c/CartelAristocrat.java @@ -27,21 +27,22 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.continuous.GainProtectionFromColorSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * Gatecrash FAQ (01.2013) You choose the color when the ability resolves. * diff --git a/Mage.Sets/src/mage/cards/c/Cartographer.java b/Mage.Sets/src/mage/cards/c/Cartographer.java index 88d34ef6af2..e189efec43a 100644 --- a/Mage.Sets/src/mage/cards/c/Cartographer.java +++ b/Mage.Sets/src/mage/cards/c/Cartographer.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.filter.common.FilterLandCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/c/CartoucheOfAmbition.java b/Mage.Sets/src/mage/cards/c/CartoucheOfAmbition.java new file mode 100644 index 00000000000..6773af8f0c6 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CartoucheOfAmbition.java @@ -0,0 +1,93 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.continuous.BoostEnchantedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.constants.Outcome; +import mage.target.TargetPermanent; +import mage.abilities.keyword.EnchantAbility; +import mage.abilities.keyword.LifelinkAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class CartoucheOfAmbition extends CardImpl { + + public CartoucheOfAmbition(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}"); + + this.subtype.add("Aura"); + this.subtype.add("Cartouche"); + + // Enchant creature you control + TargetPermanent auraTarget = new TargetControlledCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // When Cartouche of Ambition enters the battlefield, you may put a -1/-1 counter on target creature. + ability = new EntersBattlefieldTriggeredAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance(1)), true); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + + // Enchanted creature gets +1/+1 and has lifelink. + ability =new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield)); + Effect effect = new GainAbilityAttachedEffect(LifelinkAbility.getInstance(), AttachmentType.AURA); + effect.setText("and has lifelink"); + ability.addEffect(effect); + this.addAbility(ability); + } + + public CartoucheOfAmbition(final CartoucheOfAmbition card) { + super(card); + } + + @Override + public CartoucheOfAmbition copy() { + return new CartoucheOfAmbition(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/CartoucheOfKnowledge.java b/Mage.Sets/src/mage/cards/c/CartoucheOfKnowledge.java new file mode 100644 index 00000000000..7634b9852ea --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CartoucheOfKnowledge.java @@ -0,0 +1,89 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.continuous.BoostEnchantedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.constants.Outcome; +import mage.target.TargetPermanent; +import mage.abilities.keyword.EnchantAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class CartoucheOfKnowledge extends CardImpl { + + public CartoucheOfKnowledge(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}"); + + this.subtype.add("Aura"); + this.subtype.add("Cartouche"); + + // Enchant creature you control + TargetPermanent auraTarget = new TargetControlledCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // When Cartouche of Knowledge enters the battlefield, draw a card. + this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1))); + + // Enchanted creature gets +1/+1 and has flying. + ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield)); + Effect effect = new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA); + effect.setText("and has flying"); + ability.addEffect(effect); + this.addAbility(ability); + } + + public CartoucheOfKnowledge(final CartoucheOfKnowledge card) { + super(card); + } + + @Override + public CartoucheOfKnowledge copy() { + return new CartoucheOfKnowledge(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/CartoucheOfSolidarity.java b/Mage.Sets/src/mage/cards/c/CartoucheOfSolidarity.java new file mode 100644 index 00000000000..cca0812bd69 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CartoucheOfSolidarity.java @@ -0,0 +1,90 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.continuous.BoostEnchantedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.constants.Outcome; +import mage.target.TargetPermanent; +import mage.abilities.keyword.EnchantAbility; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.game.permanent.token.WarriorVigilantToken; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class CartoucheOfSolidarity extends CardImpl { + + public CartoucheOfSolidarity(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{W}"); + + this.subtype.add("Aura"); + this.subtype.add("Cartouche"); + + // Enchant creature you control + TargetPermanent auraTarget = new TargetControlledCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // When Cartouche of Solidarity enters the battlefield, create a 1/1 white Warrior creature token with vigilance. + this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WarriorVigilantToken()))); + + // Enchanted creature gets +1/+1 and has first strike. + ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield)); + Effect effect = new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.AURA); + effect.setText("and has first strike"); + ability.addEffect(effect); + this.addAbility(ability); + } + + public CartoucheOfSolidarity(final CartoucheOfSolidarity card) { + super(card); + } + + @Override + public CartoucheOfSolidarity copy() { + return new CartoucheOfSolidarity(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/CartoucheOfStrength.java b/Mage.Sets/src/mage/cards/c/CartoucheOfStrength.java new file mode 100644 index 00000000000..14197bb87b8 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CartoucheOfStrength.java @@ -0,0 +1,142 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.Mode; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.continuous.BoostEnchantedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.abilities.keyword.TrampleAbility; +import mage.constants.*; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.target.TargetPermanent; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetOpponentsCreaturePermanent; + +/** + * + * @author stravant + */ +public class CartoucheOfStrength extends CardImpl { + + public CartoucheOfStrength(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}"); + + this.subtype.add("Aura"); + this.subtype.add("Cartouche"); + + // Enchant creature you control + TargetPermanent auraTarget = new TargetControlledCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // When Cartouche of Strength enters the battlefield, you may have enchanted creature fight target creature an opponent controls. + ability = new EntersBattlefieldTriggeredAbility(new FightEnchantedTargetEffect(), /* optional = */true); + ability.addTarget(new TargetOpponentsCreaturePermanent()); + this.addAbility(ability); + + // Enchanted creature gets +1/+1 and has trample. + ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield)); + Effect effect = new GainAbilityAttachedEffect(TrampleAbility.getInstance(), AttachmentType.AURA); + effect.setText("and has trample"); + ability.addEffect(effect); + this.addAbility(ability); + } + + public CartoucheOfStrength(final CartoucheOfStrength card) { + super(card); + } + + @Override + public CartoucheOfStrength copy() { + return new CartoucheOfStrength(this); + } +} + +/** + * + * @author stravant + */ +class FightEnchantedTargetEffect extends OneShotEffect { + public FightEnchantedTargetEffect() { + super(Outcome.Damage); + } + + public FightEnchantedTargetEffect(final FightEnchantedTargetEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent sourcePermanent = game.getPermanent(source.getSourceId()); + if (sourcePermanent != null) { + Permanent originalCreature = game.getPermanentOrLKIBattlefield(sourcePermanent.getAttachedTo()); + if (originalCreature != null) { + Permanent enchantedCreature = game.getPermanent(sourcePermanent.getAttachedTo()); + // only if target is legal the effect will be applied + if (source.getTargets().get(0).isLegal(source, game)) { + Permanent creature1 = game.getPermanent(source.getTargets().get(0).getFirstTarget()); + // 20110930 - 701.10 + if (creature1 != null && enchantedCreature != null) { + if (creature1.isCreature() && enchantedCreature.isCreature()) { + return enchantedCreature.fight(creature1, source, game); + } + } + } + if (!game.isSimulation()) + game.informPlayers(originalCreature.getLogName() + ": Fighting effect has been fizzled."); + } + } + return false; + } + + @Override + public FightEnchantedTargetEffect copy() { + return new FightEnchantedTargetEffect(this); + } + + @Override + public String getText(Mode mode) { + return "you may have enchanted creature fight target creature an opponent controls."; + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/c/CartoucheOfZeal.java b/Mage.Sets/src/mage/cards/c/CartoucheOfZeal.java new file mode 100644 index 00000000000..db3fcc72d76 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CartoucheOfZeal.java @@ -0,0 +1,92 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.combat.CantBlockTargetEffect; +import mage.abilities.effects.common.continuous.BoostEnchantedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.constants.Outcome; +import mage.target.TargetPermanent; +import mage.abilities.keyword.EnchantAbility; +import mage.abilities.keyword.HasteAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class CartoucheOfZeal extends CardImpl { + + public CartoucheOfZeal(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{R}"); + + this.subtype.add("Aura"); + this.subtype.add("Cartouche"); + + // Enchant creature you control + TargetPermanent auraTarget = new TargetControlledCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // When Cartouche of Zeal enters the battlefield, target creature can't block this turn. + ability = new EntersBattlefieldTriggeredAbility(new CantBlockTargetEffect(Duration.EndOfTurn)); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + + // Enchanted creature gets +1/+1 and has haste. + ability =new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield)); + Effect effect = new GainAbilityAttachedEffect(HasteAbility.getInstance(), AttachmentType.AURA); + effect.setText("and has haste"); + ability.addEffect(effect); + this.addAbility(ability); + } + + public CartoucheOfZeal(final CartoucheOfZeal card) { + super(card); + } + + @Override + public CartoucheOfZeal copy() { + return new CartoucheOfZeal(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/CarvenCaryatid.java b/Mage.Sets/src/mage/cards/c/CarvenCaryatid.java index 2c909626c69..7dfbfccaa16 100644 --- a/Mage.Sets/src/mage/cards/c/CarvenCaryatid.java +++ b/Mage.Sets/src/mage/cards/c/CarvenCaryatid.java @@ -27,14 +27,15 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CascadeBluffs.java b/Mage.Sets/src/mage/cards/c/CascadeBluffs.java index e45e5293c57..2c806dea4c4 100644 --- a/Mage.Sets/src/mage/cards/c/CascadeBluffs.java +++ b/Mage.Sets/src/mage/cards/c/CascadeBluffs.java @@ -28,9 +28,6 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.Mana; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,8 +35,11 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/c/CascadingCataracts.java b/Mage.Sets/src/mage/cards/c/CascadingCataracts.java new file mode 100644 index 00000000000..600c9a86465 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CascadingCataracts.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.AddManaInAnyCombinationEffect; +import mage.abilities.keyword.IndestructibleAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +/** + * + * @author spjspj + */ +public class CascadingCataracts extends CardImpl { + + public CascadingCataracts(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + // Indestructibles + this.addAbility(IndestructibleAbility.getInstance()); + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {5}, {T}: Add five mana in any combination of colors to your mana pool. + Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaInAnyCombinationEffect(5), new GenericManaCost(5)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public CascadingCataracts(final CascadingCataracts card) { + super(card); + } + + @Override + public CascadingCataracts copy() { + return new CascadingCataracts(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/CastIntoDarkness.java b/Mage.Sets/src/mage/cards/c/CastIntoDarkness.java index 59999b2b3d8..eca5dd553f5 100644 --- a/Mage.Sets/src/mage/cards/c/CastIntoDarkness.java +++ b/Mage.Sets/src/mage/cards/c/CastIntoDarkness.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -37,14 +36,12 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CastOut.java b/Mage.Sets/src/mage/cards/c/CastOut.java new file mode 100644 index 00000000000..8518bc08e4b --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CastOut.java @@ -0,0 +1,84 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility; +import mage.abilities.keyword.FlashAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; +import mage.abilities.effects.common.ExileUntilSourceLeavesEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.filter.common.FilterNonlandPermanent; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.target.TargetPermanent; + +/** + * + * @author fireshoes + */ +public class CastOut extends CardImpl { + + private final static FilterNonlandPermanent filter = new FilterNonlandPermanent(); + + static { + filter.add(new ControllerPredicate(TargetController.OPPONENT)); + } + + public CastOut(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{W}"); + + // Flash + this.addAbility(FlashAbility.getInstance()); + + // When Cast Out enters the battlefield, exile target nonland permanent an opponent controls until Cast Out leaves the battlefield. + Ability ability = new EntersBattlefieldTriggeredAbility(new ExileUntilSourceLeavesEffect(filter.getMessage())); + ability.addTarget(new TargetPermanent(filter)); + ability.addEffect(new CreateDelayedTriggeredAbilityEffect(new OnLeaveReturnExiledToBattlefieldAbility())); + this.addAbility(ability); + + // Cycling {W} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{W}"))); + + } + + public CastOut(final CastOut card) { + super(card); + } + + @Override + public CastOut copy() { + return new CastOut(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/CastThroughTime.java b/Mage.Sets/src/mage/cards/c/CastThroughTime.java index 191f08be73e..43085ba7b24 100644 --- a/Mage.Sets/src/mage/cards/c/CastThroughTime.java +++ b/Mage.Sets/src/mage/cards/c/CastThroughTime.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.Iterator; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; @@ -36,12 +34,7 @@ import mage.abilities.keyword.ReboundAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -51,6 +44,9 @@ import mage.game.stack.Spell; import mage.game.stack.StackObject; import mage.players.Player; +import java.util.Iterator; +import java.util.UUID; + /** * @author magenoxx_at_gmail.com diff --git a/Mage.Sets/src/mage/cards/c/Castigate.java b/Mage.Sets/src/mage/cards/c/Castigate.java index da1820bd86e..157a1367496 100644 --- a/Mage.Sets/src/mage/cards/c/Castigate.java +++ b/Mage.Sets/src/mage/cards/c/Castigate.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.ExileCardYouChooseTargetOpponentEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -37,6 +36,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/c/Castle.java b/Mage.Sets/src/mage/cards/c/Castle.java index f0728a5884a..b786a91478c 100644 --- a/Mage.Sets/src/mage/cards/c/Castle.java +++ b/Mage.Sets/src/mage/cards/c/Castle.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterUntappedCreature; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/c/CastleRaptors.java b/Mage.Sets/src/mage/cards/c/CastleRaptors.java index 230642715b2..1a694ca9c5a 100644 --- a/Mage.Sets/src/mage/cards/c/CastleRaptors.java +++ b/Mage.Sets/src/mage/cards/c/CastleRaptors.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.InvertCondition; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CastleSengir.java b/Mage.Sets/src/mage/cards/c/CastleSengir.java index 1b62c3126c0..6f0c147690c 100644 --- a/Mage.Sets/src/mage/cards/c/CastleSengir.java +++ b/Mage.Sets/src/mage/cards/c/CastleSengir.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/CatBurglar.java b/Mage.Sets/src/mage/cards/c/CatBurglar.java index 3435fde473e..a8843ad7926 100644 --- a/Mage.Sets/src/mage/cards/c/CatBurglar.java +++ b/Mage.Sets/src/mage/cards/c/CatBurglar.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; @@ -38,9 +35,12 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CatWarriors.java b/Mage.Sets/src/mage/cards/c/CatWarriors.java index 08667431c73..e67e1a64fc0 100644 --- a/Mage.Sets/src/mage/cards/c/CatWarriors.java +++ b/Mage.Sets/src/mage/cards/c/CatWarriors.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ForestwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/Cataclysm.java b/Mage.Sets/src/mage/cards/c/Cataclysm.java index af938d0f1c6..ce1ce88a29b 100644 --- a/Mage.Sets/src/mage/cards/c/Cataclysm.java +++ b/Mage.Sets/src/mage/cards/c/Cataclysm.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -47,6 +44,10 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledPermanent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CataclysmicGearhulk.java b/Mage.Sets/src/mage/cards/c/CataclysmicGearhulk.java index 32c7e3b2754..95aff180dfe 100644 --- a/Mage.Sets/src/mage/cards/c/CataclysmicGearhulk.java +++ b/Mage.Sets/src/mage/cards/c/CataclysmicGearhulk.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -52,6 +49,10 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledPermanent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CatacombSifter.java b/Mage.Sets/src/mage/cards/c/CatacombSifter.java index d2ac32347e4..8bb187e1d4e 100644 --- a/Mage.Sets/src/mage/cards/c/CatacombSifter.java +++ b/Mage.Sets/src/mage/cards/c/CatacombSifter.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.permanent.token.EldraziScionToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CatacombSlug.java b/Mage.Sets/src/mage/cards/c/CatacombSlug.java index b04d8d0360b..d543e7ffa2b 100644 --- a/Mage.Sets/src/mage/cards/c/CatacombSlug.java +++ b/Mage.Sets/src/mage/cards/c/CatacombSlug.java @@ -27,11 +27,12 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/Catalog.java b/Mage.Sets/src/mage/cards/c/Catalog.java index 16c22b20000..afdffa08142 100644 --- a/Mage.Sets/src/mage/cards/c/Catalog.java +++ b/Mage.Sets/src/mage/cards/c/Catalog.java @@ -27,11 +27,12 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DrawDiscardControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CatapultMaster.java b/Mage.Sets/src/mage/cards/c/CatapultMaster.java index d7ce49c1352..9b43eaf3ec6 100644 --- a/Mage.Sets/src/mage/cards/c/CatapultMaster.java +++ b/Mage.Sets/src/mage/cards/c/CatapultMaster.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,6 +34,7 @@ import mage.abilities.costs.common.TapTargetCost; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; @@ -45,6 +43,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CatapultSquad.java b/Mage.Sets/src/mage/cards/c/CatapultSquad.java index f02f13d460f..7c8bd69d1e3 100644 --- a/Mage.Sets/src/mage/cards/c/CatapultSquad.java +++ b/Mage.Sets/src/mage/cards/c/CatapultSquad.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/Catastrophe.java b/Mage.Sets/src/mage/cards/c/Catastrophe.java index db689574fd8..ecd1ba65fd6 100644 --- a/Mage.Sets/src/mage/cards/c/Catastrophe.java +++ b/Mage.Sets/src/mage/cards/c/Catastrophe.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CatchRelease.java b/Mage.Sets/src/mage/cards/c/CatchRelease.java index 4c3974367e7..6b7f771e430 100644 --- a/Mage.Sets/src/mage/cards/c/CatchRelease.java +++ b/Mage.Sets/src/mage/cards/c/CatchRelease.java @@ -42,12 +42,9 @@ import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; +import mage.constants.SpellAbilityType; import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledArtifactPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.common.FilterControlledEnchantmentPermanent; -import mage.filter.common.FilterControlledLandPermanent; -import mage.filter.common.FilterControlledPlaneswalkerPermanent; +import mage.filter.common.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; @@ -58,7 +55,7 @@ import mage.target.common.TargetControlledPermanent; public class CatchRelease extends SplitCard { public CatchRelease(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{U}{R}","{4}{R}{W}",true); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{U}{R}", "{4}{R}{W}", SpellAbilityType.SPLIT_FUSED); // Catch // Gain control of target permanent until end of turn. Untap it. It gains haste until end of turn. diff --git a/Mage.Sets/src/mage/cards/c/CateranBrute.java b/Mage.Sets/src/mage/cards/c/CateranBrute.java index a680c7e7739..feba5fdb9b5 100644 --- a/Mage.Sets/src/mage/cards/c/CateranBrute.java +++ b/Mage.Sets/src/mage/cards/c/CateranBrute.java @@ -28,23 +28,24 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Backfir3 @@ -55,7 +56,7 @@ public class CateranBrute extends CardImpl { static { filter.add(new SubtypePredicate("Mercenary")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); } public CateranBrute(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/c/CateranEnforcer.java b/Mage.Sets/src/mage/cards/c/CateranEnforcer.java index 63bfeb2e3bb..486c294c45b 100644 --- a/Mage.Sets/src/mage/cards/c/CateranEnforcer.java +++ b/Mage.Sets/src/mage/cards/c/CateranEnforcer.java @@ -28,11 +28,9 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; @@ -40,12 +38,15 @@ import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Backfir3 @@ -56,7 +57,7 @@ public class CateranEnforcer extends CardImpl { static { filter.add(new SubtypePredicate("Mercenary")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 5)); } public CateranEnforcer(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/c/CateranKidnappers.java b/Mage.Sets/src/mage/cards/c/CateranKidnappers.java index 13b6d61f441..ba7d15e9a0a 100644 --- a/Mage.Sets/src/mage/cards/c/CateranKidnappers.java +++ b/Mage.Sets/src/mage/cards/c/CateranKidnappers.java @@ -28,25 +28,25 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** - * * @author Backfir3 */ public class CateranKidnappers extends CardImpl { @@ -55,11 +55,11 @@ public class CateranKidnappers extends CardImpl { static { filter.add(new SubtypePredicate("Mercenary")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public CateranKidnappers(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{B}"); this.subtype.add("Human"); this.subtype.add("Mercenary"); diff --git a/Mage.Sets/src/mage/cards/c/CateranOverlord.java b/Mage.Sets/src/mage/cards/c/CateranOverlord.java index dce1d0b9f4c..75a81adfbcc 100644 --- a/Mage.Sets/src/mage/cards/c/CateranOverlord.java +++ b/Mage.Sets/src/mage/cards/c/CateranOverlord.java @@ -28,12 +28,9 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.common.TapSourceCost; @@ -42,13 +39,16 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 @@ -59,7 +59,7 @@ public class CateranOverlord extends CardImpl { static { filter.add(new SubtypePredicate("Mercenary")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 7)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 7)); } public CateranOverlord(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/c/CateranPersuader.java b/Mage.Sets/src/mage/cards/c/CateranPersuader.java index 602bd1fcf40..2c5b03af298 100644 --- a/Mage.Sets/src/mage/cards/c/CateranPersuader.java +++ b/Mage.Sets/src/mage/cards/c/CateranPersuader.java @@ -28,23 +28,24 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Backfir3 @@ -55,7 +56,7 @@ public class CateranPersuader extends CardImpl { static { filter.add(new SubtypePredicate("Mercenary")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 2)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2)); } public CateranPersuader(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/c/CateranSlaver.java b/Mage.Sets/src/mage/cards/c/CateranSlaver.java index 4522c941afd..8457a86e0c6 100644 --- a/Mage.Sets/src/mage/cards/c/CateranSlaver.java +++ b/Mage.Sets/src/mage/cards/c/CateranSlaver.java @@ -28,11 +28,9 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; @@ -40,12 +38,15 @@ import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.abilities.keyword.SwampwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Backfir3 @@ -56,7 +57,7 @@ public class CateranSlaver extends CardImpl { static { filter.add(new SubtypePredicate("Mercenary")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 6)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 6)); } public CateranSlaver(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/c/CateranSummons.java b/Mage.Sets/src/mage/cards/c/CateranSummons.java index 938e55ea4ca..337978b295e 100644 --- a/Mage.Sets/src/mage/cards/c/CateranSummons.java +++ b/Mage.Sets/src/mage/cards/c/CateranSummons.java @@ -28,16 +28,17 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/c/CaterwaulingBoggart.java b/Mage.Sets/src/mage/cards/c/CaterwaulingBoggart.java index 328409b881e..9af18616a71 100644 --- a/Mage.Sets/src/mage/cards/c/CaterwaulingBoggart.java +++ b/Mage.Sets/src/mage/cards/c/CaterwaulingBoggart.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -41,6 +40,8 @@ import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CatharsCompanion.java b/Mage.Sets/src/mage/cards/c/CatharsCompanion.java index 6f15bd8c458..8c5e2987bd5 100644 --- a/Mage.Sets/src/mage/cards/c/CatharsCompanion.java +++ b/Mage.Sets/src/mage/cards/c/CatharsCompanion.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; @@ -40,6 +39,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/c/CatharsCrusade.java b/Mage.Sets/src/mage/cards/c/CatharsCrusade.java index 4ca6b99eeee..6d96608d37b 100644 --- a/Mage.Sets/src/mage/cards/c/CatharsCrusade.java +++ b/Mage.Sets/src/mage/cards/c/CatharsCrusade.java @@ -27,15 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.CreatureEntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CatharsShield.java b/Mage.Sets/src/mage/cards/c/CatharsShield.java index 6120c6da17e..7130f04428b 100644 --- a/Mage.Sets/src/mage/cards/c/CatharsShield.java +++ b/Mage.Sets/src/mage/cards/c/CatharsShield.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.BoostEquippedEffect; @@ -42,6 +41,8 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/c/CatharticAdept.java b/Mage.Sets/src/mage/cards/c/CatharticAdept.java index 2444eaf2fe8..de924a5f760 100644 --- a/Mage.Sets/src/mage/cards/c/CatharticAdept.java +++ b/Mage.Sets/src/mage/cards/c/CatharticAdept.java @@ -27,17 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CatharticReunion.java b/Mage.Sets/src/mage/cards/c/CatharticReunion.java index 907ff8090ec..10f69a32920 100644 --- a/Mage.Sets/src/mage/cards/c/CatharticReunion.java +++ b/Mage.Sets/src/mage/cards/c/CatharticReunion.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.costs.common.DiscardTargetCost; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CathedralOfWar.java b/Mage.Sets/src/mage/cards/c/CathedralOfWar.java index e55d0723ed5..11514d572ef 100644 --- a/Mage.Sets/src/mage/cards/c/CathedralOfWar.java +++ b/Mage.Sets/src/mage/cards/c/CathedralOfWar.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.keyword.ExaltedAbility; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CathedralSanctifier.java b/Mage.Sets/src/mage/cards/c/CathedralSanctifier.java index 51c58c7b9fb..ae335ddb727 100644 --- a/Mage.Sets/src/mage/cards/c/CathedralSanctifier.java +++ b/Mage.Sets/src/mage/cards/c/CathedralSanctifier.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/Cathodion.java b/Mage.Sets/src/mage/cards/c/Cathodion.java index 892804ee332..3860ff0dc48 100644 --- a/Mage.Sets/src/mage/cards/c/Cathodion.java +++ b/Mage.Sets/src/mage/cards/c/Cathodion.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.common.DiesTriggeredAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CaughtInTheBrights.java b/Mage.Sets/src/mage/cards/c/CaughtInTheBrights.java index afa4f8092d7..6342320da9f 100644 --- a/Mage.Sets/src/mage/cards/c/CaughtInTheBrights.java +++ b/Mage.Sets/src/mage/cards/c/CaughtInTheBrights.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.AttacksAllTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -37,18 +36,15 @@ import mage.abilities.effects.common.combat.CantAttackBlockAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/c/CauldronDance.java b/Mage.Sets/src/mage/cards/c/CauldronDance.java index 3f4815410b7..ab78e8c66f0 100644 --- a/Mage.Sets/src/mage/cards/c/CauldronDance.java +++ b/Mage.Sets/src/mage/cards/c/CauldronDance.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.CastOnlyDuringPhaseStepSourceAbility; @@ -50,6 +49,8 @@ import mage.target.common.TargetCardInHand; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * @author nomage */ diff --git a/Mage.Sets/src/mage/cards/c/CauldronHaze.java b/Mage.Sets/src/mage/cards/c/CauldronHaze.java index 7f3fbe6ed50..c36b77c256b 100644 --- a/Mage.Sets/src/mage/cards/c/CauldronHaze.java +++ b/Mage.Sets/src/mage/cards/c/CauldronHaze.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.PersistAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CauldronOfSouls.java b/Mage.Sets/src/mage/cards/c/CauldronOfSouls.java index 3386500bcbb..2564a92f824 100644 --- a/Mage.Sets/src/mage/cards/c/CauldronOfSouls.java +++ b/Mage.Sets/src/mage/cards/c/CauldronOfSouls.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CausticCaterpillar.java b/Mage.Sets/src/mage/cards/c/CausticCaterpillar.java index d0658e0da4e..adbafd336f6 100644 --- a/Mage.Sets/src/mage/cards/c/CausticCaterpillar.java +++ b/Mage.Sets/src/mage/cards/c/CausticCaterpillar.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CausticCrawler.java b/Mage.Sets/src/mage/cards/c/CausticCrawler.java index 6b707884483..93d5d332925 100644 --- a/Mage.Sets/src/mage/cards/c/CausticCrawler.java +++ b/Mage.Sets/src/mage/cards/c/CausticCrawler.java @@ -27,16 +27,17 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.LandfallAbility; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CausticHound.java b/Mage.Sets/src/mage/cards/c/CausticHound.java index d492bdfb8ec..279221ff4d9 100644 --- a/Mage.Sets/src/mage/cards/c/CausticHound.java +++ b/Mage.Sets/src/mage/cards/c/CausticHound.java @@ -28,14 +28,14 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.LoseLifeAllPlayersEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CausticRain.java b/Mage.Sets/src/mage/cards/c/CausticRain.java index 0c7f1a8279c..5fd976b69b7 100644 --- a/Mage.Sets/src/mage/cards/c/CausticRain.java +++ b/Mage.Sets/src/mage/cards/c/CausticRain.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CausticTar.java b/Mage.Sets/src/mage/cards/c/CausticTar.java index 049b6d81c7c..9eba5ad11d3 100644 --- a/Mage.Sets/src/mage/cards/c/CausticTar.java +++ b/Mage.Sets/src/mage/cards/c/CausticTar.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -38,15 +37,13 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.TargetPlayer; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author cbt33, LevelX2 (Sea's Claim), LevelX2 (Pollenbright Wings) diff --git a/Mage.Sets/src/mage/cards/c/CausticWasps.java b/Mage.Sets/src/mage/cards/c/CausticWasps.java index 3e96dfd77b1..b88527e234c 100644 --- a/Mage.Sets/src/mage/cards/c/CausticWasps.java +++ b/Mage.Sets/src/mage/cards/c/CausticWasps.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DestroyTargetEffect; @@ -46,6 +45,8 @@ import mage.game.events.GameEvent.EventType; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Mitchel Stein diff --git a/Mage.Sets/src/mage/cards/c/CauterySliver.java b/Mage.Sets/src/mage/cards/c/CauterySliver.java index f49c00f9527..4962a7a17e2 100644 --- a/Mage.Sets/src/mage/cards/c/CauterySliver.java +++ b/Mage.Sets/src/mage/cards/c/CauterySliver.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -47,6 +46,8 @@ import mage.filter.common.FilterCreatureOrPlayer; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/CavalryMaster.java b/Mage.Sets/src/mage/cards/c/CavalryMaster.java index d40fc3317f3..4704c5e38cf 100644 --- a/Mage.Sets/src/mage/cards/c/CavalryMaster.java +++ b/Mage.Sets/src/mage/cards/c/CavalryMaster.java @@ -27,20 +27,20 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.FlankingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CavalryPegasus.java b/Mage.Sets/src/mage/cards/c/CavalryPegasus.java index 50b8dfa7b28..1801682ff96 100644 --- a/Mage.Sets/src/mage/cards/c/CavalryPegasus.java +++ b/Mage.Sets/src/mage/cards/c/CavalryPegasus.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AttackingPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CaveIn.java b/Mage.Sets/src/mage/cards/c/CaveIn.java index a774eff235a..3215666b9d0 100644 --- a/Mage.Sets/src/mage/cards/c/CaveIn.java +++ b/Mage.Sets/src/mage/cards/c/CaveIn.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.ExileFromHandCost; @@ -41,6 +40,8 @@ import mage.filter.predicate.mageobject.CardIdPredicate; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CavePeople.java b/Mage.Sets/src/mage/cards/c/CavePeople.java index 7487abd73b8..20d5c5fb3b5 100644 --- a/Mage.Sets/src/mage/cards/c/CavePeople.java +++ b/Mage.Sets/src/mage/cards/c/CavePeople.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -44,6 +43,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CaveSense.java b/Mage.Sets/src/mage/cards/c/CaveSense.java index ced1760db6b..a4fc07b4dd7 100644 --- a/Mage.Sets/src/mage/cards/c/CaveSense.java +++ b/Mage.Sets/src/mage/cards/c/CaveSense.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CaveTiger.java b/Mage.Sets/src/mage/cards/c/CaveTiger.java index 3cadb9b6e1c..077315d4a64 100644 --- a/Mage.Sets/src/mage/cards/c/CaveTiger.java +++ b/Mage.Sets/src/mage/cards/c/CaveTiger.java @@ -27,14 +27,15 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.BecomesBlockedByCreatureTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CavernCrawler.java b/Mage.Sets/src/mage/cards/c/CavernCrawler.java index 4582139a840..520823bc090 100644 --- a/Mage.Sets/src/mage/cards/c/CavernCrawler.java +++ b/Mage.Sets/src/mage/cards/c/CavernCrawler.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CavernHarpy.java b/Mage.Sets/src/mage/cards/c/CavernHarpy.java index 12385b895ad..9479ef889e2 100644 --- a/Mage.Sets/src/mage/cards/c/CavernHarpy.java +++ b/Mage.Sets/src/mage/cards/c/CavernHarpy.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CavernLampad.java b/Mage.Sets/src/mage/cards/c/CavernLampad.java index 544e9d3868c..3e75f5b8f97 100644 --- a/Mage.Sets/src/mage/cards/c/CavernLampad.java +++ b/Mage.Sets/src/mage/cards/c/CavernLampad.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.constants.AttachmentType; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CavernOfSouls.java b/Mage.Sets/src/mage/cards/c/CavernOfSouls.java index cd2db04e94a..9e4487669d4 100644 --- a/Mage.Sets/src/mage/cards/c/CavernOfSouls.java +++ b/Mage.Sets/src/mage/cards/c/CavernOfSouls.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.ConditionalMana; import mage.MageObject; import mage.Mana; @@ -46,17 +43,17 @@ import mage.abilities.mana.builder.ConditionalManaBuilder; import mage.abilities.mana.conditional.CreatureCastManaCondition; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.stack.Spell; import mage.players.Player; import mage.watchers.Watcher; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author noxx @@ -172,7 +169,7 @@ class CavernOfSoulsWatcher extends Watcher { @Override public void watch(GameEvent event, Game game) { - if (event.getType() == GameEvent.EventType.MANA_PAYED) { + if (event.getType() == GameEvent.EventType.MANA_PAID) { if (event.getData() != null && event.getData().equals(originalId)) { spells.add(event.getTargetId()); } diff --git a/Mage.Sets/src/mage/cards/c/CavernThoctar.java b/Mage.Sets/src/mage/cards/c/CavernThoctar.java index 672c9f8faab..9c83448039e 100644 --- a/Mage.Sets/src/mage/cards/c/CavernThoctar.java +++ b/Mage.Sets/src/mage/cards/c/CavernThoctar.java @@ -28,16 +28,17 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CavesOfKoilos.java b/Mage.Sets/src/mage/cards/c/CavesOfKoilos.java index 5701f426f64..9da9e922400 100644 --- a/Mage.Sets/src/mage/cards/c/CavesOfKoilos.java +++ b/Mage.Sets/src/mage/cards/c/CavesOfKoilos.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CeaseFire.java b/Mage.Sets/src/mage/cards/c/CeaseFire.java index 086ea949ff7..ff6bdade42a 100644 --- a/Mage.Sets/src/mage/cards/c/CeaseFire.java +++ b/Mage.Sets/src/mage/cards/c/CeaseFire.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; @@ -43,6 +42,8 @@ import mage.game.events.GameEvent; import mage.game.stack.Spell; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth (Steel Golem), cbt33 diff --git a/Mage.Sets/src/mage/cards/c/CeaselessSearblades.java b/Mage.Sets/src/mage/cards/c/CeaselessSearblades.java index 1eed9c01843..ff0ed860001 100644 --- a/Mage.Sets/src/mage/cards/c/CeaselessSearblades.java +++ b/Mage.Sets/src/mage/cards/c/CeaselessSearblades.java @@ -27,15 +27,13 @@ */ package mage.cards.c; -import mage.constants.CardType; import mage.MageInt; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; - -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.FilterCard; @@ -43,6 +41,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author Will diff --git a/Mage.Sets/src/mage/cards/c/CelestialAncient.java b/Mage.Sets/src/mage/cards/c/CelestialAncient.java index f5683fb5107..a3a23109e9c 100644 --- a/Mage.Sets/src/mage/cards/c/CelestialAncient.java +++ b/Mage.Sets/src/mage/cards/c/CelestialAncient.java @@ -27,19 +27,20 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersAllEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; import mage.filter.FilterSpell; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CelestialArchon.java b/Mage.Sets/src/mage/cards/c/CelestialArchon.java index a5cd7e2d274..aa901143e65 100644 --- a/Mage.Sets/src/mage/cards/c/CelestialArchon.java +++ b/Mage.Sets/src/mage/cards/c/CelestialArchon.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.AttachmentType; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CelestialColonnade.java b/Mage.Sets/src/mage/cards/c/CelestialColonnade.java index 9956db6405e..10ab15d23b6 100644 --- a/Mage.Sets/src/mage/cards/c/CelestialColonnade.java +++ b/Mage.Sets/src/mage/cards/c/CelestialColonnade.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/CelestialCrusader.java b/Mage.Sets/src/mage/cards/c/CelestialCrusader.java index 383a464a032..44dc03b702a 100644 --- a/Mage.Sets/src/mage/cards/c/CelestialCrusader.java +++ b/Mage.Sets/src/mage/cards/c/CelestialCrusader.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -39,11 +36,14 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.SplitSecondAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CelestialDawn.java b/Mage.Sets/src/mage/cards/c/CelestialDawn.java index a2ed2dc60a2..0f3367eae8d 100644 --- a/Mage.Sets/src/mage/cards/c/CelestialDawn.java +++ b/Mage.Sets/src/mage/cards/c/CelestialDawn.java @@ -39,14 +39,7 @@ import mage.abilities.mana.WhiteManaAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.ManaType; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterLandPermanent; import mage.filter.common.FilterNonlandPermanent; import mage.game.Game; @@ -273,8 +266,8 @@ class CelestialDawnSpendColorlessManaEffect extends AsThoughEffectImpl implement @Override public ManaType getAsThoughManaType(ManaType manaType, ManaPoolItem mana, UUID affectedControllerId, Ability source, Game game) { - if (mana.getWhite() == 0 && ManaType.COLORLESS != manaType) { - return null; + if (mana.getWhite() == 0) { + return ManaType.COLORLESS; } return manaType; } diff --git a/Mage.Sets/src/mage/cards/c/CelestialFlare.java b/Mage.Sets/src/mage/cards/c/CelestialFlare.java index 4669d7e2fd3..e1a06921525 100644 --- a/Mage.Sets/src/mage/cards/c/CelestialFlare.java +++ b/Mage.Sets/src/mage/cards/c/CelestialFlare.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.SacrificeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.common.FilterAttackingOrBlockingCreature; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CelestialForce.java b/Mage.Sets/src/mage/cards/c/CelestialForce.java index 3b1921d456b..c577573adf5 100644 --- a/Mage.Sets/src/mage/cards/c/CelestialForce.java +++ b/Mage.Sets/src/mage/cards/c/CelestialForce.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CelestialKirin.java b/Mage.Sets/src/mage/cards/c/CelestialKirin.java index 5079254b54e..bf9f3e3a3e0 100644 --- a/Mage.Sets/src/mage/cards/c/CelestialKirin.java +++ b/Mage.Sets/src/mage/cards/c/CelestialKirin.java @@ -27,9 +27,9 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyAllEffect; @@ -38,14 +38,16 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.common.FilterSpiritOrArcaneCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.game.stack.Spell; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +56,7 @@ public class CelestialKirin extends CardImpl { public CelestialKirin(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Kirin"); this.subtype.add("Spirit"); @@ -99,7 +101,7 @@ class CelestialKirinEffect extends OneShotEffect { if (spell != null) { int cmc = spell.getConvertedManaCost(); FilterPermanent filter = new FilterPermanent(); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, cmc)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, cmc)); return new DestroyAllEffect(filter).apply(game, source); } return false; diff --git a/Mage.Sets/src/mage/cards/c/CelestialMantle.java b/Mage.Sets/src/mage/cards/c/CelestialMantle.java index 896f87a685e..1a813258bc3 100644 --- a/Mage.Sets/src/mage/cards/c/CelestialMantle.java +++ b/Mage.Sets/src/mage/cards/c/CelestialMantle.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; @@ -50,6 +49,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CelestialPrism.java b/Mage.Sets/src/mage/cards/c/CelestialPrism.java index 601182f1a05..07e31e01873 100644 --- a/Mage.Sets/src/mage/cards/c/CelestialPrism.java +++ b/Mage.Sets/src/mage/cards/c/CelestialPrism.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author icetc diff --git a/Mage.Sets/src/mage/cards/c/CelestialPurge.java b/Mage.Sets/src/mage/cards/c/CelestialPurge.java index 558bddb7462..1af87d927b5 100644 --- a/Mage.Sets/src/mage/cards/c/CelestialPurge.java +++ b/Mage.Sets/src/mage/cards/c/CelestialPurge.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/CelestialSword.java b/Mage.Sets/src/mage/cards/c/CelestialSword.java index 33ef469455f..c9b6018f96f 100644 --- a/Mage.Sets/src/mage/cards/c/CelestialSword.java +++ b/Mage.Sets/src/mage/cards/c/CelestialSword.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -44,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author choiseul11 diff --git a/Mage.Sets/src/mage/cards/c/CellarDoor.java b/Mage.Sets/src/mage/cards/c/CellarDoor.java index cc7df9fe989..c0817375dba 100644 --- a/Mage.Sets/src/mage/cards/c/CellarDoor.java +++ b/Mage.Sets/src/mage/cards/c/CellarDoor.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -44,6 +43,8 @@ import mage.game.permanent.token.ZombieToken; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CemeteryGate.java b/Mage.Sets/src/mage/cards/c/CemeteryGate.java index 527154e953d..f28f9f2ec82 100644 --- a/Mage.Sets/src/mage/cards/c/CemeteryGate.java +++ b/Mage.Sets/src/mage/cards/c/CemeteryGate.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.DefenderAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CemeteryPuca.java b/Mage.Sets/src/mage/cards/c/CemeteryPuca.java index bc589474b91..f1350f6f519 100644 --- a/Mage.Sets/src/mage/cards/c/CemeteryPuca.java +++ b/Mage.Sets/src/mage/cards/c/CemeteryPuca.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; @@ -48,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; import mage.util.functions.EmptyApplyToPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CemeteryReaper.java b/Mage.Sets/src/mage/cards/c/CemeteryReaper.java index dd567a9a7a4..6c2760d1d37 100644 --- a/Mage.Sets/src/mage/cards/c/CemeteryReaper.java +++ b/Mage.Sets/src/mage/cards/c/CemeteryReaper.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.ZombieToken; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/c/CemeteryRecruitment.java b/Mage.Sets/src/mage/cards/c/CemeteryRecruitment.java index 5ab95d26d32..e1af3fc89e5 100644 --- a/Mage.Sets/src/mage/cards/c/CemeteryRecruitment.java +++ b/Mage.Sets/src/mage/cards/c/CemeteryRecruitment.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CennsEnlistment.java b/Mage.Sets/src/mage/cards/c/CennsEnlistment.java index ce7cd03a5e7..668b3e0465d 100644 --- a/Mage.Sets/src/mage/cards/c/CennsEnlistment.java +++ b/Mage.Sets/src/mage/cards/c/CennsEnlistment.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.RetraceAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.KithkinToken; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CennsHeir.java b/Mage.Sets/src/mage/cards/c/CennsHeir.java index 472159ec960..36ed9359a5a 100644 --- a/Mage.Sets/src/mage/cards/c/CennsHeir.java +++ b/Mage.Sets/src/mage/cards/c/CennsHeir.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -40,6 +39,8 @@ import mage.filter.common.FilterAttackingCreature; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CennsTactician.java b/Mage.Sets/src/mage/cards/c/CennsTactician.java index 7c3df31e3c8..6e3fc0fda51 100644 --- a/Mage.Sets/src/mage/cards/c/CennsTactician.java +++ b/Mage.Sets/src/mage/cards/c/CennsTactician.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -49,6 +48,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.CounterPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/Censor.java b/Mage.Sets/src/mage/cards/c/Censor.java new file mode 100644 index 00000000000..25441b412a5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/Censor.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.CounterUnlessPaysEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.TargetSpell; + +/** + * + * @author fireshoes + */ +public class Censor extends CardImpl { + + public Censor(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}"); + + // Counter target spell unless its controller pays {1}. + this.getSpellAbility().addTarget(new TargetSpell()); + this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(new GenericManaCost(1))); + + // Cycling {U} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{U}"))); + + } + + public Censor(final Censor card) { + super(card); + } + + @Override + public Censor copy() { + return new Censor(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/CentaurArcher.java b/Mage.Sets/src/mage/cards/c/CentaurArcher.java index c6da02a0f7a..dd614d53a48 100644 --- a/Mage.Sets/src/mage/cards/c/CentaurArcher.java +++ b/Mage.Sets/src/mage/cards/c/CentaurArcher.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/CentaurBattlemaster.java b/Mage.Sets/src/mage/cards/c/CentaurBattlemaster.java index cb62f062503..2117149bb5b 100644 --- a/Mage.Sets/src/mage/cards/c/CentaurBattlemaster.java +++ b/Mage.Sets/src/mage/cards/c/CentaurBattlemaster.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.HeroicAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CentaurChieftain.java b/Mage.Sets/src/mage/cards/c/CentaurChieftain.java index cac2063f0d8..3943fdfdb40 100644 --- a/Mage.Sets/src/mage/cards/c/CentaurChieftain.java +++ b/Mage.Sets/src/mage/cards/c/CentaurChieftain.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -48,6 +47,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CentaurCourser.java b/Mage.Sets/src/mage/cards/c/CentaurCourser.java index b13d7494d96..885f164a3bb 100644 --- a/Mage.Sets/src/mage/cards/c/CentaurCourser.java +++ b/Mage.Sets/src/mage/cards/c/CentaurCourser.java @@ -27,11 +27,12 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CentaurGarden.java b/Mage.Sets/src/mage/cards/c/CentaurGarden.java index 6ffe9cd5a15..ee5593fde21 100644 --- a/Mage.Sets/src/mage/cards/c/CentaurGarden.java +++ b/Mage.Sets/src/mage/cards/c/CentaurGarden.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.CardsInControllerGraveCondition; import mage.abilities.costs.common.SacrificeSourceCost; @@ -45,6 +44,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CentaurGlade.java b/Mage.Sets/src/mage/cards/c/CentaurGlade.java index e17adfb2be6..3b76805bd65 100644 --- a/Mage.Sets/src/mage/cards/c/CentaurGlade.java +++ b/Mage.Sets/src/mage/cards/c/CentaurGlade.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.game.permanent.token.CentaurToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CentaurHealer.java b/Mage.Sets/src/mage/cards/c/CentaurHealer.java index 76f9e98a656..35603aee33f 100644 --- a/Mage.Sets/src/mage/cards/c/CentaurHealer.java +++ b/Mage.Sets/src/mage/cards/c/CentaurHealer.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CentaurOmenreader.java b/Mage.Sets/src/mage/cards/c/CentaurOmenreader.java index f90f839d6b1..dce7d5647fc 100644 --- a/Mage.Sets/src/mage/cards/c/CentaurOmenreader.java +++ b/Mage.Sets/src/mage/cards/c/CentaurOmenreader.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -35,12 +34,15 @@ import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author North @@ -54,7 +56,7 @@ public class CentaurOmenreader extends CardImpl { public CentaurOmenreader(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Centaur"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/c/CentaurRootcaster.java b/Mage.Sets/src/mage/cards/c/CentaurRootcaster.java index 8f0bf87cd84..0f027ebad1f 100644 --- a/Mage.Sets/src/mage/cards/c/CentaurRootcaster.java +++ b/Mage.Sets/src/mage/cards/c/CentaurRootcaster.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CentaurSafeguard.java b/Mage.Sets/src/mage/cards/c/CentaurSafeguard.java index 233e1e1686a..96e6b21532f 100644 --- a/Mage.Sets/src/mage/cards/c/CentaurSafeguard.java +++ b/Mage.Sets/src/mage/cards/c/CentaurSafeguard.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CentaurVeteran.java b/Mage.Sets/src/mage/cards/c/CentaurVeteran.java index 08738fd9aba..523c33e5301 100644 --- a/Mage.Sets/src/mage/cards/c/CentaurVeteran.java +++ b/Mage.Sets/src/mage/cards/c/CentaurVeteran.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CentaurVinecrasher.java b/Mage.Sets/src/mage/cards/c/CentaurVinecrasher.java index 3274001f8c4..29d748aace2 100644 --- a/Mage.Sets/src/mage/cards/c/CentaurVinecrasher.java +++ b/Mage.Sets/src/mage/cards/c/CentaurVinecrasher.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.PutCardIntoGraveFromAnywhereAllTriggeredAbility; @@ -47,6 +46,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterLandCard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CentaursHerald.java b/Mage.Sets/src/mage/cards/c/CentaursHerald.java index d2b64c8dc9b..61b5ee0917f 100644 --- a/Mage.Sets/src/mage/cards/c/CentaursHerald.java +++ b/Mage.Sets/src/mage/cards/c/CentaursHerald.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.game.permanent.token.CentaurToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CenterSoul.java b/Mage.Sets/src/mage/cards/c/CenterSoul.java index cc0d02732de..29bb5eba256 100644 --- a/Mage.Sets/src/mage/cards/c/CenterSoul.java +++ b/Mage.Sets/src/mage/cards/c/CenterSoul.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.continuous.GainProtectionFromColorTargetEffect; import mage.abilities.keyword.ReboundAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CephalidAristocrat.java b/Mage.Sets/src/mage/cards/c/CephalidAristocrat.java index 79d00d84a0c..70c8bfbe4f9 100644 --- a/Mage.Sets/src/mage/cards/c/CephalidAristocrat.java +++ b/Mage.Sets/src/mage/cards/c/CephalidAristocrat.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesTargetTriggeredAbility; import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CephalidBroker.java b/Mage.Sets/src/mage/cards/c/CephalidBroker.java index 73f6f2ec086..cae73431e31 100644 --- a/Mage.Sets/src/mage/cards/c/CephalidBroker.java +++ b/Mage.Sets/src/mage/cards/c/CephalidBroker.java @@ -27,19 +27,20 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.DrawCardTargetEffect; +import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.discard.DiscardTargetEffect; -import mage.abilities.effects.common.DrawCardTargetEffect; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** diff --git a/Mage.Sets/src/mage/cards/c/CephalidColiseum.java b/Mage.Sets/src/mage/cards/c/CephalidColiseum.java index 0159b6a39ef..db0a3d96579 100644 --- a/Mage.Sets/src/mage/cards/c/CephalidColiseum.java +++ b/Mage.Sets/src/mage/cards/c/CephalidColiseum.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.CardsInControllerGraveCondition; import mage.abilities.costs.common.SacrificeSourceCost; @@ -44,6 +43,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CephalidConstable.java b/Mage.Sets/src/mage/cards/c/CephalidConstable.java index 669258f7ad6..bf15c0adab2 100644 --- a/Mage.Sets/src/mage/cards/c/CephalidConstable.java +++ b/Mage.Sets/src/mage/cards/c/CephalidConstable.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -44,6 +43,8 @@ import mage.game.events.GameEvent; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CephalidIllusionist.java b/Mage.Sets/src/mage/cards/c/CephalidIllusionist.java index 1a28948918d..ce9f501572b 100644 --- a/Mage.Sets/src/mage/cards/c/CephalidIllusionist.java +++ b/Mage.Sets/src/mage/cards/c/CephalidIllusionist.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesTargetTriggeredAbility; @@ -45,6 +44,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CephalidLooter.java b/Mage.Sets/src/mage/cards/c/CephalidLooter.java index 8dcd6454fd1..fe43075febc 100644 --- a/Mage.Sets/src/mage/cards/c/CephalidLooter.java +++ b/Mage.Sets/src/mage/cards/c/CephalidLooter.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author cbt33, Loki (Merfolk Looter) diff --git a/Mage.Sets/src/mage/cards/c/CephalidRetainer.java b/Mage.Sets/src/mage/cards/c/CephalidRetainer.java index d4368bdedaf..6000b503ab2 100644 --- a/Mage.Sets/src/mage/cards/c/CephalidRetainer.java +++ b/Mage.Sets/src/mage/cards/c/CephalidRetainer.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/c/CephalidSage.java b/Mage.Sets/src/mage/cards/c/CephalidSage.java index b45024911d6..ca1f383beef 100644 --- a/Mage.Sets/src/mage/cards/c/CephalidSage.java +++ b/Mage.Sets/src/mage/cards/c/CephalidSage.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CephalidScout.java b/Mage.Sets/src/mage/cards/c/CephalidScout.java index 6734fffa316..31099a0d162 100644 --- a/Mage.Sets/src/mage/cards/c/CephalidScout.java +++ b/Mage.Sets/src/mage/cards/c/CephalidScout.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/c/CephalidVandal.java b/Mage.Sets/src/mage/cards/c/CephalidVandal.java index 81eb4f4e00d..3d87450d3cb 100644 --- a/Mage.Sets/src/mage/cards/c/CephalidVandal.java +++ b/Mage.Sets/src/mage/cards/c/CephalidVandal.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CerebralEruption.java b/Mage.Sets/src/mage/cards/c/CerebralEruption.java index 0c339ece431..9fc7077e7ae 100644 --- a/Mage.Sets/src/mage/cards/c/CerebralEruption.java +++ b/Mage.Sets/src/mage/cards/c/CerebralEruption.java @@ -27,15 +27,10 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -46,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/CerebralVortex.java b/Mage.Sets/src/mage/cards/c/CerebralVortex.java index 843c9999139..95bfc1feadb 100644 --- a/Mage.Sets/src/mage/cards/c/CerebralVortex.java +++ b/Mage.Sets/src/mage/cards/c/CerebralVortex.java @@ -27,10 +27,6 @@ */ package mage.cards.c; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DrawCardTargetEffect; @@ -46,6 +42,11 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.watchers.Watcher; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CeremoniousRejection.java b/Mage.Sets/src/mage/cards/c/CeremoniousRejection.java index 911c9a713b8..cc52fb8c3d0 100644 --- a/Mage.Sets/src/mage/cards/c/CeremoniousRejection.java +++ b/Mage.Sets/src/mage/cards/c/CeremoniousRejection.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorlessPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CerodonYearling.java b/Mage.Sets/src/mage/cards/c/CerodonYearling.java index 36df8f4ac32..1e0d4aaff6c 100644 --- a/Mage.Sets/src/mage/cards/c/CerodonYearling.java +++ b/Mage.Sets/src/mage/cards/c/CerodonYearling.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CertainDeath.java b/Mage.Sets/src/mage/cards/c/CertainDeath.java index 20b224a9c79..3aa548fb1a3 100644 --- a/Mage.Sets/src/mage/cards/c/CertainDeath.java +++ b/Mage.Sets/src/mage/cards/c/CertainDeath.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/c/CeruleanSphinx.java b/Mage.Sets/src/mage/cards/c/CeruleanSphinx.java index 07eaffe7b92..3b1f891a142 100644 --- a/Mage.Sets/src/mage/cards/c/CeruleanSphinx.java +++ b/Mage.Sets/src/mage/cards/c/CeruleanSphinx.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CeruleanWisps.java b/Mage.Sets/src/mage/cards/c/CeruleanWisps.java index b0e471266ab..db3339a6565 100644 --- a/Mage.Sets/src/mage/cards/c/CeruleanWisps.java +++ b/Mage.Sets/src/mage/cards/c/CeruleanWisps.java @@ -28,18 +28,18 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/c/CeruleanWyvern.java b/Mage.Sets/src/mage/cards/c/CeruleanWyvern.java index 6d78503a13a..84fa70cf2c3 100644 --- a/Mage.Sets/src/mage/cards/c/CeruleanWyvern.java +++ b/Mage.Sets/src/mage/cards/c/CeruleanWyvern.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.FlyingAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/Cessation.java b/Mage.Sets/src/mage/cards/c/Cessation.java index 37ae79cfe96..a308b5c0c39 100644 --- a/Mage.Sets/src/mage/cards/c/Cessation.java +++ b/Mage.Sets/src/mage/cards/c/Cessation.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,9 +36,15 @@ import mage.abilities.effects.common.combat.CantAttackAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/c/CetaDisciple.java b/Mage.Sets/src/mage/cards/c/CetaDisciple.java index 5698d166581..826e8c3395b 100644 --- a/Mage.Sets/src/mage/cards/c/CetaDisciple.java +++ b/Mage.Sets/src/mage/cards/c/CetaDisciple.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,8 +36,14 @@ import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.mana.AnyColorManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/c/CetaSanctuary.java b/Mage.Sets/src/mage/cards/c/CetaSanctuary.java index ef3a88fc4d3..2f83340ba4c 100644 --- a/Mage.Sets/src/mage/cards/c/CetaSanctuary.java +++ b/Mage.Sets/src/mage/cards/c/CetaSanctuary.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.TriggeredAbility; @@ -48,6 +47,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author Pete Rossi diff --git a/Mage.Sets/src/mage/cards/c/Cetavolver.java b/Mage.Sets/src/mage/cards/c/Cetavolver.java index aa2421edef1..d3f3c92b3be 100644 --- a/Mage.Sets/src/mage/cards/c/Cetavolver.java +++ b/Mage.Sets/src/mage/cards/c/Cetavolver.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.KickedCostCondition; @@ -41,8 +38,12 @@ import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ChainLightning.java b/Mage.Sets/src/mage/cards/c/ChainLightning.java index bb06d3431b9..b4b616ede26 100644 --- a/Mage.Sets/src/mage/cards/c/ChainLightning.java +++ b/Mage.Sets/src/mage/cards/c/ChainLightning.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +41,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/ChainOfVapor.java b/Mage.Sets/src/mage/cards/c/ChainOfVapor.java index 5efbb59dd39..2c48d130722 100644 --- a/Mage.Sets/src/mage/cards/c/ChainOfVapor.java +++ b/Mage.Sets/src/mage/cards/c/ChainOfVapor.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.Mode; @@ -46,6 +45,8 @@ import mage.players.Player; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetNonlandPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/ChainReaction.java b/Mage.Sets/src/mage/cards/c/ChainReaction.java index b2363ed849e..77abaab7f4e 100644 --- a/Mage.Sets/src/mage/cards/c/ChainReaction.java +++ b/Mage.Sets/src/mage/cards/c/ChainReaction.java @@ -27,15 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/Chainbreaker.java b/Mage.Sets/src/mage/cards/c/Chainbreaker.java index 242b6743796..820aac1f321 100644 --- a/Mage.Sets/src/mage/cards/c/Chainbreaker.java +++ b/Mage.Sets/src/mage/cards/c/Chainbreaker.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -44,6 +43,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/ChainedThroatseeker.java b/Mage.Sets/src/mage/cards/c/ChainedThroatseeker.java index 49982d0d8c2..13736e8db04 100644 --- a/Mage.Sets/src/mage/cards/c/ChainedThroatseeker.java +++ b/Mage.Sets/src/mage/cards/c/ChainedThroatseeker.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/ChainedToTheRocks.java b/Mage.Sets/src/mage/cards/c/ChainedToTheRocks.java index 3dd78a622ef..b1730aef3da 100644 --- a/Mage.Sets/src/mage/cards/c/ChainedToTheRocks.java +++ b/Mage.Sets/src/mage/cards/c/ChainedToTheRocks.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility; @@ -51,6 +50,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import mage.util.CardUtil; +import java.util.UUID; + /** * If the land Chained to the Rocks is enchanting stops being a Mountain or * another player gains control of it, Chained to the Rocks will be put into its diff --git a/Mage.Sets/src/mage/cards/c/ChainerDementiaMaster.java b/Mage.Sets/src/mage/cards/c/ChainerDementiaMaster.java index 8744255b4f3..925a56dd944 100644 --- a/Mage.Sets/src/mage/cards/c/ChainerDementiaMaster.java +++ b/Mage.Sets/src/mage/cards/c/ChainerDementiaMaster.java @@ -44,10 +44,7 @@ import mage.abilities.effects.common.continuous.BecomesCreatureTypeTargetEffect; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; @@ -77,7 +74,7 @@ public class ChainerDementiaMaster extends CardImpl { public ChainerDementiaMaster(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Minion"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/c/ChainersEdict.java b/Mage.Sets/src/mage/cards/c/ChainersEdict.java index 36dd945a9a3..50b25fcd3f1 100644 --- a/Mage.Sets/src/mage/cards/c/ChainersEdict.java +++ b/Mage.Sets/src/mage/cards/c/ChainersEdict.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.SacrificeEffect; import mage.abilities.keyword.FlashbackAbility; @@ -38,6 +37,8 @@ import mage.constants.TimingRule; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/c/Chainflinger.java b/Mage.Sets/src/mage/cards/c/Chainflinger.java index 97e0477e503..e7959c853f9 100644 --- a/Mage.Sets/src/mage/cards/c/Chainflinger.java +++ b/Mage.Sets/src/mage/cards/c/Chainflinger.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChainsOfMephistopheles.java b/Mage.Sets/src/mage/cards/c/ChainsOfMephistopheles.java index b96ff02532a..6e0088dd3e9 100644 --- a/Mage.Sets/src/mage/cards/c/ChainsOfMephistopheles.java +++ b/Mage.Sets/src/mage/cards/c/ChainsOfMephistopheles.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -35,17 +34,15 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.PhaseStep; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; import mage.watchers.common.CardsDrawnDuringDrawStepWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChaliceOfDeath.java b/Mage.Sets/src/mage/cards/c/ChaliceOfDeath.java index 42440940396..57ce49230dd 100644 --- a/Mage.Sets/src/mage/cards/c/ChaliceOfDeath.java +++ b/Mage.Sets/src/mage/cards/c/ChaliceOfDeath.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author intimidatingant diff --git a/Mage.Sets/src/mage/cards/c/ChaliceOfLife.java b/Mage.Sets/src/mage/cards/c/ChaliceOfLife.java index 28233c3a87c..423e21bf7cd 100644 --- a/Mage.Sets/src/mage/cards/c/ChaliceOfLife.java +++ b/Mage.Sets/src/mage/cards/c/ChaliceOfLife.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -37,12 +34,15 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author intimidatingant diff --git a/Mage.Sets/src/mage/cards/c/ChaliceOfTheVoid.java b/Mage.Sets/src/mage/cards/c/ChaliceOfTheVoid.java index d6b829d2be7..03783670670 100644 --- a/Mage.Sets/src/mage/cards/c/ChaliceOfTheVoid.java +++ b/Mage.Sets/src/mage/cards/c/ChaliceOfTheVoid.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.EntersBattlefieldAbility; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.game.stack.Spell; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/ChamberOfManipulation.java b/Mage.Sets/src/mage/cards/c/ChamberOfManipulation.java index 2905a071a54..e205635bae7 100644 --- a/Mage.Sets/src/mage/cards/c/ChamberOfManipulation.java +++ b/Mage.Sets/src/mage/cards/c/ChamberOfManipulation.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,16 +38,14 @@ import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/ChamberedNautilus.java b/Mage.Sets/src/mage/cards/c/ChamberedNautilus.java index 4e1f73776c7..12a16485b1d 100644 --- a/Mage.Sets/src/mage/cards/c/ChamberedNautilus.java +++ b/Mage.Sets/src/mage/cards/c/ChamberedNautilus.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesBlockedTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChameleonColossus.java b/Mage.Sets/src/mage/cards/c/ChameleonColossus.java index 275e3f3b00c..555aef4c6d8 100644 --- a/Mage.Sets/src/mage/cards/c/ChameleonColossus.java +++ b/Mage.Sets/src/mage/cards/c/ChameleonColossus.java @@ -27,11 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +37,11 @@ import mage.abilities.keyword.ChangelingAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ChampionOfArashin.java b/Mage.Sets/src/mage/cards/c/ChampionOfArashin.java index 205aa577085..649679629a3 100644 --- a/Mage.Sets/src/mage/cards/c/ChampionOfArashin.java +++ b/Mage.Sets/src/mage/cards/c/ChampionOfArashin.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChampionOfLambholt.java b/Mage.Sets/src/mage/cards/c/ChampionOfLambholt.java index 68e8bb89601..1aa9b31e63c 100644 --- a/Mage.Sets/src/mage/cards/c/ChampionOfLambholt.java +++ b/Mage.Sets/src/mage/cards/c/ChampionOfLambholt.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; @@ -47,6 +46,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/c/ChampionOfRhonas.java b/Mage.Sets/src/mage/cards/c/ChampionOfRhonas.java new file mode 100644 index 00000000000..6f6d4dbf4d8 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/ChampionOfRhonas.java @@ -0,0 +1,67 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.common.PutPermanentOnBattlefieldEffect; +import mage.abilities.keyword.ExertAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterCreatureCard; + +/** + * + * @author fireshoes + */ +public class ChampionOfRhonas extends CardImpl { + + public ChampionOfRhonas(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}"); + + this.subtype.add("Jackal"); + this.subtype.add("Warrior"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // You may exert Champion of Rhonas as it attacks. When you do, you may put a creature card from your hand onto the battlefield. + BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(new PutPermanentOnBattlefieldEffect(new FilterCreatureCard("a creature card"))); + this.addAbility(new ExertAbility(ability)); + } + + public ChampionOfRhonas(final ChampionOfRhonas card) { + super(card); + } + + @Override + public ChampionOfRhonas copy() { + return new ChampionOfRhonas(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/ChampionOfStraySouls.java b/Mage.Sets/src/mage/cards/c/ChampionOfStraySouls.java index ffd4ccc5a52..9dd3c769ce4 100644 --- a/Mage.Sets/src/mage/cards/c/ChampionOfStraySouls.java +++ b/Mage.Sets/src/mage/cards/c/ChampionOfStraySouls.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChampionOfTheParish.java b/Mage.Sets/src/mage/cards/c/ChampionOfTheParish.java index 911905b3ec3..1e2de5f8592 100644 --- a/Mage.Sets/src/mage/cards/c/ChampionOfTheParish.java +++ b/Mage.Sets/src/mage/cards/c/ChampionOfTheParish.java @@ -27,19 +27,20 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/c/ChampionsDrake.java b/Mage.Sets/src/mage/cards/c/ChampionsDrake.java index d18a40aaefb..816bed6d212 100644 --- a/Mage.Sets/src/mage/cards/c/ChampionsDrake.java +++ b/Mage.Sets/src/mage/cards/c/ChampionsDrake.java @@ -27,23 +27,23 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.abilities.CountType; -import mage.constants.CardType; import mage.MageInt; -import mage.constants.Duration; +import mage.constants.ComparisonType; +import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentHasCounterCondition; +import mage.abilities.decorator.ConditionalContinuousEffect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.counters.CounterType; -import mage.abilities.effects.common.continuous.BoostSourceEffect; -import mage.abilities.decorator.ConditionalContinuousEffect; -import mage.abilities.common.SimpleStaticAbility; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.Zone; +import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -64,7 +64,7 @@ public class ChampionsDrake extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Champion's Drake gets +3/+3 as long as you control a creature with three or more level counters on it. - ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), new PermanentHasCounterCondition(CounterType.LEVEL, 2, new FilterControlledCreaturePermanent(), CountType.MORE_THAN), rule); + ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), new PermanentHasCounterCondition(CounterType.LEVEL, 2, new FilterControlledCreaturePermanent(), ComparisonType.MORE_THAN), rule); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); } diff --git a/Mage.Sets/src/mage/cards/c/ChampionsHelm.java b/Mage.Sets/src/mage/cards/c/ChampionsHelm.java index c4d09183eb5..0103c426014 100644 --- a/Mage.Sets/src/mage/cards/c/ChampionsHelm.java +++ b/Mage.Sets/src/mage/cards/c/ChampionsHelm.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.EquippedHasSupertypeCondition; import mage.abilities.costs.mana.GenericManaCost; @@ -38,10 +37,9 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; + +import java.util.UUID; /** * @@ -61,7 +59,7 @@ public class ChampionsHelm extends CardImpl { // As long as equipped creature is legendary, it has hexproof. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new GainAbilityAttachedEffect(HexproofAbility.getInstance(), AttachmentType.EQUIPMENT), - new EquippedHasSupertypeCondition("Legendary"), staticText))); + new EquippedHasSupertypeCondition(SuperType.LEGENDARY), staticText))); // Equip {1} this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); diff --git a/Mage.Sets/src/mage/cards/c/ChanceEncounter.java b/Mage.Sets/src/mage/cards/c/ChanceEncounter.java index c2426a31f12..2da30dfe2b1 100644 --- a/Mage.Sets/src/mage/cards/c/ChanceEncounter.java +++ b/Mage.Sets/src/mage/cards/c/ChanceEncounter.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.TriggeredAbility; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -44,6 +43,8 @@ import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChancellorOfTheAnnex.java b/Mage.Sets/src/mage/cards/c/ChancellorOfTheAnnex.java index 93005c4d02a..e8706998b94 100644 --- a/Mage.Sets/src/mage/cards/c/ChancellorOfTheAnnex.java +++ b/Mage.Sets/src/mage/cards/c/ChancellorOfTheAnnex.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -49,6 +48,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/c/ChancellorOfTheDross.java b/Mage.Sets/src/mage/cards/c/ChancellorOfTheDross.java index b11c240d171..47e76464a7c 100644 --- a/Mage.Sets/src/mage/cards/c/ChancellorOfTheDross.java +++ b/Mage.Sets/src/mage/cards/c/ChancellorOfTheDross.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/c/ChancellorOfTheForge.java b/Mage.Sets/src/mage/cards/c/ChancellorOfTheForge.java index 9f57b3b41d2..661a8c87522 100644 --- a/Mage.Sets/src/mage/cards/c/ChancellorOfTheForge.java +++ b/Mage.Sets/src/mage/cards/c/ChancellorOfTheForge.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.ChancellorAbility; @@ -46,6 +45,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.token.GoblinTokenWithHaste; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/c/ChancellorOfTheSpires.java b/Mage.Sets/src/mage/cards/c/ChancellorOfTheSpires.java index 3d7826bb33d..319e28155c2 100644 --- a/Mage.Sets/src/mage/cards/c/ChancellorOfTheSpires.java +++ b/Mage.Sets/src/mage/cards/c/ChancellorOfTheSpires.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -50,6 +49,8 @@ import mage.game.events.GameEvent.EventType; import mage.players.Player; import mage.target.common.TargetCardInOpponentsGraveyard; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/c/ChancellorOfTheTangle.java b/Mage.Sets/src/mage/cards/c/ChancellorOfTheTangle.java index 3166fb06de1..c0c87864303 100644 --- a/Mage.Sets/src/mage/cards/c/ChancellorOfTheTangle.java +++ b/Mage.Sets/src/mage/cards/c/ChancellorOfTheTangle.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.DelayedTriggeredAbility; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/c/Chandler.java b/Mage.Sets/src/mage/cards/c/Chandler.java index 3ce6adf6a36..bd968323762 100644 --- a/Mage.Sets/src/mage/cards/c/Chandler.java +++ b/Mage.Sets/src/mage/cards/c/Chandler.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,11 +36,14 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -56,7 +58,7 @@ public class Chandler extends CardImpl { public Chandler(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rogue"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/c/ChandraAblaze.java b/Mage.Sets/src/mage/cards/c/ChandraAblaze.java index 641902cae68..e6d6a6adc7d 100644 --- a/Mage.Sets/src/mage/cards/c/ChandraAblaze.java +++ b/Mage.Sets/src/mage/cards/c/ChandraAblaze.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.Set; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; @@ -53,6 +51,9 @@ import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetDiscard; +import java.util.Set; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/ChandraFireOfKaladesh.java b/Mage.Sets/src/mage/cards/c/ChandraFireOfKaladesh.java index faaec1f1a18..0b32cdd3e04 100644 --- a/Mage.Sets/src/mage/cards/c/ChandraFireOfKaladesh.java +++ b/Mage.Sets/src/mage/cards/c/ChandraFireOfKaladesh.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -44,11 +43,14 @@ import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 @@ -63,7 +65,7 @@ public class ChandraFireOfKaladesh extends CardImpl { public ChandraFireOfKaladesh(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Shaman"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/c/ChandraFlamecaller.java b/Mage.Sets/src/mage/cards/c/ChandraFlamecaller.java index 6da4abe2230..9178df62046 100644 --- a/Mage.Sets/src/mage/cards/c/ChandraFlamecaller.java +++ b/Mage.Sets/src/mage/cards/c/ChandraFlamecaller.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -49,6 +47,9 @@ import mage.game.Game; import mage.game.permanent.token.ElementalToken; import mage.players.Player; +import java.util.Set; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChandraNalaar.java b/Mage.Sets/src/mage/cards/c/ChandraNalaar.java index b829f2d7d9b..6a23e8cb4d1 100644 --- a/Mage.Sets/src/mage/cards/c/ChandraNalaar.java +++ b/Mage.Sets/src/mage/cards/c/ChandraNalaar.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com, nantuko diff --git a/Mage.Sets/src/mage/cards/c/ChandraPyrogenius.java b/Mage.Sets/src/mage/cards/c/ChandraPyrogenius.java index 30c588f0614..8933252c84f 100644 --- a/Mage.Sets/src/mage/cards/c/ChandraPyrogenius.java +++ b/Mage.Sets/src/mage/cards/c/ChandraPyrogenius.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; import mage.abilities.dynamicvalue.common.StaticValue; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChandraPyromaster.java b/Mage.Sets/src/mage/cards/c/ChandraPyromaster.java index 5202369badd..a463d8bab70 100644 --- a/Mage.Sets/src/mage/cards/c/ChandraPyromaster.java +++ b/Mage.Sets/src/mage/cards/c/ChandraPyromaster.java @@ -27,11 +27,8 @@ */ package mage.cards.c; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; - import mage.MageObject; +import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -39,16 +36,8 @@ import mage.abilities.effects.AsThoughEffectImpl; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.combat.CantBlockTargetEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.cards.*; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterInstantOrSorceryCard; import mage.game.Game; @@ -62,6 +51,14 @@ import mage.target.TargetPermanent; import mage.target.TargetPlayer; import mage.target.targetpointer.FixedTarget; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * @author jeffwadsworth */ @@ -211,11 +208,7 @@ class ChandraPyromasterEffect2 extends OneShotEffect { Card card = library.removeFromTop(game); if (card != null) { controller.moveCardToExileWithInfo(card, source.getSourceId(), sourceObject.getIdName() + " ", source.getSourceId(), game, Zone.LIBRARY, true); - if (!card.getManaCost().isEmpty()) { - ContinuousEffect effect = new ChandraPyromasterCastFromExileEffect(); - effect.setTargetPointer(new FixedTarget(card.getId())); - game.addEffect(effect, source); - } + game.addEffect(new ChandraPyromasterPlayEffect(new MageObjectReference(card, game)), source); } return true; } @@ -223,15 +216,19 @@ class ChandraPyromasterEffect2 extends OneShotEffect { } } -class ChandraPyromasterCastFromExileEffect extends AsThoughEffectImpl { +class ChandraPyromasterPlayEffect extends AsThoughEffectImpl { - public ChandraPyromasterCastFromExileEffect() { + private final MageObjectReference objectReference; + + public ChandraPyromasterPlayEffect(MageObjectReference objectReference) { super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit); - staticText = "You may play the card from exile this turn"; + this.objectReference = objectReference; + staticText = "you may play that card until end of turn"; } - public ChandraPyromasterCastFromExileEffect(final ChandraPyromasterCastFromExileEffect effect) { + public ChandraPyromasterPlayEffect(final ChandraPyromasterPlayEffect effect) { super(effect); + this.objectReference = effect.objectReference; } @Override @@ -240,14 +237,19 @@ class ChandraPyromasterCastFromExileEffect extends AsThoughEffectImpl { } @Override - public ChandraPyromasterCastFromExileEffect copy() { - return new ChandraPyromasterCastFromExileEffect(this); + public ChandraPyromasterPlayEffect copy() { + return new ChandraPyromasterPlayEffect(this); } @Override - public boolean applies(UUID sourceId, Ability source, UUID affectedControllerId, Game game) { - if (targetPointer.getTargets(game, source).contains(sourceId)) { - return game.getState().getZone(sourceId) == Zone.EXILED; + public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) { + if (objectReference.refersTo(objectId, game) && affectedControllerId.equals(source.getControllerId())) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + return true; + } else { + discard(); + } } return false; } diff --git a/Mage.Sets/src/mage/cards/c/ChandraRoaringFlame.java b/Mage.Sets/src/mage/cards/c/ChandraRoaringFlame.java index 82b9def82df..ec9268aa4bf 100644 --- a/Mage.Sets/src/mage/cards/c/ChandraRoaringFlame.java +++ b/Mage.Sets/src/mage/cards/c/ChandraRoaringFlame.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -49,6 +46,10 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChandraTheFirebrand.java b/Mage.Sets/src/mage/cards/c/ChandraTheFirebrand.java index 90c5b883f80..becd67689e9 100644 --- a/Mage.Sets/src/mage/cards/c/ChandraTheFirebrand.java +++ b/Mage.Sets/src/mage/cards/c/ChandraTheFirebrand.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -46,6 +45,8 @@ import mage.game.stack.Spell; import mage.target.common.TargetCreatureOrPlayer; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ChandraTorchOfDefiance.java b/Mage.Sets/src/mage/cards/c/ChandraTorchOfDefiance.java index ab383e871be..5098ab205f8 100644 --- a/Mage.Sets/src/mage/cards/c/ChandraTorchOfDefiance.java +++ b/Mage.Sets/src/mage/cards/c/ChandraTorchOfDefiance.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.MageObject; import mage.Mana; import mage.abilities.Ability; @@ -57,6 +55,8 @@ import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author fireshoes */ diff --git a/Mage.Sets/src/mage/cards/c/ChandrasFury.java b/Mage.Sets/src/mage/cards/c/ChandrasFury.java index a2a823d1f6e..91346972cbe 100644 --- a/Mage.Sets/src/mage/cards/c/ChandrasFury.java +++ b/Mage.Sets/src/mage/cards/c/ChandrasFury.java @@ -27,15 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DamageAllControlledTargetEffect; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/ChandrasIgnition.java b/Mage.Sets/src/mage/cards/c/ChandrasIgnition.java index f29ed9fd972..66a70d7c857 100644 --- a/Mage.Sets/src/mage/cards/c/ChandrasIgnition.java +++ b/Mage.Sets/src/mage/cards/c/ChandrasIgnition.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -40,6 +39,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChandrasOutrage.java b/Mage.Sets/src/mage/cards/c/ChandrasOutrage.java index e055e25cf4d..736c3df34b8 100644 --- a/Mage.Sets/src/mage/cards/c/ChandrasOutrage.java +++ b/Mage.Sets/src/mage/cards/c/ChandrasOutrage.java @@ -28,7 +28,6 @@ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetControllerEffect; import mage.abilities.effects.common.DamageTargetEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/ChandrasPhoenix.java b/Mage.Sets/src/mage/cards/c/ChandrasPhoenix.java index 07c6b951a37..65367b6dba5 100644 --- a/Mage.Sets/src/mage/cards/c/ChandrasPhoenix.java +++ b/Mage.Sets/src/mage/cards/c/ChandrasPhoenix.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.TriggeredAbilityImpl; @@ -44,6 +43,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.stack.StackAbility; import mage.game.stack.StackObject; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/ChandrasPyrohelix.java b/Mage.Sets/src/mage/cards/c/ChandrasPyrohelix.java index b08f8abf24e..7f4ae54ce1d 100644 --- a/Mage.Sets/src/mage/cards/c/ChandrasPyrohelix.java +++ b/Mage.Sets/src/mage/cards/c/ChandrasPyrohelix.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageMultiEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayerAmount; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/c/ChandrasRevolution.java b/Mage.Sets/src/mage/cards/c/ChandrasRevolution.java index 7099c2b18ee..ac7032e4bff 100644 --- a/Mage.Sets/src/mage/cards/c/ChandrasRevolution.java +++ b/Mage.Sets/src/mage/cards/c/ChandrasRevolution.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -42,6 +41,8 @@ import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetLandPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/c/ChandrasSpitfire.java b/Mage.Sets/src/mage/cards/c/ChandrasSpitfire.java index 8cb4410656c..87c45c60825 100644 --- a/Mage.Sets/src/mage/cards/c/ChandrasSpitfire.java +++ b/Mage.Sets/src/mage/cards/c/ChandrasSpitfire.java @@ -28,7 +28,6 @@ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -43,6 +42,8 @@ import mage.game.events.DamagedPlayerEvent; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/ChangeOfHeart.java b/Mage.Sets/src/mage/cards/c/ChangeOfHeart.java index a2416a3c4ea..e586ada3cfe 100644 --- a/Mage.Sets/src/mage/cards/c/ChangeOfHeart.java +++ b/Mage.Sets/src/mage/cards/c/ChangeOfHeart.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.combat.CantAttackTargetEffect; import mage.abilities.keyword.BuybackAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/ChangelingBerserker.java b/Mage.Sets/src/mage/cards/c/ChangelingBerserker.java index f31f5cf766e..b63553a4d0e 100644 --- a/Mage.Sets/src/mage/cards/c/ChangelingBerserker.java +++ b/Mage.Sets/src/mage/cards/c/ChangelingBerserker.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.ChampionAbility; import mage.abilities.keyword.ChangelingAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChangelingHero.java b/Mage.Sets/src/mage/cards/c/ChangelingHero.java index e5ba762c976..b80c5ad866b 100644 --- a/Mage.Sets/src/mage/cards/c/ChangelingHero.java +++ b/Mage.Sets/src/mage/cards/c/ChangelingHero.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.ChampionAbility; import mage.abilities.keyword.ChangelingAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChangelingSentinel.java b/Mage.Sets/src/mage/cards/c/ChangelingSentinel.java index 19cbd2df77d..f5b8ba9308c 100644 --- a/Mage.Sets/src/mage/cards/c/ChangelingSentinel.java +++ b/Mage.Sets/src/mage/cards/c/ChangelingSentinel.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ChangelingAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ChangelingTitan.java b/Mage.Sets/src/mage/cards/c/ChangelingTitan.java index c81d05a6eb8..c2d997bd920 100644 --- a/Mage.Sets/src/mage/cards/c/ChangelingTitan.java +++ b/Mage.Sets/src/mage/cards/c/ChangelingTitan.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.ChampionAbility; import mage.abilities.keyword.ChangelingAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/Channel.java b/Mage.Sets/src/mage/cards/c/Channel.java index 38bc39f78c4..1d33b096acb 100644 --- a/Mage.Sets/src/mage/cards/c/Channel.java +++ b/Mage.Sets/src/mage/cards/c/Channel.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -47,6 +46,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/ChannelHarm.java b/Mage.Sets/src/mage/cards/c/ChannelHarm.java index df072718ee6..6a22aea28ec 100644 --- a/Mage.Sets/src/mage/cards/c/ChannelHarm.java +++ b/Mage.Sets/src/mage/cards/c/ChannelHarm.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.PreventionEffectData; @@ -43,6 +42,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/ChannelerInitiate.java b/Mage.Sets/src/mage/cards/c/ChannelerInitiate.java new file mode 100644 index 00000000000..69586e8ada3 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/ChannelerInitiate.java @@ -0,0 +1,76 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.common.RemoveCountersSourceCost; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.mana.AnyColorManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.counters.CounterType; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class ChannelerInitiate extends CardImpl { + + public ChannelerInitiate(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}"); + + this.subtype.add("Human"); + this.subtype.add("Druid"); + this.power = new MageInt(3); + this.toughness = new MageInt(4); + + // When Channeler Initiate enters the battlefield, put three -1/-1 counters on target creature you control. + Ability ability = new EntersBattlefieldTriggeredAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance(3))); + ability.addTarget(new TargetControlledCreaturePermanent()); + this.addAbility(ability); + + // {T}, Remove a -1/-1 counter from Channeler Initiate: Add one mana of any color to your mana pool. + ability = new AnyColorManaAbility(); + ability.addCost(new RemoveCountersSourceCost(CounterType.M1M1.createInstance(1))); + this.addAbility(ability); + } + + public ChannelerInitiate(final ChannelerInitiate card) { + super(card); + } + + @Override + public ChannelerInitiate copy() { + return new ChannelerInitiate(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/ChantOfTheSkifsang.java b/Mage.Sets/src/mage/cards/c/ChantOfTheSkifsang.java index 61f8f029329..b6baa2eff55 100644 --- a/Mage.Sets/src/mage/cards/c/ChantOfTheSkifsang.java +++ b/Mage.Sets/src/mage/cards/c/ChantOfTheSkifsang.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -35,6 +34,10 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/c/ChaosCharm.java b/Mage.Sets/src/mage/cards/c/ChaosCharm.java index 81c9a8fd558..cd549d2e8a2 100644 --- a/Mage.Sets/src/mage/cards/c/ChaosCharm.java +++ b/Mage.Sets/src/mage/cards/c/ChaosCharm.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -42,6 +41,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/ChaosImps.java b/Mage.Sets/src/mage/cards/c/ChaosImps.java index 5171b4daac6..47e856de97d 100644 --- a/Mage.Sets/src/mage/cards/c/ChaosImps.java +++ b/Mage.Sets/src/mage/cards/c/ChaosImps.java @@ -26,8 +26,7 @@ * or implied, of BetaSteward_at_googlemail.com. */ package mage.cards.c; - -import java.util.UUID; + import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.SourceHasCounterCondition; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChaosWarp.java b/Mage.Sets/src/mage/cards/c/ChaosWarp.java index b014b0d8f37..851e5677288 100644 --- a/Mage.Sets/src/mage/cards/c/ChaosWarp.java +++ b/Mage.Sets/src/mage/cards/c/ChaosWarp.java @@ -27,15 +27,10 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -45,6 +40,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Mitchel Stein diff --git a/Mage.Sets/src/mage/cards/c/Chaoslace.java b/Mage.Sets/src/mage/cards/c/Chaoslace.java index 6015cc892b8..e1e4fe77c6b 100644 --- a/Mage.Sets/src/mage/cards/c/Chaoslace.java +++ b/Mage.Sets/src/mage/cards/c/Chaoslace.java @@ -27,15 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; +import mage.ObjectColor; import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.ObjectColor; import mage.target.common.TargetSpellOrPermanent; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/c/ChaoticBacklash.java b/Mage.Sets/src/mage/cards/c/ChaoticBacklash.java index f73f75e9d06..4029909e8a7 100644 --- a/Mage.Sets/src/mage/cards/c/ChaoticBacklash.java +++ b/Mage.Sets/src/mage/cards/c/ChaoticBacklash.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/ChaoticGoo.java b/Mage.Sets/src/mage/cards/c/ChaoticGoo.java index 34fd4f37982..2bc9be057d8 100644 --- a/Mage.Sets/src/mage/cards/c/ChaoticGoo.java +++ b/Mage.Sets/src/mage/cards/c/ChaoticGoo.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChaoticStrike.java b/Mage.Sets/src/mage/cards/c/ChaoticStrike.java index fb504ea0b7a..ed81dd15eb3 100644 --- a/Mage.Sets/src/mage/cards/c/ChaoticStrike.java +++ b/Mage.Sets/src/mage/cards/c/ChaoticStrike.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.CastOnlyDuringPhaseStepSourceAbility; import mage.abilities.condition.common.AfterBlockersAreDeclaredCondition; @@ -45,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChapelGeist.java b/Mage.Sets/src/mage/cards/c/ChapelGeist.java index 32d7b73d253..37589bb54ad 100644 --- a/Mage.Sets/src/mage/cards/c/ChapelGeist.java +++ b/Mage.Sets/src/mage/cards/c/ChapelGeist.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ChaplainsBlessing.java b/Mage.Sets/src/mage/cards/c/ChaplainsBlessing.java index eb8c60bbda5..2302b3541ce 100644 --- a/Mage.Sets/src/mage/cards/c/ChaplainsBlessing.java +++ b/Mage.Sets/src/mage/cards/c/ChaplainsBlessing.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/c/Char.java b/Mage.Sets/src/mage/cards/c/Char.java index cbc09793025..e8934c0e070 100644 --- a/Mage.Sets/src/mage/cards/c/Char.java +++ b/Mage.Sets/src/mage/cards/c/Char.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageControllerEffect; import mage.abilities.effects.common.DamageTargetEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CharRumbler.java b/Mage.Sets/src/mage/cards/c/CharRumbler.java index d13e205d957..2334bfbd85d 100644 --- a/Mage.Sets/src/mage/cards/c/CharRumbler.java +++ b/Mage.Sets/src/mage/cards/c/CharRumbler.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CharcoalDiamond.java b/Mage.Sets/src/mage/cards/c/CharcoalDiamond.java index bd88644c5a3..4c979b12020 100644 --- a/Mage.Sets/src/mage/cards/c/CharcoalDiamond.java +++ b/Mage.Sets/src/mage/cards/c/CharcoalDiamond.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.BlackManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/c/ChargeAcrossTheAraba.java b/Mage.Sets/src/mage/cards/c/ChargeAcrossTheAraba.java index f45c5053383..b9ffcdbdc18 100644 --- a/Mage.Sets/src/mage/cards/c/ChargeAcrossTheAraba.java +++ b/Mage.Sets/src/mage/cards/c/ChargeAcrossTheAraba.java @@ -27,15 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.abilities.dynamicvalue.DynamicValue; -import mage.abilities.dynamicvalue.common.SweepNumber; -import mage.abilities.effects.common.continuous.BoostControlledEffect; -import mage.abilities.effects.keyword.SweepEffect; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; + import mage.abilities.dynamicvalue.DynamicValue; + import mage.abilities.dynamicvalue.common.SweepNumber; + import mage.abilities.effects.common.continuous.BoostControlledEffect; + import mage.abilities.effects.keyword.SweepEffect; + import mage.cards.CardImpl; + import mage.cards.CardSetInfo; + import mage.constants.CardType; + import mage.constants.Duration; + + import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ChargingBadger.java b/Mage.Sets/src/mage/cards/c/ChargingBadger.java index 2b7e37006ef..00c4e463b09 100644 --- a/Mage.Sets/src/mage/cards/c/ChargingBadger.java +++ b/Mage.Sets/src/mage/cards/c/ChargingBadger.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChargingBandits.java b/Mage.Sets/src/mage/cards/c/ChargingBandits.java index 4f585b2deb1..038d6b77778 100644 --- a/Mage.Sets/src/mage/cards/c/ChargingBandits.java +++ b/Mage.Sets/src/mage/cards/c/ChargingBandits.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.Effect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChargingCinderhorn.java b/Mage.Sets/src/mage/cards/c/ChargingCinderhorn.java index 6a6c6610270..ff84cb2bf41 100644 --- a/Mage.Sets/src/mage/cards/c/ChargingCinderhorn.java +++ b/Mage.Sets/src/mage/cards/c/ChargingCinderhorn.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -49,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.watchers.common.AttackedThisTurnWatcher; +import java.util.UUID; + /** * * @author spjspj @@ -57,7 +57,7 @@ public class ChargingCinderhorn extends CardImpl { public ChargingCinderhorn(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); - + this.subtype.add("Elemental"); this.subtype.add("Ox"); this.power = new MageInt(4); @@ -69,8 +69,8 @@ public class ChargingCinderhorn extends CardImpl { // At the beginning of each player's end step, if no creatures attacked this turn, put a fury counter on Charging Cinderhorn. Then Charging Cinderhorn deals damage equal to the number of fury counters on it to that player. ChargingCinderhornDamageTargetEffect effect = new ChargingCinderhornDamageTargetEffect(); effect.setText("if no creatures attacked this turn, put a fury counter on {this}. Then {this} deals damage equal to the number of fury counters on it to that player"); - BeginningOfEndStepTriggeredAbility ability = - new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.ANY, new ChargingCinderhornCondition(), false); + BeginningOfEndStepTriggeredAbility ability + = new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.ANY, new ChargingCinderhornCondition(), false); this.addAbility(ability, new AttackedThisTurnWatcher()); } @@ -88,31 +88,27 @@ class ChargingCinderhornCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get("AttackedThisTurn"); + AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get(AttackedThisTurnWatcher.class.getName()); if (watcher != null && watcher instanceof AttackedThisTurnWatcher) { - Set attackedThisTurnCreatures = watcher.getAttackedThisTurnCreatures(); - return attackedThisTurnCreatures.isEmpty(); + return watcher.getAttackedThisTurnCreatures().isEmpty(); } return true; } - + @Override public String toString() { return "no creatures attacked this turn"; } - } -class ChargingCinderhornDamageTargetEffect extends OneShotEffect{ - - public ChargingCinderhornDamageTargetEffect() - { +class ChargingCinderhornDamageTargetEffect extends OneShotEffect { + + public ChargingCinderhornDamageTargetEffect() { super(Outcome.Damage); } - - public ChargingCinderhornDamageTargetEffect(ChargingCinderhornDamageTargetEffect copy) - { + + public ChargingCinderhornDamageTargetEffect(ChargingCinderhornDamageTargetEffect copy) { super(copy); } diff --git a/Mage.Sets/src/mage/cards/c/ChargingGriffin.java b/Mage.Sets/src/mage/cards/c/ChargingGriffin.java index 4ae324c17f2..4fd4a47ba9b 100644 --- a/Mage.Sets/src/mage/cards/c/ChargingGriffin.java +++ b/Mage.Sets/src/mage/cards/c/ChargingGriffin.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/ChargingPaladin.java b/Mage.Sets/src/mage/cards/c/ChargingPaladin.java index ab5e0e959f5..81ca6b7ab04 100644 --- a/Mage.Sets/src/mage/cards/c/ChargingPaladin.java +++ b/Mage.Sets/src/mage/cards/c/ChargingPaladin.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author daagar diff --git a/Mage.Sets/src/mage/cards/c/ChargingRhino.java b/Mage.Sets/src/mage/cards/c/ChargingRhino.java index e7caffc2a77..a7042f68f1f 100644 --- a/Mage.Sets/src/mage/cards/c/ChargingRhino.java +++ b/Mage.Sets/src/mage/cards/c/ChargingRhino.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantBeBlockedByMoreThanOneSourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChargingSlateback.java b/Mage.Sets/src/mage/cards/c/ChargingSlateback.java index ded6d7eef01..2d563f27dbb 100644 --- a/Mage.Sets/src/mage/cards/c/ChargingSlateback.java +++ b/Mage.Sets/src/mage/cards/c/ChargingSlateback.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CantBlockAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/ChargingTroll.java b/Mage.Sets/src/mage/cards/c/ChargingTroll.java index 45160e988e8..5cb22990cb8 100644 --- a/Mage.Sets/src/mage/cards/c/ChargingTroll.java +++ b/Mage.Sets/src/mage/cards/c/ChargingTroll.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChariotOfVictory.java b/Mage.Sets/src/mage/cards/c/ChariotOfVictory.java index 8b2caa788e2..69b30e7a4f7 100644 --- a/Mage.Sets/src/mage/cards/c/ChariotOfVictory.java +++ b/Mage.Sets/src/mage/cards/c/ChariotOfVictory.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -44,6 +43,8 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Charisma.java b/Mage.Sets/src/mage/cards/c/Charisma.java new file mode 100644 index 00000000000..0208a3f9b0f --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/Charisma.java @@ -0,0 +1,83 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import mage.abilities.Ability; +import mage.abilities.common.DealsDamageToACreatureAttachedTriggeredAbility; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.SourceOnBattlefieldCondition; +import mage.abilities.decorator.ConditionalContinuousEffect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.continuous.GainControlTargetEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; + +/** + * + * @author jeffwadsworth + */ +public class Charisma extends CardImpl { + + private static final String rule = "gain control of the other creature for as long as {this} remains on the battlefield"; + + public Charisma(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{U}{U}{U}"); + + this.subtype.add("Aura"); + + // Enchant creature + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // Whenever enchanted creature deals damage to a creature, gain control of the other creature for as long as Charisma remains on the battlefield. + Condition condition = SourceOnBattlefieldCondition.instance; + ConditionalContinuousEffect conditionalEffect = new ConditionalContinuousEffect(new GainControlTargetEffect(Duration.Custom), condition, rule); + this.addAbility(new DealsDamageToACreatureAttachedTriggeredAbility(conditionalEffect, false, "enchanted creature", false, true)); + + } + + public Charisma(final Charisma card) { + super(card); + } + + @Override + public Charisma copy() { + return new Charisma(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/CharmbreakerDevils.java b/Mage.Sets/src/mage/cards/c/CharmbreakerDevils.java index da6a675bf85..99e733c7f0d 100644 --- a/Mage.Sets/src/mage/cards/c/CharmbreakerDevils.java +++ b/Mage.Sets/src/mage/cards/c/CharmbreakerDevils.java @@ -27,11 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.OnEventTriggeredAbility; @@ -41,6 +36,10 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; @@ -50,6 +49,8 @@ import mage.game.events.GameEvent.EventType; import mage.players.Player; import mage.util.RandomUtil; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CharnelhoardWurm.java b/Mage.Sets/src/mage/cards/c/CharnelhoardWurm.java index ef05089f8ed..ec49e34ec3f 100644 --- a/Mage.Sets/src/mage/cards/c/CharnelhoardWurm.java +++ b/Mage.Sets/src/mage/cards/c/CharnelhoardWurm.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToOpponentTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ChartoothCougar.java b/Mage.Sets/src/mage/cards/c/ChartoothCougar.java index 1122d515363..6ee03d0cc35 100644 --- a/Mage.Sets/src/mage/cards/c/ChartoothCougar.java +++ b/Mage.Sets/src/mage/cards/c/ChartoothCougar.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,9 +34,12 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.MountaincyclingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/ChasmDrake.java b/Mage.Sets/src/mage/cards/c/ChasmDrake.java index 7007d2dc0ad..8929f7d1c93 100644 --- a/Mage.Sets/src/mage/cards/c/ChasmDrake.java +++ b/Mage.Sets/src/mage/cards/c/ChasmDrake.java @@ -28,9 +28,6 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -38,9 +35,12 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/c/ChasmGuide.java b/Mage.Sets/src/mage/cards/c/ChasmGuide.java index 01cb511db6b..69609bf3407 100644 --- a/Mage.Sets/src/mage/cards/c/ChasmGuide.java +++ b/Mage.Sets/src/mage/cards/c/ChasmGuide.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChasmSkulker.java b/Mage.Sets/src/mage/cards/c/ChasmSkulker.java index 7cd76f4f28b..480b4ccc77f 100644 --- a/Mage.Sets/src/mage/cards/c/ChasmSkulker.java +++ b/Mage.Sets/src/mage/cards/c/ChasmSkulker.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -47,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Chastise.java b/Mage.Sets/src/mage/cards/c/Chastise.java index e9da57e99ea..8eb87988d5e 100644 --- a/Mage.Sets/src/mage/cards/c/Chastise.java +++ b/Mage.Sets/src/mage/cards/c/Chastise.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.OneShotEffect; @@ -41,6 +40,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetAttackingCreature; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/ChatterOfTheSquirrel.java b/Mage.Sets/src/mage/cards/c/ChatterOfTheSquirrel.java index 32e2cca8dd8..e7dea95c2ef 100644 --- a/Mage.Sets/src/mage/cards/c/ChatterOfTheSquirrel.java +++ b/Mage.Sets/src/mage/cards/c/ChatterOfTheSquirrel.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlashbackAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.TimingRule; import mage.game.permanent.token.SquirrelToken; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/c/ChemistersTrick.java b/Mage.Sets/src/mage/cards/c/ChemistersTrick.java index 8a458cec693..276eb3d5d3f 100644 --- a/Mage.Sets/src/mage/cards/c/ChemistersTrick.java +++ b/Mage.Sets/src/mage/cards/c/ChemistersTrick.java @@ -27,12 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; @@ -42,6 +36,10 @@ import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.OverloadAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; @@ -49,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/c/Chewbacca.java b/Mage.Sets/src/mage/cards/c/Chewbacca.java index 5c08b00c771..2e2160a6126 100644 --- a/Mage.Sets/src/mage/cards/c/Chewbacca.java +++ b/Mage.Sets/src/mage/cards/c/Chewbacca.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; @@ -37,10 +36,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo @@ -55,7 +57,7 @@ public class Chewbacca extends CardImpl { public Chewbacca(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Wookiee"); this.subtype.add("Warrior"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/c/ChiefChirpa.java b/Mage.Sets/src/mage/cards/c/ChiefChirpa.java index 2d64e7f5f35..7c037cd4fb4 100644 --- a/Mage.Sets/src/mage/cards/c/ChiefChirpa.java +++ b/Mage.Sets/src/mage/cards/c/ChiefChirpa.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -39,6 +38,7 @@ import mage.abilities.keyword.MonstrosityAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; @@ -50,6 +50,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.permanent.token.EwokToken; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo @@ -69,7 +71,7 @@ public class ChiefChirpa extends CardImpl { public ChiefChirpa(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Ewok"); this.subtype.add("Warrior"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/c/ChiefEngineer.java b/Mage.Sets/src/mage/cards/c/ChiefEngineer.java index e3ab5aa26fc..453b7151d6f 100644 --- a/Mage.Sets/src/mage/cards/c/ChiefEngineer.java +++ b/Mage.Sets/src/mage/cards/c/ChiefEngineer.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledSpellsEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterArtifactSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChiefOfTheEdge.java b/Mage.Sets/src/mage/cards/c/ChiefOfTheEdge.java index 6419764cc32..82a0fd95122 100644 --- a/Mage.Sets/src/mage/cards/c/ChiefOfTheEdge.java +++ b/Mage.Sets/src/mage/cards/c/ChiefOfTheEdge.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChiefOfTheFoundry.java b/Mage.Sets/src/mage/cards/c/ChiefOfTheFoundry.java index 8b309aabc70..12233a47e55 100644 --- a/Mage.Sets/src/mage/cards/c/ChiefOfTheFoundry.java +++ b/Mage.Sets/src/mage/cards/c/ChiefOfTheFoundry.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChiefOfTheScale.java b/Mage.Sets/src/mage/cards/c/ChiefOfTheScale.java index 474a2fb5ca5..affcf3da0ad 100644 --- a/Mage.Sets/src/mage/cards/c/ChiefOfTheScale.java +++ b/Mage.Sets/src/mage/cards/c/ChiefOfTheScale.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChildOfAlara.java b/Mage.Sets/src/mage/cards/c/ChildOfAlara.java index fa8950e96cd..b16fc65a9eb 100644 --- a/Mage.Sets/src/mage/cards/c/ChildOfAlara.java +++ b/Mage.Sets/src/mage/cards/c/ChildOfAlara.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.DestroyAllEffect; @@ -35,8 +34,11 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterNonlandPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -45,7 +47,7 @@ public class ChildOfAlara extends CardImpl { public ChildOfAlara(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{U}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Avatar"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/c/ChildOfGaea.java b/Mage.Sets/src/mage/cards/c/ChildOfGaea.java index 8fce5f40f8a..6c989cb4665 100644 --- a/Mage.Sets/src/mage/cards/c/ChildOfGaea.java +++ b/Mage.Sets/src/mage/cards/c/ChildOfGaea.java @@ -28,10 +28,6 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -41,7 +37,11 @@ import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ChildOfNight.java b/Mage.Sets/src/mage/cards/c/ChildOfNight.java index 62ac7f9148e..d96cf111f5b 100644 --- a/Mage.Sets/src/mage/cards/c/ChildOfNight.java +++ b/Mage.Sets/src/mage/cards/c/ChildOfNight.java @@ -28,12 +28,13 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ChildOfThorns.java b/Mage.Sets/src/mage/cards/c/ChildOfThorns.java index 166947ffab2..c2e62db29e5 100644 --- a/Mage.Sets/src/mage/cards/c/ChildOfThorns.java +++ b/Mage.Sets/src/mage/cards/c/ChildOfThorns.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,10 +34,13 @@ import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ChildhoodHorror.java b/Mage.Sets/src/mage/cards/c/ChildhoodHorror.java index 8e36f0837ea..e29f3cf9e38 100644 --- a/Mage.Sets/src/mage/cards/c/ChildhoodHorror.java +++ b/Mage.Sets/src/mage/cards/c/ChildhoodHorror.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/c/Chill.java b/Mage.Sets/src/mage/cards/c/Chill.java index 44f7109ba68..a4d2356c26d 100644 --- a/Mage.Sets/src/mage/cards/c/Chill.java +++ b/Mage.Sets/src/mage/cards/c/Chill.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.cost.SpellsCostIncreasementAllEffect; @@ -38,6 +37,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/c/ChillOfForeboding.java b/Mage.Sets/src/mage/cards/c/ChillOfForeboding.java index 4736af6a1d9..0d20be91c75 100644 --- a/Mage.Sets/src/mage/cards/c/ChillOfForeboding.java +++ b/Mage.Sets/src/mage/cards/c/ChillOfForeboding.java @@ -27,21 +27,21 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.TimingRule; +import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/ChillToTheBone.java b/Mage.Sets/src/mage/cards/c/ChillToTheBone.java index 2ec3785bdd2..75b3d381d3b 100644 --- a/Mage.Sets/src/mage/cards/c/ChillToTheBone.java +++ b/Mage.Sets/src/mage/cards/c/ChillToTheBone.java @@ -27,16 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -46,7 +48,7 @@ public class ChillToTheBone extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nonsnow creature"); static { - filter.add(Predicates.not(new SupertypePredicate("Snow"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.SNOW))); } public ChillToTheBone(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/c/ChillingApparition.java b/Mage.Sets/src/mage/cards/c/ChillingApparition.java index 45cd6a6674c..89faad9832e 100644 --- a/Mage.Sets/src/mage/cards/c/ChillingApparition.java +++ b/Mage.Sets/src/mage/cards/c/ChillingApparition.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/ChillingGrasp.java b/Mage.Sets/src/mage/cards/c/ChillingGrasp.java index edc5e9f3d1f..22eb61bdfb2 100644 --- a/Mage.Sets/src/mage/cards/c/ChillingGrasp.java +++ b/Mage.Sets/src/mage/cards/c/ChillingGrasp.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChillingShade.java b/Mage.Sets/src/mage/cards/c/ChillingShade.java index 6f742f4f0c5..d147204ceb3 100644 --- a/Mage.Sets/src/mage/cards/c/ChillingShade.java +++ b/Mage.Sets/src/mage/cards/c/ChillingShade.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,8 +36,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox @@ -47,7 +49,7 @@ public class ChillingShade extends CardImpl { public ChillingShade(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Shade"); this.power = new MageInt(1); this.toughness = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/c/ChimericCoils.java b/Mage.Sets/src/mage/cards/c/ChimericCoils.java index f7fdde43cb6..9d00a26bc0d 100644 --- a/Mage.Sets/src/mage/cards/c/ChimericCoils.java +++ b/Mage.Sets/src/mage/cards/c/ChimericCoils.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -37,15 +36,12 @@ import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Plopman @@ -94,7 +90,7 @@ class ChimericCoilsEffect extends ContinuousEffectImpl { switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); permanent.getSubtype(game).add("Construct"); } break; diff --git a/Mage.Sets/src/mage/cards/c/ChimericIdol.java b/Mage.Sets/src/mage/cards/c/ChimericIdol.java index 9f71be4cfaf..c330636e0a8 100644 --- a/Mage.Sets/src/mage/cards/c/ChimericIdol.java +++ b/Mage.Sets/src/mage/cards/c/ChimericIdol.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChimericMass.java b/Mage.Sets/src/mage/cards/c/ChimericMass.java index f26c0b71c08..b9a3f249150 100644 --- a/Mage.Sets/src/mage/cards/c/ChimericMass.java +++ b/Mage.Sets/src/mage/cards/c/ChimericMass.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * @author BetaSteward_at_googlemail.com */ diff --git a/Mage.Sets/src/mage/cards/c/ChimericSphere.java b/Mage.Sets/src/mage/cards/c/ChimericSphere.java index 2bef93cac5f..47f978bf3aa 100644 --- a/Mage.Sets/src/mage/cards/c/ChimericSphere.java +++ b/Mage.Sets/src/mage/cards/c/ChimericSphere.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/ChimericStaff.java b/Mage.Sets/src/mage/cards/c/ChimericStaff.java index 31b5ff1be3b..03cf21438f8 100644 --- a/Mage.Sets/src/mage/cards/c/ChimericStaff.java +++ b/Mage.Sets/src/mage/cards/c/ChimericStaff.java @@ -27,22 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Backfir3 @@ -89,7 +85,7 @@ class ChimericStaffEffect extends ContinuousEffectImpl { switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); permanent.getSubtype(game).add("Construct"); } break; diff --git a/Mage.Sets/src/mage/cards/c/ChimneyImp.java b/Mage.Sets/src/mage/cards/c/ChimneyImp.java index f18e96d11f0..1fbf93aadd1 100644 --- a/Mage.Sets/src/mage/cards/c/ChimneyImp.java +++ b/Mage.Sets/src/mage/cards/c/ChimneyImp.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -44,6 +43,8 @@ import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author djbrez diff --git a/Mage.Sets/src/mage/cards/c/ChiseiHeartOfOceans.java b/Mage.Sets/src/mage/cards/c/ChiseiHeartOfOceans.java index ca1280d7f4e..966efd0de18 100644 --- a/Mage.Sets/src/mage/cards/c/ChiseiHeartOfOceans.java +++ b/Mage.Sets/src/mage/cards/c/ChiseiHeartOfOceans.java @@ -27,10 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.TargetController; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.costs.common.RemoveCounterCost; @@ -38,12 +34,17 @@ import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.TargetController; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.CounterAnyPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +60,7 @@ public class ChiseiHeartOfOceans extends CardImpl { public ChiseiHeartOfOceans(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/c/ChitinousCloak.java b/Mage.Sets/src/mage/cards/c/ChitinousCloak.java index 19e37d57e59..5f8911cb1c8 100644 --- a/Mage.Sets/src/mage/cards/c/ChitinousCloak.java +++ b/Mage.Sets/src/mage/cards/c/ChitinousCloak.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChitteringRats.java b/Mage.Sets/src/mage/cards/c/ChitteringRats.java index 2cb26c09037..521b1c104f3 100644 --- a/Mage.Sets/src/mage/cards/c/ChitteringRats.java +++ b/Mage.Sets/src/mage/cards/c/ChitteringRats.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -43,6 +42,8 @@ import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Chlorophant.java b/Mage.Sets/src/mage/cards/c/Chlorophant.java index 9a71c13fe47..8c5e1507e5a 100644 --- a/Mage.Sets/src/mage/cards/c/Chlorophant.java +++ b/Mage.Sets/src/mage/cards/c/Chlorophant.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -39,13 +38,11 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AbilityWord; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/c/ChoArrimAlchemist.java b/Mage.Sets/src/mage/cards/c/ChoArrimAlchemist.java index 5cbf395f3e1..c8090763976 100644 --- a/Mage.Sets/src/mage/cards/c/ChoArrimAlchemist.java +++ b/Mage.Sets/src/mage/cards/c/ChoArrimAlchemist.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -47,6 +46,8 @@ import mage.game.events.GameEvent; import mage.players.Player; import mage.target.TargetSource; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/ChoArrimBruiser.java b/Mage.Sets/src/mage/cards/c/ChoArrimBruiser.java index 64371aa4ee5..d0222102d3e 100644 --- a/Mage.Sets/src/mage/cards/c/ChoArrimBruiser.java +++ b/Mage.Sets/src/mage/cards/c/ChoArrimBruiser.java @@ -27,16 +27,17 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/c/ChoArrimLegate.java b/Mage.Sets/src/mage/cards/c/ChoArrimLegate.java index d435b6e6553..58ccf05ebe1 100644 --- a/Mage.Sets/src/mage/cards/c/ChoArrimLegate.java +++ b/Mage.Sets/src/mage/cards/c/ChoArrimLegate.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.condition.CompoundCondition; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChoMannoRevolutionary.java b/Mage.Sets/src/mage/cards/c/ChoMannoRevolutionary.java index 5fec7f23966..0b60722ab99 100644 --- a/Mage.Sets/src/mage/cards/c/ChoMannoRevolutionary.java +++ b/Mage.Sets/src/mage/cards/c/ChoMannoRevolutionary.java @@ -27,17 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.PreventAllDamageToSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki @@ -46,7 +47,7 @@ public class ChoMannoRevolutionary extends CardImpl { public ChoMannoRevolutionary(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rebel"); diff --git a/Mage.Sets/src/mage/cards/c/ChoMannosBlessing.java b/Mage.Sets/src/mage/cards/c/ChoMannosBlessing.java index 18e17b22cf6..f2024492c95 100644 --- a/Mage.Sets/src/mage/cards/c/ChoMannosBlessing.java +++ b/Mage.Sets/src/mage/cards/c/ChoMannosBlessing.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChoiceOfDamnations.java b/Mage.Sets/src/mage/cards/c/ChoiceOfDamnations.java index 3eeb080a83e..5ab49d32a36 100644 --- a/Mage.Sets/src/mage/cards/c/ChoiceOfDamnations.java +++ b/Mage.Sets/src/mage/cards/c/ChoiceOfDamnations.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -43,6 +42,8 @@ import mage.target.Target; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Choke.java b/Mage.Sets/src/mage/cards/c/Choke.java index 582b945b9dd..199c54169a4 100644 --- a/Mage.Sets/src/mage/cards/c/Choke.java +++ b/Mage.Sets/src/mage/cards/c/Choke.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChokedEstuary.java b/Mage.Sets/src/mage/cards/c/ChokedEstuary.java index 0bc8702e6c0..e89059e9d44 100644 --- a/Mage.Sets/src/mage/cards/c/ChokedEstuary.java +++ b/Mage.Sets/src/mage/cards/c/ChokedEstuary.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.common.TapSourceUnlessPaysEffect; @@ -41,6 +40,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChokingFumes.java b/Mage.Sets/src/mage/cards/c/ChokingFumes.java index 6c2718db3bc..45b169494cb 100644 --- a/Mage.Sets/src/mage/cards/c/ChokingFumes.java +++ b/Mage.Sets/src/mage/cards/c/ChokingFumes.java @@ -27,14 +27,15 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.counter.AddCountersAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; import mage.filter.common.FilterAttackingCreature; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/ChokingRestraints.java b/Mage.Sets/src/mage/cards/c/ChokingRestraints.java index 2f982f47a16..e06378f0acf 100644 --- a/Mage.Sets/src/mage/cards/c/ChokingRestraints.java +++ b/Mage.Sets/src/mage/cards/c/ChokingRestraints.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -46,6 +45,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChokingSands.java b/Mage.Sets/src/mage/cards/c/ChokingSands.java index 4a26230a475..43ffc50b911 100644 --- a/Mage.Sets/src/mage/cards/c/ChokingSands.java +++ b/Mage.Sets/src/mage/cards/c/ChokingSands.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -44,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -96,7 +97,7 @@ class ChokingSandsEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Permanent permanent = (Permanent) game.getLastKnownInformation(source.getFirstTarget(), Zone.BATTLEFIELD); - if (permanent != null && !permanent.getSupertype().contains("Basic")) { + if (permanent != null && !permanent.isBasic()) { Player player = game.getPlayer(permanent.getControllerId()); if (player != null) { player.damage(2, source.getSourceId(), game, false, true); diff --git a/Mage.Sets/src/mage/cards/c/ChokingTethers.java b/Mage.Sets/src/mage/cards/c/ChokingTethers.java index a678ea66c68..a1964bf9cd6 100644 --- a/Mage.Sets/src/mage/cards/c/ChokingTethers.java +++ b/Mage.Sets/src/mage/cards/c/ChokingTethers.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.CycleTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChordOfCalling.java b/Mage.Sets/src/mage/cards/c/ChordOfCalling.java index bd3263ae9c4..00dd2a829ea 100644 --- a/Mage.Sets/src/mage/cards/c/ChordOfCalling.java +++ b/Mage.Sets/src/mage/cards/c/ChordOfCalling.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.search.SearchLibraryWithLessCMCPutInPlayEffect; import mage.abilities.keyword.ConvokeAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/c/ChorusOfMight.java b/Mage.Sets/src/mage/cards/c/ChorusOfMight.java index 6e22c7dd5c6..d2d1bde7306 100644 --- a/Mage.Sets/src/mage/cards/c/ChorusOfMight.java +++ b/Mage.Sets/src/mage/cards/c/ChorusOfMight.java @@ -28,19 +28,19 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChorusOfTheConclave.java b/Mage.Sets/src/mage/cards/c/ChorusOfTheConclave.java index 03413213287..421996644dd 100644 --- a/Mage.Sets/src/mage/cards/c/ChorusOfTheConclave.java +++ b/Mage.Sets/src/mage/cards/c/ChorusOfTheConclave.java @@ -40,10 +40,7 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.keyword.ForestwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.game.Game; import mage.game.events.EntersTheBattlefieldEvent; @@ -59,8 +56,8 @@ import mage.players.Player; public class ChorusOfTheConclave extends CardImpl { public ChorusOfTheConclave(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{G}{W}{W}"); - this.supertype.add("Legendary"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}{G}{W}{W}"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dryad"); this.power = new MageInt(3); @@ -200,7 +197,7 @@ class ChorusOfTheConclaveReplacementEffect2 extends ReplacementEffectImpl { String key = event.getSourceId().toString() + (game.getState().getZoneChangeCounter(event.getSourceId()) - 1); int xValue = spellX.get(key); if (xValue > 0) { - creature.addCounters(CounterType.P1P1.createInstance(xValue), source, game); + creature.addCounters(CounterType.P1P1.createInstance(xValue), source, game, event.getAppliedEffects()); game.informPlayers(sourceObject.getLogName() + ": " + creature.getLogName() + " enters the battlefield with " + xValue + " +1/+1 counter" + (xValue > 1 ? "s" : "") + " on it"); } spellX.remove(key); diff --git a/Mage.Sets/src/mage/cards/c/ChorusOfTheTides.java b/Mage.Sets/src/mage/cards/c/ChorusOfTheTides.java index 96f8f65f9f3..8db67d2c4e1 100644 --- a/Mage.Sets/src/mage/cards/c/ChorusOfTheTides.java +++ b/Mage.Sets/src/mage/cards/c/ChorusOfTheTides.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.keyword.FlyingAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChorusOfWoe.java b/Mage.Sets/src/mage/cards/c/ChorusOfWoe.java index 1fc2b79a452..9a98d797222 100644 --- a/Mage.Sets/src/mage/cards/c/ChorusOfWoe.java +++ b/Mage.Sets/src/mage/cards/c/ChorusOfWoe.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChosenByHeliod.java b/Mage.Sets/src/mage/cards/c/ChosenByHeliod.java index 1b4de790308..661d086cc9e 100644 --- a/Mage.Sets/src/mage/cards/c/ChosenByHeliod.java +++ b/Mage.Sets/src/mage/cards/c/ChosenByHeliod.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChosenOfMarkov.java b/Mage.Sets/src/mage/cards/c/ChosenOfMarkov.java index 340bc7a0dd7..3963fca37f4 100644 --- a/Mage.Sets/src/mage/cards/c/ChosenOfMarkov.java +++ b/Mage.Sets/src/mage/cards/c/ChosenOfMarkov.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +34,10 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.common.TapTargetCost; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.TransformAbility; -import mage.cards.m.MarkovsServant; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.m.MarkovsServant; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; @@ -47,6 +45,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/Chromanticore.java b/Mage.Sets/src/mage/cards/c/Chromanticore.java index 8fbeb94bd2e..a333849daf3 100644 --- a/Mage.Sets/src/mage/cards/c/Chromanticore.java +++ b/Mage.Sets/src/mage/cards/c/Chromanticore.java @@ -27,25 +27,21 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; -import mage.abilities.keyword.BestowAbility; -import mage.abilities.keyword.FlyingAbility; -import mage.abilities.keyword.FirstStrikeAbility; -import mage.abilities.keyword.VigilanceAbility; -import mage.abilities.keyword.TrampleAbility; -import mage.abilities.keyword.LifelinkAbility; +import mage.abilities.keyword.*; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AttachmentType; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChromaticLantern.java b/Mage.Sets/src/mage/cards/c/ChromaticLantern.java index 35392db1bb3..d1d4965a3dd 100644 --- a/Mage.Sets/src/mage/cards/c/ChromaticLantern.java +++ b/Mage.Sets/src/mage/cards/c/ChromaticLantern.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.mana.AnyColorManaAbility; @@ -38,6 +37,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * @author LevelX2 */ diff --git a/Mage.Sets/src/mage/cards/c/ChromaticSphere.java b/Mage.Sets/src/mage/cards/c/ChromaticSphere.java index e8ba7052825..0c6471ab97f 100644 --- a/Mage.Sets/src/mage/cards/c/ChromaticSphere.java +++ b/Mage.Sets/src/mage/cards/c/ChromaticSphere.java @@ -27,17 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.mana.AnyColorManaAbility; import mage.abilities.mana.ActivatedManaAbilityImpl; +import mage.abilities.mana.AnyColorManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ChromaticStar.java b/Mage.Sets/src/mage/cards/c/ChromaticStar.java index e3a8d754d81..f457437fe0a 100644 --- a/Mage.Sets/src/mage/cards/c/ChromaticStar.java +++ b/Mage.Sets/src/mage/cards/c/ChromaticStar.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -38,6 +36,9 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.mana.AnyColorManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ChromeMox.java b/Mage.Sets/src/mage/cards/c/ChromeMox.java index 292d9cd2a5b..a6ac0ad6319 100644 --- a/Mage.Sets/src/mage/cards/c/ChromeMox.java +++ b/Mage.Sets/src/mage/cards/c/ChromeMox.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.List; -import java.util.UUID; import mage.MageObject; import mage.Mana; import mage.ObjectColor; @@ -56,6 +54,9 @@ import mage.target.TargetCard; import mage.util.CardUtil; import mage.util.GameLog; +import java.util.List; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/ChromeSteed.java b/Mage.Sets/src/mage/cards/c/ChromeSteed.java index e80e55ec945..23b7ea86f0a 100644 --- a/Mage.Sets/src/mage/cards/c/ChromeSteed.java +++ b/Mage.Sets/src/mage/cards/c/ChromeSteed.java @@ -28,10 +28,6 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.MetalcraftCondition; @@ -40,6 +36,11 @@ import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ChromescaleDrake.java b/Mage.Sets/src/mage/cards/c/ChromescaleDrake.java index 64f35a70755..9d3fe33ce6b 100644 --- a/Mage.Sets/src/mage/cards/c/ChromescaleDrake.java +++ b/Mage.Sets/src/mage/cards/c/ChromescaleDrake.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.RevealLibraryPutIntoHandEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterArtifactCard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChromeshellCrab.java b/Mage.Sets/src/mage/cards/c/ChromeshellCrab.java index f5e2361afb7..a1df31840c0 100644 --- a/Mage.Sets/src/mage/cards/c/ChromeshellCrab.java +++ b/Mage.Sets/src/mage/cards/c/ChromeshellCrab.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/Chromium.java b/Mage.Sets/src/mage/cards/c/Chromium.java index c9dc3ee8ee3..359204f2b29 100644 --- a/Mage.Sets/src/mage/cards/c/Chromium.java +++ b/Mage.Sets/src/mage/cards/c/Chromium.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,8 +36,11 @@ import mage.abilities.keyword.RampageAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LoneFox @@ -47,7 +49,7 @@ public class Chromium extends CardImpl { public Chromium(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}{U}{U}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elder"); this.subtype.add("Dragon"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/c/Chronatog.java b/Mage.Sets/src/mage/cards/c/Chronatog.java index b19e0ab126c..3a32f4303c6 100644 --- a/Mage.Sets/src/mage/cards/c/Chronatog.java +++ b/Mage.Sets/src/mage/cards/c/Chronatog.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ChronatogTotem.java b/Mage.Sets/src/mage/cards/c/ChronatogTotem.java index 554a325dcc1..35f16ed988f 100644 --- a/Mage.Sets/src/mage/cards/c/ChronatogTotem.java +++ b/Mage.Sets/src/mage/cards/c/ChronatogTotem.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; @@ -51,6 +50,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/ChronicFlooding.java b/Mage.Sets/src/mage/cards/c/ChronicFlooding.java index cce3b54ba5b..9beef8117d8 100644 --- a/Mage.Sets/src/mage/cards/c/ChronicFlooding.java +++ b/Mage.Sets/src/mage/cards/c/ChronicFlooding.java @@ -27,8 +27,7 @@ * or implied, of BetaSteward_at_googlemail.com. */ package mage.cards.c; - -import java.util.UUID; + import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -47,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; import mage.target.targetpointer.FixedTarget; + +import java.util.UUID; /** * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ChroniclerOfHeroes.java b/Mage.Sets/src/mage/cards/c/ChroniclerOfHeroes.java index 3a43a9a9c0b..b657840bbc6 100644 --- a/Mage.Sets/src/mage/cards/c/ChroniclerOfHeroes.java +++ b/Mage.Sets/src/mage/cards/c/ChroniclerOfHeroes.java @@ -27,10 +27,9 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.effects.OneShotEffect; @@ -46,6 +45,8 @@ import mage.filter.predicate.permanent.CounterPredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -100,7 +101,7 @@ class ChroniclerOfHeroesEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - if (new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0).apply(game, source)) { + if (new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0).apply(game, source)) { controller.drawCards(1, game); } return true; diff --git a/Mage.Sets/src/mage/cards/c/ChronomanticEscape.java b/Mage.Sets/src/mage/cards/c/ChronomanticEscape.java index 8f6034e2fe6..f25a04ed6cf 100644 --- a/Mage.Sets/src/mage/cards/c/ChronomanticEscape.java +++ b/Mage.Sets/src/mage/cards/c/ChronomanticEscape.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.Effect; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/c/Chronomaton.java b/Mage.Sets/src/mage/cards/c/Chronomaton.java index f45640e7370..57055708b5e 100644 --- a/Mage.Sets/src/mage/cards/c/Chronomaton.java +++ b/Mage.Sets/src/mage/cards/c/Chronomaton.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,12 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/Chronosavant.java b/Mage.Sets/src/mage/cards/c/Chronosavant.java index 6c07708173f..d399cdb02f0 100644 --- a/Mage.Sets/src/mage/cards/c/Chronosavant.java +++ b/Mage.Sets/src/mage/cards/c/Chronosavant.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/Chronostutter.java b/Mage.Sets/src/mage/cards/c/Chronostutter.java index 2bd233048b2..18a780a2376 100644 --- a/Mage.Sets/src/mage/cards/c/Chronostutter.java +++ b/Mage.Sets/src/mage/cards/c/Chronostutter.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -41,6 +40,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Chronozoa.java b/Mage.Sets/src/mage/cards/c/Chronozoa.java index fd0e4bc1b5b..55b4809b30c 100644 --- a/Mage.Sets/src/mage/cards/c/Chronozoa.java +++ b/Mage.Sets/src/mage/cards/c/Chronozoa.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; @@ -45,6 +44,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Gal Lerman diff --git a/Mage.Sets/src/mage/cards/c/ChubToad.java b/Mage.Sets/src/mage/cards/c/ChubToad.java index 04f74bf2410..6de8a910d02 100644 --- a/Mage.Sets/src/mage/cards/c/ChubToad.java +++ b/Mage.Sets/src/mage/cards/c/ChubToad.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/ChurningEddy.java b/Mage.Sets/src/mage/cards/c/ChurningEddy.java index f60171d9e09..46b7bb357b6 100644 --- a/Mage.Sets/src/mage/cards/c/ChurningEddy.java +++ b/Mage.Sets/src/mage/cards/c/ChurningEddy.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CinderBarrens.java b/Mage.Sets/src/mage/cards/c/CinderBarrens.java index c5e7a24a84f..6ec632c4f7d 100644 --- a/Mage.Sets/src/mage/cards/c/CinderBarrens.java +++ b/Mage.Sets/src/mage/cards/c/CinderBarrens.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.RedManaAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CinderElemental.java b/Mage.Sets/src/mage/cards/c/CinderElemental.java index f45ec4d2459..5b3ecabd011 100644 --- a/Mage.Sets/src/mage/cards/c/CinderElemental.java +++ b/Mage.Sets/src/mage/cards/c/CinderElemental.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,9 +37,12 @@ import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CinderGiant.java b/Mage.Sets/src/mage/cards/c/CinderGiant.java index e243e1b98e2..c2d0a552bbd 100644 --- a/Mage.Sets/src/mage/cards/c/CinderGiant.java +++ b/Mage.Sets/src/mage/cards/c/CinderGiant.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.DamageAllEffect; @@ -38,6 +37,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CinderGlade.java b/Mage.Sets/src/mage/cards/c/CinderGlade.java index 51e9f095f69..05d7677aa85 100644 --- a/Mage.Sets/src/mage/cards/c/CinderGlade.java +++ b/Mage.Sets/src/mage/cards/c/CinderGlade.java @@ -27,9 +27,7 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; @@ -41,9 +39,12 @@ import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +54,7 @@ public class CinderGlade extends CardImpl { private static final FilterLandPermanent filter = new FilterLandPermanent(); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public CinderGlade(UUID ownerId, CardSetInfo setInfo) { @@ -62,7 +63,7 @@ public class CinderGlade extends CardImpl { this.subtype.add("Forest"); // Cinder Glade enters the battlefield tapped unless you control two or more basic lands. - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1)); String abilityText = "tapped unless you control two or more basic lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new RedManaAbility()); diff --git a/Mage.Sets/src/mage/cards/c/CinderHellion.java b/Mage.Sets/src/mage/cards/c/CinderHellion.java index 388b7809273..ca1f71ebcc1 100644 --- a/Mage.Sets/src/mage/cards/c/CinderHellion.java +++ b/Mage.Sets/src/mage/cards/c/CinderHellion.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CinderMarsh.java b/Mage.Sets/src/mage/cards/c/CinderMarsh.java index 381ddeb4ab4..7e49ec58898 100644 --- a/Mage.Sets/src/mage/cards/c/CinderMarsh.java +++ b/Mage.Sets/src/mage/cards/c/CinderMarsh.java @@ -27,13 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; -import mage.abilities.mana.*; +import mage.abilities.mana.BlackManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CinderPyromancer.java b/Mage.Sets/src/mage/cards/c/CinderPyromancer.java index 3e4b32effd5..baf42c3c24d 100644 --- a/Mage.Sets/src/mage/cards/c/CinderPyromancer.java +++ b/Mage.Sets/src/mage/cards/c/CinderPyromancer.java @@ -28,9 +28,6 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -41,11 +38,14 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CinderShade.java b/Mage.Sets/src/mage/cards/c/CinderShade.java index c954ad63ba4..95c11ec28d1 100644 --- a/Mage.Sets/src/mage/cards/c/CinderShade.java +++ b/Mage.Sets/src/mage/cards/c/CinderShade.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author michael.napoleon@gmail.com diff --git a/Mage.Sets/src/mage/cards/c/CinderStorm.java b/Mage.Sets/src/mage/cards/c/CinderStorm.java index c18fea10f18..38fbfb96cc5 100644 --- a/Mage.Sets/src/mage/cards/c/CinderStorm.java +++ b/Mage.Sets/src/mage/cards/c/CinderStorm.java @@ -27,14 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/c/CinderWall.java b/Mage.Sets/src/mage/cards/c/CinderWall.java index f96138842f4..c61245cf526 100644 --- a/Mage.Sets/src/mage/cards/c/CinderWall.java +++ b/Mage.Sets/src/mage/cards/c/CinderWall.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BlocksTriggeredAbility; import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/c/Cinderbones.java b/Mage.Sets/src/mage/cards/c/Cinderbones.java index 94401bb9ff8..04801154032 100644 --- a/Mage.Sets/src/mage/cards/c/Cinderbones.java +++ b/Mage.Sets/src/mage/cards/c/Cinderbones.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +34,10 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.keyword.WitherAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CinderhazeWretch.java b/Mage.Sets/src/mage/cards/c/CinderhazeWretch.java index d6c6e13503b..5fd90b51ad6 100644 --- a/Mage.Sets/src/mage/cards/c/CinderhazeWretch.java +++ b/Mage.Sets/src/mage/cards/c/CinderhazeWretch.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -35,8 +34,8 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.costs.common.PutCountersSourceCost; import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.effects.common.UntapSourceEffect; +import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CircleOfAffliction.java b/Mage.Sets/src/mage/cards/c/CircleOfAffliction.java index 4b8f61203d7..bd8ff1eac90 100644 --- a/Mage.Sets/src/mage/cards/c/CircleOfAffliction.java +++ b/Mage.Sets/src/mage/cards/c/CircleOfAffliction.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.ObjectColor; import mage.abilities.Ability; @@ -48,6 +47,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/c/CircleOfElders.java b/Mage.Sets/src/mage/cards/c/CircleOfElders.java index 9378b27aadb..30d777681ab 100644 --- a/Mage.Sets/src/mage/cards/c/CircleOfElders.java +++ b/Mage.Sets/src/mage/cards/c/CircleOfElders.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -42,6 +41,8 @@ import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CircleOfFlame.java b/Mage.Sets/src/mage/cards/c/CircleOfFlame.java index 16984dabb36..0f72384bc53 100644 --- a/Mage.Sets/src/mage/cards/c/CircleOfFlame.java +++ b/Mage.Sets/src/mage/cards/c/CircleOfFlame.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -42,6 +41,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/c/CircleOfProtectionArtifacts.java b/Mage.Sets/src/mage/cards/c/CircleOfProtectionArtifacts.java index b836fcfdc6d..b8eb01cde4b 100644 --- a/Mage.Sets/src/mage/cards/c/CircleOfProtectionArtifacts.java +++ b/Mage.Sets/src/mage/cards/c/CircleOfProtectionArtifacts.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; @@ -41,6 +39,8 @@ import mage.constants.Zone; import mage.filter.FilterObject; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CircleOfProtectionBlack.java b/Mage.Sets/src/mage/cards/c/CircleOfProtectionBlack.java index d993b08f1c8..c3addd9792e 100644 --- a/Mage.Sets/src/mage/cards/c/CircleOfProtectionBlack.java +++ b/Mage.Sets/src/mage/cards/c/CircleOfProtectionBlack.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +40,8 @@ import mage.constants.Zone; import mage.filter.FilterObject; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CircleOfProtectionBlue.java b/Mage.Sets/src/mage/cards/c/CircleOfProtectionBlue.java index 283c938b49d..bed5f45e876 100644 --- a/Mage.Sets/src/mage/cards/c/CircleOfProtectionBlue.java +++ b/Mage.Sets/src/mage/cards/c/CircleOfProtectionBlue.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +40,8 @@ import mage.constants.Zone; import mage.filter.FilterObject; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CircleOfProtectionGreen.java b/Mage.Sets/src/mage/cards/c/CircleOfProtectionGreen.java index d96e9ec98c3..9b637ce5860 100644 --- a/Mage.Sets/src/mage/cards/c/CircleOfProtectionGreen.java +++ b/Mage.Sets/src/mage/cards/c/CircleOfProtectionGreen.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +40,8 @@ import mage.constants.Zone; import mage.filter.FilterObject; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CircleOfProtectionRed.java b/Mage.Sets/src/mage/cards/c/CircleOfProtectionRed.java index 222460c45ba..b99eaf6fc9c 100644 --- a/Mage.Sets/src/mage/cards/c/CircleOfProtectionRed.java +++ b/Mage.Sets/src/mage/cards/c/CircleOfProtectionRed.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +40,8 @@ import mage.constants.Zone; import mage.filter.FilterObject; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CircleOfProtectionShadow.java b/Mage.Sets/src/mage/cards/c/CircleOfProtectionShadow.java index 67eced4b67d..a3253738098 100644 --- a/Mage.Sets/src/mage/cards/c/CircleOfProtectionShadow.java +++ b/Mage.Sets/src/mage/cards/c/CircleOfProtectionShadow.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CircleOfProtectionWhite.java b/Mage.Sets/src/mage/cards/c/CircleOfProtectionWhite.java index d1d84a009ef..dfc64dac660 100644 --- a/Mage.Sets/src/mage/cards/c/CircleOfProtectionWhite.java +++ b/Mage.Sets/src/mage/cards/c/CircleOfProtectionWhite.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +40,8 @@ import mage.constants.Zone; import mage.filter.FilterObject; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CircularLogic.java b/Mage.Sets/src/mage/cards/c/CircularLogic.java index 4ec73942b18..052f9834fa3 100644 --- a/Mage.Sets/src/mage/cards/c/CircularLogic.java +++ b/Mage.Sets/src/mage/cards/c/CircularLogic.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.costs.mana.GenericManaCost; @@ -36,6 +35,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.MadnessAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; import mage.game.stack.StackObject; diff --git a/Mage.Sets/src/mage/cards/c/CitadelCastellan.java b/Mage.Sets/src/mage/cards/c/CitadelCastellan.java index 517e12d9e17..a15fc4f2838 100644 --- a/Mage.Sets/src/mage/cards/c/CitadelCastellan.java +++ b/Mage.Sets/src/mage/cards/c/CitadelCastellan.java @@ -27,14 +27,15 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.VigilanceAbility; import mage.abilities.keyword.RenownAbility; +import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CitadelOfPain.java b/Mage.Sets/src/mage/cards/c/CitadelOfPain.java index 8d03fc18e8b..e6a583f9e7f 100644 --- a/Mage.Sets/src/mage/cards/c/CitadelOfPain.java +++ b/Mage.Sets/src/mage/cards/c/CitadelOfPain.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.TriggeredAbility; @@ -47,6 +45,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; +import java.util.UUID; + /** * * @author Alexsandr0x diff --git a/Mage.Sets/src/mage/cards/c/CitadelSiege.java b/Mage.Sets/src/mage/cards/c/CitadelSiege.java index 8a8d43d7c35..f8e5d11e7d5 100644 --- a/Mage.Sets/src/mage/cards/c/CitadelSiege.java +++ b/Mage.Sets/src/mage/cards/c/CitadelSiege.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.common.EntersBattlefieldAbility; @@ -47,6 +46,8 @@ import mage.game.Game; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CitanulCentaurs.java b/Mage.Sets/src/mage/cards/c/CitanulCentaurs.java index 9d64542d929..d7cac22ebae 100644 --- a/Mage.Sets/src/mage/cards/c/CitanulCentaurs.java +++ b/Mage.Sets/src/mage/cards/c/CitanulCentaurs.java @@ -28,13 +28,14 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.EchoAbility; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CitanulDruid.java b/Mage.Sets/src/mage/cards/c/CitanulDruid.java index a7f90ee14aa..c42017157f4 100644 --- a/Mage.Sets/src/mage/cards/c/CitanulDruid.java +++ b/Mage.Sets/src/mage/cards/c/CitanulDruid.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastOpponentTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -39,6 +38,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterArtifactSpell; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/c/CitanulFlute.java b/Mage.Sets/src/mage/cards/c/CitanulFlute.java index 81504b425a6..92bdbe60a8e 100644 --- a/Mage.Sets/src/mage/cards/c/CitanulFlute.java +++ b/Mage.Sets/src/mage/cards/c/CitanulFlute.java @@ -27,22 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.filter.Filter; +import mage.cards.*; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -50,6 +44,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Backfir3 @@ -102,7 +98,7 @@ class CitanulFluteSearchEffect extends OneShotEffect { FilterCard filter = new FilterCard("creature card with converted mana cost X or less"); filter.add(new CardTypePredicate(CardType.CREATURE)); //Set the mana cost one higher to 'emulate' a less than or equal to comparison. - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, source.getManaCostsToPay().getX() + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, source.getManaCostsToPay().getX() + 1)); TargetCardInLibrary target = new TargetCardInLibrary(filter); if (player.searchLibrary(target, game)) { diff --git a/Mage.Sets/src/mage/cards/c/CitanulHierophants.java b/Mage.Sets/src/mage/cards/c/CitanulHierophants.java index 7d56d819728..a88865aa412 100644 --- a/Mage.Sets/src/mage/cards/c/CitanulHierophants.java +++ b/Mage.Sets/src/mage/cards/c/CitanulHierophants.java @@ -27,19 +27,20 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/c/CitanulWoodreaders.java b/Mage.Sets/src/mage/cards/c/CitanulWoodreaders.java index 1a5828e6e27..df94bee01fa 100644 --- a/Mage.Sets/src/mage/cards/c/CitanulWoodreaders.java +++ b/Mage.Sets/src/mage/cards/c/CitanulWoodreaders.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; @@ -37,6 +35,9 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CityOfBrass.java b/Mage.Sets/src/mage/cards/c/CityOfBrass.java index e11560ec32b..43efa9b5a8f 100644 --- a/Mage.Sets/src/mage/cards/c/CityOfBrass.java +++ b/Mage.Sets/src/mage/cards/c/CityOfBrass.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.BecomesTappedSourceTriggeredAbility; import mage.abilities.effects.common.DamageControllerEffect; import mage.abilities.mana.AnyColorManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CityOfShadows.java b/Mage.Sets/src/mage/cards/c/CityOfShadows.java index 1ef78b5c976..9f93b6c82f7 100644 --- a/Mage.Sets/src/mage/cards/c/CityOfShadows.java +++ b/Mage.Sets/src/mage/cards/c/CityOfShadows.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Luna Skyrise diff --git a/Mage.Sets/src/mage/cards/c/CityOfSolitude.java b/Mage.Sets/src/mage/cards/c/CityOfSolitude.java index 03cef0637f7..9bc0c892a3c 100644 --- a/Mage.Sets/src/mage/cards/c/CityOfSolitude.java +++ b/Mage.Sets/src/mage/cards/c/CityOfSolitude.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CityOfTraitors.java b/Mage.Sets/src/mage/cards/c/CityOfTraitors.java index 4ab9c975d95..fec7287d980 100644 --- a/Mage.Sets/src/mage/cards/c/CityOfTraitors.java +++ b/Mage.Sets/src/mage/cards/c/CityOfTraitors.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.Objects; -import java.util.UUID; import mage.Mana; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.common.TapSourceCost; @@ -43,6 +41,9 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.Objects; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CivicGuildmage.java b/Mage.Sets/src/mage/cards/c/CivicGuildmage.java index 4d445a22c09..e066dcb14f6 100644 --- a/Mage.Sets/src/mage/cards/c/CivicGuildmage.java +++ b/Mage.Sets/src/mage/cards/c/CivicGuildmage.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CivicSaber.java b/Mage.Sets/src/mage/cards/c/CivicSaber.java index 560af40380b..c0c275bc9b1 100644 --- a/Mage.Sets/src/mage/cards/c/CivicSaber.java +++ b/Mage.Sets/src/mage/cards/c/CivicSaber.java @@ -37,7 +37,10 @@ import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; diff --git a/Mage.Sets/src/mage/cards/c/CivicWayfinder.java b/Mage.Sets/src/mage/cards/c/CivicWayfinder.java index 2ee0ce9464e..15f572ddccc 100644 --- a/Mage.Sets/src/mage/cards/c/CivicWayfinder.java +++ b/Mage.Sets/src/mage/cards/c/CivicWayfinder.java @@ -27,16 +27,17 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CivilizedScholar.java b/Mage.Sets/src/mage/cards/c/CivilizedScholar.java index ac3986e23a7..b18b64fae2d 100644 --- a/Mage.Sets/src/mage/cards/c/CivilizedScholar.java +++ b/Mage.Sets/src/mage/cards/c/CivilizedScholar.java @@ -27,17 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.TransformAbility; -import mage.cards.h.HomicidalBrute; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.h.HomicidalBrute; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.WatcherScope; @@ -48,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.watchers.Watcher; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/c/ClaimOfErebos.java b/Mage.Sets/src/mage/cards/c/ClaimOfErebos.java index 3b636618f85..9ba1b8c18ed 100644 --- a/Mage.Sets/src/mage/cards/c/ClaimOfErebos.java +++ b/Mage.Sets/src/mage/cards/c/ClaimOfErebos.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,15 +38,13 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Clairvoyance.java b/Mage.Sets/src/mage/cards/c/Clairvoyance.java index a0dd3dd11f4..482a4f88d64 100644 --- a/Mage.Sets/src/mage/cards/c/Clairvoyance.java +++ b/Mage.Sets/src/mage/cards/c/Clairvoyance.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ClanDefiance.java b/Mage.Sets/src/mage/cards/c/ClanDefiance.java index 89bcc5d269c..bf4bad23c5b 100644 --- a/Mage.Sets/src/mage/cards/c/ClanDefiance.java +++ b/Mage.Sets/src/mage/cards/c/ClanDefiance.java @@ -27,20 +27,21 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Mode; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/ClarionUltimatum.java b/Mage.Sets/src/mage/cards/c/ClarionUltimatum.java index 96ffa996870..617ed24dab1 100644 --- a/Mage.Sets/src/mage/cards/c/ClarionUltimatum.java +++ b/Mage.Sets/src/mage/cards/c/ClarionUltimatum.java @@ -27,11 +27,6 @@ */ package mage.cards.c; -import java.util.ArrayList; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -48,6 +43,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledPermanent; +import java.util.*; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/ClashOfWills.java b/Mage.Sets/src/mage/cards/c/ClashOfWills.java index 07b047c5b10..f20e3229948 100644 --- a/Mage.Sets/src/mage/cards/c/ClashOfWills.java +++ b/Mage.Sets/src/mage/cards/c/ClashOfWills.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.CounterUnlessPaysEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/Claustrophobia.java b/Mage.Sets/src/mage/cards/c/Claustrophobia.java index 0d833add9f0..821060f81e1 100644 --- a/Mage.Sets/src/mage/cards/c/Claustrophobia.java +++ b/Mage.Sets/src/mage/cards/c/Claustrophobia.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/c/ClawsOfGix.java b/Mage.Sets/src/mage/cards/c/ClawsOfGix.java index 6a17ffe643d..c03ebdf04a2 100644 --- a/Mage.Sets/src/mage/cards/c/ClawsOfGix.java +++ b/Mage.Sets/src/mage/cards/c/ClawsOfGix.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -37,9 +34,12 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/c/ClawsOfValakut.java b/Mage.Sets/src/mage/cards/c/ClawsOfValakut.java index eb1fe024871..368d5037e07 100644 --- a/Mage.Sets/src/mage/cards/c/ClawsOfValakut.java +++ b/Mage.Sets/src/mage/cards/c/ClawsOfValakut.java @@ -28,11 +28,6 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.AttachEffect; @@ -42,15 +37,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.Outcome; -import mage.constants.TargetController; +import mage.constants.*; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki, North diff --git a/Mage.Sets/src/mage/cards/c/ClawsOfWirewood.java b/Mage.Sets/src/mage/cards/c/ClawsOfWirewood.java index 46873c21fe3..b2b7a709d34 100644 --- a/Mage.Sets/src/mage/cards/c/ClawsOfWirewood.java +++ b/Mage.Sets/src/mage/cards/c/ClawsOfWirewood.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageAllEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ClayStatue.java b/Mage.Sets/src/mage/cards/c/ClayStatue.java index 873163daee5..7c53f8f1d46 100644 --- a/Mage.Sets/src/mage/cards/c/ClayStatue.java +++ b/Mage.Sets/src/mage/cards/c/ClayStatue.java @@ -1,6 +1,5 @@ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -10,6 +9,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Jgod diff --git a/Mage.Sets/src/mage/cards/c/Cleanfall.java b/Mage.Sets/src/mage/cards/c/Cleanfall.java index 989dc7c28fb..246c45f4f0c 100644 --- a/Mage.Sets/src/mage/cards/c/Cleanfall.java +++ b/Mage.Sets/src/mage/cards/c/Cleanfall.java @@ -28,14 +28,14 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterEnchantmentPermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/c/Cleanse.java b/Mage.Sets/src/mage/cards/c/Cleanse.java index 530416393e4..1f32bf6577e 100644 --- a/Mage.Sets/src/mage/cards/c/Cleanse.java +++ b/Mage.Sets/src/mage/cards/c/Cleanse.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CleansingBeam.java b/Mage.Sets/src/mage/cards/c/CleansingBeam.java index f07fdc54df6..25d29c463ef 100644 --- a/Mage.Sets/src/mage/cards/c/CleansingBeam.java +++ b/Mage.Sets/src/mage/cards/c/CleansingBeam.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fenhl diff --git a/Mage.Sets/src/mage/cards/c/CleansingMeditation.java b/Mage.Sets/src/mage/cards/c/CleansingMeditation.java index caa725cdbbd..853e1f099ab 100644 --- a/Mage.Sets/src/mage/cards/c/CleansingMeditation.java +++ b/Mage.Sets/src/mage/cards/c/CleansingMeditation.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/c/Clear.java b/Mage.Sets/src/mage/cards/c/Clear.java index 296d7dd8d94..15e1cecb256 100644 --- a/Mage.Sets/src/mage/cards/c/Clear.java +++ b/Mage.Sets/src/mage/cards/c/Clear.java @@ -28,15 +28,16 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.CyclingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/c/ClearAPath.java b/Mage.Sets/src/mage/cards/c/ClearAPath.java index b178feeeab5..9311e116ccd 100644 --- a/Mage.Sets/src/mage/cards/c/ClearAPath.java +++ b/Mage.Sets/src/mage/cards/c/ClearAPath.java @@ -28,17 +28,18 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ClearShot.java b/Mage.Sets/src/mage/cards/c/ClearShot.java index cab3685ca7a..94b5c2ac043 100644 --- a/Mage.Sets/src/mage/cards/c/ClearShot.java +++ b/Mage.Sets/src/mage/cards/c/ClearShot.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageWithPowerTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -41,6 +40,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ClearwaterGoblet.java b/Mage.Sets/src/mage/cards/c/ClearwaterGoblet.java index 58a79539fcf..6205eca2ea8 100644 --- a/Mage.Sets/src/mage/cards/c/ClearwaterGoblet.java +++ b/Mage.Sets/src/mage/cards/c/ClearwaterGoblet.java @@ -27,19 +27,19 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.dynamicvalue.common.CountersSourceCount; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.keyword.SunburstAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CleaverRiot.java b/Mage.Sets/src/mage/cards/c/CleaverRiot.java index 7eb6fb60fae..549d3db0464 100644 --- a/Mage.Sets/src/mage/cards/c/CleaverRiot.java +++ b/Mage.Sets/src/mage/cards/c/CleaverRiot.java @@ -27,15 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.DoubleStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/ClergyEnVec.java b/Mage.Sets/src/mage/cards/c/ClergyEnVec.java index ad733b68e95..84c3d23ae8d 100644 --- a/Mage.Sets/src/mage/cards/c/ClergyEnVec.java +++ b/Mage.Sets/src/mage/cards/c/ClergyEnVec.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,10 +34,13 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.PreventDamageToTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ClergyOfTheHolyNimbus.java b/Mage.Sets/src/mage/cards/c/ClergyOfTheHolyNimbus.java index 74fcf82fa60..4710dec0a2a 100644 --- a/Mage.Sets/src/mage/cards/c/ClergyOfTheHolyNimbus.java +++ b/Mage.Sets/src/mage/cards/c/ClergyOfTheHolyNimbus.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateOnlyByOpponentActivatedAbility; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/c/ClericOfTheForwardOrder.java b/Mage.Sets/src/mage/cards/c/ClericOfTheForwardOrder.java index c9b52178242..52b369e0a6e 100644 --- a/Mage.Sets/src/mage/cards/c/ClericOfTheForwardOrder.java +++ b/Mage.Sets/src/mage/cards/c/ClericOfTheForwardOrder.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -40,6 +39,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.NamePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CleverImpersonator.java b/Mage.Sets/src/mage/cards/c/CleverImpersonator.java index 36bcc8edd72..5bdb5315758 100644 --- a/Mage.Sets/src/mage/cards/c/CleverImpersonator.java +++ b/Mage.Sets/src/mage/cards/c/CleverImpersonator.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.effects.common.CopyPermanentEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterNonlandPermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/Clickslither.java b/Mage.Sets/src/mage/cards/c/Clickslither.java index a910715d1fa..60737a36b8f 100644 --- a/Mage.Sets/src/mage/cards/c/Clickslither.java +++ b/Mage.Sets/src/mage/cards/c/Clickslither.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CliffThreader.java b/Mage.Sets/src/mage/cards/c/CliffThreader.java index fafced7b1c3..0f043cc31c8 100644 --- a/Mage.Sets/src/mage/cards/c/CliffThreader.java +++ b/Mage.Sets/src/mage/cards/c/CliffThreader.java @@ -28,12 +28,13 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.MountainwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CliffhavenVampire.java b/Mage.Sets/src/mage/cards/c/CliffhavenVampire.java index 34dda148373..8811c5daf0f 100644 --- a/Mage.Sets/src/mage/cards/c/CliffhavenVampire.java +++ b/Mage.Sets/src/mage/cards/c/CliffhavenVampire.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.GainLifeControllerTriggeredAbility; import mage.abilities.effects.common.LoseLifeOpponentsEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CliffrunnerBehemoth.java b/Mage.Sets/src/mage/cards/c/CliffrunnerBehemoth.java index 2143f633b68..d85e673be8e 100644 --- a/Mage.Sets/src/mage/cards/c/CliffrunnerBehemoth.java +++ b/Mage.Sets/src/mage/cards/c/CliffrunnerBehemoth.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -40,11 +37,14 @@ import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CliffsideLookout.java b/Mage.Sets/src/mage/cards/c/CliffsideLookout.java index 6277e750603..2b3d38bcf13 100644 --- a/Mage.Sets/src/mage/cards/c/CliffsideLookout.java +++ b/Mage.Sets/src/mage/cards/c/CliffsideLookout.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ClifftopRetreat.java b/Mage.Sets/src/mage/cards/c/ClifftopRetreat.java index 84cf59a4775..83ed18010bf 100644 --- a/Mage.Sets/src/mage/cards/c/ClifftopRetreat.java +++ b/Mage.Sets/src/mage/cards/c/ClifftopRetreat.java @@ -28,18 +28,18 @@ package mage.cards.c; -import mage.abilities.CountType; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; -import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.condition.InvertCondition; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.RedManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -60,7 +60,7 @@ public class ClifftopRetreat extends CardImpl { public ClifftopRetreat(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Mountain or a Plains"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new RedManaAbility()); diff --git a/Mage.Sets/src/mage/cards/c/ClingingAnemones.java b/Mage.Sets/src/mage/cards/c/ClingingAnemones.java index bd3d1870c54..d3ba465ac46 100644 --- a/Mage.Sets/src/mage/cards/c/ClingingAnemones.java +++ b/Mage.Sets/src/mage/cards/c/ClingingAnemones.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.EvolveAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ClingingDarkness.java b/Mage.Sets/src/mage/cards/c/ClingingDarkness.java index 17a84dabba8..6aab619fea1 100644 --- a/Mage.Sets/src/mage/cards/c/ClingingDarkness.java +++ b/Mage.Sets/src/mage/cards/c/ClingingDarkness.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -37,9 +34,15 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author anonymous */ diff --git a/Mage.Sets/src/mage/cards/c/ClingingMists.java b/Mage.Sets/src/mage/cards/c/ClingingMists.java index 686382183f1..91c2a5d0074 100644 --- a/Mage.Sets/src/mage/cards/c/ClingingMists.java +++ b/Mage.Sets/src/mage/cards/c/ClingingMists.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.FatefulHourCondition; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -47,6 +44,10 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTargets; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/c/ClipWings.java b/Mage.Sets/src/mage/cards/c/ClipWings.java index 3ae7bbe913f..c46cc3ce210 100644 --- a/Mage.Sets/src/mage/cards/c/ClipWings.java +++ b/Mage.Sets/src/mage/cards/c/ClipWings.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.SacrificeOpponentsEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CloakAndDagger.java b/Mage.Sets/src/mage/cards/c/CloakAndDagger.java index 428f3da0aa4..f862bf77b06 100644 --- a/Mage.Sets/src/mage/cards/c/CloakAndDagger.java +++ b/Mage.Sets/src/mage/cards/c/CloakAndDagger.java @@ -27,11 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,11 +38,13 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.SetTargetPointer; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CloakOfFeathers.java b/Mage.Sets/src/mage/cards/c/CloakOfFeathers.java index 80ebf538ee2..797509a1c0b 100644 --- a/Mage.Sets/src/mage/cards/c/CloakOfFeathers.java +++ b/Mage.Sets/src/mage/cards/c/CloakOfFeathers.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FlyingAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CloakOfInvisibility.java b/Mage.Sets/src/mage/cards/c/CloakOfInvisibility.java index 826c6203345..7172a9e1aa6 100644 --- a/Mage.Sets/src/mage/cards/c/CloakOfInvisibility.java +++ b/Mage.Sets/src/mage/cards/c/CloakOfInvisibility.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -37,17 +36,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.PhasingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CloakOfMists.java b/Mage.Sets/src/mage/cards/c/CloakOfMists.java index 569cc16cfa0..31e5ac57e8b 100644 --- a/Mage.Sets/src/mage/cards/c/CloakOfMists.java +++ b/Mage.Sets/src/mage/cards/c/CloakOfMists.java @@ -27,20 +27,21 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.combat.CantBeBlockedAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CloakedSiren.java b/Mage.Sets/src/mage/cards/c/CloakedSiren.java index 2a4288b5a38..3f57617fa9d 100644 --- a/Mage.Sets/src/mage/cards/c/CloakedSiren.java +++ b/Mage.Sets/src/mage/cards/c/CloakedSiren.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.FlyingAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CloakingDevice.java b/Mage.Sets/src/mage/cards/c/CloakingDevice.java index a5126fcff8a..9ac820e96b8 100644 --- a/Mage.Sets/src/mage/cards/c/CloakingDevice.java +++ b/Mage.Sets/src/mage/cards/c/CloakingDevice.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.common.AttacksAttachedTriggeredAbility; @@ -50,6 +49,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/c/ClockOfOmens.java b/Mage.Sets/src/mage/cards/c/ClockOfOmens.java index ba00058afe7..8b4e9d8844b 100644 --- a/Mage.Sets/src/mage/cards/c/ClockOfOmens.java +++ b/Mage.Sets/src/mage/cards/c/ClockOfOmens.java @@ -27,14 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; import mage.abilities.effects.common.UntapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -42,6 +41,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/Clockspinning.java b/Mage.Sets/src/mage/cards/c/Clockspinning.java index e8aab7e5506..5045695cf8e 100644 --- a/Mage.Sets/src/mage/cards/c/Clockspinning.java +++ b/Mage.Sets/src/mage/cards/c/Clockspinning.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; @@ -49,6 +46,10 @@ import mage.players.Player; import mage.target.common.TargetPermanentOrSuspendedCard; import mage.target.targetpointer.FixedTarget; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/c/ClockworkAvian.java b/Mage.Sets/src/mage/cards/c/ClockworkAvian.java index 3dbea9f0410..7a02839cb6f 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkAvian.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkAvian.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EndOfCombatTriggeredAbility; @@ -54,6 +53,8 @@ import mage.counters.Counters; import mage.game.Game; import mage.watchers.common.AttackedOrBlockedThisCombatWatcher; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/c/ClockworkBeast.java b/Mage.Sets/src/mage/cards/c/ClockworkBeast.java index 0a1c06eaf88..b383685e7d5 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkBeast.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkBeast.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EndOfCombatTriggeredAbility; @@ -53,6 +52,8 @@ import mage.counters.Counters; import mage.game.Game; import mage.watchers.common.AttackedOrBlockedThisCombatWatcher; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/c/ClockworkBeetle.java b/Mage.Sets/src/mage/cards/c/ClockworkBeetle.java index 02ca0b368d9..b903893bb59 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkBeetle.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkBeetle.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ClockworkCondor.java b/Mage.Sets/src/mage/cards/c/ClockworkCondor.java index 3c84659583d..b4c0851ca93 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkCondor.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkCondor.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; @@ -45,6 +44,8 @@ import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ClockworkDragon.java b/Mage.Sets/src/mage/cards/c/ClockworkDragon.java index 93e09a59d23..0c4697ba051 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkDragon.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; @@ -48,6 +47,8 @@ import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ClockworkGnomes.java b/Mage.Sets/src/mage/cards/c/ClockworkGnomes.java index 8d67b2e128e..4d1948b6022 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkGnomes.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkGnomes.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author hanasu diff --git a/Mage.Sets/src/mage/cards/c/ClockworkHydra.java b/Mage.Sets/src/mage/cards/c/ClockworkHydra.java index 50a66752573..8eb6d45d8fa 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkHydra.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkHydra.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; @@ -51,6 +50,8 @@ import mage.target.Target; import mage.target.common.TargetCreatureOrPlayer; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ClockworkVorrac.java b/Mage.Sets/src/mage/cards/c/ClockworkVorrac.java index 38aa0d063f3..14c90d799b8 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkVorrac.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkVorrac.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; @@ -48,6 +47,8 @@ import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CloisteredYouth.java b/Mage.Sets/src/mage/cards/c/CloisteredYouth.java index c9abeabff62..a758eb45d4f 100644 --- a/Mage.Sets/src/mage/cards/c/CloisteredYouth.java +++ b/Mage.Sets/src/mage/cards/c/CloisteredYouth.java @@ -27,18 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.TransformAbility; -import mage.cards.u.UnholyFiend; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.u.UnholyFiend; +import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/Clone.java b/Mage.Sets/src/mage/cards/c/Clone.java index a46d26ca679..86731abe95c 100644 --- a/Mage.Sets/src/mage/cards/c/Clone.java +++ b/Mage.Sets/src/mage/cards/c/Clone.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.effects.common.CopyPermanentEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/CloneLegion.java b/Mage.Sets/src/mage/cards/c/CloneLegion.java index 6b7f0433ee3..7a88b5adc19 100644 --- a/Mage.Sets/src/mage/cards/c/CloneLegion.java +++ b/Mage.Sets/src/mage/cards/c/CloneLegion.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.PutTokenOntoBattlefieldCopyTargetEffect; @@ -42,6 +41,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CloneShell.java b/Mage.Sets/src/mage/cards/c/CloneShell.java index 42b43908a63..7bb753fd25c 100644 --- a/Mage.Sets/src/mage/cards/c/CloneShell.java +++ b/Mage.Sets/src/mage/cards/c/CloneShell.java @@ -27,18 +27,12 @@ */ package mage.cards.c; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -48,6 +42,9 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetCard; +import java.util.List; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/c/CloseQuarters.java b/Mage.Sets/src/mage/cards/c/CloseQuarters.java index a6e9a21fcc8..8e8b51ddc2b 100644 --- a/Mage.Sets/src/mage/cards/c/CloseQuarters.java +++ b/Mage.Sets/src/mage/cards/c/CloseQuarters.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BecomesBlockedAllTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; @@ -39,6 +38,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ClotSliver.java b/Mage.Sets/src/mage/cards/c/ClotSliver.java index 5e54bcba446..b2d87fd0fd1 100644 --- a/Mage.Sets/src/mage/cards/c/ClotSliver.java +++ b/Mage.Sets/src/mage/cards/c/ClotSliver.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -38,11 +35,14 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/c/CloudCover.java b/Mage.Sets/src/mage/cards/c/CloudCover.java index f75f3cbc227..258a211c8d1 100644 --- a/Mage.Sets/src/mage/cards/c/CloudCover.java +++ b/Mage.Sets/src/mage/cards/c/CloudCover.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; @@ -41,6 +40,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CloudCrusader.java b/Mage.Sets/src/mage/cards/c/CloudCrusader.java index 4d72f3ceece..ea78665fd11 100644 --- a/Mage.Sets/src/mage/cards/c/CloudCrusader.java +++ b/Mage.Sets/src/mage/cards/c/CloudCrusader.java @@ -28,13 +28,14 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CloudDjinn.java b/Mage.Sets/src/mage/cards/c/CloudDjinn.java index 16f3854f6a4..53bb51c84ce 100644 --- a/Mage.Sets/src/mage/cards/c/CloudDjinn.java +++ b/Mage.Sets/src/mage/cards/c/CloudDjinn.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CanBlockOnlyFlyingAbility; import mage.abilities.keyword.FlyingAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CloudDragon.java b/Mage.Sets/src/mage/cards/c/CloudDragon.java index b75e3b1eb62..57e1c7b6029 100644 --- a/Mage.Sets/src/mage/cards/c/CloudDragon.java +++ b/Mage.Sets/src/mage/cards/c/CloudDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CanBlockOnlyFlyingAbility; import mage.abilities.keyword.FlyingAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/c/CloudElemental.java b/Mage.Sets/src/mage/cards/c/CloudElemental.java index 19c46314bf7..b885c8dc1fe 100644 --- a/Mage.Sets/src/mage/cards/c/CloudElemental.java +++ b/Mage.Sets/src/mage/cards/c/CloudElemental.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CanBlockOnlyFlyingAbility; import mage.abilities.keyword.FlyingAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/CloudKey.java b/Mage.Sets/src/mage/cards/c/CloudKey.java index fdbe0ecb9f7..102b777044a 100644 --- a/Mage.Sets/src/mage/cards/c/CloudKey.java +++ b/Mage.Sets/src/mage/cards/c/CloudKey.java @@ -5,7 +5,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.SpellAbility; @@ -16,17 +15,15 @@ import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.choices.ChoiceImpl; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.stack.Spell; import mage.players.Player; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author nick.myers diff --git a/Mage.Sets/src/mage/cards/c/CloudManta.java b/Mage.Sets/src/mage/cards/c/CloudManta.java index 967d2d1723e..39a8d105e94 100644 --- a/Mage.Sets/src/mage/cards/c/CloudManta.java +++ b/Mage.Sets/src/mage/cards/c/CloudManta.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CloudOfFaeries.java b/Mage.Sets/src/mage/cards/c/CloudOfFaeries.java index b08a50c48de..4a0842b3794 100644 --- a/Mage.Sets/src/mage/cards/c/CloudOfFaeries.java +++ b/Mage.Sets/src/mage/cards/c/CloudOfFaeries.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +35,9 @@ import mage.abilities.keyword.CyclingAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CloudPirates.java b/Mage.Sets/src/mage/cards/c/CloudPirates.java index 86d526ea1e5..bd7c4bb0b30 100644 --- a/Mage.Sets/src/mage/cards/c/CloudPirates.java +++ b/Mage.Sets/src/mage/cards/c/CloudPirates.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CanBlockOnlyFlyingAbility; import mage.abilities.keyword.FlyingAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CloudSpirit.java b/Mage.Sets/src/mage/cards/c/CloudSpirit.java index 7542a6cfca1..7e142c9061f 100644 --- a/Mage.Sets/src/mage/cards/c/CloudSpirit.java +++ b/Mage.Sets/src/mage/cards/c/CloudSpirit.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CanBlockOnlyFlyingAbility; import mage.abilities.keyword.FlyingAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author michael.napoleon@gmail.com diff --git a/Mage.Sets/src/mage/cards/c/CloudSprite.java b/Mage.Sets/src/mage/cards/c/CloudSprite.java index 064e14ff460..314879f3636 100644 --- a/Mage.Sets/src/mage/cards/c/CloudSprite.java +++ b/Mage.Sets/src/mage/cards/c/CloudSprite.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CanBlockOnlyFlyingAbility; import mage.abilities.keyword.FlyingAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/Cloudblazer.java b/Mage.Sets/src/mage/cards/c/Cloudblazer.java index 3e7afa3721b..8594dc77e57 100644 --- a/Mage.Sets/src/mage/cards/c/Cloudblazer.java +++ b/Mage.Sets/src/mage/cards/c/Cloudblazer.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CloudchaserEagle.java b/Mage.Sets/src/mage/cards/c/CloudchaserEagle.java index 32a2774c640..286e0eff35b 100644 --- a/Mage.Sets/src/mage/cards/c/CloudchaserEagle.java +++ b/Mage.Sets/src/mage/cards/c/CloudchaserEagle.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -36,8 +34,11 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CloudchaserKestrel.java b/Mage.Sets/src/mage/cards/c/CloudchaserKestrel.java index 68f702b2850..3f3bdab8c38 100644 --- a/Mage.Sets/src/mage/cards/c/CloudchaserKestrel.java +++ b/Mage.Sets/src/mage/cards/c/CloudchaserKestrel.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CloudcrestLake.java b/Mage.Sets/src/mage/cards/c/CloudcrestLake.java index 4b87408b363..c2d8a5f5b7f 100644 --- a/Mage.Sets/src/mage/cards/c/CloudcrestLake.java +++ b/Mage.Sets/src/mage/cards/c/CloudcrestLake.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; import mage.abilities.mana.BlueManaAbility; @@ -37,6 +34,9 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CloudcrownOak.java b/Mage.Sets/src/mage/cards/c/CloudcrownOak.java index e3ff864ca67..ed2faef8655 100644 --- a/Mage.Sets/src/mage/cards/c/CloudcrownOak.java +++ b/Mage.Sets/src/mage/cards/c/CloudcrownOak.java @@ -27,11 +27,11 @@ */ package mage.cards.c; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/c/CloudfinRaptor.java b/Mage.Sets/src/mage/cards/c/CloudfinRaptor.java index 719aaefce89..24e62f2967b 100644 --- a/Mage.Sets/src/mage/cards/c/CloudfinRaptor.java +++ b/Mage.Sets/src/mage/cards/c/CloudfinRaptor.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.EvolveAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/Cloudform.java b/Mage.Sets/src/mage/cards/c/Cloudform.java index 1c3061052fc..04cf45d3473 100644 --- a/Mage.Sets/src/mage/cards/c/Cloudform.java +++ b/Mage.Sets/src/mage/cards/c/Cloudform.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BecomesAuraAttachToManifestSourceEffect; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CloudgoatRanger.java b/Mage.Sets/src/mage/cards/c/CloudgoatRanger.java index 17405decbfc..c312b410f95 100644 --- a/Mage.Sets/src/mage/cards/c/CloudgoatRanger.java +++ b/Mage.Sets/src/mage/cards/c/CloudgoatRanger.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -50,6 +49,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.game.permanent.token.KithkinToken; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CloudheathDrake.java b/Mage.Sets/src/mage/cards/c/CloudheathDrake.java index 33b7363cf84..53bdf1f125e 100644 --- a/Mage.Sets/src/mage/cards/c/CloudheathDrake.java +++ b/Mage.Sets/src/mage/cards/c/CloudheathDrake.java @@ -28,11 +28,6 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.Zone; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,6 +36,11 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CloudhoofKirin.java b/Mage.Sets/src/mage/cards/c/CloudhoofKirin.java index 7c1cab7e9db..2018196354c 100644 --- a/Mage.Sets/src/mage/cards/c/CloudhoofKirin.java +++ b/Mage.Sets/src/mage/cards/c/CloudhoofKirin.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -37,6 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterSpiritOrArcaneCard; import mage.game.Game; @@ -45,6 +45,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +55,7 @@ public class CloudhoofKirin extends CardImpl { public CloudhoofKirin(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Kirin"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/c/Cloudpost.java b/Mage.Sets/src/mage/cards/c/Cloudpost.java index aebf4d3e875..c32e8c56ce2 100644 --- a/Mage.Sets/src/mage/cards/c/Cloudpost.java +++ b/Mage.Sets/src/mage/cards/c/Cloudpost.java @@ -27,17 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.Mana; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.mana.DynamicManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/c/CloudreachCavalry.java b/Mage.Sets/src/mage/cards/c/CloudreachCavalry.java index e4e235a3214..0bc0acb27c9 100644 --- a/Mage.Sets/src/mage/cards/c/CloudreachCavalry.java +++ b/Mage.Sets/src/mage/cards/c/CloudreachCavalry.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/Cloudseeder.java b/Mage.Sets/src/mage/cards/c/Cloudseeder.java index 076bc73c29c..1f15955224b 100644 --- a/Mage.Sets/src/mage/cards/c/Cloudseeder.java +++ b/Mage.Sets/src/mage/cards/c/Cloudseeder.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CanBlockOnlyFlyingAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/Cloudshift.java b/Mage.Sets/src/mage/cards/c/Cloudshift.java index b1119bd4b9a..ce9a998717d 100644 --- a/Mage.Sets/src/mage/cards/c/Cloudshift.java +++ b/Mage.Sets/src/mage/cards/c/Cloudshift.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.ExileTargetForSourceEffect; import mage.abilities.effects.common.ReturnToBattlefieldUnderYourControlTargetEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author noxx diff --git a/Mage.Sets/src/mage/cards/c/Cloudskate.java b/Mage.Sets/src/mage/cards/c/Cloudskate.java index 787b202217f..81b1a454693 100644 --- a/Mage.Sets/src/mage/cards/c/Cloudskate.java +++ b/Mage.Sets/src/mage/cards/c/Cloudskate.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FadingAbility; import mage.abilities.keyword.FlyingAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author markedagain diff --git a/Mage.Sets/src/mage/cards/c/CloudstoneCurio.java b/Mage.Sets/src/mage/cards/c/CloudstoneCurio.java index 31844136695..ff194e0b97e 100644 --- a/Mage.Sets/src/mage/cards/c/CloudstoneCurio.java +++ b/Mage.Sets/src/mage/cards/c/CloudstoneCurio.java @@ -27,19 +27,12 @@ */ package mage.cards.c; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -50,6 +43,10 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Cloudthresher.java b/Mage.Sets/src/mage/cards/c/Cloudthresher.java index 6452181643b..f40f5b6d675 100644 --- a/Mage.Sets/src/mage/cards/c/Cloudthresher.java +++ b/Mage.Sets/src/mage/cards/c/Cloudthresher.java @@ -27,22 +27,23 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.effects.common.DamagePlayersEffect; -import mage.abilities.keyword.FlashAbility; -import mage.abilities.keyword.ReachAbility; import mage.abilities.keyword.EvokeAbility; +import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CloutOfTheDominus.java b/Mage.Sets/src/mage/cards/c/CloutOfTheDominus.java index cc734762765..cca194cda88 100644 --- a/Mage.Sets/src/mage/cards/c/CloutOfTheDominus.java +++ b/Mage.Sets/src/mage/cards/c/CloutOfTheDominus.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -39,15 +38,17 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.ShroudAbility; -import mage.constants.CardType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AttachmentType; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/ClovenCasting.java b/Mage.Sets/src/mage/cards/c/ClovenCasting.java index eea8864f432..27ae85f10a4 100644 --- a/Mage.Sets/src/mage/cards/c/ClovenCasting.java +++ b/Mage.Sets/src/mage/cards/c/ClovenCasting.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.Effect; @@ -41,6 +40,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.MulticoloredPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/ClutchOfCurrents.java b/Mage.Sets/src/mage/cards/c/ClutchOfCurrents.java index 9a0ea6d406f..54e5ac9db1a 100644 --- a/Mage.Sets/src/mage/cards/c/ClutchOfCurrents.java +++ b/Mage.Sets/src/mage/cards/c/ClutchOfCurrents.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.AwakenAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ClutchOfTheUndercity.java b/Mage.Sets/src/mage/cards/c/ClutchOfTheUndercity.java index 7609cecaaf3..0b7784ac6cd 100644 --- a/Mage.Sets/src/mage/cards/c/ClutchOfTheUndercity.java +++ b/Mage.Sets/src/mage/cards/c/ClutchOfTheUndercity.java @@ -27,16 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.LoseLifeTargetControllerEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.TransmuteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/c/CoalGolem.java b/Mage.Sets/src/mage/cards/c/CoalGolem.java index dbb9a1e40ab..a6d914452de 100644 --- a/Mage.Sets/src/mage/cards/c/CoalGolem.java +++ b/Mage.Sets/src/mage/cards/c/CoalGolem.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CoalStoker.java b/Mage.Sets/src/mage/cards/c/CoalStoker.java index 8692968bda8..3af3fca1cb4 100644 --- a/Mage.Sets/src/mage/cards/c/CoalStoker.java +++ b/Mage.Sets/src/mage/cards/c/CoalStoker.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * * @author ilcartographer @@ -54,7 +55,7 @@ public class CoalStoker extends CardImpl { // When Coal Stoker enters the battlefield, if you cast it from your hand, add {R}{R}{R} to your mana pool. this.addAbility(new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new BasicManaEffect(Mana.RedMana(3)), false), - new CastFromHandSourceCondition(), + CastFromHandSourceCondition.instance, "When {this} enters the battlefield, if you cast it from your hand, add {R}{R}{R} to your mana pool."), new CastFromHandWatcher()); } diff --git a/Mage.Sets/src/mage/cards/c/CoalitionFlag.java b/Mage.Sets/src/mage/cards/c/CoalitionFlag.java index d4edb5ff740..20080703141 100644 --- a/Mage.Sets/src/mage/cards/c/CoalitionFlag.java +++ b/Mage.Sets/src/mage/cards/c/CoalitionFlag.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -36,15 +35,13 @@ import mage.abilities.effects.common.ruleModifying.TargetsHaveToTargetPermanentI import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CoalitionHonorGuard.java b/Mage.Sets/src/mage/cards/c/CoalitionHonorGuard.java index 26721d9951d..bd20e61a0b2 100644 --- a/Mage.Sets/src/mage/cards/c/CoalitionHonorGuard.java +++ b/Mage.Sets/src/mage/cards/c/CoalitionHonorGuard.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.ruleModifying.TargetsHaveToTargetPermanentIfAbleEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterPermanent; +import java.util.UUID; + /** * Cardname: Coalition Honor Guard * diff --git a/Mage.Sets/src/mage/cards/c/CoalitionRelic.java b/Mage.Sets/src/mage/cards/c/CoalitionRelic.java index b9ae1581139..a127b10e996 100644 --- a/Mage.Sets/src/mage/cards/c/CoalitionRelic.java +++ b/Mage.Sets/src/mage/cards/c/CoalitionRelic.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.BeginningOfPreCombatMainTriggeredAbility; @@ -48,6 +47,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CoalitionVictory.java b/Mage.Sets/src/mage/cards/c/CoalitionVictory.java index 0bcffaf98d3..625cb91e0dd 100644 --- a/Mage.Sets/src/mage/cards/c/CoalitionVictory.java +++ b/Mage.Sets/src/mage/cards/c/CoalitionVictory.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.condition.Condition; @@ -42,6 +41,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CoastWatcher.java b/Mage.Sets/src/mage/cards/c/CoastWatcher.java index 713fa18c765..ad170175350 100644 --- a/Mage.Sets/src/mage/cards/c/CoastWatcher.java +++ b/Mage.Sets/src/mage/cards/c/CoastWatcher.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.FlyingAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CoastalBreach.java b/Mage.Sets/src/mage/cards/c/CoastalBreach.java index f2515fc2310..3833d056c4d 100644 --- a/Mage.Sets/src/mage/cards/c/CoastalBreach.java +++ b/Mage.Sets/src/mage/cards/c/CoastalBreach.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.ReturnToHandFromBattlefieldAllEffect; import mage.abilities.keyword.UndauntedAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterNonlandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CoastalDiscovery.java b/Mage.Sets/src/mage/cards/c/CoastalDiscovery.java index 99883d794ec..cce4a96490c 100644 --- a/Mage.Sets/src/mage/cards/c/CoastalDiscovery.java +++ b/Mage.Sets/src/mage/cards/c/CoastalDiscovery.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.AwakenAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CoastalDrake.java b/Mage.Sets/src/mage/cards/c/CoastalDrake.java index 1acffa9bb05..80e6181c763 100644 --- a/Mage.Sets/src/mage/cards/c/CoastalDrake.java +++ b/Mage.Sets/src/mage/cards/c/CoastalDrake.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CoastalHornclaw.java b/Mage.Sets/src/mage/cards/c/CoastalHornclaw.java index 09992b1ddb7..ab64a15be09 100644 --- a/Mage.Sets/src/mage/cards/c/CoastalHornclaw.java +++ b/Mage.Sets/src/mage/cards/c/CoastalHornclaw.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -37,12 +34,15 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CoastalPiracy.java b/Mage.Sets/src/mage/cards/c/CoastalPiracy.java index f9bbec209ee..d278dd3ff7e 100644 --- a/Mage.Sets/src/mage/cards/c/CoastalPiracy.java +++ b/Mage.Sets/src/mage/cards/c/CoastalPiracy.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; @@ -40,6 +39,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Xavierv3131 diff --git a/Mage.Sets/src/mage/cards/c/CoastalTower.java b/Mage.Sets/src/mage/cards/c/CoastalTower.java index 814a14f8ef8..7e420a9e650 100644 --- a/Mage.Sets/src/mage/cards/c/CoastalTower.java +++ b/Mage.Sets/src/mage/cards/c/CoastalTower.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.BlueManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CoastalWizard.java b/Mage.Sets/src/mage/cards/c/CoastalWizard.java index ed493efad4f..95fbdc5c08d 100644 --- a/Mage.Sets/src/mage/cards/c/CoastalWizard.java +++ b/Mage.Sets/src/mage/cards/c/CoastalWizard.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -66,7 +67,7 @@ public class CoastalWizard extends CardImpl { Effect effect = new ReturnToHandSourceEffect(true); effect.setText("Return Coastal Wizard"); Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - effect, new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + effect, new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); effect = new ReturnToHandTargetEffect(); effect.setText("and another target creature to their owners' hands"); ability.addTarget(new TargetCreaturePermanent(filter)); diff --git a/Mage.Sets/src/mage/cards/c/CoastlineChimera.java b/Mage.Sets/src/mage/cards/c/CoastlineChimera.java index b8a06e49f86..e6d825b72e8 100644 --- a/Mage.Sets/src/mage/cards/c/CoastlineChimera.java +++ b/Mage.Sets/src/mage/cards/c/CoastlineChimera.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CoatOfArms.java b/Mage.Sets/src/mage/cards/c/CoatOfArms.java index 515048f64e2..fea7421fcee 100644 --- a/Mage.Sets/src/mage/cards/c/CoatOfArms.java +++ b/Mage.Sets/src/mage/cards/c/CoatOfArms.java @@ -27,25 +27,21 @@ */ package mage.cards.c; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.keyword.ChangelingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.util.CardUtil; +import java.util.List; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CoatWithVenom.java b/Mage.Sets/src/mage/cards/c/CoatWithVenom.java index 854f068245c..118ee78cd89 100644 --- a/Mage.Sets/src/mage/cards/c/CoatWithVenom.java +++ b/Mage.Sets/src/mage/cards/c/CoatWithVenom.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CoaxFromTheBlindEternities.java b/Mage.Sets/src/mage/cards/c/CoaxFromTheBlindEternities.java index baafd7e331d..b6bd03c3bd5 100644 --- a/Mage.Sets/src/mage/cards/c/CoaxFromTheBlindEternities.java +++ b/Mage.Sets/src/mage/cards/c/CoaxFromTheBlindEternities.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.WishEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CobaltGolem.java b/Mage.Sets/src/mage/cards/c/CobaltGolem.java index 01152d17ad5..e9616755f9a 100644 --- a/Mage.Sets/src/mage/cards/c/CobaltGolem.java +++ b/Mage.Sets/src/mage/cards/c/CobaltGolem.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,9 +34,12 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/Cobblebrute.java b/Mage.Sets/src/mage/cards/c/Cobblebrute.java index b58afffeba1..dfd6294f6c7 100644 --- a/Mage.Sets/src/mage/cards/c/Cobblebrute.java +++ b/Mage.Sets/src/mage/cards/c/Cobblebrute.java @@ -28,11 +28,12 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CobbledWings.java b/Mage.Sets/src/mage/cards/c/CobbledWings.java index 74a815ff424..cdf347ee2a4 100644 --- a/Mage.Sets/src/mage/cards/c/CobbledWings.java +++ b/Mage.Sets/src/mage/cards/c/CobbledWings.java @@ -27,12 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; @@ -40,6 +34,12 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CobraTrap.java b/Mage.Sets/src/mage/cards/c/CobraTrap.java index fa858a096e5..ce895f6bdb1 100644 --- a/Mage.Sets/src/mage/cards/c/CobraTrap.java +++ b/Mage.Sets/src/mage/cards/c/CobraTrap.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.Condition; import mage.abilities.costs.AlternativeCostSourceAbility; @@ -47,6 +44,10 @@ import mage.game.permanent.token.SnakeToken; import mage.game.stack.StackObject; import mage.watchers.Watcher; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author Rafbill diff --git a/Mage.Sets/src/mage/cards/c/Cockatrice.java b/Mage.Sets/src/mage/cards/c/Cockatrice.java index d5e5e86e94d..41b24157063 100644 --- a/Mage.Sets/src/mage/cards/c/Cockatrice.java +++ b/Mage.Sets/src/mage/cards/c/Cockatrice.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/c/CodexShredder.java b/Mage.Sets/src/mage/cards/c/CodexShredder.java index 56adbb5e7de..455819352ca 100644 --- a/Mage.Sets/src/mage/cards/c/CodexShredder.java +++ b/Mage.Sets/src/mage/cards/c/CodexShredder.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.TapSourceCost; @@ -38,10 +35,13 @@ import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * @author LevelX2 */ diff --git a/Mage.Sets/src/mage/cards/c/CoercedConfession.java b/Mage.Sets/src/mage/cards/c/CoercedConfession.java index a35e813179c..962fa5e7ab1 100644 --- a/Mage.Sets/src/mage/cards/c/CoercedConfession.java +++ b/Mage.Sets/src/mage/cards/c/CoercedConfession.java @@ -27,22 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Coercion.java b/Mage.Sets/src/mage/cards/c/Coercion.java index f646d32aa14..8815c6e96d7 100644 --- a/Mage.Sets/src/mage/cards/c/Coercion.java +++ b/Mage.Sets/src/mage/cards/c/Coercion.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.discard.DiscardCardYouChooseTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CoercivePortal.java b/Mage.Sets/src/mage/cards/c/CoercivePortal.java index fb508f989f8..52db99d9039 100644 --- a/Mage.Sets/src/mage/cards/c/CoercivePortal.java +++ b/Mage.Sets/src/mage/cards/c/CoercivePortal.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -42,6 +41,8 @@ import mage.filter.common.FilterNonlandPermanent; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CoffinPurge.java b/Mage.Sets/src/mage/cards/c/CoffinPurge.java index bfdf3c82faf..d1309764dd5 100644 --- a/Mage.Sets/src/mage/cards/c/CoffinPurge.java +++ b/Mage.Sets/src/mage/cards/c/CoffinPurge.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.keyword.FlashbackAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.TimingRule; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author cbt33, jonubuu (Withered Wretch) diff --git a/Mage.Sets/src/mage/cards/c/CoffinQueen.java b/Mage.Sets/src/mage/cards/c/CoffinQueen.java index b51adf9b8d2..d896a2a69d9 100644 --- a/Mage.Sets/src/mage/cards/c/CoffinQueen.java +++ b/Mage.Sets/src/mage/cards/c/CoffinQueen.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -52,6 +51,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCardInGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/Cognivore.java b/Mage.Sets/src/mage/cards/c/Cognivore.java index e9cd73bd61b..518ea6abe05 100644 --- a/Mage.Sets/src/mage/cards/c/Cognivore.java +++ b/Mage.Sets/src/mage/cards/c/Cognivore.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/c/CogworkAssembler.java b/Mage.Sets/src/mage/cards/c/CogworkAssembler.java index 0432779b8ba..c8ccf8ae782 100644 --- a/Mage.Sets/src/mage/cards/c/CogworkAssembler.java +++ b/Mage.Sets/src/mage/cards/c/CogworkAssembler.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -47,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetArtifactPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/c/CogworkersPuzzleknot.java b/Mage.Sets/src/mage/cards/c/CogworkersPuzzleknot.java index 4f7fd74e96e..eea00b19660 100644 --- a/Mage.Sets/src/mage/cards/c/CogworkersPuzzleknot.java +++ b/Mage.Sets/src/mage/cards/c/CogworkersPuzzleknot.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.game.permanent.token.ServoToken; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CoiledTinviper.java b/Mage.Sets/src/mage/cards/c/CoiledTinviper.java index 1f7a0559f40..757ebb1648d 100644 --- a/Mage.Sets/src/mage/cards/c/CoiledTinviper.java +++ b/Mage.Sets/src/mage/cards/c/CoiledTinviper.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CoilingOracle.java b/Mage.Sets/src/mage/cards/c/CoilingOracle.java index 322db21d7fc..b355acf8c4a 100644 --- a/Mage.Sets/src/mage/cards/c/CoilingOracle.java +++ b/Mage.Sets/src/mage/cards/c/CoilingOracle.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.RevealTopLandToBattlefieldElseHandEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * @author mluds */ diff --git a/Mage.Sets/src/mage/cards/c/ColdEyedSelkie.java b/Mage.Sets/src/mage/cards/c/ColdEyedSelkie.java index 3c3fe6b837b..5e512246365 100644 --- a/Mage.Sets/src/mage/cards/c/ColdEyedSelkie.java +++ b/Mage.Sets/src/mage/cards/c/ColdEyedSelkie.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -40,6 +39,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ColdSnap.java b/Mage.Sets/src/mage/cards/c/ColdSnap.java index ce5e5115ee9..db251815e34 100644 --- a/Mage.Sets/src/mage/cards/c/ColdSnap.java +++ b/Mage.Sets/src/mage/cards/c/ColdSnap.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -36,15 +35,14 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.CumulativeUpkeepAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes @@ -76,7 +74,7 @@ class ColdSnapDamageTargetEffect extends OneShotEffect{ private static final FilterLandPermanent filter = new FilterLandPermanent("snow lands"); static { - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); } public ColdSnapDamageTargetEffect() diff --git a/Mage.Sets/src/mage/cards/c/ColdStorage.java b/Mage.Sets/src/mage/cards/c/ColdStorage.java index fb88c2c72b6..28494580620 100644 --- a/Mage.Sets/src/mage/cards/c/ColdStorage.java +++ b/Mage.Sets/src/mage/cards/c/ColdStorage.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/ColdsteelHeart.java b/Mage.Sets/src/mage/cards/c/ColdsteelHeart.java index 4e59c9eb3ad..283769d5dfb 100644 --- a/Mage.Sets/src/mage/cards/c/ColdsteelHeart.java +++ b/Mage.Sets/src/mage/cards/c/ColdsteelHeart.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.ObjectColor; import mage.abilities.Ability; @@ -39,13 +38,12 @@ import mage.abilities.effects.common.ManaEffect; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author Plopman @@ -54,7 +52,7 @@ public class ColdsteelHeart extends CardImpl { public ColdsteelHeart(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); - this.supertype.add("Snow"); + this.addSuperType(SuperType.SNOW); // Coldsteel Heart enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); diff --git a/Mage.Sets/src/mage/cards/c/ColfenorsPlans.java b/Mage.Sets/src/mage/cards/c/ColfenorsPlans.java index d1fd6e37a19..5d8a3be932d 100644 --- a/Mage.Sets/src/mage/cards/c/ColfenorsPlans.java +++ b/Mage.Sets/src/mage/cards/c/ColfenorsPlans.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,17 +38,14 @@ import mage.abilities.effects.common.continuous.CantCastMoreThanOneSpellEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.ExileZone; import mage.game.Game; import mage.players.Player; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/c/ColfenorsUrn.java b/Mage.Sets/src/mage/cards/c/ColfenorsUrn.java index 0c477bc253c..4d6fac944eb 100644 --- a/Mage.Sets/src/mage/cards/c/ColfenorsUrn.java +++ b/Mage.Sets/src/mage/cards/c/ColfenorsUrn.java @@ -27,9 +27,9 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.condition.Condition; @@ -41,7 +41,6 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.game.ExileZone; @@ -50,6 +49,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author Styxo @@ -59,7 +60,7 @@ public class ColfenorsUrn extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature with toughness 4 or greater"); static { - filter.add(new ToughnessPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 3)); } public ColfenorsUrn(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/c/CollapsingBorders.java b/Mage.Sets/src/mage/cards/c/CollapsingBorders.java index b99b7dfd7fa..5086cf77b23 100644 --- a/Mage.Sets/src/mage/cards/c/CollapsingBorders.java +++ b/Mage.Sets/src/mage/cards/c/CollapsingBorders.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.dynamicvalue.common.DomainValue; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CollateralDamage.java b/Mage.Sets/src/mage/cards/c/CollateralDamage.java index 351f61d63c4..ba1c3eea69f 100644 --- a/Mage.Sets/src/mage/cards/c/CollateralDamage.java +++ b/Mage.Sets/src/mage/cards/c/CollateralDamage.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CollectedCompany.java b/Mage.Sets/src/mage/cards/c/CollectedCompany.java index d48828e2d8b..219a992b0e9 100644 --- a/Mage.Sets/src/mage/cards/c/CollectedCompany.java +++ b/Mage.Sets/src/mage/cards/c/CollectedCompany.java @@ -27,17 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -48,7 +49,7 @@ public class CollectedCompany extends CardImpl { static { filter.add(new CardTypePredicate(CardType.CREATURE)); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public CollectedCompany(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/c/CollectiveBlessing.java b/Mage.Sets/src/mage/cards/c/CollectiveBlessing.java index 4ba7440be6c..4c189b81ee3 100644 --- a/Mage.Sets/src/mage/cards/c/CollectiveBlessing.java +++ b/Mage.Sets/src/mage/cards/c/CollectiveBlessing.java @@ -27,15 +27,15 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CollectiveBrutality.java b/Mage.Sets/src/mage/cards/c/CollectiveBrutality.java index 26e78211ab8..3d9715f2a2c 100644 --- a/Mage.Sets/src/mage/cards/c/CollectiveBrutality.java +++ b/Mage.Sets/src/mage/cards/c/CollectiveBrutality.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.costs.Cost; import mage.abilities.costs.common.DiscardCardCost; @@ -51,6 +50,8 @@ import mage.filter.predicate.other.PlayerPredicate; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CollectiveDefiance.java b/Mage.Sets/src/mage/cards/c/CollectiveDefiance.java index 9316190a893..7eb47ab014f 100644 --- a/Mage.Sets/src/mage/cards/c/CollectiveDefiance.java +++ b/Mage.Sets/src/mage/cards/c/CollectiveDefiance.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.costs.mana.GenericManaCost; @@ -49,6 +48,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CollectiveEffort.java b/Mage.Sets/src/mage/cards/c/CollectiveEffort.java index 8df3f87cde7..38efbd27faf 100644 --- a/Mage.Sets/src/mage/cards/c/CollectiveEffort.java +++ b/Mage.Sets/src/mage/cards/c/CollectiveEffort.java @@ -27,8 +27,8 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.costs.Cost; import mage.abilities.costs.common.TapTargetCost; @@ -41,7 +41,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.FilterPlayer; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; @@ -57,6 +56,8 @@ import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -70,7 +71,7 @@ public class CollectiveEffort extends CardImpl { static { filterUntapped.add(Predicates.not(new TappedPredicate())); - filterDestroyCreature.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filterDestroyCreature.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public CollectiveEffort(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/c/CollectiveRestraint.java b/Mage.Sets/src/mage/cards/c/CollectiveRestraint.java index a956c845950..45fc31eb50f 100644 --- a/Mage.Sets/src/mage/cards/c/CollectiveRestraint.java +++ b/Mage.Sets/src/mage/cards/c/CollectiveRestraint.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCosts; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author Simown diff --git a/Mage.Sets/src/mage/cards/c/CollectiveUnconscious.java b/Mage.Sets/src/mage/cards/c/CollectiveUnconscious.java index 4d73d5deb03..2fa19c54756 100644 --- a/Mage.Sets/src/mage/cards/c/CollectiveUnconscious.java +++ b/Mage.Sets/src/mage/cards/c/CollectiveUnconscious.java @@ -27,14 +27,15 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CollectiveVoyage.java b/Mage.Sets/src/mage/cards/c/CollectiveVoyage.java index 2b2e75acdde..d3d4ce30d9b 100644 --- a/Mage.Sets/src/mage/cards/c/CollectiveVoyage.java +++ b/Mage.Sets/src/mage/cards/c/CollectiveVoyage.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.Objects; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.mana.GenericManaCost; @@ -44,6 +42,9 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.Objects; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ColosYearling.java b/Mage.Sets/src/mage/cards/c/ColosYearling.java index a9dc44558d5..6ee6640ebae 100644 --- a/Mage.Sets/src/mage/cards/c/ColosYearling.java +++ b/Mage.Sets/src/mage/cards/c/ColosYearling.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ColossalHeroics.java b/Mage.Sets/src/mage/cards/c/ColossalHeroics.java index bcad9fda9e0..3d3375c462b 100644 --- a/Mage.Sets/src/mage/cards/c/ColossalHeroics.java +++ b/Mage.Sets/src/mage/cards/c/ColossalHeroics.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.abilityword.StriveAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.UntapTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ColossalMight.java b/Mage.Sets/src/mage/cards/c/ColossalMight.java index 2d11f4695d3..e2fe7e42a4f 100644 --- a/Mage.Sets/src/mage/cards/c/ColossalMight.java +++ b/Mage.Sets/src/mage/cards/c/ColossalMight.java @@ -28,16 +28,17 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ColossalWhale.java b/Mage.Sets/src/mage/cards/c/ColossalWhale.java index 69e32b2c6a9..f2eceb098de 100644 --- a/Mage.Sets/src/mage/cards/c/ColossalWhale.java +++ b/Mage.Sets/src/mage/cards/c/ColossalWhale.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -50,6 +49,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Colossapede.java b/Mage.Sets/src/mage/cards/c/Colossapede.java new file mode 100644 index 00000000000..7a10ef816a0 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/Colossapede.java @@ -0,0 +1,30 @@ +package mage.cards.c; + +import mage.MageInt; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; + +/** + * @author Stravant + */ +public class Colossapede extends CardImpl { + + public Colossapede(UUID ownerId, CardSetInfo setInfo) { + super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}"); + this.subtype.add("Insect"); + this.power = new MageInt(5); + this.toughness = new MageInt(5); + } + + public Colossapede(final Colossapede card) { + super(card); + } + + @Override + public Colossapede copy() { + return new Colossapede(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/ColossodonYearling.java b/Mage.Sets/src/mage/cards/c/ColossodonYearling.java index 5b2c30505a7..8148fa4073c 100644 --- a/Mage.Sets/src/mage/cards/c/ColossodonYearling.java +++ b/Mage.Sets/src/mage/cards/c/ColossodonYearling.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ColossusOfAkros.java b/Mage.Sets/src/mage/cards/c/ColossusOfAkros.java index a1dccd72bb3..9d7378d8bd8 100644 --- a/Mage.Sets/src/mage/cards/c/ColossusOfAkros.java +++ b/Mage.Sets/src/mage/cards/c/ColossusOfAkros.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -47,6 +46,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ColossusOfSardia.java b/Mage.Sets/src/mage/cards/c/ColossusOfSardia.java index 7622ba2544f..d23acbe5c99 100644 --- a/Mage.Sets/src/mage/cards/c/ColossusOfSardia.java +++ b/Mage.Sets/src/mage/cards/c/ColossusOfSardia.java @@ -27,10 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.IsStepCondition; @@ -41,7 +37,11 @@ import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.PhaseStep; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ComaVeil.java b/Mage.Sets/src/mage/cards/c/ComaVeil.java index c22d198aaac..0ea155892e5 100644 --- a/Mage.Sets/src/mage/cards/c/ComaVeil.java +++ b/Mage.Sets/src/mage/cards/c/ComaVeil.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; @@ -42,6 +41,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CombatCelebrant.java b/Mage.Sets/src/mage/cards/c/CombatCelebrant.java new file mode 100644 index 00000000000..ddb5d96efeb --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CombatCelebrant.java @@ -0,0 +1,70 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.common.AdditionalCombatPhaseEffect; +import mage.abilities.effects.common.UntapAllControllerEffect; +import mage.abilities.keyword.ExertAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.permanent.AnotherPredicate; + +/** + * + * @author LevelX2 + */ +public class CombatCelebrant extends CardImpl { + + public CombatCelebrant(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); + + this.subtype.add("Human"); + this.subtype.add("Warrior"); + this.power = new MageInt(4); + this.toughness = new MageInt(1); + + // If Combat Celebrant hasn't been exerted this turn, you may exert it as it attacks. When you do, untap all other creatures you control and after this phase, there is an additional combat phase. + BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(new UntapAllControllerEffect(new FilterControlledCreaturePermanent(), null, false)); + ability.addEffect(new AdditionalCombatPhaseEffect("and after this phase, there is an additional combat phase")); + this.addAbility(new ExertAbility(ability, true)); + } + + public CombatCelebrant(final CombatCelebrant card) { + super(card); + } + + @Override + public CombatCelebrant copy() { + return new CombatCelebrant(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/CombatMedic.java b/Mage.Sets/src/mage/cards/c/CombatMedic.java index f6e0dcb23b1..32b9241dea1 100644 --- a/Mage.Sets/src/mage/cards/c/CombatMedic.java +++ b/Mage.Sets/src/mage/cards/c/CombatMedic.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/Combust.java b/Mage.Sets/src/mage/cards/c/Combust.java index cab1cdd8209..2d90e0dba06 100644 --- a/Mage.Sets/src/mage/cards/c/Combust.java +++ b/Mage.Sets/src/mage/cards/c/Combust.java @@ -28,9 +28,6 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -38,11 +35,15 @@ import mage.abilities.effects.common.CantBeCounteredSourceEffect; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/CombustibleGearhulk.java b/Mage.Sets/src/mage/cards/c/CombustibleGearhulk.java index 9ea0f7704cd..b6c26493114 100644 --- a/Mage.Sets/src/mage/cards/c/CombustibleGearhulk.java +++ b/Mage.Sets/src/mage/cards/c/CombustibleGearhulk.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -47,6 +45,9 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetOpponent; +import java.util.Set; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/c/Comeuppance.java b/Mage.Sets/src/mage/cards/c/Comeuppance.java index be574ee5075..35c647fca89 100644 --- a/Mage.Sets/src/mage/cards/c/Comeuppance.java +++ b/Mage.Sets/src/mage/cards/c/Comeuppance.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.PreventionEffectData; @@ -45,6 +44,8 @@ import mage.game.stack.StackObject; import mage.players.Player; import org.apache.log4j.Logger; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CommandBeacon.java b/Mage.Sets/src/mage/cards/c/CommandBeacon.java index 937c10f2036..3284d69c109 100644 --- a/Mage.Sets/src/mage/cards/c/CommandBeacon.java +++ b/Mage.Sets/src/mage/cards/c/CommandBeacon.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -45,6 +42,10 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CommandTower.java b/Mage.Sets/src/mage/cards/c/CommandTower.java index 6d254aa0216..751d00f2910 100644 --- a/Mage.Sets/src/mage/cards/c/CommandTower.java +++ b/Mage.Sets/src/mage/cards/c/CommandTower.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.mana.CommanderColorIdentityManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Commandeer.java b/Mage.Sets/src/mage/cards/c/Commandeer.java index c0f7140d1e4..775f9bdf0bb 100644 --- a/Mage.Sets/src/mage/cards/c/Commandeer.java +++ b/Mage.Sets/src/mage/cards/c/Commandeer.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.costs.AlternativeCostSourceAbility; @@ -48,6 +47,8 @@ import mage.players.Player; import mage.target.TargetSpell; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CommanderCody.java b/Mage.Sets/src/mage/cards/c/CommanderCody.java index adeae9a96dc..a405deb48d1 100644 --- a/Mage.Sets/src/mage/cards/c/CommanderCody.java +++ b/Mage.Sets/src/mage/cards/c/CommanderCody.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -35,16 +34,15 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.permanent.token.TrooperToken; +import java.util.UUID; + /** * * @author Styxo @@ -60,7 +58,7 @@ public class CommanderCody extends CardImpl { public CommanderCody(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{U}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Trooper"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/c/CommanderEesha.java b/Mage.Sets/src/mage/cards/c/CommanderEesha.java index 137f2860729..fec71f174b2 100644 --- a/Mage.Sets/src/mage/cards/c/CommanderEesha.java +++ b/Mage.Sets/src/mage/cards/c/CommanderEesha.java @@ -27,16 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author daagar @@ -51,7 +53,7 @@ public class CommanderEesha extends CardImpl { public CommanderEesha(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Bird"); this.subtype.add("Soldier"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/c/CommanderGrevenIlVec.java b/Mage.Sets/src/mage/cards/c/CommanderGrevenIlVec.java index c3dfcb9048a..17de7ace532 100644 --- a/Mage.Sets/src/mage/cards/c/CommanderGrevenIlVec.java +++ b/Mage.Sets/src/mage/cards/c/CommanderGrevenIlVec.java @@ -27,16 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.SacrificeControllerEffect; import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Loki @@ -45,7 +47,7 @@ public class CommanderGrevenIlVec extends CardImpl { public CommanderGrevenIlVec(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/c/CommandersAuthority.java b/Mage.Sets/src/mage/cards/c/CommandersAuthority.java index 71e99db802a..b4e4ee20f41 100644 --- a/Mage.Sets/src/mage/cards/c/CommandersAuthority.java +++ b/Mage.Sets/src/mage/cards/c/CommandersAuthority.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -37,15 +36,13 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.permanent.token.HumanToken; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CommandersSphere.java b/Mage.Sets/src/mage/cards/c/CommandersSphere.java index bd3edc04d72..ba60505a7d8 100644 --- a/Mage.Sets/src/mage/cards/c/CommandersSphere.java +++ b/Mage.Sets/src/mage/cards/c/CommandersSphere.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CommencementOfFestivities.java b/Mage.Sets/src/mage/cards/c/CommencementOfFestivities.java index 8f26e84435c..35041b152a1 100644 --- a/Mage.Sets/src/mage/cards/c/CommencementOfFestivities.java +++ b/Mage.Sets/src/mage/cards/c/CommencementOfFestivities.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.PreventAllDamageToPlayersEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/c/CommitMemory.java b/Mage.Sets/src/mage/cards/c/CommitMemory.java new file mode 100644 index 00000000000..dcd63f6ed8e --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CommitMemory.java @@ -0,0 +1,182 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.DrawCardAllEffect; +import mage.abilities.keyword.AftermathAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SpellAbilityType; +import mage.constants.Zone; +import mage.filter.common.FilterSpellOrPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.game.stack.Spell; +import mage.players.Player; +import mage.target.common.TargetSpellOrPermanent; + +/** + * + * @author fireshoes + */ +public class CommitMemory extends SplitCard { + + private static final FilterSpellOrPermanent filter = new FilterSpellOrPermanent("spell or nonland permanent"); + + static { + filter.add(Predicates.not(new CardTypePredicate(CardType.LAND))); + } + + public CommitMemory(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{3}{U}", "{4}{U}{U}", SpellAbilityType.SPLIT_AFTERMATH); + + // Commit + // Put target spell or nonland permanent into its owner's library second from the top. + getLeftHalfCard().getSpellAbility().addEffect(new CommitEffect()); + getLeftHalfCard().getSpellAbility().addTarget(new TargetSpellOrPermanent(1, 1, filter, false)); + + // Memory + // Aftermath + // Each player shuffles his or her hand and graveyard into his or her library, then draws seven cards. + ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); + getRightHalfCard().getSpellAbility().addEffect(new MemoryEffect()); + Effect effect = new DrawCardAllEffect(7); + effect.setText(", then draws seven cards"); + getRightHalfCard().getSpellAbility().addEffect(effect); + } + + public CommitMemory(final CommitMemory card) { + super(card); + } + + @Override + public CommitMemory copy() { + return new CommitMemory(this); + } +} + +class CommitEffect extends OneShotEffect { + + public CommitEffect() { + super(Outcome.Benefit); + this.staticText = "Put target spell or nonland permanent into its owner's library second from the top"; + } + + public CommitEffect(final CommitEffect effect) { + super(effect); + } + + @Override + public CommitEffect copy() { + return new CommitEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent permanent = game.getPermanent(source.getFirstTarget()); + if (permanent != null) { + Player owner = game.getPlayer(permanent.getOwnerId()); + Player controller = game.getPlayer(permanent.getControllerId()); + if (owner == null || controller == null) { + return false; + } + + Card card = null; + if (owner.getLibrary().hasCards()) { + card = owner.getLibrary().removeFromTop(game); + } + + permanent.moveToZone(Zone.LIBRARY, source.getSourceId(), game, true); + if (card != null) { + owner.getLibrary().putOnTop(card, game); + } + return true; + } + Spell spell = game.getStack().getSpell(source.getFirstTarget()); + if (spell != null) { + Player owner = game.getPlayer(spell.getOwnerId()); + Player controller = game.getPlayer(spell.getControllerId()); + if (owner == null || controller == null) { + return false; + } + + Card card = null; + if (owner.getLibrary().hasCards()) { + card = owner.getLibrary().removeFromTop(game); + } + + spell.moveToZone(Zone.LIBRARY, source.getSourceId(), game, true); + if (card != null) { + owner.getLibrary().putOnTop(card, game); + } + return true; + } + return false; + } +} + +class MemoryEffect extends OneShotEffect { + + public MemoryEffect() { + super(Outcome.Neutral); + staticText = "Each player shuffles his or her hand and graveyard into his or her library"; + } + + public MemoryEffect(final MemoryEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + for (UUID playerId : game.getState().getPlayersInRange(source.getControllerId(), game)) { + Player player = game.getPlayer(playerId); + if (player != null) { + player.moveCards(player.getHand(), Zone.LIBRARY, source, game); + player.moveCards(player.getGraveyard(), Zone.LIBRARY, source, game); + player.shuffleLibrary(source, game); + } + } + return true; + } + + @Override + public MemoryEffect copy() { + return new MemoryEffect(this); + } + +} diff --git a/Mage.Sets/src/mage/cards/c/CommonBond.java b/Mage.Sets/src/mage/cards/c/CommonBond.java index bbb2f1887f5..552f719eb3c 100644 --- a/Mage.Sets/src/mage/cards/c/CommonBond.java +++ b/Mage.Sets/src/mage/cards/c/CommonBond.java @@ -27,13 +27,11 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; @@ -41,6 +39,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/c/CommuneWithLava.java b/Mage.Sets/src/mage/cards/c/CommuneWithLava.java index ec9d0215ab4..a5cbc6c9368 100644 --- a/Mage.Sets/src/mage/cards/c/CommuneWithLava.java +++ b/Mage.Sets/src/mage/cards/c/CommuneWithLava.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.AsThoughEffectImpl; import mage.abilities.effects.ContinuousEffect; @@ -36,16 +34,15 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.PhaseStep; +import mage.constants.*; import mage.game.Game; import mage.players.Player; import mage.target.targetpointer.FixedTarget; import mage.util.CardUtil; +import java.util.Set; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CommuneWithNature.java b/Mage.Sets/src/mage/cards/c/CommuneWithNature.java index a65f834f6a5..828348dfbab 100644 --- a/Mage.Sets/src/mage/cards/c/CommuneWithNature.java +++ b/Mage.Sets/src/mage/cards/c/CommuneWithNature.java @@ -28,15 +28,16 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/c/CommuneWithTheGods.java b/Mage.Sets/src/mage/cards/c/CommuneWithTheGods.java index 5ed4597f54e..f0e5425689f 100644 --- a/Mage.Sets/src/mage/cards/c/CommuneWithTheGods.java +++ b/Mage.Sets/src/mage/cards/c/CommuneWithTheGods.java @@ -27,15 +27,10 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -46,6 +41,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CompanionOfTheTrials.java b/Mage.Sets/src/mage/cards/c/CompanionOfTheTrials.java new file mode 100644 index 00000000000..34827a65a54 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CompanionOfTheTrials.java @@ -0,0 +1,86 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.constants.ComparisonType; +import mage.abilities.common.ActivateIfConditionActivatedAbility; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.UntapTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.filter.common.FilterPlaneswalkerPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class CompanionOfTheTrials extends CardImpl { + + private static final FilterPlaneswalkerPermanent filter = new FilterPlaneswalkerPermanent("you control a Gideon planeswalker"); + static { + filter.add(new SubtypePredicate("Gideon")); + } + + public CompanionOfTheTrials(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); + + this.subtype.add("Bird"); + this.subtype.add("Soldier"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // {1}{W}: Untap target creature. Activate this ability only if you control a Gideon planeswalker. + Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, + new UntapTargetEffect(), + new ManaCostsImpl("{1}{W}"), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0)); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public CompanionOfTheTrials(final CompanionOfTheTrials card) { + super(card); + } + + @Override + public CompanionOfTheTrials copy() { + return new CompanionOfTheTrials(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/ComparativeAnalysis.java b/Mage.Sets/src/mage/cards/c/ComparativeAnalysis.java index e7bd8871a39..9b812b4f1fd 100644 --- a/Mage.Sets/src/mage/cards/c/ComparativeAnalysis.java +++ b/Mage.Sets/src/mage/cards/c/ComparativeAnalysis.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.keyword.SurgeAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CompellingArgument.java b/Mage.Sets/src/mage/cards/c/CompellingArgument.java new file mode 100644 index 00000000000..10b23848091 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CompellingArgument.java @@ -0,0 +1,65 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.TargetPlayer; + +/** + * + * @author fireshoes + */ +public class CompellingArgument extends CardImpl { + + public CompellingArgument(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{U}"); + + // Target player puts the top five cards of his or her library into his or her graveyard. + this.getSpellAbility().addTarget(new TargetPlayer()); + this.getSpellAbility().addEffect(new PutLibraryIntoGraveTargetEffect(5)); + + // Cycling {U} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{U}"))); + + } + + public CompellingArgument(final CompellingArgument card) { + super(card); + } + + @Override + public CompellingArgument copy() { + return new CompellingArgument(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/CompellingDeterrence.java b/Mage.Sets/src/mage/cards/c/CompellingDeterrence.java index bc0e5dd671f..92f39b93d9f 100644 --- a/Mage.Sets/src/mage/cards/c/CompellingDeterrence.java +++ b/Mage.Sets/src/mage/cards/c/CompellingDeterrence.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -42,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetNonlandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CompleteDisregard.java b/Mage.Sets/src/mage/cards/c/CompleteDisregard.java index f083f4265c5..cdcde803547 100644 --- a/Mage.Sets/src/mage/cards/c/CompleteDisregard.java +++ b/Mage.Sets/src/mage/cards/c/CompleteDisregard.java @@ -27,18 +27,19 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.keyword.DevoidAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -48,7 +49,7 @@ public class CompleteDisregard extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 3 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 4)); } public CompleteDisregard(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/c/Complicate.java b/Mage.Sets/src/mage/cards/c/Complicate.java index 86c96e8b047..73c1df6f87d 100644 --- a/Mage.Sets/src/mage/cards/c/Complicate.java +++ b/Mage.Sets/src/mage/cards/c/Complicate.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.CycleTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CompositeGolem.java b/Mage.Sets/src/mage/cards/c/CompositeGolem.java index 4e16b589a1f..0b00508c60e 100644 --- a/Mage.Sets/src/mage/cards/c/CompositeGolem.java +++ b/Mage.Sets/src/mage/cards/c/CompositeGolem.java @@ -27,17 +27,17 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.Mana; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/Compost.java b/Mage.Sets/src/mage/cards/c/Compost.java index 3c1ea933b66..0fb5dca2ab2 100644 --- a/Mage.Sets/src/mage/cards/c/Compost.java +++ b/Mage.Sets/src/mage/cards/c/Compost.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.common.PutCardIntoGraveFromAnywhereAllTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -38,6 +37,8 @@ import mage.constants.TargetController; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/Compulsion.java b/Mage.Sets/src/mage/cards/c/Compulsion.java index 43ce6511a46..178d28c4463 100644 --- a/Mage.Sets/src/mage/cards/c/Compulsion.java +++ b/Mage.Sets/src/mage/cards/c/Compulsion.java @@ -27,19 +27,20 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardTargetCost; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.filter.FilterCard; -import mage.target.common.TargetCardInHand; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.target.common.TargetCardInHand; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CompulsiveResearch.java b/Mage.Sets/src/mage/cards/c/CompulsiveResearch.java index 9174b7fd781..c15e9c3ea73 100644 --- a/Mage.Sets/src/mage/cards/c/CompulsiveResearch.java +++ b/Mage.Sets/src/mage/cards/c/CompulsiveResearch.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DrawCardTargetEffect; @@ -41,6 +40,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetDiscard; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CompulsoryRest.java b/Mage.Sets/src/mage/cards/c/CompulsoryRest.java new file mode 100644 index 00000000000..33399d62341 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CompulsoryRest.java @@ -0,0 +1,90 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.target.common.TargetCreaturePermanent; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.Cost; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.combat.CantAttackBlockAttachedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.constants.Outcome; +import mage.target.TargetPermanent; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +/** + * + * @author Styxo + */ +public class CompulsoryRest extends CardImpl { + + public CompulsoryRest(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{W}"); + + this.subtype.add("Aura"); + + // Enchant creature + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // Enchanted creature can't attack or block. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackBlockAttachedEffect(AttachmentType.AURA))); + + // Enchanted creature has "{2}, Sacrifice this creature: You gain 2 life." + Ability grantedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(2), new GenericManaCost(2)); + Cost cost = new SacrificeSourceCost(); + cost.setText("Sacrifice this creature"); + grantedAbility.addCost(cost); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(grantedAbility, AttachmentType.AURA, Duration.WhileOnBattlefield))); + + } + + public CompulsoryRest(final CompulsoryRest card) { + super(card); + } + + @Override + public CompulsoryRest copy() { + return new CompulsoryRest(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/ConcealedCourtyard.java b/Mage.Sets/src/mage/cards/c/ConcealedCourtyard.java index 15c75d8f48a..5a43f451a4c 100644 --- a/Mage.Sets/src/mage/cards/c/ConcealedCourtyard.java +++ b/Mage.Sets/src/mage/cards/c/ConcealedCourtyard.java @@ -27,9 +27,7 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; @@ -43,6 +41,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +53,7 @@ public class ConcealedCourtyard extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); // Concealed Courtyard enters the battlefield tapped unless you control two or fewer other lands. - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.FEWER_THAN, 3)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.FEWER_THAN, 3)); String abilityText = "tapped unless you control fewer than 3 lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); diff --git a/Mage.Sets/src/mage/cards/c/Concentrate.java b/Mage.Sets/src/mage/cards/c/Concentrate.java index 803b9da2abd..670ff2d4cad 100644 --- a/Mage.Sets/src/mage/cards/c/Concentrate.java +++ b/Mage.Sets/src/mage/cards/c/Concentrate.java @@ -27,11 +27,12 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ConcertedEffort.java b/Mage.Sets/src/mage/cards/c/ConcertedEffort.java index e18ba6a8001..7156d294812 100644 --- a/Mage.Sets/src/mage/cards/c/ConcertedEffort.java +++ b/Mage.Sets/src/mage/cards/c/ConcertedEffort.java @@ -27,19 +27,11 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; -import mage.abilities.keyword.DoubleStrikeAbility; -import mage.abilities.keyword.FearAbility; -import mage.abilities.keyword.FirstStrikeAbility; -import mage.abilities.keyword.FlyingAbility; -import mage.abilities.keyword.LandwalkAbility; -import mage.abilities.keyword.ProtectionAbility; -import mage.abilities.keyword.TrampleAbility; -import mage.abilities.keyword.VigilanceAbility; +import mage.abilities.keyword.*; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -51,6 +43,8 @@ import mage.filter.predicate.mageobject.AbilityPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/ConchHorn.java b/Mage.Sets/src/mage/cards/c/ConchHorn.java index ab425ff1c6e..7b9e5f964fd 100644 --- a/Mage.Sets/src/mage/cards/c/ConchHorn.java +++ b/Mage.Sets/src/mage/cards/c/ConchHorn.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ConclaveEquenaut.java b/Mage.Sets/src/mage/cards/c/ConclaveEquenaut.java index 2a2bed1fb22..0d1635ae46f 100644 --- a/Mage.Sets/src/mage/cards/c/ConclaveEquenaut.java +++ b/Mage.Sets/src/mage/cards/c/ConclaveEquenaut.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ConvokeAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ConclaveNaturalists.java b/Mage.Sets/src/mage/cards/c/ConclaveNaturalists.java index c6633b55c56..eecd1ae3a52 100644 --- a/Mage.Sets/src/mage/cards/c/ConclaveNaturalists.java +++ b/Mage.Sets/src/mage/cards/c/ConclaveNaturalists.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/ConclavePhalanx.java b/Mage.Sets/src/mage/cards/c/ConclavePhalanx.java index 811115c0c54..88b1af4a374 100644 --- a/Mage.Sets/src/mage/cards/c/ConclavePhalanx.java +++ b/Mage.Sets/src/mage/cards/c/ConclavePhalanx.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -36,8 +34,11 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.keyword.ConvokeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/c/ConclavesBlessing.java b/Mage.Sets/src/mage/cards/c/ConclavesBlessing.java index ca0d42bebba..00958b1b4d6 100644 --- a/Mage.Sets/src/mage/cards/c/ConclavesBlessing.java +++ b/Mage.Sets/src/mage/cards/c/ConclavesBlessing.java @@ -27,22 +27,25 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.ConvokeAbility; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherEnchantedPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; -import mage.abilities.dynamicvalue.common.StaticValue; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ConcordantCrossroads.java b/Mage.Sets/src/mage/cards/c/ConcordantCrossroads.java index 01d88af5354..0dd6f6275f2 100644 --- a/Mage.Sets/src/mage/cards/c/ConcordantCrossroads.java +++ b/Mage.Sets/src/mage/cards/c/ConcordantCrossroads.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.HasteAbility; @@ -35,9 +34,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -46,7 +48,7 @@ public class ConcordantCrossroads extends CardImpl { public ConcordantCrossroads(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{G}"); - this.supertype.add("World"); + addSuperType(SuperType.WORLD); // All creatures have haste. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, diff --git a/Mage.Sets/src/mage/cards/c/ConcordiaPegasus.java b/Mage.Sets/src/mage/cards/c/ConcordiaPegasus.java index 99c3089b701..58720789de8 100644 --- a/Mage.Sets/src/mage/cards/c/ConcordiaPegasus.java +++ b/Mage.Sets/src/mage/cards/c/ConcordiaPegasus.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ConcussiveBolt.java b/Mage.Sets/src/mage/cards/c/ConcussiveBolt.java index 681f12932a0..bacd1715cb8 100644 --- a/Mage.Sets/src/mage/cards/c/ConcussiveBolt.java +++ b/Mage.Sets/src/mage/cards/c/ConcussiveBolt.java @@ -27,10 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.condition.common.MetalcraftCondition; import mage.abilities.effects.OneShotEffect; @@ -38,10 +34,15 @@ import mage.abilities.effects.RestrictionEffect; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/Condemn.java b/Mage.Sets/src/mage/cards/c/Condemn.java index 1934f791030..d0817ddf550 100644 --- a/Mage.Sets/src/mage/cards/c/Condemn.java +++ b/Mage.Sets/src/mage/cards/c/Condemn.java @@ -28,7 +28,6 @@ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.PutOnLibraryTargetEffect; @@ -42,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetAttackingCreature; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/Condescend.java b/Mage.Sets/src/mage/cards/c/Condescend.java index 77f233d95d1..69af6351423 100644 --- a/Mage.Sets/src/mage/cards/c/Condescend.java +++ b/Mage.Sets/src/mage/cards/c/Condescend.java @@ -27,15 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.CounterUnlessPaysEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ConduitOfEmrakul.java b/Mage.Sets/src/mage/cards/c/ConduitOfEmrakul.java index 0edb9d0e101..09c45a60895 100644 --- a/Mage.Sets/src/mage/cards/c/ConduitOfEmrakul.java +++ b/Mage.Sets/src/mage/cards/c/ConduitOfEmrakul.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.common.AttacksTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ConduitOfRuin.java b/Mage.Sets/src/mage/cards/c/ConduitOfRuin.java index 1c152d5c9ea..a74e1bb0768 100644 --- a/Mage.Sets/src/mage/cards/c/ConduitOfRuin.java +++ b/Mage.Sets/src/mage/cards/c/ConduitOfRuin.java @@ -27,10 +27,8 @@ */ package mage.cards.c; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CastSourceTriggeredAbility; @@ -41,7 +39,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.WatcherScope; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.ObjectPlayer; import mage.filter.predicate.ObjectPlayerPredicate; @@ -54,6 +51,10 @@ import mage.game.stack.Spell; import mage.target.common.TargetCardInLibrary; import mage.watchers.Watcher; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + /** * * @author LevelX2 @@ -65,7 +66,7 @@ public class ConduitOfRuin extends CardImpl { static { filter.add(new ColorlessPredicate()); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 6)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 6)); filterCost.add(new FirstCastCreatureSpellPredicate()); } diff --git a/Mage.Sets/src/mage/cards/c/ConduitOfStorms.java b/Mage.Sets/src/mage/cards/c/ConduitOfStorms.java index 21dc6e752ab..d8718228e72 100644 --- a/Mage.Sets/src/mage/cards/c/ConduitOfStorms.java +++ b/Mage.Sets/src/mage/cards/c/ConduitOfStorms.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.common.AttacksTriggeredAbility; @@ -45,6 +44,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ConeOfFlame.java b/Mage.Sets/src/mage/cards/c/ConeOfFlame.java index ed36dec16a0..64b2682afb6 100644 --- a/Mage.Sets/src/mage/cards/c/ConeOfFlame.java +++ b/Mage.Sets/src/mage/cards/c/ConeOfFlame.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -42,6 +41,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/c/Confessor.java b/Mage.Sets/src/mage/cards/c/Confessor.java index 759f18be1b4..d15962c2d35 100644 --- a/Mage.Sets/src/mage/cards/c/Confessor.java +++ b/Mage.Sets/src/mage/cards/c/Confessor.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/c/ConfirmSuspicions.java b/Mage.Sets/src/mage/cards/c/ConfirmSuspicions.java index 18cd077b4f4..86c4d9939e5 100644 --- a/Mage.Sets/src/mage/cards/c/ConfirmSuspicions.java +++ b/Mage.Sets/src/mage/cards/c/ConfirmSuspicions.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.keyword.InvestigateEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/Confiscate.java b/Mage.Sets/src/mage/cards/c/Confiscate.java index 8a2d8c9a6df..eee25a3585f 100644 --- a/Mage.Sets/src/mage/cards/c/Confiscate.java +++ b/Mage.Sets/src/mage/cards/c/Confiscate.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -35,6 +34,7 @@ import mage.abilities.effects.common.continuous.ControlEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.target.TargetPermanent; diff --git a/Mage.Sets/src/mage/cards/c/Conflagrate.java b/Mage.Sets/src/mage/cards/c/Conflagrate.java index 46f7bd37a04..b9c825eedf1 100644 --- a/Mage.Sets/src/mage/cards/c/Conflagrate.java +++ b/Mage.Sets/src/mage/cards/c/Conflagrate.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.common.DiscardTargetCost; @@ -45,6 +44,8 @@ import mage.filter.FilterCard; import mage.game.Game; import mage.target.common.TargetCreatureOrPlayerAmount; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,7 +53,7 @@ import mage.target.common.TargetCreatureOrPlayerAmount; public class Conflagrate extends CardImpl { public Conflagrate(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{X}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{X}{R}"); // Conflagrate deals X damage divided as you choose among any number of target creatures and/or players. DynamicValue xValue = new ConflagrateVariableValue(); @@ -80,12 +81,13 @@ class ConflagrateVariableValue implements DynamicValue { @Override public int calculate(Game game, Ability sourceAbility, Effect effect) { + int xValue = sourceAbility.getManaCostsToPay().getX(); for (Cost cost : sourceAbility.getCosts()) { if (cost instanceof DiscardTargetCost) { - return ((DiscardTargetCost) cost).getCards().size(); + xValue = ((DiscardTargetCost) cost).getCards().size(); } } - return sourceAbility.getManaCostsToPay().getX(); + return xValue; } @Override diff --git a/Mage.Sets/src/mage/cards/c/Conflux.java b/Mage.Sets/src/mage/cards/c/Conflux.java index c0e81212ca4..fa5be72383b 100644 --- a/Mage.Sets/src/mage/cards/c/Conflux.java +++ b/Mage.Sets/src/mage/cards/c/Conflux.java @@ -27,16 +27,10 @@ */ package mage.cards.c; -import java.util.List; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -46,6 +40,9 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.List; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/Confound.java b/Mage.Sets/src/mage/cards/c/Confound.java index 38575e88dc4..f7f4033a0cb 100644 --- a/Mage.Sets/src/mage/cards/c/Confound.java +++ b/Mage.Sets/src/mage/cards/c/Confound.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.other.TargetsPermanentPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/ConfrontTheUnknown.java b/Mage.Sets/src/mage/cards/c/ConfrontTheUnknown.java index 722ac02f00c..ee87e137c2e 100644 --- a/Mage.Sets/src/mage/cards/c/ConfrontTheUnknown.java +++ b/Mage.Sets/src/mage/cards/c/ConfrontTheUnknown.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -40,6 +39,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ConfusionInTheRanks.java b/Mage.Sets/src/mage/cards/c/ConfusionInTheRanks.java index 9ce9bb67b4d..7fc0ca4b111 100644 --- a/Mage.Sets/src/mage/cards/c/ConfusionInTheRanks.java +++ b/Mage.Sets/src/mage/cards/c/ConfusionInTheRanks.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.Effect; @@ -48,6 +45,10 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/Congregate.java b/Mage.Sets/src/mage/cards/c/Congregate.java index 124f29a8422..0fa06a60da9 100644 --- a/Mage.Sets/src/mage/cards/c/Congregate.java +++ b/Mage.Sets/src/mage/cards/c/Congregate.java @@ -27,15 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.GainLifeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CongregationAtDawn.java b/Mage.Sets/src/mage/cards/c/CongregationAtDawn.java index 596c2ff2504..12644785a8d 100644 --- a/Mage.Sets/src/mage/cards/c/CongregationAtDawn.java +++ b/Mage.Sets/src/mage/cards/c/CongregationAtDawn.java @@ -27,16 +27,10 @@ */ package mage.cards.c; -import java.util.List; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -47,6 +41,9 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetCardInLibrary; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ConiferStrider.java b/Mage.Sets/src/mage/cards/c/ConiferStrider.java index f2f672e8934..9ed7275b472 100644 --- a/Mage.Sets/src/mage/cards/c/ConiferStrider.java +++ b/Mage.Sets/src/mage/cards/c/ConiferStrider.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ConjuredCurrency.java b/Mage.Sets/src/mage/cards/c/ConjuredCurrency.java index d2302346317..0677b79b88d 100644 --- a/Mage.Sets/src/mage/cards/c/ConjuredCurrency.java +++ b/Mage.Sets/src/mage/cards/c/ConjuredCurrency.java @@ -27,14 +27,12 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.continuous.ExchangeControlTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; import mage.filter.FilterPermanent; @@ -42,6 +40,8 @@ import mage.filter.predicate.other.OwnerPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author LevelX2 */ diff --git a/Mage.Sets/src/mage/cards/c/ConjurersBauble.java b/Mage.Sets/src/mage/cards/c/ConjurersBauble.java index 0352fab974d..2df9a33e555 100644 --- a/Mage.Sets/src/mage/cards/c/ConjurersBauble.java +++ b/Mage.Sets/src/mage/cards/c/ConjurersBauble.java @@ -27,10 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -39,11 +35,15 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.other.OwnerPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/ConjurersCloset.java b/Mage.Sets/src/mage/cards/c/ConjurersCloset.java index eb4159e81d5..e96f6729e86 100644 --- a/Mage.Sets/src/mage/cards/c/ConjurersCloset.java +++ b/Mage.Sets/src/mage/cards/c/ConjurersCloset.java @@ -27,13 +27,13 @@ */ package mage.cards.c; -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility; import mage.abilities.effects.common.ExileTargetForSourceEffect; import mage.abilities.effects.common.ReturnToBattlefieldUnderYourControlTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetControlledCreaturePermanent; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/c/Conquer.java b/Mage.Sets/src/mage/cards/c/Conquer.java index 1da4a1fd335..59d9a829307 100644 --- a/Mage.Sets/src/mage/cards/c/Conquer.java +++ b/Mage.Sets/src/mage/cards/c/Conquer.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/c/ConqueringManticore.java b/Mage.Sets/src/mage/cards/c/ConqueringManticore.java index 712a9e7f9c0..9adda9249fd 100644 --- a/Mage.Sets/src/mage/cards/c/ConqueringManticore.java +++ b/Mage.Sets/src/mage/cards/c/ConqueringManticore.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,8 +37,12 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/ConquerorsFlail.java b/Mage.Sets/src/mage/cards/c/ConquerorsFlail.java index 349ff190712..68f8329472a 100644 --- a/Mage.Sets/src/mage/cards/c/ConquerorsFlail.java +++ b/Mage.Sets/src/mage/cards/c/ConquerorsFlail.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -48,6 +47,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/c/ConquerorsPledge.java b/Mage.Sets/src/mage/cards/c/ConquerorsPledge.java index 68ae1dd59d7..ceee98e8d95 100644 --- a/Mage.Sets/src/mage/cards/c/ConquerorsPledge.java +++ b/Mage.Sets/src/mage/cards/c/ConquerorsPledge.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.KorSoldierToken; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/ConsecrateLand.java b/Mage.Sets/src/mage/cards/c/ConsecrateLand.java index 8022f410aad..3bc1bb591ab 100644 --- a/Mage.Sets/src/mage/cards/c/ConsecrateLand.java +++ b/Mage.Sets/src/mage/cards/c/ConsecrateLand.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; @@ -37,11 +36,7 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; @@ -49,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author MTGfan diff --git a/Mage.Sets/src/mage/cards/c/ConsecratedByBlood.java b/Mage.Sets/src/mage/cards/c/ConsecratedByBlood.java index e1672108a16..c9143149ce7 100644 --- a/Mage.Sets/src/mage/cards/c/ConsecratedByBlood.java +++ b/Mage.Sets/src/mage/cards/c/ConsecratedByBlood.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,17 +40,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/ConsecratedSphinx.java b/Mage.Sets/src/mage/cards/c/ConsecratedSphinx.java index bf06bfc1f8a..13bec79861c 100644 --- a/Mage.Sets/src/mage/cards/c/ConsecratedSphinx.java +++ b/Mage.Sets/src/mage/cards/c/ConsecratedSphinx.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/Conservator.java b/Mage.Sets/src/mage/cards/c/Conservator.java index 4d4f57523ad..7af8299d870 100644 --- a/Mage.Sets/src/mage/cards/c/Conservator.java +++ b/Mage.Sets/src/mage/cards/c/Conservator.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/c/ConsignToDream.java b/Mage.Sets/src/mage/cards/c/ConsignToDream.java index 0d86a531b5f..894e539a76e 100644 --- a/Mage.Sets/src/mage/cards/c/ConsignToDream.java +++ b/Mage.Sets/src/mage/cards/c/ConsignToDream.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/ConsignToDust.java b/Mage.Sets/src/mage/cards/c/ConsignToDust.java index bd2ec104fd8..6ebe1d2aa7f 100644 --- a/Mage.Sets/src/mage/cards/c/ConsignToDust.java +++ b/Mage.Sets/src/mage/cards/c/ConsignToDust.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.abilityword.StriveAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -40,6 +39,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Conspiracy.java b/Mage.Sets/src/mage/cards/c/Conspiracy.java index 68dac6c0d9e..a0ae54169d7 100644 --- a/Mage.Sets/src/mage/cards/c/Conspiracy.java +++ b/Mage.Sets/src/mage/cards/c/Conspiracy.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.Iterator; -import java.util.List; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -40,12 +37,7 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.repository.CardRepository; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; @@ -53,6 +45,10 @@ import mage.game.stack.Spell; import mage.game.stack.StackObject; import mage.players.Player; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/ConstantMists.java b/Mage.Sets/src/mage/cards/c/ConstantMists.java index 05f8880b77e..89a53352904 100644 --- a/Mage.Sets/src/mage/cards/c/ConstantMists.java +++ b/Mage.Sets/src/mage/cards/c/ConstantMists.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; import mage.abilities.keyword.BuybackAbility; @@ -38,6 +37,8 @@ import mage.constants.Duration; import mage.filter.common.FilterControlledLandPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ConstrictingSliver.java b/Mage.Sets/src/mage/cards/c/ConstrictingSliver.java index 591a4c31595..6d6e90c54f5 100644 --- a/Mage.Sets/src/mage/cards/c/ConstrictingSliver.java +++ b/Mage.Sets/src/mage/cards/c/ConstrictingSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,11 +38,7 @@ import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.StaticFilters; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; @@ -52,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ConstrictingTendrils.java b/Mage.Sets/src/mage/cards/c/ConstrictingTendrils.java index 388ded0c876..57096c77fb7 100644 --- a/Mage.Sets/src/mage/cards/c/ConstrictingTendrils.java +++ b/Mage.Sets/src/mage/cards/c/ConstrictingTendrils.java @@ -28,16 +28,17 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.CyclingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ConsulateDreadnought.java b/Mage.Sets/src/mage/cards/c/ConsulateDreadnought.java index 2fb443f7d96..bc365bd50dc 100644 --- a/Mage.Sets/src/mage/cards/c/ConsulateDreadnought.java +++ b/Mage.Sets/src/mage/cards/c/ConsulateDreadnought.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.CrewAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ConsulateSkygate.java b/Mage.Sets/src/mage/cards/c/ConsulateSkygate.java index daea2bedf80..5fcc782c145 100644 --- a/Mage.Sets/src/mage/cards/c/ConsulateSkygate.java +++ b/Mage.Sets/src/mage/cards/c/ConsulateSkygate.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.ReachAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ConsulateSurveillance.java b/Mage.Sets/src/mage/cards/c/ConsulateSurveillance.java index e9fa80e8e44..247e1529bcf 100644 --- a/Mage.Sets/src/mage/cards/c/ConsulateSurveillance.java +++ b/Mage.Sets/src/mage/cards/c/ConsulateSurveillance.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.PayEnergyCost; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.FilterObject; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ConsulateTurret.java b/Mage.Sets/src/mage/cards/c/ConsulateTurret.java index 01d077cc803..6a6e5621554 100644 --- a/Mage.Sets/src/mage/cards/c/ConsulateTurret.java +++ b/Mage.Sets/src/mage/cards/c/ConsulateTurret.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.PayEnergyCost; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/c/ConsulsLieutenant.java b/Mage.Sets/src/mage/cards/c/ConsulsLieutenant.java index 805ab0cb21e..611720bf248 100644 --- a/Mage.Sets/src/mage/cards/c/ConsulsLieutenant.java +++ b/Mage.Sets/src/mage/cards/c/ConsulsLieutenant.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.condition.common.RenownedSourceCondition; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterAttackingCreature; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ConsultTheNecrosages.java b/Mage.Sets/src/mage/cards/c/ConsultTheNecrosages.java index 3675e7d2c5e..5c8aee37dda 100644 --- a/Mage.Sets/src/mage/cards/c/ConsultTheNecrosages.java +++ b/Mage.Sets/src/mage/cards/c/ConsultTheNecrosages.java @@ -27,15 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Mode; -import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.effects.common.DrawCardTargetEffect; +import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/ConsumeSpirit.java b/Mage.Sets/src/mage/cards/c/ConsumeSpirit.java index d4832c8d561..ce877ca228c 100644 --- a/Mage.Sets/src/mage/cards/c/ConsumeSpirit.java +++ b/Mage.Sets/src/mage/cards/c/ConsumeSpirit.java @@ -27,21 +27,22 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.costs.VariableCost; import mage.abilities.costs.mana.VariableManaCost; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.FilterMana; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** diff --git a/Mage.Sets/src/mage/cards/c/ConsumeStrength.java b/Mage.Sets/src/mage/cards/c/ConsumeStrength.java index 1c6764bcff7..7bd265d8f79 100644 --- a/Mage.Sets/src/mage/cards/c/ConsumeStrength.java +++ b/Mage.Sets/src/mage/cards/c/ConsumeStrength.java @@ -27,22 +27,19 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AnotherTargetPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ConsumeTheMeek.java b/Mage.Sets/src/mage/cards/c/ConsumeTheMeek.java index 712cc94d547..8efa76d4ef8 100644 --- a/Mage.Sets/src/mage/cards/c/ConsumeTheMeek.java +++ b/Mage.Sets/src/mage/cards/c/ConsumeTheMeek.java @@ -27,15 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; +import java.util.UUID; + /** * * @author anonymous @@ -45,7 +46,7 @@ public class ConsumeTheMeek extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with converted mana cost 3 or less"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public ConsumeTheMeek(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/c/ConsumingAberration.java b/Mage.Sets/src/mage/cards/c/ConsumingAberration.java index f9b9e47c28b..1805e023535 100644 --- a/Mage.Sets/src/mage/cards/c/ConsumingAberration.java +++ b/Mage.Sets/src/mage/cards/c/ConsumingAberration.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -36,11 +35,7 @@ import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; @@ -48,6 +43,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/ConsumingBonfire.java b/Mage.Sets/src/mage/cards/c/ConsumingBonfire.java index 6051b5bb0cf..1c411efec00 100644 --- a/Mage.Sets/src/mage/cards/c/ConsumingBonfire.java +++ b/Mage.Sets/src/mage/cards/c/ConsumingBonfire.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Poddo diff --git a/Mage.Sets/src/mage/cards/c/ConsumingFervor.java b/Mage.Sets/src/mage/cards/c/ConsumingFervor.java new file mode 100644 index 00000000000..4f4dd6dcd64 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/ConsumingFervor.java @@ -0,0 +1,87 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.target.common.TargetCreaturePermanent; +import mage.abilities.Ability; +import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.continuous.BoostEnchantedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.constants.Outcome; +import mage.target.TargetPermanent; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.counters.CounterType; + +/** + * + * @author fireshoes + */ +public class ConsumingFervor extends CardImpl { + + public ConsumingFervor(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{R}"); + + this.subtype.add("Aura"); + + // Enchant creature + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // Enchanted creature gets +3/+3 and has "At the beginning of your upkeep, put a -1/-1 counter on this creature." + ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(3, 3, Duration.WhileOnBattlefield)); + Ability grantedAbility = new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(1)), TargetController.YOU, false); + Effect effect = new GainAbilityAttachedEffect(grantedAbility, AttachmentType.AURA); + effect.setText("and has \"At the beginning of each upkeep, put a -1/-1 counter on this creature.\""); + ability.addEffect(effect); + this.addAbility(ability); + } + + public ConsumingFervor(final ConsumingFervor card) { + super(card); + } + + @Override + public ConsumingFervor copy() { + return new ConsumingFervor(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/ConsumingSinkhole.java b/Mage.Sets/src/mage/cards/c/ConsumingSinkhole.java index afbfb02895e..eb97d679687 100644 --- a/Mage.Sets/src/mage/cards/c/ConsumingSinkhole.java +++ b/Mage.Sets/src/mage/cards/c/ConsumingSinkhole.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -41,6 +40,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ConsumingVapors.java b/Mage.Sets/src/mage/cards/c/ConsumingVapors.java index 13633f93f93..56a0ff80210 100644 --- a/Mage.Sets/src/mage/cards/c/ConsumingVapors.java +++ b/Mage.Sets/src/mage/cards/c/ConsumingVapors.java @@ -27,15 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.ReboundAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.TargetController; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; @@ -45,6 +44,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author maurer.it_at_gmail.com diff --git a/Mage.Sets/src/mage/cards/c/ConsumingVortex.java b/Mage.Sets/src/mage/cards/c/ConsumingVortex.java index 83e17c50c54..cbecc46927b 100644 --- a/Mage.Sets/src/mage/cards/c/ConsumingVortex.java +++ b/Mage.Sets/src/mage/cards/c/ConsumingVortex.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.SpliceOntoArcaneAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ConsumptiveGoo.java b/Mage.Sets/src/mage/cards/c/ConsumptiveGoo.java index 5f583a27da9..28023be0e7d 100644 --- a/Mage.Sets/src/mage/cards/c/ConsumptiveGoo.java +++ b/Mage.Sets/src/mage/cards/c/ConsumptiveGoo.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/Contagion.java b/Mage.Sets/src/mage/cards/c/Contagion.java index 6db46caa910..a381f1f9a6d 100644 --- a/Mage.Sets/src/mage/cards/c/Contagion.java +++ b/Mage.Sets/src/mage/cards/c/Contagion.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.ExileFromHandCost; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCreaturePermanentAmount; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/ContagionClasp.java b/Mage.Sets/src/mage/cards/c/ContagionClasp.java index d15a3800a0c..38299482b05 100644 --- a/Mage.Sets/src/mage/cards/c/ContagionClasp.java +++ b/Mage.Sets/src/mage/cards/c/ContagionClasp.java @@ -28,10 +28,6 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -41,9 +37,14 @@ import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.abilities.effects.common.counter.ProliferateEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ContagionEngine.java b/Mage.Sets/src/mage/cards/c/ContagionEngine.java index a87d50e3f44..e7fe2e0cc30 100644 --- a/Mage.Sets/src/mage/cards/c/ContagionEngine.java +++ b/Mage.Sets/src/mage/cards/c/ContagionEngine.java @@ -28,9 +28,6 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +37,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.counter.ProliferateEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.counters.CounterType; @@ -49,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ContagiousNim.java b/Mage.Sets/src/mage/cards/c/ContagiousNim.java index 48718cc354c..fa7030e9a9c 100644 --- a/Mage.Sets/src/mage/cards/c/ContagiousNim.java +++ b/Mage.Sets/src/mage/cards/c/ContagiousNim.java @@ -28,12 +28,13 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/ContainmentMembrane.java b/Mage.Sets/src/mage/cards/c/ContainmentMembrane.java index a5ace7825e7..2a1464d9f06 100644 --- a/Mage.Sets/src/mage/cards/c/ContainmentMembrane.java +++ b/Mage.Sets/src/mage/cards/c/ContainmentMembrane.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ContainmentPriest.java b/Mage.Sets/src/mage/cards/c/ContainmentPriest.java index 625dcf0f5d8..304bb4676f5 100644 --- a/Mage.Sets/src/mage/cards/c/ContainmentPriest.java +++ b/Mage.Sets/src/mage/cards/c/ContainmentPriest.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -47,6 +46,8 @@ import mage.game.events.ZoneChangeEvent; import mage.players.Player; import mage.watchers.common.CreatureWasCastWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ContaminatedBond.java b/Mage.Sets/src/mage/cards/c/ContaminatedBond.java index a421fb7b92b..0e6601b7815 100644 --- a/Mage.Sets/src/mage/cards/c/ContaminatedBond.java +++ b/Mage.Sets/src/mage/cards/c/ContaminatedBond.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.AttacksOrBlocksEnchantedTriggeredAbility; import mage.abilities.effects.common.AttachEffect; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ContaminatedGround.java b/Mage.Sets/src/mage/cards/c/ContaminatedGround.java index ccd8555aec5..0195aa87236 100644 --- a/Mage.Sets/src/mage/cards/c/ContaminatedGround.java +++ b/Mage.Sets/src/mage/cards/c/ContaminatedGround.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BecomesTappedAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/c/Contamination.java b/Mage.Sets/src/mage/cards/c/Contamination.java index dae3792d0ab..9621a1eb943 100644 --- a/Mage.Sets/src/mage/cards/c/Contamination.java +++ b/Mage.Sets/src/mage/cards/c/Contamination.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.Mana; import mage.abilities.Ability; @@ -38,11 +37,7 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.game.events.GameEvent; @@ -50,6 +45,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.events.ManaEvent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/Contemplation.java b/Mage.Sets/src/mage/cards/c/Contemplation.java index e5b65078dce..f68ba9fb73f 100644 --- a/Mage.Sets/src/mage/cards/c/Contemplation.java +++ b/Mage.Sets/src/mage/cards/c/Contemplation.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/ContestedCliffs.java b/Mage.Sets/src/mage/cards/c/ContestedCliffs.java index a3a2c4dd8a9..b5a55967551 100644 --- a/Mage.Sets/src/mage/cards/c/ContestedCliffs.java +++ b/Mage.Sets/src/mage/cards/c/ContestedCliffs.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -46,6 +45,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ContestedWarZone.java b/Mage.Sets/src/mage/cards/c/ContestedWarZone.java index 141422acd29..d6866985711 100644 --- a/Mage.Sets/src/mage/cards/c/ContestedWarZone.java +++ b/Mage.Sets/src/mage/cards/c/ContestedWarZone.java @@ -27,14 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.TriggeredAbilityImpl; @@ -46,12 +38,15 @@ import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.common.FilterAttackingCreature; import mage.game.Game; import mage.game.events.DamagedPlayerEvent; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/ContingencyPlan.java b/Mage.Sets/src/mage/cards/c/ContingencyPlan.java index ac582ac7241..b17de5f9b90 100644 --- a/Mage.Sets/src/mage/cards/c/ContingencyPlan.java +++ b/Mage.Sets/src/mage/cards/c/ContingencyPlan.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterCard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/ContrabandKingpin.java b/Mage.Sets/src/mage/cards/c/ContrabandKingpin.java index f2252cc42ad..310160c8664 100644 --- a/Mage.Sets/src/mage/cards/c/ContrabandKingpin.java +++ b/Mage.Sets/src/mage/cards/c/ContrabandKingpin.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.keyword.ScryEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledArtifactPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/Contradict.java b/Mage.Sets/src/mage/cards/c/Contradict.java index 0a0306b0473..5231f2d6690 100644 --- a/Mage.Sets/src/mage/cards/c/Contradict.java +++ b/Mage.Sets/src/mage/cards/c/Contradict.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ControlMagic.java b/Mage.Sets/src/mage/cards/c/ControlMagic.java index c85056dd72d..597d33f0285 100644 --- a/Mage.Sets/src/mage/cards/c/ControlMagic.java +++ b/Mage.Sets/src/mage/cards/c/ControlMagic.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/c/ControlOfTheCourt.java b/Mage.Sets/src/mage/cards/c/ControlOfTheCourt.java index b14ee510378..e147e299084 100644 --- a/Mage.Sets/src/mage/cards/c/ControlOfTheCourt.java +++ b/Mage.Sets/src/mage/cards/c/ControlOfTheCourt.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.discard.DiscardControllerEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ControlledInstincts.java b/Mage.Sets/src/mage/cards/c/ControlledInstincts.java index 71fbe245663..5d9dd450f0b 100644 --- a/Mage.Sets/src/mage/cards/c/ControlledInstincts.java +++ b/Mage.Sets/src/mage/cards/c/ControlledInstincts.java @@ -27,10 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -38,12 +34,17 @@ import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEff import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/Controvert.java b/Mage.Sets/src/mage/cards/c/Controvert.java index 72a6e98a467..0437b9986c3 100644 --- a/Mage.Sets/src/mage/cards/c/Controvert.java +++ b/Mage.Sets/src/mage/cards/c/Controvert.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.keyword.RecoverAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ConundrumSphinx.java b/Mage.Sets/src/mage/cards/c/ConundrumSphinx.java index 1156891e429..55750922093 100644 --- a/Mage.Sets/src/mage/cards/c/ConundrumSphinx.java +++ b/Mage.Sets/src/mage/cards/c/ConundrumSphinx.java @@ -28,26 +28,23 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.cards.repository.CardRepository; import mage.choices.Choice; import mage.choices.ChoiceImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/Convalescence.java b/Mage.Sets/src/mage/cards/c/Convalescence.java index 0d7ceaf8a04..5b68aaff2dd 100644 --- a/Mage.Sets/src/mage/cards/c/Convalescence.java +++ b/Mage.Sets/src/mage/cards/c/Convalescence.java @@ -27,19 +27,19 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/ConvalescentCare.java b/Mage.Sets/src/mage/cards/c/ConvalescentCare.java index cd478adc8db..d2439a139dc 100644 --- a/Mage.Sets/src/mage/cards/c/ConvalescentCare.java +++ b/Mage.Sets/src/mage/cards/c/ConvalescentCare.java @@ -27,10 +27,9 @@ */ package mage.cards.c; -import mage.abilities.Ability; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; -import mage.abilities.condition.Condition; +import mage.abilities.condition.common.XorLessLifeCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -39,7 +38,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; -import mage.game.Game; import java.util.UUID; @@ -56,7 +54,7 @@ public class ConvalescentCare extends CardImpl { Effect effect = new DrawCardSourceControllerEffect(1); TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new GainLifeEffect(3), TargetController.YOU, false); ability.addEffect(effect); - this.addAbility(new ConditionalTriggeredAbility(ability, new FiveOrLessLifeCondition(), "At the beginning of your upkeep, if you have 5 or less life, you gain 3 life and draw a card.")); + this.addAbility(new ConditionalTriggeredAbility(ability, new XorLessLifeCondition(XorLessLifeCondition.CheckType.CONTROLLER, 5), "At the beginning of your upkeep, if you have 5 or less life, you gain 3 life and draw a card.")); } public ConvalescentCare(final ConvalescentCare card) { @@ -68,11 +66,5 @@ public class ConvalescentCare extends CardImpl { return new ConvalescentCare(this); } - static class FiveOrLessLifeCondition implements Condition { - @Override - public boolean apply(Game game, Ability source) { - return game.getPlayer(source.getControllerId()).getLife() <= 5; - } - } } diff --git a/Mage.Sets/src/mage/cards/c/ConversionChamber.java b/Mage.Sets/src/mage/cards/c/ConversionChamber.java index 5a47b6a1a13..030a5a207f3 100644 --- a/Mage.Sets/src/mage/cards/c/ConversionChamber.java +++ b/Mage.Sets/src/mage/cards/c/ConversionChamber.java @@ -28,7 +28,6 @@ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; @@ -46,6 +45,8 @@ import mage.filter.common.FilterArtifactCard; import mage.game.permanent.token.GolemToken; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ConvictedKiller.java b/Mage.Sets/src/mage/cards/c/ConvictedKiller.java index 0b2fb1c5052..9d7bf08d28b 100644 --- a/Mage.Sets/src/mage/cards/c/ConvictedKiller.java +++ b/Mage.Sets/src/mage/cards/c/ConvictedKiller.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -35,12 +34,14 @@ import mage.abilities.condition.common.NoSpellsWereCastLastTurnCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.TransformAbility; -import mage.cards.b.BrandedHowler; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.b.BrandedHowler; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/Conviction.java b/Mage.Sets/src/mage/cards/c/Conviction.java index cf4580b25ff..835591390c7 100644 --- a/Mage.Sets/src/mage/cards/c/Conviction.java +++ b/Mage.Sets/src/mage/cards/c/Conviction.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/ConvincingMirage.java b/Mage.Sets/src/mage/cards/c/ConvincingMirage.java index 1a2d1c9841b..2d4e1749d95 100644 --- a/Mage.Sets/src/mage/cards/c/ConvincingMirage.java +++ b/Mage.Sets/src/mage/cards/c/ConvincingMirage.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.SimpleStaticAbility; @@ -35,24 +34,17 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.ChooseBasicLandTypeEffect; import mage.abilities.keyword.EnchantAbility; -import mage.abilities.mana.BlackManaAbility; -import mage.abilities.mana.BlueManaAbility; -import mage.abilities.mana.GreenManaAbility; -import mage.abilities.mana.RedManaAbility; -import mage.abilities.mana.WhiteManaAbility; +import mage.abilities.mana.*; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/Convolute.java b/Mage.Sets/src/mage/cards/c/Convolute.java index 527ce1d43ba..2c36cb2e586 100644 --- a/Mage.Sets/src/mage/cards/c/Convolute.java +++ b/Mage.Sets/src/mage/cards/c/Convolute.java @@ -27,14 +27,15 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CounterUnlessPaysEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/ConvulsingLicid.java b/Mage.Sets/src/mage/cards/c/ConvulsingLicid.java index e0cd1f3321f..22fe265cd4c 100644 --- a/Mage.Sets/src/mage/cards/c/ConvulsingLicid.java +++ b/Mage.Sets/src/mage/cards/c/ConvulsingLicid.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LicidAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CoordinatedAssault.java b/Mage.Sets/src/mage/cards/c/CoordinatedAssault.java index 628524a93c7..a0dd41d77ef 100644 --- a/Mage.Sets/src/mage/cards/c/CoordinatedAssault.java +++ b/Mage.Sets/src/mage/cards/c/CoordinatedAssault.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CoordinatedBarrage.java b/Mage.Sets/src/mage/cards/c/CoordinatedBarrage.java index 9fbe9a14c69..fe7cd9f403c 100644 --- a/Mage.Sets/src/mage/cards/c/CoordinatedBarrage.java +++ b/Mage.Sets/src/mage/cards/c/CoordinatedBarrage.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -44,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CopperCarapace.java b/Mage.Sets/src/mage/cards/c/CopperCarapace.java index e40493bca22..c60c442cc3c 100644 --- a/Mage.Sets/src/mage/cards/c/CopperCarapace.java +++ b/Mage.Sets/src/mage/cards/c/CopperCarapace.java @@ -27,11 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.combat.CantBlockAttachedEffect; @@ -39,6 +34,12 @@ import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CopperGnomes.java b/Mage.Sets/src/mage/cards/c/CopperGnomes.java index d8f07519b2e..8c5074d8ad7 100644 --- a/Mage.Sets/src/mage/cards/c/CopperGnomes.java +++ b/Mage.Sets/src/mage/cards/c/CopperGnomes.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterArtifactCard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CopperMyr.java b/Mage.Sets/src/mage/cards/c/CopperMyr.java index acc736671e4..1d0d48601bd 100644 --- a/Mage.Sets/src/mage/cards/c/CopperMyr.java +++ b/Mage.Sets/src/mage/cards/c/CopperMyr.java @@ -28,12 +28,13 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CopperTablet.java b/Mage.Sets/src/mage/cards/c/CopperTablet.java index 40339075ebe..7a796f99a3b 100644 --- a/Mage.Sets/src/mage/cards/c/CopperTablet.java +++ b/Mage.Sets/src/mage/cards/c/CopperTablet.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/c/CopperhoofVorrac.java b/Mage.Sets/src/mage/cards/c/CopperhoofVorrac.java index 82c52854077..16366e6d24b 100644 --- a/Mage.Sets/src/mage/cards/c/CopperhoofVorrac.java +++ b/Mage.Sets/src/mage/cards/c/CopperhoofVorrac.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -43,6 +42,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.TappedPredicate; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/c/CopperhornScout.java b/Mage.Sets/src/mage/cards/c/CopperhornScout.java index b66d546c7a4..0df2e81898a 100644 --- a/Mage.Sets/src/mage/cards/c/CopperhornScout.java +++ b/Mage.Sets/src/mage/cards/c/CopperhornScout.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -44,6 +42,9 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.List; +import java.util.UUID; + /** * * @author maurer.it_at_gmail.com diff --git a/Mage.Sets/src/mage/cards/c/CopperlineGorge.java b/Mage.Sets/src/mage/cards/c/CopperlineGorge.java index a5231c49d7b..e8009154d02 100644 --- a/Mage.Sets/src/mage/cards/c/CopperlineGorge.java +++ b/Mage.Sets/src/mage/cards/c/CopperlineGorge.java @@ -27,9 +27,7 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; @@ -43,6 +41,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author maurer.it_at_gmail.com @@ -55,7 +55,7 @@ public class CopperlineGorge extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); // Copperline Gorge enters the battlefield tapped unless you control two or fewer other lands. - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 3)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 3)); String abilityText = "tapped unless you control two or fewer other lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new RedManaAbility()); diff --git a/Mage.Sets/src/mage/cards/c/CopyArtifact.java b/Mage.Sets/src/mage/cards/c/CopyArtifact.java index 835d7a1c2c1..5de8f5e4283 100644 --- a/Mage.Sets/src/mage/cards/c/CopyArtifact.java +++ b/Mage.Sets/src/mage/cards/c/CopyArtifact.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CopyPermanentEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.common.FilterArtifactPermanent; import mage.util.functions.CardTypeApplier; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/c/CopyEnchantment.java b/Mage.Sets/src/mage/cards/c/CopyEnchantment.java index 210deb016eb..798e120d216 100644 --- a/Mage.Sets/src/mage/cards/c/CopyEnchantment.java +++ b/Mage.Sets/src/mage/cards/c/CopyEnchantment.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.common.EntersBattlefieldAbility; @@ -46,6 +45,8 @@ import mage.players.Player; import mage.target.Target; import mage.util.functions.EmptyApplyToPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CoralAtoll.java b/Mage.Sets/src/mage/cards/c/CoralAtoll.java index 0eb07d18d79..f0c26e72495 100644 --- a/Mage.Sets/src/mage/cards/c/CoralAtoll.java +++ b/Mage.Sets/src/mage/cards/c/CoralAtoll.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CoralBarrier.java b/Mage.Sets/src/mage/cards/c/CoralBarrier.java index 5086083a041..5dce0fb7420 100644 --- a/Mage.Sets/src/mage/cards/c/CoralBarrier.java +++ b/Mage.Sets/src/mage/cards/c/CoralBarrier.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CoralFighters.java b/Mage.Sets/src/mage/cards/c/CoralFighters.java index 677b0855da2..7ac63fd41d5 100644 --- a/Mage.Sets/src/mage/cards/c/CoralFighters.java +++ b/Mage.Sets/src/mage/cards/c/CoralFighters.java @@ -27,22 +27,19 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CoralHelm.java b/Mage.Sets/src/mage/cards/c/CoralHelm.java index eefbebec4a1..25b0bb14a59 100644 --- a/Mage.Sets/src/mage/cards/c/CoralHelm.java +++ b/Mage.Sets/src/mage/cards/c/CoralHelm.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardCardCost; @@ -41,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/c/CoralMerfolk.java b/Mage.Sets/src/mage/cards/c/CoralMerfolk.java index d61c8f8950b..1679788c09f 100644 --- a/Mage.Sets/src/mage/cards/c/CoralMerfolk.java +++ b/Mage.Sets/src/mage/cards/c/CoralMerfolk.java @@ -28,11 +28,12 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CoralNet.java b/Mage.Sets/src/mage/cards/c/CoralNet.java index babc8829bdb..df2047e081e 100644 --- a/Mage.Sets/src/mage/cards/c/CoralNet.java +++ b/Mage.Sets/src/mage/cards/c/CoralNet.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -39,18 +38,15 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CoralReef.java b/Mage.Sets/src/mage/cards/c/CoralReef.java index 634ae0fcd55..599aa06f87b 100644 --- a/Mage.Sets/src/mage/cards/c/CoralReef.java +++ b/Mage.Sets/src/mage/cards/c/CoralReef.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -54,6 +53,8 @@ import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CoralTrickster.java b/Mage.Sets/src/mage/cards/c/CoralTrickster.java index 967b1231f60..53299189d47 100644 --- a/Mage.Sets/src/mage/cards/c/CoralTrickster.java +++ b/Mage.Sets/src/mage/cards/c/CoralTrickster.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CoralhelmGuide.java b/Mage.Sets/src/mage/cards/c/CoralhelmGuide.java index 48c593198e4..24e4a3a081f 100644 --- a/Mage.Sets/src/mage/cards/c/CoralhelmGuide.java +++ b/Mage.Sets/src/mage/cards/c/CoralhelmGuide.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CoreProwler.java b/Mage.Sets/src/mage/cards/c/CoreProwler.java index 9e7a5f187de..67d942e439b 100644 --- a/Mage.Sets/src/mage/cards/c/CoreProwler.java +++ b/Mage.Sets/src/mage/cards/c/CoreProwler.java @@ -28,14 +28,15 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.counter.ProliferateEffect; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CorellianCorvette.java b/Mage.Sets/src/mage/cards/c/CorellianCorvette.java index b753dea8416..9040af8de47 100644 --- a/Mage.Sets/src/mage/cards/c/CorellianCorvette.java +++ b/Mage.Sets/src/mage/cards/c/CorellianCorvette.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DamageAsThoughNotBlockedAbility; import mage.abilities.keyword.SpaceflightAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/c/Coretapper.java b/Mage.Sets/src/mage/cards/c/Coretapper.java index 28d3cfe2fd5..ff60433e00d 100644 --- a/Mage.Sets/src/mage/cards/c/Coretapper.java +++ b/Mage.Sets/src/mage/cards/c/Coretapper.java @@ -28,9 +28,6 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,12 +36,15 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/c/CorpseAugur.java b/Mage.Sets/src/mage/cards/c/CorpseAugur.java index 4b3629df341..f4d4b0d1a5c 100644 --- a/Mage.Sets/src/mage/cards/c/CorpseAugur.java +++ b/Mage.Sets/src/mage/cards/c/CorpseAugur.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CorpseBlockade.java b/Mage.Sets/src/mage/cards/c/CorpseBlockade.java index 49cdc96cf2c..b81fb701b6c 100644 --- a/Mage.Sets/src/mage/cards/c/CorpseBlockade.java +++ b/Mage.Sets/src/mage/cards/c/CorpseBlockade.java @@ -27,10 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -39,11 +35,15 @@ import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CorpseChurn.java b/Mage.Sets/src/mage/cards/c/CorpseChurn.java index 0a95de02427..e66b28b34f4 100644 --- a/Mage.Sets/src/mage/cards/c/CorpseChurn.java +++ b/Mage.Sets/src/mage/cards/c/CorpseChurn.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CorpseConnoisseur.java b/Mage.Sets/src/mage/cards/c/CorpseConnoisseur.java index 9917868bd94..4878bff3bc0 100644 --- a/Mage.Sets/src/mage/cards/c/CorpseConnoisseur.java +++ b/Mage.Sets/src/mage/cards/c/CorpseConnoisseur.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,6 +36,7 @@ import mage.abilities.keyword.UnearthAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; @@ -46,6 +44,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CorpseCur.java b/Mage.Sets/src/mage/cards/c/CorpseCur.java index 4265bca51f6..c384daf3bcf 100644 --- a/Mage.Sets/src/mage/cards/c/CorpseCur.java +++ b/Mage.Sets/src/mage/cards/c/CorpseCur.java @@ -28,8 +28,6 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,10 +35,13 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CorpseDance.java b/Mage.Sets/src/mage/cards/c/CorpseDance.java index 02220e40b5e..01757f88bd0 100644 --- a/Mage.Sets/src/mage/cards/c/CorpseDance.java +++ b/Mage.Sets/src/mage/cards/c/CorpseDance.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -49,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CorpseHarvester.java b/Mage.Sets/src/mage/cards/c/CorpseHarvester.java index d1ef40977c4..4eeab321574 100644 --- a/Mage.Sets/src/mage/cards/c/CorpseHarvester.java +++ b/Mage.Sets/src/mage/cards/c/CorpseHarvester.java @@ -27,10 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,12 +34,10 @@ import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -53,6 +47,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CorpseHauler.java b/Mage.Sets/src/mage/cards/c/CorpseHauler.java index c36da250bde..6e6e6d8dd92 100644 --- a/Mage.Sets/src/mage/cards/c/CorpseHauler.java +++ b/Mage.Sets/src/mage/cards/c/CorpseHauler.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.AnotherCardPredicate; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CorpseLunge.java b/Mage.Sets/src/mage/cards/c/CorpseLunge.java index 38b75151c8b..da1a236fcc8 100644 --- a/Mage.Sets/src/mage/cards/c/CorpseLunge.java +++ b/Mage.Sets/src/mage/cards/c/CorpseLunge.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.common.ExileFromGraveCost; @@ -37,12 +34,16 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CorpseTraders.java b/Mage.Sets/src/mage/cards/c/CorpseTraders.java index b443ab27508..10da227b75c 100644 --- a/Mage.Sets/src/mage/cards/c/CorpseTraders.java +++ b/Mage.Sets/src/mage/cards/c/CorpseTraders.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; @@ -36,6 +35,7 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.discard.DiscardCardYouChooseTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetOpponent; diff --git a/Mage.Sets/src/mage/cards/c/Corpsehatch.java b/Mage.Sets/src/mage/cards/c/Corpsehatch.java index 972d5c073e0..0cabd75dc38 100644 --- a/Mage.Sets/src/mage/cards/c/Corpsehatch.java +++ b/Mage.Sets/src/mage/cards/c/Corpsehatch.java @@ -27,19 +27,20 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.permanent.token.EldraziSpawnToken; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CorpsejackMenace.java b/Mage.Sets/src/mage/cards/c/CorpsejackMenace.java index 82ba7a9bd02..5ea0450b551 100644 --- a/Mage.Sets/src/mage/cards/c/CorpsejackMenace.java +++ b/Mage.Sets/src/mage/cards/c/CorpsejackMenace.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * http://www.wizards.com/magic/magazine/article.aspx?x=mtg/faq/rtr * diff --git a/Mage.Sets/src/mage/cards/c/Corpseweft.java b/Mage.Sets/src/mage/cards/c/Corpseweft.java index 27036d1cbe0..67b002e7147 100644 --- a/Mage.Sets/src/mage/cards/c/Corpseweft.java +++ b/Mage.Sets/src/mage/cards/c/Corpseweft.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -47,6 +46,8 @@ import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CorpulentCorpse.java b/Mage.Sets/src/mage/cards/c/CorpulentCorpse.java index c383a5db9e3..a5006df8b13 100644 --- a/Mage.Sets/src/mage/cards/c/CorpulentCorpse.java +++ b/Mage.Sets/src/mage/cards/c/CorpulentCorpse.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.FearAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CorrosiveGale.java b/Mage.Sets/src/mage/cards/c/CorrosiveGale.java index 40ba94ad44e..b71eabf8409 100644 --- a/Mage.Sets/src/mage/cards/c/CorrosiveGale.java +++ b/Mage.Sets/src/mage/cards/c/CorrosiveGale.java @@ -27,16 +27,17 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CorrosiveMentor.java b/Mage.Sets/src/mage/cards/c/CorrosiveMentor.java index 17ff586e169..a8ee8887756 100644 --- a/Mage.Sets/src/mage/cards/c/CorrosiveMentor.java +++ b/Mage.Sets/src/mage/cards/c/CorrosiveMentor.java @@ -27,10 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -38,9 +34,14 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.WitherAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/Corrupt.java b/Mage.Sets/src/mage/cards/c/Corrupt.java index 3bd987a8ee4..6198667f3e1 100644 --- a/Mage.Sets/src/mage/cards/c/Corrupt.java +++ b/Mage.Sets/src/mage/cards/c/Corrupt.java @@ -28,14 +28,13 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.TargetController; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; @@ -44,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/CorruptCourtOfficial.java b/Mage.Sets/src/mage/cards/c/CorruptCourtOfficial.java index ece971b5d24..701b9d9a8aa 100644 --- a/Mage.Sets/src/mage/cards/c/CorruptCourtOfficial.java +++ b/Mage.Sets/src/mage/cards/c/CorruptCourtOfficial.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CorruptEunuchs.java b/Mage.Sets/src/mage/cards/c/CorruptEunuchs.java index e0009bee6e6..f817d7f2316 100644 --- a/Mage.Sets/src/mage/cards/c/CorruptEunuchs.java +++ b/Mage.Sets/src/mage/cards/c/CorruptEunuchs.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CorruptOfficial.java b/Mage.Sets/src/mage/cards/c/CorruptOfficial.java index 461e8b0d6ea..24945fca814 100644 --- a/Mage.Sets/src/mage/cards/c/CorruptOfficial.java +++ b/Mage.Sets/src/mage/cards/c/CorruptOfficial.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesBlockedByCreatureTriggeredAbility; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CorruptedConscience.java b/Mage.Sets/src/mage/cards/c/CorruptedConscience.java index 66f4a9766d1..104c57e1907 100644 --- a/Mage.Sets/src/mage/cards/c/CorruptedConscience.java +++ b/Mage.Sets/src/mage/cards/c/CorruptedConscience.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CorruptedCrossroads.java b/Mage.Sets/src/mage/cards/c/CorruptedCrossroads.java index cd323c5fa66..e4d6b4ace3b 100644 --- a/Mage.Sets/src/mage/cards/c/CorruptedCrossroads.java +++ b/Mage.Sets/src/mage/cards/c/CorruptedCrossroads.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ConditionalMana; import mage.MageObject; import mage.Mana; @@ -43,6 +42,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.Game; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CorruptedGrafstone.java b/Mage.Sets/src/mage/cards/c/CorruptedGrafstone.java index 5d2668e8f0e..0660789ad74 100644 --- a/Mage.Sets/src/mage/cards/c/CorruptedGrafstone.java +++ b/Mage.Sets/src/mage/cards/c/CorruptedGrafstone.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.Mana; import mage.ObjectColor; import mage.abilities.Ability; @@ -48,6 +45,10 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/c/CorruptedHarvester.java b/Mage.Sets/src/mage/cards/c/CorruptedHarvester.java index 215c00fadd7..604f4c8c98e 100644 --- a/Mage.Sets/src/mage/cards/c/CorruptedHarvester.java +++ b/Mage.Sets/src/mage/cards/c/CorruptedHarvester.java @@ -28,9 +28,6 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,8 +36,12 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.RegenerateSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CorruptedResolve.java b/Mage.Sets/src/mage/cards/c/CorruptedResolve.java index bdbaf48125f..414b44cdba4 100644 --- a/Mage.Sets/src/mage/cards/c/CorruptedResolve.java +++ b/Mage.Sets/src/mage/cards/c/CorruptedResolve.java @@ -27,13 +27,11 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.counters.CounterType; import mage.game.Game; @@ -41,6 +39,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CorruptedRoots.java b/Mage.Sets/src/mage/cards/c/CorruptedRoots.java index 8653146186b..c4ffe024000 100644 --- a/Mage.Sets/src/mage/cards/c/CorruptedRoots.java +++ b/Mage.Sets/src/mage/cards/c/CorruptedRoots.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BecomesTappedAttachedTriggeredAbility; import mage.abilities.effects.common.AttachEffect; @@ -42,6 +41,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CorruptedZendikon.java b/Mage.Sets/src/mage/cards/c/CorruptedZendikon.java index a9712413b6c..ea4f03c8f24 100644 --- a/Mage.Sets/src/mage/cards/c/CorruptedZendikon.java +++ b/Mage.Sets/src/mage/cards/c/CorruptedZendikon.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; @@ -38,11 +37,16 @@ import mage.abilities.effects.common.continuous.BecomesCreatureAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.permanent.token.Token; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CorruptingLicid.java b/Mage.Sets/src/mage/cards/c/CorruptingLicid.java index 5fc0e9dc428..0932fa7ef83 100644 --- a/Mage.Sets/src/mage/cards/c/CorruptingLicid.java +++ b/Mage.Sets/src/mage/cards/c/CorruptingLicid.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LicidAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CosisRavager.java b/Mage.Sets/src/mage/cards/c/CosisRavager.java index f68d987e4ab..d929ca3fab5 100644 --- a/Mage.Sets/src/mage/cards/c/CosisRavager.java +++ b/Mage.Sets/src/mage/cards/c/CosisRavager.java @@ -28,16 +28,17 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LandfallAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CosisTrickster.java b/Mage.Sets/src/mage/cards/c/CosisTrickster.java index 63c295626b3..fb3dae51249 100644 --- a/Mage.Sets/src/mage/cards/c/CosisTrickster.java +++ b/Mage.Sets/src/mage/cards/c/CosisTrickster.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CosmicHorror.java b/Mage.Sets/src/mage/cards/c/CosmicHorror.java index 464a0cabb41..41e59e061c3 100644 --- a/Mage.Sets/src/mage/cards/c/CosmicHorror.java +++ b/Mage.Sets/src/mage/cards/c/CosmicHorror.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CosmicLarva.java b/Mage.Sets/src/mage/cards/c/CosmicLarva.java index ffb4c2d393b..93f552bc63b 100644 --- a/Mage.Sets/src/mage/cards/c/CosmicLarva.java +++ b/Mage.Sets/src/mage/cards/c/CosmicLarva.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -40,6 +39,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterControlledLandPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CouncilGuardian.java b/Mage.Sets/src/mage/cards/c/CouncilGuardian.java index cee931c9f56..9e06ae0992a 100644 --- a/Mage.Sets/src/mage/cards/c/CouncilGuardian.java +++ b/Mage.Sets/src/mage/cards/c/CouncilGuardian.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -46,6 +43,10 @@ import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/c/CouncilOfAdvisors.java b/Mage.Sets/src/mage/cards/c/CouncilOfAdvisors.java index 348b1d5f010..ef0b3d703f1 100644 --- a/Mage.Sets/src/mage/cards/c/CouncilOfAdvisors.java +++ b/Mage.Sets/src/mage/cards/c/CouncilOfAdvisors.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CouncilOfTheAbsolute.java b/Mage.Sets/src/mage/cards/c/CouncilOfTheAbsolute.java index ba3d9c6ae47..c89d676ceff 100644 --- a/Mage.Sets/src/mage/cards/c/CouncilOfTheAbsolute.java +++ b/Mage.Sets/src/mage/cards/c/CouncilOfTheAbsolute.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -41,16 +40,14 @@ import mage.abilities.keyword.FlashbackAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CouncilsJudgment.java b/Mage.Sets/src/mage/cards/c/CouncilsJudgment.java index 2972690b4c7..3eb2f141411 100644 --- a/Mage.Sets/src/mage/cards/c/CouncilsJudgment.java +++ b/Mage.Sets/src/mage/cards/c/CouncilsJudgment.java @@ -27,10 +27,6 @@ */ package mage.cards.c; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -47,6 +43,11 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetNonlandPermanent; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CounselOfTheSoratami.java b/Mage.Sets/src/mage/cards/c/CounselOfTheSoratami.java index d3a938775a3..6bfb27a4cf8 100644 --- a/Mage.Sets/src/mage/cards/c/CounselOfTheSoratami.java +++ b/Mage.Sets/src/mage/cards/c/CounselOfTheSoratami.java @@ -28,11 +28,12 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/Counterbalance.java b/Mage.Sets/src/mage/cards/c/Counterbalance.java index 7b65de25add..920c06f7b25 100644 --- a/Mage.Sets/src/mage/cards/c/Counterbalance.java +++ b/Mage.Sets/src/mage/cards/c/Counterbalance.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.common.SpellCastOpponentTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -37,6 +34,8 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.CardsImpl; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.SetTargetPointer; import mage.constants.Zone; import mage.filter.FilterSpell; @@ -46,6 +45,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/Counterbore.java b/Mage.Sets/src/mage/cards/c/Counterbore.java index 35c6d2e8646..39ab0a2432b 100644 --- a/Mage.Sets/src/mage/cards/c/Counterbore.java +++ b/Mage.Sets/src/mage/cards/c/Counterbore.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CounterTargetAndSearchGraveyardHandLibraryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Counterintelligence.java b/Mage.Sets/src/mage/cards/c/Counterintelligence.java index 7f5d6fc9eea..2588484b08d 100644 --- a/Mage.Sets/src/mage/cards/c/Counterintelligence.java +++ b/Mage.Sets/src/mage/cards/c/Counterintelligence.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/Countermand.java b/Mage.Sets/src/mage/cards/c/Countermand.java index d94d3d640fe..c87687b8ed2 100644 --- a/Mage.Sets/src/mage/cards/c/Countermand.java +++ b/Mage.Sets/src/mage/cards/c/Countermand.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -41,6 +40,8 @@ import mage.game.stack.StackObject; import mage.players.Player; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Counterspell.java b/Mage.Sets/src/mage/cards/c/Counterspell.java index 3140049bb8a..3bfa3540654 100644 --- a/Mage.Sets/src/mage/cards/c/Counterspell.java +++ b/Mage.Sets/src/mage/cards/c/Counterspell.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/Countersquall.java b/Mage.Sets/src/mage/cards/c/Countersquall.java index d767ac2ad2d..cd937a5fd8c 100644 --- a/Mage.Sets/src/mage/cards/c/Countersquall.java +++ b/Mage.Sets/src/mage/cards/c/Countersquall.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.LoseLifeTargetControllerEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CountlessGearsRenegade.java b/Mage.Sets/src/mage/cards/c/CountlessGearsRenegade.java index 07aa488d006..ed225e0879d 100644 --- a/Mage.Sets/src/mage/cards/c/CountlessGearsRenegade.java +++ b/Mage.Sets/src/mage/cards/c/CountlessGearsRenegade.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.game.permanent.token.ServoToken; import mage.watchers.common.RevoltWatcher; +import java.util.UUID; + /** * @author JRHerlehy */ diff --git a/Mage.Sets/src/mage/cards/c/CountrysideCrusher.java b/Mage.Sets/src/mage/cards/c/CountrysideCrusher.java index e0419c580cd..374669ead51 100644 --- a/Mage.Sets/src/mage/cards/c/CountrysideCrusher.java +++ b/Mage.Sets/src/mage/cards/c/CountrysideCrusher.java @@ -27,18 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.PutCardIntoGraveFromAnywhereAllTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; @@ -49,6 +44,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CourageousOutrider.java b/Mage.Sets/src/mage/cards/c/CourageousOutrider.java index f62067fe36d..e01a7a9450e 100644 --- a/Mage.Sets/src/mage/cards/c/CourageousOutrider.java +++ b/Mage.Sets/src/mage/cards/c/CourageousOutrider.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.dynamicvalue.common.StaticValue; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CourierGriffin.java b/Mage.Sets/src/mage/cards/c/CourierGriffin.java index 16d0072b56f..ba9130707fa 100644 --- a/Mage.Sets/src/mage/cards/c/CourierGriffin.java +++ b/Mage.Sets/src/mage/cards/c/CourierGriffin.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CourierHawk.java b/Mage.Sets/src/mage/cards/c/CourierHawk.java index dc38e4c2b10..a8dfcdcb7ae 100644 --- a/Mage.Sets/src/mage/cards/c/CourierHawk.java +++ b/Mage.Sets/src/mage/cards/c/CourierHawk.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CouriersCapsule.java b/Mage.Sets/src/mage/cards/c/CouriersCapsule.java index 96ba6420a2d..b13209a465b 100644 --- a/Mage.Sets/src/mage/cards/c/CouriersCapsule.java +++ b/Mage.Sets/src/mage/cards/c/CouriersCapsule.java @@ -28,18 +28,18 @@ package mage.cards.c; -import java.util.UUID; - -import mage.abilities.costs.common.TapSourceCost; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CourserOfKruphix.java b/Mage.Sets/src/mage/cards/c/CourserOfKruphix.java index 0cbed01e5b4..f60100fc13d 100644 --- a/Mage.Sets/src/mage/cards/c/CourserOfKruphix.java +++ b/Mage.Sets/src/mage/cards/c/CourserOfKruphix.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterLandCard; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CoursersAccord.java b/Mage.Sets/src/mage/cards/c/CoursersAccord.java index dcc38ae3d02..6e978396cae 100644 --- a/Mage.Sets/src/mage/cards/c/CoursersAccord.java +++ b/Mage.Sets/src/mage/cards/c/CoursersAccord.java @@ -27,14 +27,15 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.PopulateEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.CentaurToken; +import java.util.UUID; + /** * * @author LevleX2 diff --git a/Mage.Sets/src/mage/cards/c/CourtArchers.java b/Mage.Sets/src/mage/cards/c/CourtArchers.java index 8f393d7bd4b..09b86b4a365 100644 --- a/Mage.Sets/src/mage/cards/c/CourtArchers.java +++ b/Mage.Sets/src/mage/cards/c/CourtArchers.java @@ -28,13 +28,14 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ExaltedAbility; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CourtHomunculus.java b/Mage.Sets/src/mage/cards/c/CourtHomunculus.java index bad084faa3e..465b72b4b93 100644 --- a/Mage.Sets/src/mage/cards/c/CourtHomunculus.java +++ b/Mage.Sets/src/mage/cards/c/CourtHomunculus.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -38,6 +35,9 @@ import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterArtifactPermanent; import mage.game.Game; import mage.game.permanent.Permanent; diff --git a/Mage.Sets/src/mage/cards/c/CourtHussar.java b/Mage.Sets/src/mage/cards/c/CourtHussar.java index 3a77184cf18..29589341e96 100644 --- a/Mage.Sets/src/mage/cards/c/CourtHussar.java +++ b/Mage.Sets/src/mage/cards/c/CourtHussar.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.ManaWasSpentCondition; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.watchers.common.ManaSpentToCastWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CourtStreetDenizen.java b/Mage.Sets/src/mage/cards/c/CourtStreetDenizen.java index 814e032d659..e4bc77999ba 100644 --- a/Mage.Sets/src/mage/cards/c/CourtStreetDenizen.java +++ b/Mage.Sets/src/mage/cards/c/CourtStreetDenizen.java @@ -27,10 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -38,6 +34,9 @@ import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; @@ -45,6 +44,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CourtlyProvocateur.java b/Mage.Sets/src/mage/cards/c/CourtlyProvocateur.java index 9a2642c6fcc..45260322c33 100644 --- a/Mage.Sets/src/mage/cards/c/CourtlyProvocateur.java +++ b/Mage.Sets/src/mage/cards/c/CourtlyProvocateur.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,7 @@ import mage.abilities.keyword.AttacksThisTurnMarkerAbility; import mage.abilities.keyword.BlocksThisTurnMarkerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/c/CovenantOfBlood.java b/Mage.Sets/src/mage/cards/c/CovenantOfBlood.java index f007435feaa..975358ae9a9 100644 --- a/Mage.Sets/src/mage/cards/c/CovenantOfBlood.java +++ b/Mage.Sets/src/mage/cards/c/CovenantOfBlood.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.GainLifeEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CovenantOfMinds.java b/Mage.Sets/src/mage/cards/c/CovenantOfMinds.java index 43a35bfd05f..572f2629000 100644 --- a/Mage.Sets/src/mage/cards/c/CovenantOfMinds.java +++ b/Mage.Sets/src/mage/cards/c/CovenantOfMinds.java @@ -27,20 +27,21 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.CardsImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CoverOfDarkness.java b/Mage.Sets/src/mage/cards/c/CoverOfDarkness.java index 84f2075a4bc..7b022d84241 100644 --- a/Mage.Sets/src/mage/cards/c/CoverOfDarkness.java +++ b/Mage.Sets/src/mage/cards/c/CoverOfDarkness.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.ChooseCreatureTypeEffect; @@ -43,6 +42,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CovertOperative.java b/Mage.Sets/src/mage/cards/c/CovertOperative.java index c6f450db581..70235251bba 100644 --- a/Mage.Sets/src/mage/cards/c/CovertOperative.java +++ b/Mage.Sets/src/mage/cards/c/CovertOperative.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.CantBeBlockedSourceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CovetousDragon.java b/Mage.Sets/src/mage/cards/c/CovetousDragon.java index a8bae47e676..0b6b5ed1ffa 100644 --- a/Mage.Sets/src/mage/cards/c/CovetousDragon.java +++ b/Mage.Sets/src/mage/cards/c/CovetousDragon.java @@ -27,17 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterArtifactPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -55,7 +56,7 @@ public class CovetousDragon extends CardImpl { // When you control no artifacts, sacrifice Covetous Dragon. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterArtifactPermanent("no artifacts"), Filter.ComparisonType.Equal, 0, + new FilterArtifactPermanent("no artifacts"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/c/Cowardice.java b/Mage.Sets/src/mage/cards/c/Cowardice.java index 97ae09c8fc0..7bdff8705c4 100644 --- a/Mage.Sets/src/mage/cards/c/Cowardice.java +++ b/Mage.Sets/src/mage/cards/c/Cowardice.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; @@ -41,6 +40,8 @@ import mage.game.permanent.Permanent; import mage.game.stack.StackObject; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/c/CowedByWisdom.java b/Mage.Sets/src/mage/cards/c/CowedByWisdom.java index e1e2290bdc5..ac5da654efe 100644 --- a/Mage.Sets/src/mage/cards/c/CowedByWisdom.java +++ b/Mage.Sets/src/mage/cards/c/CowedByWisdom.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -49,6 +48,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CowerInFear.java b/Mage.Sets/src/mage/cards/c/CowerInFear.java index 69f2a8d2d3c..23caee5d1ee 100644 --- a/Mage.Sets/src/mage/cards/c/CowerInFear.java +++ b/Mage.Sets/src/mage/cards/c/CowerInFear.java @@ -27,17 +27,17 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CowlProwler.java b/Mage.Sets/src/mage/cards/c/CowlProwler.java index 0ecc0a0748b..144a180b82e 100644 --- a/Mage.Sets/src/mage/cards/c/CowlProwler.java +++ b/Mage.Sets/src/mage/cards/c/CowlProwler.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrabUmbra.java b/Mage.Sets/src/mage/cards/c/CrabUmbra.java index 6efb4691ed8..f6f51ec7d0e 100644 --- a/Mage.Sets/src/mage/cards/c/CrabUmbra.java +++ b/Mage.Sets/src/mage/cards/c/CrabUmbra.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,11 +36,14 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TotemArmorAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CrabappleCohort.java b/Mage.Sets/src/mage/cards/c/CrabappleCohort.java index cc9f7796e0f..fd78d7b584e 100644 --- a/Mage.Sets/src/mage/cards/c/CrabappleCohort.java +++ b/Mage.Sets/src/mage/cards/c/CrabappleCohort.java @@ -27,10 +27,9 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -46,6 +45,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author North @@ -71,7 +72,7 @@ public class CrabappleCohort extends CardImpl { this.toughness = new MageInt(4); // Crabapple Cohort gets +1/+1 as long as you control another green creature. - Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0); + Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0); Effect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), condition, rule); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); } diff --git a/Mage.Sets/src/mage/cards/c/CrackTheEarth.java b/Mage.Sets/src/mage/cards/c/CrackTheEarth.java index efaf0d5f76a..3f58a6c559a 100644 --- a/Mage.Sets/src/mage/cards/c/CrackTheEarth.java +++ b/Mage.Sets/src/mage/cards/c/CrackTheEarth.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.SacrificeAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledPermanent; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/c/Crackdown.java b/Mage.Sets/src/mage/cards/c/Crackdown.java index ee066ea2f5c..aab0a2efa5f 100644 --- a/Mage.Sets/src/mage/cards/c/Crackdown.java +++ b/Mage.Sets/src/mage/cards/c/Crackdown.java @@ -27,8 +27,8 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; import mage.cards.CardImpl; @@ -37,12 +37,13 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +54,7 @@ public class Crackdown extends CardImpl { static { filter.add(Predicates.not(new ColorPredicate(ObjectColor.WHITE))); - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); } public Crackdown(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/c/CrackdownConstruct.java b/Mage.Sets/src/mage/cards/c/CrackdownConstruct.java index beca085b919..cb4e0c8c13a 100644 --- a/Mage.Sets/src/mage/cards/c/CrackdownConstruct.java +++ b/Mage.Sets/src/mage/cards/c/CrackdownConstruct.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.stack.StackAbility; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/c/Crackleburr.java b/Mage.Sets/src/mage/cards/c/Crackleburr.java index 0078728151d..05b34197dfd 100644 --- a/Mage.Sets/src/mage/cards/c/Crackleburr.java +++ b/Mage.Sets/src/mage/cards/c/Crackleburr.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -51,6 +50,8 @@ import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CracklingClub.java b/Mage.Sets/src/mage/cards/c/CracklingClub.java index 289d0ce00d7..03f4ee16fd2 100644 --- a/Mage.Sets/src/mage/cards/c/CracklingClub.java +++ b/Mage.Sets/src/mage/cards/c/CracklingClub.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CracklingDoom.java b/Mage.Sets/src/mage/cards/c/CracklingDoom.java index 77e9720a4e2..a00a12f6dc6 100644 --- a/Mage.Sets/src/mage/cards/c/CracklingDoom.java +++ b/Mage.Sets/src/mage/cards/c/CracklingDoom.java @@ -27,9 +27,8 @@ */ package mage.cards.c; -import java.util.ArrayList; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DamagePlayersEffect; import mage.cards.CardImpl; @@ -37,7 +36,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; -import mage.filter.Filter; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; @@ -47,6 +45,9 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.ArrayList; +import java.util.UUID; + /** * * @author LevelX2 @@ -116,7 +117,7 @@ class CracklingDoomEffect extends OneShotEffect { } } else if (greatestPower != Integer.MIN_VALUE) { FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature to sacrifice with power equal to " + greatestPower); - filter.add(new PowerPredicate(Filter.ComparisonType.Equal, greatestPower)); + filter.add(new PowerPredicate(ComparisonType.EQUAL_TO, greatestPower)); Target target = new TargetControlledCreaturePermanent(filter); if (opponent.choose(outcome, target, playerId, game)) { Permanent permanent = game.getPermanent(target.getFirstTarget()); diff --git a/Mage.Sets/src/mage/cards/c/CracklingPerimeter.java b/Mage.Sets/src/mage/cards/c/CracklingPerimeter.java index 93722564c82..97d2a1d59e1 100644 --- a/Mage.Sets/src/mage/cards/c/CracklingPerimeter.java +++ b/Mage.Sets/src/mage/cards/c/CracklingPerimeter.java @@ -27,22 +27,22 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; import mage.abilities.effects.common.DamagePlayersEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CracklingTriton.java b/Mage.Sets/src/mage/cards/c/CracklingTriton.java index 76d2daccd01..27f54c0800c 100644 --- a/Mage.Sets/src/mage/cards/c/CracklingTriton.java +++ b/Mage.Sets/src/mage/cards/c/CracklingTriton.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CradleGuard.java b/Mage.Sets/src/mage/cards/c/CradleGuard.java index adf7896a97b..ddd34eeed8d 100644 --- a/Mage.Sets/src/mage/cards/c/CradleGuard.java +++ b/Mage.Sets/src/mage/cards/c/CradleGuard.java @@ -28,13 +28,14 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.EchoAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CradleOfTheAccursed.java b/Mage.Sets/src/mage/cards/c/CradleOfTheAccursed.java new file mode 100644 index 00000000000..85e3b0dbc8b --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CradleOfTheAccursed.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.ActivateAsSorceryActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.game.permanent.token.ZombieToken; + +/** + * + * @author spjspj + */ +public class CradleOfTheAccursed extends CardImpl { + + public CradleOfTheAccursed(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + this.subtype.add("Desert"); + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {3}, {T}, Sacrifice Cradle of the Accursed: Create a 2/2 black Zombie creature token. Activate this ability only any time you could cast a sorcery. + Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ZombieToken(), 1), new ManaCostsImpl("{3}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + public CradleOfTheAccursed(final CradleOfTheAccursed card) { + super(card); + } + + @Override + public CradleOfTheAccursed copy() { + return new CradleOfTheAccursed(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/CradleOfVitality.java b/Mage.Sets/src/mage/cards/c/CradleOfVitality.java index 2343978634a..d1f414087af 100644 --- a/Mage.Sets/src/mage/cards/c/CradleOfVitality.java +++ b/Mage.Sets/src/mage/cards/c/CradleOfVitality.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.ManaCostsImpl; @@ -44,6 +43,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Alvin diff --git a/Mage.Sets/src/mage/cards/c/CradleToGrave.java b/Mage.Sets/src/mage/cards/c/CradleToGrave.java index 494731992d4..8d547d1a57d 100644 --- a/Mage.Sets/src/mage/cards/c/CradleToGrave.java +++ b/Mage.Sets/src/mage/cards/c/CradleToGrave.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.EnteredThisTurnPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author bieno002 diff --git a/Mage.Sets/src/mage/cards/c/CraftyPathmage.java b/Mage.Sets/src/mage/cards/c/CraftyPathmage.java index 8113b0d68e8..617a1811c15 100644 --- a/Mage.Sets/src/mage/cards/c/CraftyPathmage.java +++ b/Mage.Sets/src/mage/cards/c/CraftyPathmage.java @@ -27,22 +27,22 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki @@ -52,7 +52,7 @@ public class CraftyPathmage extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public CraftyPathmage(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/c/CragPuca.java b/Mage.Sets/src/mage/cards/c/CragPuca.java index eb1d1cde53e..a854ad9079d 100644 --- a/Mage.Sets/src/mage/cards/c/CragPuca.java +++ b/Mage.Sets/src/mage/cards/c/CragPuca.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CragganwickCremator.java b/Mage.Sets/src/mage/cards/c/CragganwickCremator.java index 7906a40469b..1c479906220 100644 --- a/Mage.Sets/src/mage/cards/c/CragganwickCremator.java +++ b/Mage.Sets/src/mage/cards/c/CragganwickCremator.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CranialArchive.java b/Mage.Sets/src/mage/cards/c/CranialArchive.java index e6707e81e47..48fe362169f 100644 --- a/Mage.Sets/src/mage/cards/c/CranialArchive.java +++ b/Mage.Sets/src/mage/cards/c/CranialArchive.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.ExileSourceCost; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CranialExtraction.java b/Mage.Sets/src/mage/cards/c/CranialExtraction.java index 8d871d7e39e..1763aa11449 100644 --- a/Mage.Sets/src/mage/cards/c/CranialExtraction.java +++ b/Mage.Sets/src/mage/cards/c/CranialExtraction.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.Mode; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/c/CranialPlating.java b/Mage.Sets/src/mage/cards/c/CranialPlating.java index eb8c35829ad..b96dac6db06 100644 --- a/Mage.Sets/src/mage/cards/c/CranialPlating.java +++ b/Mage.Sets/src/mage/cards/c/CranialPlating.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -42,12 +39,15 @@ import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/Crash.java b/Mage.Sets/src/mage/cards/c/Crash.java index a19ef0a4b81..336a895961f 100644 --- a/Mage.Sets/src/mage/cards/c/Crash.java +++ b/Mage.Sets/src/mage/cards/c/Crash.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.DestroyTargetEffect; @@ -43,6 +41,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/c/CrashOfRhinos.java b/Mage.Sets/src/mage/cards/c/CrashOfRhinos.java index 4e7e3b62393..1f13e5224e6 100644 --- a/Mage.Sets/src/mage/cards/c/CrashOfRhinos.java +++ b/Mage.Sets/src/mage/cards/c/CrashOfRhinos.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CrashingBoars.java b/Mage.Sets/src/mage/cards/c/CrashingBoars.java index 16d8ec6fbc7..15e2aa8c8da 100644 --- a/Mage.Sets/src/mage/cards/c/CrashingBoars.java +++ b/Mage.Sets/src/mage/cards/c/CrashingBoars.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -48,6 +47,8 @@ import mage.target.Target; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CrashingCentaur.java b/Mage.Sets/src/mage/cards/c/CrashingCentaur.java index e9b609b3efb..0f6c114281b 100644 --- a/Mage.Sets/src/mage/cards/c/CrashingCentaur.java +++ b/Mage.Sets/src/mage/cards/c/CrashingCentaur.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/c/CraterElemental.java b/Mage.Sets/src/mage/cards/c/CraterElemental.java index 38615fc135d..45e82a62d68 100644 --- a/Mage.Sets/src/mage/cards/c/CraterElemental.java +++ b/Mage.Sets/src/mage/cards/c/CraterElemental.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -47,6 +46,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CraterHellion.java b/Mage.Sets/src/mage/cards/c/CraterHellion.java index c0deba9715a..d9dd125e1e6 100644 --- a/Mage.Sets/src/mage/cards/c/CraterHellion.java +++ b/Mage.Sets/src/mage/cards/c/CraterHellion.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -42,6 +40,9 @@ import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.List; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/c/CraterhoofBehemoth.java b/Mage.Sets/src/mage/cards/c/CraterhoofBehemoth.java index 4130f8bc08e..4250d25ee7a 100644 --- a/Mage.Sets/src/mage/cards/c/CraterhoofBehemoth.java +++ b/Mage.Sets/src/mage/cards/c/CraterhoofBehemoth.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,12 +37,14 @@ import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.TargetController; +import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import java.util.UUID; -import mage.filter.common.FilterControlledCreaturePermanent; /** * diff --git a/Mage.Sets/src/mage/cards/c/Craterize.java b/Mage.Sets/src/mage/cards/c/Craterize.java index f52010a8678..6983846ec1c 100644 --- a/Mage.Sets/src/mage/cards/c/Craterize.java +++ b/Mage.Sets/src/mage/cards/c/Craterize.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CratersClaws.java b/Mage.Sets/src/mage/cards/c/CratersClaws.java index 266f2ac8ee7..7c337f5d2da 100644 --- a/Mage.Sets/src/mage/cards/c/CratersClaws.java +++ b/Mage.Sets/src/mage/cards/c/CratersClaws.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.condition.common.FerociousCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.dynamicvalue.IntPlusDynamicValue; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CravenGiant.java b/Mage.Sets/src/mage/cards/c/CravenGiant.java index 42fcba22bc9..ea71d70084e 100644 --- a/Mage.Sets/src/mage/cards/c/CravenGiant.java +++ b/Mage.Sets/src/mage/cards/c/CravenGiant.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CantBlockAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CravenKnight.java b/Mage.Sets/src/mage/cards/c/CravenKnight.java index 508965233c2..5cfe87dc9cf 100644 --- a/Mage.Sets/src/mage/cards/c/CravenKnight.java +++ b/Mage.Sets/src/mage/cards/c/CravenKnight.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CantBlockAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CrawGiant.java b/Mage.Sets/src/mage/cards/c/CrawGiant.java index 29c242cd195..162e9426d42 100644 --- a/Mage.Sets/src/mage/cards/c/CrawGiant.java +++ b/Mage.Sets/src/mage/cards/c/CrawGiant.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.RampageAbility; import mage.abilities.keyword.TrampleAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CrawWurm.java b/Mage.Sets/src/mage/cards/c/CrawWurm.java index bb1f6ed4c24..8e754aa2c08 100644 --- a/Mage.Sets/src/mage/cards/c/CrawWurm.java +++ b/Mage.Sets/src/mage/cards/c/CrawWurm.java @@ -27,11 +27,12 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CrawlingFilth.java b/Mage.Sets/src/mage/cards/c/CrawlingFilth.java index 1f69bd492af..f0f0908f944 100644 --- a/Mage.Sets/src/mage/cards/c/CrawlingFilth.java +++ b/Mage.Sets/src/mage/cards/c/CrawlingFilth.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FearAbility; import mage.abilities.keyword.SoulshiftAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CrawlingSensation.java b/Mage.Sets/src/mage/cards/c/CrawlingSensation.java index de1845da66d..ee666462774 100644 --- a/Mage.Sets/src/mage/cards/c/CrawlingSensation.java +++ b/Mage.Sets/src/mage/cards/c/CrawlingSensation.java @@ -28,9 +28,6 @@ */ package mage.cards.c; -import java.util.List; -import java.util.Set; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.OnEventTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -45,6 +42,9 @@ import mage.game.events.GameEvent; import mage.game.events.ZoneChangeGroupEvent; import mage.game.permanent.token.InsectToken; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Crawlspace.java b/Mage.Sets/src/mage/cards/c/Crawlspace.java index 3e425bbf497..5f7742a2004 100644 --- a/Mage.Sets/src/mage/cards/c/Crawlspace.java +++ b/Mage.Sets/src/mage/cards/c/Crawlspace.java @@ -27,21 +27,17 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrazedGoblin.java b/Mage.Sets/src/mage/cards/c/CrazedGoblin.java index f50774f53f9..0c3ee6fa8ee 100644 --- a/Mage.Sets/src/mage/cards/c/CrazedGoblin.java +++ b/Mage.Sets/src/mage/cards/c/CrazedGoblin.java @@ -28,13 +28,13 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CrazedSkirge.java b/Mage.Sets/src/mage/cards/c/CrazedSkirge.java index 11c636752d8..67ad235b2f0 100644 --- a/Mage.Sets/src/mage/cards/c/CrazedSkirge.java +++ b/Mage.Sets/src/mage/cards/c/CrazedSkirge.java @@ -28,13 +28,14 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CreakwoodGhoul.java b/Mage.Sets/src/mage/cards/c/CreakwoodGhoul.java index 463ccd41c5d..70c37dfe8e2 100644 --- a/Mage.Sets/src/mage/cards/c/CreakwoodGhoul.java +++ b/Mage.Sets/src/mage/cards/c/CreakwoodGhoul.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,12 @@ import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/c/CreakwoodLiege.java b/Mage.Sets/src/mage/cards/c/CreakwoodLiege.java index 6c88f923b4e..6883c4d098b 100644 --- a/Mage.Sets/src/mage/cards/c/CreakwoodLiege.java +++ b/Mage.Sets/src/mage/cards/c/CreakwoodLiege.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/CreamOfTheCrop.java b/Mage.Sets/src/mage/cards/c/CreamOfTheCrop.java index 2ba4fb30945..f49cd902aa3 100644 --- a/Mage.Sets/src/mage/cards/c/CreamOfTheCrop.java +++ b/Mage.Sets/src/mage/cards/c/CreamOfTheCrop.java @@ -27,15 +27,10 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.SetTargetPointer; @@ -48,6 +43,8 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CreatureBond.java b/Mage.Sets/src/mage/cards/c/CreatureBond.java index b88a1283b2f..ac684e8b7a4 100644 --- a/Mage.Sets/src/mage/cards/c/CreatureBond.java +++ b/Mage.Sets/src/mage/cards/c/CreatureBond.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.dynamicvalue.common.AttachedPermanentToughnessValue; @@ -41,6 +40,8 @@ import mage.constants.Outcome; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author MTGfan diff --git a/Mage.Sets/src/mage/cards/c/Creeperhulk.java b/Mage.Sets/src/mage/cards/c/Creeperhulk.java index 82258d5be25..5f651146053 100644 --- a/Mage.Sets/src/mage/cards/c/Creeperhulk.java +++ b/Mage.Sets/src/mage/cards/c/Creeperhulk.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CreepingCorrosion.java b/Mage.Sets/src/mage/cards/c/CreepingCorrosion.java index ba20fbb7e24..0c2fb8755df 100644 --- a/Mage.Sets/src/mage/cards/c/CreepingCorrosion.java +++ b/Mage.Sets/src/mage/cards/c/CreepingCorrosion.java @@ -27,13 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterArtifactPermanent; +import java.util.UUID; + /** * * @author Viserion diff --git a/Mage.Sets/src/mage/cards/c/CreepingDread.java b/Mage.Sets/src/mage/cards/c/CreepingDread.java index 4c0bf2e06e7..5901c015034 100644 --- a/Mage.Sets/src/mage/cards/c/CreepingDread.java +++ b/Mage.Sets/src/mage/cards/c/CreepingDread.java @@ -27,11 +27,6 @@ */ package mage.cards.c; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -47,6 +42,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.*; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/c/CreepingMold.java b/Mage.Sets/src/mage/cards/c/CreepingMold.java index c0e3a3e4b6b..9962534c138 100644 --- a/Mage.Sets/src/mage/cards/c/CreepingMold.java +++ b/Mage.Sets/src/mage/cards/c/CreepingMold.java @@ -27,16 +27,17 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CreepingRenaissance.java b/Mage.Sets/src/mage/cards/c/CreepingRenaissance.java index d247db3be7e..826a3a16828 100644 --- a/Mage.Sets/src/mage/cards/c/CreepingRenaissance.java +++ b/Mage.Sets/src/mage/cards/c/CreepingRenaissance.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; @@ -39,9 +36,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.choices.Choice; import mage.choices.ChoiceImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.TimingRule; +import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/c/CreepingTarPit.java b/Mage.Sets/src/mage/cards/c/CreepingTarPit.java index 82a54a215a2..71ddd72841c 100644 --- a/Mage.Sets/src/mage/cards/c/CreepingTarPit.java +++ b/Mage.Sets/src/mage/cards/c/CreepingTarPit.java @@ -28,10 +28,6 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -42,8 +38,13 @@ import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CreepyDoll.java b/Mage.Sets/src/mage/cards/c/CreepyDoll.java index 0edb690051a..3030bd371d5 100644 --- a/Mage.Sets/src/mage/cards/c/CreepyDoll.java +++ b/Mage.Sets/src/mage/cards/c/CreepyDoll.java @@ -26,7 +26,7 @@ * or implied, of BetaSteward_at_googlemail.com. */ package mage.cards.c; -import java.util.UUID; + import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -45,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/c/Cremate.java b/Mage.Sets/src/mage/cards/c/Cremate.java index 221ad8bedb4..e2c97457572 100644 --- a/Mage.Sets/src/mage/cards/c/Cremate.java +++ b/Mage.Sets/src/mage/cards/c/Cremate.java @@ -27,14 +27,15 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CrenellatedWall.java b/Mage.Sets/src/mage/cards/c/CrenellatedWall.java index 2b21360e87a..ec08f77c4de 100644 --- a/Mage.Sets/src/mage/cards/c/CrenellatedWall.java +++ b/Mage.Sets/src/mage/cards/c/CrenellatedWall.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CrescendoOfWar.java b/Mage.Sets/src/mage/cards/c/CrescendoOfWar.java index b74903663a0..ea9061f8c40 100644 --- a/Mage.Sets/src/mage/cards/c/CrescendoOfWar.java +++ b/Mage.Sets/src/mage/cards/c/CrescendoOfWar.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.CountersSourceCount; @@ -44,6 +43,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterAttackingCreature; import mage.filter.common.FilterBlockingCreature; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CrestedCraghorn.java b/Mage.Sets/src/mage/cards/c/CrestedCraghorn.java index be0706ba734..d678da401c1 100644 --- a/Mage.Sets/src/mage/cards/c/CrestedCraghorn.java +++ b/Mage.Sets/src/mage/cards/c/CrestedCraghorn.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.ProvokeAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CribSwap.java b/Mage.Sets/src/mage/cards/c/CribSwap.java index 6369da8e1ca..42fbf9f6d68 100644 --- a/Mage.Sets/src/mage/cards/c/CribSwap.java +++ b/Mage.Sets/src/mage/cards/c/CribSwap.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -43,6 +42,8 @@ import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrimePunishment.java b/Mage.Sets/src/mage/cards/c/CrimePunishment.java index 0b18007a495..39788d32728 100644 --- a/Mage.Sets/src/mage/cards/c/CrimePunishment.java +++ b/Mage.Sets/src/mage/cards/c/CrimePunishment.java @@ -25,7 +25,6 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.c; import java.util.UUID; @@ -36,6 +35,7 @@ import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SpellAbilityType; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -43,18 +43,17 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCardInOpponentsGraveyard; - - public class CrimePunishment extends SplitCard { - + private static final FilterCard filter = new FilterCard("creature or enchantment card from an opponent's graveyard"); + static { filter.add(Predicates.or(new CardTypePredicate(CardType.CREATURE), - new CardTypePredicate(CardType.ENCHANTMENT))); + new CardTypePredicate(CardType.ENCHANTMENT))); } public CrimePunishment(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{W}{B}","{X}{B}{G}",false); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{W}{B}", "{X}{B}{G}", SpellAbilityType.SPLIT); // Crime // Put target creature or enchantment card from an opponent's graveyard onto the battlefield under your control. @@ -78,29 +77,29 @@ public class CrimePunishment extends SplitCard { } class PunishmentEffect extends OneShotEffect { - + PunishmentEffect() { super(Outcome.DestroyPermanent); this.staticText = "Destroy each artifact, creature, and enchantment with converted mana cost X"; } - + PunishmentEffect(final PunishmentEffect effect) { super(effect); } - + @Override public PunishmentEffect copy() { return new PunishmentEffect(this); } - + @Override public boolean apply(Game game, Ability source) { for (Permanent permanent : game.getBattlefield().getActivePermanents(source.getControllerId(), game)) { if (permanent != null && permanent.getConvertedManaCost() == source.getManaCostsToPay().getX() && (permanent.isArtifact() - || permanent.isCreature() - || permanent.isEnchantment())) { + || permanent.isCreature() + || permanent.isEnchantment())) { permanent.destroy(source.getSourceId(), game, false); } } diff --git a/Mage.Sets/src/mage/cards/c/CrimsonAcolyte.java b/Mage.Sets/src/mage/cards/c/CrimsonAcolyte.java index 21904b99265..e75f0a133e7 100644 --- a/Mage.Sets/src/mage/cards/c/CrimsonAcolyte.java +++ b/Mage.Sets/src/mage/cards/c/CrimsonAcolyte.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author michael.napoleon@gmail.com diff --git a/Mage.Sets/src/mage/cards/c/CrimsonHellkite.java b/Mage.Sets/src/mage/cards/c/CrimsonHellkite.java index 2dda663b606..d0ee1ede87d 100644 --- a/Mage.Sets/src/mage/cards/c/CrimsonHellkite.java +++ b/Mage.Sets/src/mage/cards/c/CrimsonHellkite.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.constants.Zone; import mage.filter.FilterMana; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/c/CrimsonKobolds.java b/Mage.Sets/src/mage/cards/c/CrimsonKobolds.java index de6a512a0d9..3e2eab5662e 100644 --- a/Mage.Sets/src/mage/cards/c/CrimsonKobolds.java +++ b/Mage.Sets/src/mage/cards/c/CrimsonKobolds.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CrimsonMage.java b/Mage.Sets/src/mage/cards/c/CrimsonMage.java index 104bb4eba3c..a75de54af69 100644 --- a/Mage.Sets/src/mage/cards/c/CrimsonMage.java +++ b/Mage.Sets/src/mage/cards/c/CrimsonMage.java @@ -28,9 +28,6 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,8 +36,14 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/c/CrimsonManticore.java b/Mage.Sets/src/mage/cards/c/CrimsonManticore.java index 912e1d3324d..34574ad0d8f 100644 --- a/Mage.Sets/src/mage/cards/c/CrimsonManticore.java +++ b/Mage.Sets/src/mage/cards/c/CrimsonManticore.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CrimsonMuckwader.java b/Mage.Sets/src/mage/cards/c/CrimsonMuckwader.java index b84d23a735b..d62d9d8d03a 100644 --- a/Mage.Sets/src/mage/cards/c/CrimsonMuckwader.java +++ b/Mage.Sets/src/mage/cards/c/CrimsonMuckwader.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -38,9 +35,13 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.effects.common.continuous.BoostSourceWhileControlsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CrimsonWisps.java b/Mage.Sets/src/mage/cards/c/CrimsonWisps.java index 61fbdc0a335..c3d7549d66a 100644 --- a/Mage.Sets/src/mage/cards/c/CrimsonWisps.java +++ b/Mage.Sets/src/mage/cards/c/CrimsonWisps.java @@ -28,19 +28,19 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/c/CripplingBlight.java b/Mage.Sets/src/mage/cards/c/CripplingBlight.java index 0f62a8aeb87..713cf97a816 100644 --- a/Mage.Sets/src/mage/cards/c/CripplingBlight.java +++ b/Mage.Sets/src/mage/cards/c/CripplingBlight.java @@ -27,12 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.combat.CantBlockAttachedEffect; @@ -40,9 +34,12 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CripplingChill.java b/Mage.Sets/src/mage/cards/c/CripplingChill.java index cecef94e75d..ebeea112068 100644 --- a/Mage.Sets/src/mage/cards/c/CripplingChill.java +++ b/Mage.Sets/src/mage/cards/c/CripplingChill.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.TapTargetEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author noxx diff --git a/Mage.Sets/src/mage/cards/c/CripplingFatigue.java b/Mage.Sets/src/mage/cards/c/CripplingFatigue.java index ae1acfe4220..1469cbfd756 100644 --- a/Mage.Sets/src/mage/cards/c/CripplingFatigue.java +++ b/Mage.Sets/src/mage/cards/c/CripplingFatigue.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.common.PayLifeCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.TimingRule; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/Crocanura.java b/Mage.Sets/src/mage/cards/c/Crocanura.java index f9dabff880e..fc15e2a44a9 100644 --- a/Mage.Sets/src/mage/cards/c/Crocanura.java +++ b/Mage.Sets/src/mage/cards/c/Crocanura.java @@ -28,13 +28,14 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.EvolveAbility; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CrocodileOfTheCrossing.java b/Mage.Sets/src/mage/cards/c/CrocodileOfTheCrossing.java new file mode 100644 index 00000000000..e98f62ac66b --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CrocodileOfTheCrossing.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.keyword.HasteAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.counters.CounterType; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class CrocodileOfTheCrossing extends CardImpl { + + public CrocodileOfTheCrossing(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}"); + + this.subtype.add("Crocodile"); + this.power = new MageInt(5); + this.toughness = new MageInt(4); + + // Haste + this.addAbility(HasteAbility.getInstance()); + + // When Crocodile of the Crossing enters the battlefield, put a -1/-1 counter on target creature you control. + Ability ability = new EntersBattlefieldTriggeredAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance(1))); + ability.addTarget(new TargetControlledCreaturePermanent()); + this.addAbility(ability); + } + + public CrocodileOfTheCrossing(final CrocodileOfTheCrossing card) { + super(card); + } + + @Override + public CrocodileOfTheCrossing copy() { + return new CrocodileOfTheCrossing(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/Cromat.java b/Mage.Sets/src/mage/cards/c/Cromat.java index 91c71818848..6bb43d90f79 100644 --- a/Mage.Sets/src/mage/cards/c/Cromat.java +++ b/Mage.Sets/src/mage/cards/c/Cromat.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -49,6 +49,8 @@ import mage.filter.predicate.permanent.BlockedByIdPredicate; import mage.filter.predicate.permanent.BlockingAttackerIdPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +59,7 @@ public class Cromat extends CardImpl { public Cromat(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{U}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Illusion"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/c/CrookclawTransmuter.java b/Mage.Sets/src/mage/cards/c/CrookclawTransmuter.java index 9f2da756694..34a85e185ef 100644 --- a/Mage.Sets/src/mage/cards/c/CrookclawTransmuter.java +++ b/Mage.Sets/src/mage/cards/c/CrookclawTransmuter.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CrookshankKobolds.java b/Mage.Sets/src/mage/cards/c/CrookshankKobolds.java index a47718fef9c..5e91edd9aea 100644 --- a/Mage.Sets/src/mage/cards/c/CrookshankKobolds.java +++ b/Mage.Sets/src/mage/cards/c/CrookshankKobolds.java @@ -27,12 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CropRotation.java b/Mage.Sets/src/mage/cards/c/CropRotation.java index cd6904c0db5..395902c4de5 100644 --- a/Mage.Sets/src/mage/cards/c/CropRotation.java +++ b/Mage.Sets/src/mage/cards/c/CropRotation.java @@ -27,19 +27,20 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterLandCard; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CropSigil.java b/Mage.Sets/src/mage/cards/c/CropSigil.java index 9d610ffe42c..e2cd542563c 100644 --- a/Mage.Sets/src/mage/cards/c/CropSigil.java +++ b/Mage.Sets/src/mage/cards/c/CropSigil.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.OnEventTriggeredAbility; import mage.abilities.condition.common.DeliriumCondition; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.events.GameEvent; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CrosisThePurger.java b/Mage.Sets/src/mage/cards/c/CrosisThePurger.java index 0937de79d4e..2cba340eb76 100644 --- a/Mage.Sets/src/mage/cards/c/CrosisThePurger.java +++ b/Mage.Sets/src/mage/cards/c/CrosisThePurger.java @@ -28,9 +28,6 @@ package mage.cards.c; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -44,11 +41,16 @@ import mage.cards.CardSetInfo; import mage.choices.ChoiceColor; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.players.Player; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author LoneFox @@ -58,7 +60,7 @@ public class CrosisThePurger extends CardImpl { public CrosisThePurger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(6); this.toughness = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/c/CrosissAttendant.java b/Mage.Sets/src/mage/cards/c/CrosissAttendant.java index 7829eb4a660..27aac33ba03 100644 --- a/Mage.Sets/src/mage/cards/c/CrosissAttendant.java +++ b/Mage.Sets/src/mage/cards/c/CrosissAttendant.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CrosissCatacombs.java b/Mage.Sets/src/mage/cards/c/CrosissCatacombs.java index 24e0d4e0a11..2b111670462 100644 --- a/Mage.Sets/src/mage/cards/c/CrosissCatacombs.java +++ b/Mage.Sets/src/mage/cards/c/CrosissCatacombs.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; @@ -42,6 +41,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CrosissCharm.java b/Mage.Sets/src/mage/cards/c/CrosissCharm.java index 411ff825626..7be4b2f3e75 100644 --- a/Mage.Sets/src/mage/cards/c/CrosissCharm.java +++ b/Mage.Sets/src/mage/cards/c/CrosissCharm.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; @@ -43,6 +42,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrossbowAmbush.java b/Mage.Sets/src/mage/cards/c/CrossbowAmbush.java index c9f52dde8d4..a1261bd1dec 100644 --- a/Mage.Sets/src/mage/cards/c/CrossbowAmbush.java +++ b/Mage.Sets/src/mage/cards/c/CrossbowAmbush.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CrossbowInfantry.java b/Mage.Sets/src/mage/cards/c/CrossbowInfantry.java index 5f9c31f2a40..d0318dd205f 100644 --- a/Mage.Sets/src/mage/cards/c/CrossbowInfantry.java +++ b/Mage.Sets/src/mage/cards/c/CrossbowInfantry.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +34,12 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/Crossfire.java b/Mage.Sets/src/mage/cards/c/Crossfire.java index 2760cf41e8c..7366556cc61 100644 --- a/Mage.Sets/src/mage/cards/c/Crossfire.java +++ b/Mage.Sets/src/mage/cards/c/Crossfire.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetControllerEffect; import mage.abilities.effects.common.DamageTargetEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/c/CrossroadsConsecrator.java b/Mage.Sets/src/mage/cards/c/CrossroadsConsecrator.java index f85e14109e5..dc11058efe5 100644 --- a/Mage.Sets/src/mage/cards/c/CrossroadsConsecrator.java +++ b/Mage.Sets/src/mage/cards/c/CrossroadsConsecrator.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.common.FilterAttackingCreature; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetAttackingCreature; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrosswayVampire.java b/Mage.Sets/src/mage/cards/c/CrosswayVampire.java index 8dff15d967e..009ebf04cf5 100644 --- a/Mage.Sets/src/mage/cards/c/CrosswayVampire.java +++ b/Mage.Sets/src/mage/cards/c/CrosswayVampire.java @@ -27,17 +27,18 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.combat.CantBlockTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/Crosswinds.java b/Mage.Sets/src/mage/cards/c/Crosswinds.java index 72a10e0bee3..745ece23381 100644 --- a/Mage.Sets/src/mage/cards/c/Crosswinds.java +++ b/Mage.Sets/src/mage/cards/c/Crosswinds.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.abilities.keyword.FlyingAbility; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author hanasu diff --git a/Mage.Sets/src/mage/cards/c/CrovaxAscendantHero.java b/Mage.Sets/src/mage/cards/c/CrovaxAscendantHero.java index 2043d1fb1e0..1f20c1adea0 100644 --- a/Mage.Sets/src/mage/cards/c/CrovaxAscendantHero.java +++ b/Mage.Sets/src/mage/cards/c/CrovaxAscendantHero.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; @@ -39,12 +36,16 @@ import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Loki @@ -60,7 +61,7 @@ public class CrovaxAscendantHero extends CardImpl { public CrovaxAscendantHero(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/c/CrovaxTheCursed.java b/Mage.Sets/src/mage/cards/c/CrovaxTheCursed.java index 51b4bf7cfda..fdb92e9d777 100644 --- a/Mage.Sets/src/mage/cards/c/CrovaxTheCursed.java +++ b/Mage.Sets/src/mage/cards/c/CrovaxTheCursed.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -41,17 +40,15 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +57,7 @@ public class CrovaxTheCursed extends CardImpl { public CrovaxTheCursed(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.power = new MageInt(0); this.toughness = new MageInt(0); diff --git a/Mage.Sets/src/mage/cards/c/CrowOfDarkTidings.java b/Mage.Sets/src/mage/cards/c/CrowOfDarkTidings.java index a5ef620a608..6d7e57f17eb 100644 --- a/Mage.Sets/src/mage/cards/c/CrowOfDarkTidings.java +++ b/Mage.Sets/src/mage/cards/c/CrowOfDarkTidings.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldOrDiesSourceTriggeredAbility; import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CrowdFavorites.java b/Mage.Sets/src/mage/cards/c/CrowdFavorites.java index 4fb7f352027..2dda4d0fd3c 100644 --- a/Mage.Sets/src/mage/cards/c/CrowdFavorites.java +++ b/Mage.Sets/src/mage/cards/c/CrowdFavorites.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CrowdOfCinders.java b/Mage.Sets/src/mage/cards/c/CrowdOfCinders.java index fe1210fb38d..94825fcf643 100644 --- a/Mage.Sets/src/mage/cards/c/CrowdOfCinders.java +++ b/Mage.Sets/src/mage/cards/c/CrowdOfCinders.java @@ -27,10 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -39,9 +35,14 @@ import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CrowdsFavor.java b/Mage.Sets/src/mage/cards/c/CrowdsFavor.java index 97f5f719db0..9b08fb83f4f 100644 --- a/Mage.Sets/src/mage/cards/c/CrowdsFavor.java +++ b/Mage.Sets/src/mage/cards/c/CrowdsFavor.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/c/CrownHunterHireling.java b/Mage.Sets/src/mage/cards/c/CrownHunterHireling.java index 3541708d15a..37a3ad0d264 100644 --- a/Mage.Sets/src/mage/cards/c/CrownHunterHireling.java +++ b/Mage.Sets/src/mage/cards/c/CrownHunterHireling.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrownOfConvergence.java b/Mage.Sets/src/mage/cards/c/CrownOfConvergence.java index 0e3779a2463..745f4d4b785 100644 --- a/Mage.Sets/src/mage/cards/c/CrownOfConvergence.java +++ b/Mage.Sets/src/mage/cards/c/CrownOfConvergence.java @@ -39,7 +39,10 @@ import mage.abilities.effects.common.continuous.PlayWithTheTopCardRevealedEffect import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; diff --git a/Mage.Sets/src/mage/cards/c/CrownOfDoom.java b/Mage.Sets/src/mage/cards/c/CrownOfDoom.java index 7595fbc035a..3463b77b859 100644 --- a/Mage.Sets/src/mage/cards/c/CrownOfDoom.java +++ b/Mage.Sets/src/mage/cards/c/CrownOfDoom.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.Objects; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.common.AttacksAllTriggeredAbility; @@ -42,11 +40,7 @@ import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPlayer; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -56,6 +50,9 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.targetpointer.FixedTarget; +import java.util.Objects; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrownOfEmpires.java b/Mage.Sets/src/mage/cards/c/CrownOfEmpires.java index 2745098eb91..006b77e03eb 100644 --- a/Mage.Sets/src/mage/cards/c/CrownOfEmpires.java +++ b/Mage.Sets/src/mage/cards/c/CrownOfEmpires.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +37,7 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/c/CrownOfFlames.java b/Mage.Sets/src/mage/cards/c/CrownOfFlames.java index 0b77a342d42..244bc140f12 100644 --- a/Mage.Sets/src/mage/cards/c/CrownOfFlames.java +++ b/Mage.Sets/src/mage/cards/c/CrownOfFlames.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; @@ -39,9 +36,12 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CrownOfTheAges.java b/Mage.Sets/src/mage/cards/c/CrownOfTheAges.java index 5ab8b1c698d..df45382d5fe 100644 --- a/Mage.Sets/src/mage/cards/c/CrownOfTheAges.java +++ b/Mage.Sets/src/mage/cards/c/CrownOfTheAges.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,8 +40,8 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterEnchantmentPermanent; -import mage.filter.predicate.Predicate; import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.AttachmentAttachedToCardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.PermanentIdPredicate; import mage.game.Game; @@ -51,6 +50,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author spjspj @@ -84,31 +85,6 @@ public class CrownOfTheAges extends CardImpl { } } -class AttachmentAttachedToCardTypePredicate implements Predicate { - - private final CardType cardType; - - public AttachmentAttachedToCardTypePredicate(CardType cardType) { - this.cardType = cardType; - } - - @Override - public boolean apply(Permanent input, Game game) { - if (input.getAttachedTo() != null) { - Permanent attachedTo = game.getPermanent(input.getAttachedTo()); - if (attachedTo != null && attachedTo.getCardType().contains(cardType)) { - return true; - } - } - return false; - } - - @Override - public String toString() { - return "AttachmentAttachedToCardType(" + cardType + ')'; - } -} - class CrownOfTheAgesEffect extends OneShotEffect { public CrownOfTheAgesEffect() { diff --git a/Mage.Sets/src/mage/cards/c/CrownedCeratok.java b/Mage.Sets/src/mage/cards/c/CrownedCeratok.java index 233f28bfd09..5fd486c9e13 100644 --- a/Mage.Sets/src/mage/cards/c/CrownedCeratok.java +++ b/Mage.Sets/src/mage/cards/c/CrownedCeratok.java @@ -27,22 +27,23 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.CounterPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrucibleOfFire.java b/Mage.Sets/src/mage/cards/c/CrucibleOfFire.java index cb29002d5c6..97577a1234e 100644 --- a/Mage.Sets/src/mage/cards/c/CrucibleOfFire.java +++ b/Mage.Sets/src/mage/cards/c/CrucibleOfFire.java @@ -27,17 +27,20 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CrucibleOfTheSpiritDragon.java b/Mage.Sets/src/mage/cards/c/CrucibleOfTheSpiritDragon.java index 2f39cf238d8..82e816936ea 100644 --- a/Mage.Sets/src/mage/cards/c/CrucibleOfTheSpiritDragon.java +++ b/Mage.Sets/src/mage/cards/c/CrucibleOfTheSpiritDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.ConditionalMana; import mage.MageObject; import mage.Mana; @@ -49,6 +48,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrucibleOfWorlds.java b/Mage.Sets/src/mage/cards/c/CrucibleOfWorlds.java index 4a9d007c724..225c14bc19d 100644 --- a/Mage.Sets/src/mage/cards/c/CrucibleOfWorlds.java +++ b/Mage.Sets/src/mage/cards/c/CrucibleOfWorlds.java @@ -27,13 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.PlayLandAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,9 +34,12 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CrudeRampart.java b/Mage.Sets/src/mage/cards/c/CrudeRampart.java index fc62a536940..2c6120a7dd0 100644 --- a/Mage.Sets/src/mage/cards/c/CrudeRampart.java +++ b/Mage.Sets/src/mage/cards/c/CrudeRampart.java @@ -27,15 +27,16 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.DefenderAbility; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.MorphAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CruelDeceiver.java b/Mage.Sets/src/mage/cards/c/CruelDeceiver.java index 833a7b908df..53cb4363d7e 100644 --- a/Mage.Sets/src/mage/cards/c/CruelDeceiver.java +++ b/Mage.Sets/src/mage/cards/c/CruelDeceiver.java @@ -27,11 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; @@ -43,14 +38,16 @@ import mage.abilities.effects.common.LookLibraryControllerEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.TrampleAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CruelEdict.java b/Mage.Sets/src/mage/cards/c/CruelEdict.java index afee4ffce89..928e7ca0090 100644 --- a/Mage.Sets/src/mage/cards/c/CruelEdict.java +++ b/Mage.Sets/src/mage/cards/c/CruelEdict.java @@ -27,14 +27,15 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.SacrificeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CruelEntertainment.java b/Mage.Sets/src/mage/cards/c/CruelEntertainment.java index e15e4278481..ce18b633726 100644 --- a/Mage.Sets/src/mage/cards/c/CruelEntertainment.java +++ b/Mage.Sets/src/mage/cards/c/CruelEntertainment.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.game.turn.TurnMod; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CruelFeeding.java b/Mage.Sets/src/mage/cards/c/CruelFeeding.java index 9cf4d918353..de19c7cd879 100644 --- a/Mage.Sets/src/mage/cards/c/CruelFeeding.java +++ b/Mage.Sets/src/mage/cards/c/CruelFeeding.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.abilityword.StriveAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CruelFinality.java b/Mage.Sets/src/mage/cards/c/CruelFinality.java index bc0e2df311a..6b880662fb6 100644 --- a/Mage.Sets/src/mage/cards/c/CruelFinality.java +++ b/Mage.Sets/src/mage/cards/c/CruelFinality.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CruelReality.java b/Mage.Sets/src/mage/cards/c/CruelReality.java new file mode 100644 index 00000000000..a5c35dc0405 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CruelReality.java @@ -0,0 +1,169 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.TargetPermanent; +import mage.target.TargetPlayer; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author jeffwadsworth + */ +public class CruelReality extends CardImpl { + + public CruelReality(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{5}{B}{B}"); + this.subtype.add("Aura"); + this.subtype.add("Curse"); + this.color.setBlack(true); + + // Enchant player + TargetPlayer auraTarget = new TargetPlayer(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.Damage)); + this.addAbility(new EnchantAbility(auraTarget.getTargetName())); + + //At the beginning of enchanted player's upkeep, that player sacrifices a creature or planeswalker. If the player can't, he or she loses 5 life. + this.addAbility(new CruelRealityTriggeredAbiilty()); + + } + + public CruelReality(final CruelReality card) { + super(card); + } + + @Override + public CruelReality copy() { + return new CruelReality(this); + } +} + +class CruelRealityTriggeredAbiilty extends TriggeredAbilityImpl { + + public CruelRealityTriggeredAbiilty() { + super(Zone.BATTLEFIELD, new CruelRealityEffect()); + } + + public CruelRealityTriggeredAbiilty(final CruelRealityTriggeredAbiilty ability) { + super(ability); + } + + @Override + public CruelRealityTriggeredAbiilty copy() { + return new CruelRealityTriggeredAbiilty(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.UPKEEP_STEP_PRE; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + Permanent enchantment = game.getPermanent(this.sourceId); + if (enchantment != null + && enchantment.getAttachedTo() != null) { + Player cursedPlayer = game.getPlayer(enchantment.getAttachedTo()); + if (cursedPlayer != null + && game.getActivePlayerId().equals(cursedPlayer.getId())) { + this.getEffects().get(0).setTargetPointer(new FixedTarget(cursedPlayer.getId())); + return true; + } + } + return false; + } + + @Override + public String getRule() { + return "At the beginning of enchanted player's upkeep, " + super.getRule(); + } +} + +class CruelRealityEffect extends OneShotEffect { + + public CruelRealityEffect() { + super(Outcome.LoseLife); + staticText = "that player sacrifices a creature or planeswalker. If the player can't, he or she loses 5 life"; + } + + public CruelRealityEffect(final CruelRealityEffect effect) { + super(effect); + } + + @Override + public CruelRealityEffect copy() { + return new CruelRealityEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player cursedPlayer = game.getPlayer(targetPointer.getFirst(game, source)); + Player controller = game.getPlayer(source.getControllerId()); + if (cursedPlayer != null + && controller != null) { + if (cursedPlayer.chooseUse(outcome, "Sacrifice a creature or planeswalker?", source, game)) { + FilterControlledPermanent filter = new FilterControlledPermanent(); + filter.add(Predicates.or( + new CardTypePredicate(CardType.CREATURE), + new CardTypePredicate(CardType.PLANESWALKER))); + TargetPermanent target = new TargetPermanent(filter); + if (cursedPlayer.choose(outcome, target, source.getId(), game)) { + Permanent objectToBeSacrificed = game.getPermanent(target.getFirstTarget()); + if (objectToBeSacrificed != null) { + if (objectToBeSacrificed.sacrifice(source.getId(), game)) { + return true; + } + } + } + } + cursedPlayer.loseLife(5, game, false); + } + return false; + } +} diff --git a/Mage.Sets/src/mage/cards/c/CruelRevival.java b/Mage.Sets/src/mage/cards/c/CruelRevival.java index 5eab562d68e..581a3b0307f 100644 --- a/Mage.Sets/src/mage/cards/c/CruelRevival.java +++ b/Mage.Sets/src/mage/cards/c/CruelRevival.java @@ -27,14 +27,12 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.FilterCard; @@ -47,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CruelSadist.java b/Mage.Sets/src/mage/cards/c/CruelSadist.java index 461b3940175..41130e693fb 100644 --- a/Mage.Sets/src/mage/cards/c/CruelSadist.java +++ b/Mage.Sets/src/mage/cards/c/CruelSadist.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/c/CruelTutor.java b/Mage.Sets/src/mage/cards/c/CruelTutor.java index 4743137667d..7a59a0cb9ce 100644 --- a/Mage.Sets/src/mage/cards/c/CruelTutor.java +++ b/Mage.Sets/src/mage/cards/c/CruelTutor.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.abilities.effects.common.search.SearchLibraryPutOnLibraryEffect; import mage.cards.CardImpl; @@ -36,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/c/CruelUltimatum.java b/Mage.Sets/src/mage/cards/c/CruelUltimatum.java index 5ab32d37e6f..411a9b7d3d2 100644 --- a/Mage.Sets/src/mage/cards/c/CruelUltimatum.java +++ b/Mage.Sets/src/mage/cards/c/CruelUltimatum.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -48,6 +47,8 @@ import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CrueltyOfTheSith.java b/Mage.Sets/src/mage/cards/c/CrueltyOfTheSith.java index b7ed1d218c0..07f692dbac3 100644 --- a/Mage.Sets/src/mage/cards/c/CrueltyOfTheSith.java +++ b/Mage.Sets/src/mage/cards/c/CrueltyOfTheSith.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.DamageTargetEffect; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPlayer; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/c/Crumble.java b/Mage.Sets/src/mage/cards/c/Crumble.java index c6defbaede2..1da9e7400f6 100644 --- a/Mage.Sets/src/mage/cards/c/Crumble.java +++ b/Mage.Sets/src/mage/cards/c/Crumble.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -40,6 +39,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CrumbleToDust.java b/Mage.Sets/src/mage/cards/c/CrumbleToDust.java index 18ac2ff2329..54cd449bf3e 100644 --- a/Mage.Sets/src/mage/cards/c/CrumbleToDust.java +++ b/Mage.Sets/src/mage/cards/c/CrumbleToDust.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.common.ExileTargetAndSearchGraveyardHandLibraryEffect; import mage.abilities.keyword.DevoidAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetNonBasicLandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CrumblingAshes.java b/Mage.Sets/src/mage/cards/c/CrumblingAshes.java index 119bcc32230..d71ce8ef940 100644 --- a/Mage.Sets/src/mage/cards/c/CrumblingAshes.java +++ b/Mage.Sets/src/mage/cards/c/CrumblingAshes.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.DestroyTargetEffect; @@ -42,6 +41,8 @@ import mage.filter.predicate.permanent.CounterPredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CrumblingColossus.java b/Mage.Sets/src/mage/cards/c/CrumblingColossus.java index e7976d89f0f..222a8bad095 100644 --- a/Mage.Sets/src/mage/cards/c/CrumblingColossus.java +++ b/Mage.Sets/src/mage/cards/c/CrumblingColossus.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility; @@ -36,6 +35,7 @@ import mage.abilities.effects.common.SacrificeSourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/c/CrumblingNecropolis.java b/Mage.Sets/src/mage/cards/c/CrumblingNecropolis.java index 8a051559b7e..f5451f63c33 100644 --- a/Mage.Sets/src/mage/cards/c/CrumblingNecropolis.java +++ b/Mage.Sets/src/mage/cards/c/CrumblingNecropolis.java @@ -28,14 +28,15 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.BlueManaAbility; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CrumblingSanctuary.java b/Mage.Sets/src/mage/cards/c/CrumblingSanctuary.java index 87b02ed31b8..34caf38ff17 100644 --- a/Mage.Sets/src/mage/cards/c/CrumblingSanctuary.java +++ b/Mage.Sets/src/mage/cards/c/CrumblingSanctuary.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.PreventionEffectImpl; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CrumblingVestige.java b/Mage.Sets/src/mage/cards/c/CrumblingVestige.java index d6613e7d5cf..21722ddbccf 100644 --- a/Mage.Sets/src/mage/cards/c/CrumblingVestige.java +++ b/Mage.Sets/src/mage/cards/c/CrumblingVestige.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.AddManaOfAnyColorEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/Crusade.java b/Mage.Sets/src/mage/cards/c/Crusade.java index 5c3a5c29be0..90a91dc229b 100644 --- a/Mage.Sets/src/mage/cards/c/Crusade.java +++ b/Mage.Sets/src/mage/cards/c/Crusade.java @@ -27,18 +27,19 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North, Loki diff --git a/Mage.Sets/src/mage/cards/c/CrusaderOfOdric.java b/Mage.Sets/src/mage/cards/c/CrusaderOfOdric.java index fd01e71db69..63d4ac81f93 100644 --- a/Mage.Sets/src/mage/cards/c/CrusaderOfOdric.java +++ b/Mage.Sets/src/mage/cards/c/CrusaderOfOdric.java @@ -27,19 +27,19 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CrusadingKnight.java b/Mage.Sets/src/mage/cards/c/CrusadingKnight.java index 8d3924408c9..e0cfb75341f 100644 --- a/Mage.Sets/src/mage/cards/c/CrusadingKnight.java +++ b/Mage.Sets/src/mage/cards/c/CrusadingKnight.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -36,11 +35,16 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/c/Crush.java b/Mage.Sets/src/mage/cards/c/Crush.java index 8c44ae1ea63..95e3b143733 100644 --- a/Mage.Sets/src/mage/cards/c/Crush.java +++ b/Mage.Sets/src/mage/cards/c/Crush.java @@ -27,16 +27,17 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CrushOfTentacles.java b/Mage.Sets/src/mage/cards/c/CrushOfTentacles.java index d506b7cb293..bbf0db71dc7 100644 --- a/Mage.Sets/src/mage/cards/c/CrushOfTentacles.java +++ b/Mage.Sets/src/mage/cards/c/CrushOfTentacles.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.condition.common.SurgedCondition; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.filter.common.FilterNonlandPermanent; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrushUnderfoot.java b/Mage.Sets/src/mage/cards/c/CrushUnderfoot.java index c31848b58e3..3832a0d606d 100644 --- a/Mage.Sets/src/mage/cards/c/CrushUnderfoot.java +++ b/Mage.Sets/src/mage/cards/c/CrushUnderfoot.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -44,6 +43,8 @@ import mage.target.Target; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrusherZendikon.java b/Mage.Sets/src/mage/cards/c/CrusherZendikon.java index 3f65a861971..956dabca713 100644 --- a/Mage.Sets/src/mage/cards/c/CrusherZendikon.java +++ b/Mage.Sets/src/mage/cards/c/CrusherZendikon.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; @@ -41,10 +38,16 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.permanent.token.Token; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CrushingPain.java b/Mage.Sets/src/mage/cards/c/CrushingPain.java index d1d9253042b..c660d6f127e 100644 --- a/Mage.Sets/src/mage/cards/c/CrushingPain.java +++ b/Mage.Sets/src/mage/cards/c/CrushingPain.java @@ -29,16 +29,16 @@ */ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/c/CrushingVines.java b/Mage.Sets/src/mage/cards/c/CrushingVines.java index 7a206021d04..eb0d4f20f3a 100644 --- a/Mage.Sets/src/mage/cards/c/CrushingVines.java +++ b/Mage.Sets/src/mage/cards/c/CrushingVines.java @@ -27,18 +27,19 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CruxOfFate.java b/Mage.Sets/src/mage/cards/c/CruxOfFate.java index 140e32d256e..ac387dcf829 100644 --- a/Mage.Sets/src/mage/cards/c/CruxOfFate.java +++ b/Mage.Sets/src/mage/cards/c/CruxOfFate.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CryOfContrition.java b/Mage.Sets/src/mage/cards/c/CryOfContrition.java index a53b5a218a0..b39a1442578 100644 --- a/Mage.Sets/src/mage/cards/c/CryOfContrition.java +++ b/Mage.Sets/src/mage/cards/c/CryOfContrition.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.keyword.HauntAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Cryoclasm.java b/Mage.Sets/src/mage/cards/c/Cryoclasm.java index a84d0892d1a..7fa93259469 100644 --- a/Mage.Sets/src/mage/cards/c/Cryoclasm.java +++ b/Mage.Sets/src/mage/cards/c/Cryoclasm.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetControllerEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -39,6 +38,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/c/Crypsis.java b/Mage.Sets/src/mage/cards/c/Crypsis.java index 0e4c60718fc..e73be9e5c9e 100644 --- a/Mage.Sets/src/mage/cards/c/Crypsis.java +++ b/Mage.Sets/src/mage/cards/c/Crypsis.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -42,6 +41,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CryptAngel.java b/Mage.Sets/src/mage/cards/c/CryptAngel.java index f4d87d3a37d..b2c6660fcd7 100644 --- a/Mage.Sets/src/mage/cards/c/CryptAngel.java +++ b/Mage.Sets/src/mage/cards/c/CryptAngel.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -43,6 +42,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CryptChampion.java b/Mage.Sets/src/mage/cards/c/CryptChampion.java index 6b14c8187ba..b5bdb2ddbbc 100644 --- a/Mage.Sets/src/mage/cards/c/CryptChampion.java +++ b/Mage.Sets/src/mage/cards/c/CryptChampion.java @@ -27,9 +27,9 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.ManaWasSpentCondition; import mage.abilities.effects.OneShotEffect; @@ -42,7 +42,6 @@ import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -53,6 +52,8 @@ import mage.target.Target; import mage.target.common.TargetCardInGraveyard; import mage.watchers.common.ManaSpentToCastWatcher; +import java.util.UUID; + /** * * @author emerald000 @@ -111,7 +112,7 @@ class CryptChampionEffect extends OneShotEffect { if (player != null) { FilterCard filter = new FilterCreatureCard("creature card with converted mana cost 3 or less from your graveyard"); filter.add(new OwnerIdPredicate(playerId)); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); Target target = new TargetCardInGraveyard(filter); if (target.canChoose(playerId, game) && player.chooseTarget(outcome, target, source, game)) { Card card = game.getCard(target.getFirstTarget()); diff --git a/Mage.Sets/src/mage/cards/c/CryptCobra.java b/Mage.Sets/src/mage/cards/c/CryptCobra.java index c7d11596b5d..b28944b6538 100644 --- a/Mage.Sets/src/mage/cards/c/CryptCobra.java +++ b/Mage.Sets/src/mage/cards/c/CryptCobra.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility; import mage.abilities.effects.Effect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CryptCreeper.java b/Mage.Sets/src/mage/cards/c/CryptCreeper.java index 47ab7aa1c2b..7e28f256ea7 100644 --- a/Mage.Sets/src/mage/cards/c/CryptCreeper.java +++ b/Mage.Sets/src/mage/cards/c/CryptCreeper.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -35,6 +34,7 @@ import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCardInGraveyard; diff --git a/Mage.Sets/src/mage/cards/c/CryptGhast.java b/Mage.Sets/src/mage/cards/c/CryptGhast.java index 9db501bd276..0af2538e3e2 100644 --- a/Mage.Sets/src/mage/cards/c/CryptGhast.java +++ b/Mage.Sets/src/mage/cards/c/CryptGhast.java @@ -28,7 +28,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.effects.common.BasicManaEffect; @@ -45,6 +44,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CryptIncursion.java b/Mage.Sets/src/mage/cards/c/CryptIncursion.java index f5243b0cd89..0c593208040 100644 --- a/Mage.Sets/src/mage/cards/c/CryptIncursion.java +++ b/Mage.Sets/src/mage/cards/c/CryptIncursion.java @@ -28,19 +28,20 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CryptOfAgadeem.java b/Mage.Sets/src/mage/cards/c/CryptOfAgadeem.java index 4ef17497fdd..fcf80011b94 100644 --- a/Mage.Sets/src/mage/cards/c/CryptOfAgadeem.java +++ b/Mage.Sets/src/mage/cards/c/CryptOfAgadeem.java @@ -27,8 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; import mage.Mana; import mage.ObjectColor; import mage.abilities.common.EntersBattlefieldTappedAbility; @@ -39,9 +37,12 @@ import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.DynamicManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/c/CryptRats.java b/Mage.Sets/src/mage/cards/c/CryptRats.java index 50bc847f6c4..aa7f840dd3a 100644 --- a/Mage.Sets/src/mage/cards/c/CryptRats.java +++ b/Mage.Sets/src/mage/cards/c/CryptRats.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.filter.FilterMana; import mage.filter.FilterPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CryptRipper.java b/Mage.Sets/src/mage/cards/c/CryptRipper.java index befec2faf3d..5fa3b504b01 100644 --- a/Mage.Sets/src/mage/cards/c/CryptRipper.java +++ b/Mage.Sets/src/mage/cards/c/CryptRipper.java @@ -27,10 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +34,11 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CryptSliver.java b/Mage.Sets/src/mage/cards/c/CryptSliver.java index 4d2f3b5c159..eaf7b709dde 100644 --- a/Mage.Sets/src/mage/cards/c/CryptSliver.java +++ b/Mage.Sets/src/mage/cards/c/CryptSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.StaticFilters; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/c/CryptbornHorror.java b/Mage.Sets/src/mage/cards/c/CryptbornHorror.java index 24be98a363c..b415d3f0a75 100644 --- a/Mage.Sets/src/mage/cards/c/CryptbornHorror.java +++ b/Mage.Sets/src/mage/cards/c/CryptbornHorror.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -42,6 +41,8 @@ import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Cryptbreaker.java b/Mage.Sets/src/mage/cards/c/Cryptbreaker.java index e568b0bbe3a..cf799bf3724 100644 --- a/Mage.Sets/src/mage/cards/c/Cryptbreaker.java +++ b/Mage.Sets/src/mage/cards/c/Cryptbreaker.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -50,6 +49,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.game.permanent.token.ZombieToken; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CrypticAnnelid.java b/Mage.Sets/src/mage/cards/c/CrypticAnnelid.java index 3b31fb83927..ed71bc02895 100644 --- a/Mage.Sets/src/mage/cards/c/CrypticAnnelid.java +++ b/Mage.Sets/src/mage/cards/c/CrypticAnnelid.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/c/CrypticCommand.java b/Mage.Sets/src/mage/cards/c/CrypticCommand.java index ed229e65549..3f372125124 100644 --- a/Mage.Sets/src/mage/cards/c/CrypticCommand.java +++ b/Mage.Sets/src/mage/cards/c/CrypticCommand.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.OneShotEffect; @@ -47,6 +46,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/c/CrypticCruiser.java b/Mage.Sets/src/mage/cards/c/CrypticCruiser.java index 1d587f23eed..552ba56cd31 100644 --- a/Mage.Sets/src/mage/cards/c/CrypticCruiser.java +++ b/Mage.Sets/src/mage/cards/c/CrypticCruiser.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrypticGateway.java b/Mage.Sets/src/mage/cards/c/CrypticGateway.java index 741baef9685..beca9ec21b3 100644 --- a/Mage.Sets/src/mage/cards/c/CrypticGateway.java +++ b/Mage.Sets/src/mage/cards/c/CrypticGateway.java @@ -27,9 +27,6 @@ */ package mage.cards.c; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.Cost; @@ -54,6 +51,10 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/c/CrypticSerpent.java b/Mage.Sets/src/mage/cards/c/CrypticSerpent.java new file mode 100644 index 00000000000..b6b1eeabb2c --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CrypticSerpent.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.c; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.cost.SourceCostReductionForEachCardInGraveyardEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.filter.common.FilterInstantOrSorceryCard; + +/** + * + * @author fireshoes + */ +public class CrypticSerpent extends CardImpl { + + public CrypticSerpent(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{U}{U}"); + + this.subtype.add("Serpent"); + this.power = new MageInt(6); + this.toughness = new MageInt(5); + + // Cryptic Serpent costs {1} less to cast for each instant and sorcery card in your graveyard. + this.addAbility(new SimpleStaticAbility(Zone.ALL, new SourceCostReductionForEachCardInGraveyardEffect(new FilterInstantOrSorceryCard()))); + } + + public CrypticSerpent(final CrypticSerpent card) { + super(card); + } + + @Override + public CrypticSerpent copy() { + return new CrypticSerpent(this); + } +} diff --git a/Mage.Sets/src/mage/cards/c/CryptolithFragment.java b/Mage.Sets/src/mage/cards/c/CryptolithFragment.java index 7487ef139b4..0b95b8c8096 100644 --- a/Mage.Sets/src/mage/cards/c/CryptolithFragment.java +++ b/Mage.Sets/src/mage/cards/c/CryptolithFragment.java @@ -27,22 +27,23 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.condition.common.TenOrLessLifeCondition; +import mage.abilities.condition.common.XorLessLifeCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.LoseLifeAllPlayersEffect; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.TransformAbility; import mage.abilities.mana.AnyColorManaAbility; -import mage.cards.a.AuroraOfEmrakul; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.a.AuroraOfEmrakul; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author fireshoes @@ -67,7 +68,7 @@ public class CryptolithFragment extends CardImpl { this.addAbility(new TransformAbility()); this.addAbility(new ConditionalTriggeredAbility( new BeginningOfUpkeepTriggeredAbility(new TransformSourceEffect(true), TargetController.YOU, false), - new TenOrLessLifeCondition(TenOrLessLifeCondition.CheckType.EACH_PLAYER), + new XorLessLifeCondition(XorLessLifeCondition.CheckType.EACH_PLAYER, 10), "At the beginning of your upkeep, if each player has 10 or less life, transform Cryptolith Fragment.")); } diff --git a/Mage.Sets/src/mage/cards/c/CryptolithRite.java b/Mage.Sets/src/mage/cards/c/CryptolithRite.java index aa291b51af5..616c966a9a9 100644 --- a/Mage.Sets/src/mage/cards/c/CryptolithRite.java +++ b/Mage.Sets/src/mage/cards/c/CryptolithRite.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.mana.AnyColorManaAbility; @@ -38,6 +37,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/Cryptoplasm.java b/Mage.Sets/src/mage/cards/c/Cryptoplasm.java index c64a456e604..6a01c6f0a7f 100644 --- a/Mage.Sets/src/mage/cards/c/Cryptoplasm.java +++ b/Mage.Sets/src/mage/cards/c/Cryptoplasm.java @@ -57,7 +57,7 @@ public class Cryptoplasm extends CardImpl { } public Cryptoplasm(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{U}"); this.subtype.add("Shapeshifter"); this.power = new MageInt(2); @@ -102,7 +102,7 @@ class CryptoplasmEffect extends OneShotEffect { if (creatureToCopy != null) { ApplyToPermanent applier = new ApplyToPermanent() { @Override - public boolean apply(Game game, Permanent permanent) { + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { Ability upkeepAbility = new BeginningOfUpkeepTriggeredAbility(new CryptoplasmEffect(), TargetController.YOU, true); upkeepAbility.addTarget(new TargetCreaturePermanent()); permanent.addAbility(upkeepAbility, source.getSourceId(), game); @@ -110,7 +110,7 @@ class CryptoplasmEffect extends OneShotEffect { } @Override - public boolean apply(Game game, MageObject mageObject) { + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { Ability upkeepAbility = new BeginningOfUpkeepTriggeredAbility(new CryptoplasmEffect(), TargetController.YOU, true); upkeepAbility.addTarget(new TargetCreaturePermanent()); mageObject.getAbilities().add(upkeepAbility); diff --git a/Mage.Sets/src/mage/cards/c/CrystalBall.java b/Mage.Sets/src/mage/cards/c/CrystalBall.java index 2c9fb2deec0..61231113362 100644 --- a/Mage.Sets/src/mage/cards/c/CrystalBall.java +++ b/Mage.Sets/src/mage/cards/c/CrystalBall.java @@ -28,9 +28,6 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,6 +35,10 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CrystalChimes.java b/Mage.Sets/src/mage/cards/c/CrystalChimes.java index 6bef60e4d50..94591256633 100644 --- a/Mage.Sets/src/mage/cards/c/CrystalChimes.java +++ b/Mage.Sets/src/mage/cards/c/CrystalChimes.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -43,6 +42,8 @@ import mage.filter.common.FilterEnchantmentCard; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CrystalGolem.java b/Mage.Sets/src/mage/cards/c/CrystalGolem.java index 6b3a8b0e677..5135788f36b 100644 --- a/Mage.Sets/src/mage/cards/c/CrystalGolem.java +++ b/Mage.Sets/src/mage/cards/c/CrystalGolem.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.effects.common.PhaseOutSourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CrystalQuarry.java b/Mage.Sets/src/mage/cards/c/CrystalQuarry.java index f209a46e9e5..a9908fde53f 100644 --- a/Mage.Sets/src/mage/cards/c/CrystalQuarry.java +++ b/Mage.Sets/src/mage/cards/c/CrystalQuarry.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/CrystalRod.java b/Mage.Sets/src/mage/cards/c/CrystalRod.java index 46eb132f01c..0690cde1981 100644 --- a/Mage.Sets/src/mage/cards/c/CrystalRod.java +++ b/Mage.Sets/src/mage/cards/c/CrystalRod.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.DoIfCostPaid; @@ -41,6 +40,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.stack.Spell; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/c/CrystalSeer.java b/Mage.Sets/src/mage/cards/c/CrystalSeer.java index dc5512f3cfd..83bf3134439 100644 --- a/Mage.Sets/src/mage/cards/c/CrystalSeer.java +++ b/Mage.Sets/src/mage/cards/c/CrystalSeer.java @@ -29,9 +29,6 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +37,10 @@ import mage.abilities.effects.common.LookLibraryControllerEffect; import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CrystalShard.java b/Mage.Sets/src/mage/cards/c/CrystalShard.java index 5dc069dcb88..7cd173945c8 100644 --- a/Mage.Sets/src/mage/cards/c/CrystalShard.java +++ b/Mage.Sets/src/mage/cards/c/CrystalShard.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.Cost; @@ -45,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrystalVein.java b/Mage.Sets/src/mage/cards/c/CrystalVein.java index e7494bd51ce..4acd4e44664 100644 --- a/Mage.Sets/src/mage/cards/c/CrystalVein.java +++ b/Mage.Sets/src/mage/cards/c/CrystalVein.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.Mana; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.TapSourceCost; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrystallineCrawler.java b/Mage.Sets/src/mage/cards/c/CrystallineCrawler.java index f93601c1add..c26e1a37d34 100644 --- a/Mage.Sets/src/mage/cards/c/CrystallineCrawler.java +++ b/Mage.Sets/src/mage/cards/c/CrystallineCrawler.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CrystallineNautilus.java b/Mage.Sets/src/mage/cards/c/CrystallineNautilus.java index 6d6dca9d8d4..3ffb74474ad 100644 --- a/Mage.Sets/src/mage/cards/c/CrystallineNautilus.java +++ b/Mage.Sets/src/mage/cards/c/CrystallineNautilus.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesTargetTriggeredAbility; @@ -44,6 +43,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CrystallineSliver.java b/Mage.Sets/src/mage/cards/c/CrystallineSliver.java index f3c5c3b7d08..abe0cc4d717 100644 --- a/Mage.Sets/src/mage/cards/c/CrystallineSliver.java +++ b/Mage.Sets/src/mage/cards/c/CrystallineSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.FilterPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/c/Crystallization.java b/Mage.Sets/src/mage/cards/c/Crystallization.java index 80ca4dc990e..af8af13ae20 100644 --- a/Mage.Sets/src/mage/cards/c/Crystallization.java +++ b/Mage.Sets/src/mage/cards/c/Crystallization.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; @@ -49,6 +48,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/c/CudgelTroll.java b/Mage.Sets/src/mage/cards/c/CudgelTroll.java index 7c98d24c929..3cdf5806631 100644 --- a/Mage.Sets/src/mage/cards/c/CudgelTroll.java +++ b/Mage.Sets/src/mage/cards/c/CudgelTroll.java @@ -28,15 +28,16 @@ package mage.cards.c; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.RegenerateSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/c/CullingDais.java b/Mage.Sets/src/mage/cards/c/CullingDais.java index 96527bd3914..94d5d2151ca 100644 --- a/Mage.Sets/src/mage/cards/c/CullingDais.java +++ b/Mage.Sets/src/mage/cards/c/CullingDais.java @@ -28,9 +28,6 @@ package mage.cards.c; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +38,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.counters.CounterType; @@ -49,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/c/CullingDrone.java b/Mage.Sets/src/mage/cards/c/CullingDrone.java index 1ff868f07a7..5a222638e25 100644 --- a/Mage.Sets/src/mage/cards/c/CullingDrone.java +++ b/Mage.Sets/src/mage/cards/c/CullingDrone.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.DevoidAbility; import mage.abilities.keyword.IngestAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/c/CullingMark.java b/Mage.Sets/src/mage/cards/c/CullingMark.java index 230c07d317a..e786adc9187 100644 --- a/Mage.Sets/src/mage/cards/c/CullingMark.java +++ b/Mage.Sets/src/mage/cards/c/CullingMark.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.effects.common.combat.BlocksIfAbleTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/c/CullingScales.java b/Mage.Sets/src/mage/cards/c/CullingScales.java index 42456b8a28b..2f556931057 100644 --- a/Mage.Sets/src/mage/cards/c/CullingScales.java +++ b/Mage.Sets/src/mage/cards/c/CullingScales.java @@ -27,15 +27,14 @@ */ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; -import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.common.FilterNonlandPermanent; import mage.filter.predicate.Predicate; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author cg5 @@ -82,7 +83,7 @@ class HasLowestCMCAmongstNonlandPermanentsPredicate implements Predicate ability = object.getAbilities().get(event.getTargetId()); + if (ability.isPresent() && !(ability.get() instanceof ActivatedManaAbilityImpl)) { return true; } } diff --git a/Mage.Sets/src/mage/cards/d/DanceOfMany.java b/Mage.Sets/src/mage/cards/d/DanceOfMany.java index 290a089ecbe..fce68158a8b 100644 --- a/Mage.Sets/src/mage/cards/d/DanceOfMany.java +++ b/Mage.Sets/src/mage/cards/d/DanceOfMany.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -46,11 +44,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.Cards; import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.TokenPredicate; @@ -60,6 +54,9 @@ import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.List; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DanceOfShadows.java b/Mage.Sets/src/mage/cards/d/DanceOfShadows.java index 6509187e2fe..168ff866857 100644 --- a/Mage.Sets/src/mage/cards/d/DanceOfShadows.java +++ b/Mage.Sets/src/mage/cards/d/DanceOfShadows.java @@ -28,18 +28,18 @@ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.Effect; - -import mage.constants.CardType; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java b/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java index df5a9eae310..1144b495946 100644 --- a/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java +++ b/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.Mode; @@ -50,13 +49,7 @@ import mage.abilities.keyword.EnchantAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.PermanentIdPredicate; @@ -67,6 +60,8 @@ import mage.target.Target; import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -86,7 +81,7 @@ public class DanceOfTheDead extends CardImpl { // When Dance of the Dead enters the battlefield, if it's on the battlefield, it loses "enchant creature card in a graveyard" and gains "enchant creature put onto the battlefield with Dance of the Dead." Put enchanted creature card to the battlefield tapped under your control and attach Dance of the Dead to it. When Dance of the Dead leaves the battlefield, that creature's controller sacrifices it. Ability ability = new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new DanceOfTheDeadReAttachEffect(), false), - SourceOnBattlefieldCondition.getInstance(), + SourceOnBattlefieldCondition.instance, "When {this} enters the battlefield, if it's on the battlefield, it loses \"enchant creature card in a graveyard\" and gains \"enchant creature put onto the battlefield with {this}.\" Return enchanted creature card to the battlefield under your control and attach {this} to it."); ability.addEffect(new DanceOfTheDeadChangeAbilityEffect()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/d/DanceWithDevils.java b/Mage.Sets/src/mage/cards/d/DanceWithDevils.java index 4516331d3e7..f4028c6c283 100644 --- a/Mage.Sets/src/mage/cards/d/DanceWithDevils.java +++ b/Mage.Sets/src/mage/cards/d/DanceWithDevils.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.DevilToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DancingScimitar.java b/Mage.Sets/src/mage/cards/d/DancingScimitar.java index 550e85c9a60..522a176d2dd 100644 --- a/Mage.Sets/src/mage/cards/d/DancingScimitar.java +++ b/Mage.Sets/src/mage/cards/d/DancingScimitar.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/Dandan.java b/Mage.Sets/src/mage/cards/d/Dandan.java index dca6a686898..415f07de46e 100644 --- a/Mage.Sets/src/mage/cards/d/Dandan.java +++ b/Mage.Sets/src/mage/cards/d/Dandan.java @@ -27,27 +27,27 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.abilities.effects.common.combat.CantAttackUnlessDefenderControllsPermanent; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; -import mage.filter.Filter; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** - * * @author KholdFuzion - * */ public class Dandan extends CardImpl { public Dandan(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}{U}"); this.subtype.add("Fish"); this.power = new MageInt(4); @@ -58,7 +58,7 @@ public class Dandan extends CardImpl { // When you control no Islands, sacrifice Dandan. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Island", "no Islands"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Island", "no Islands"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/d/DangerousWager.java b/Mage.Sets/src/mage/cards/d/DangerousWager.java index 09a0fdb9e98..4bc57e8b56d 100644 --- a/Mage.Sets/src/mage/cards/d/DangerousWager.java +++ b/Mage.Sets/src/mage/cards/d/DangerousWager.java @@ -27,18 +27,19 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DarajaGriffin.java b/Mage.Sets/src/mage/cards/d/DarajaGriffin.java index 55fb01f0170..82b8c04a9a0 100644 --- a/Mage.Sets/src/mage/cards/d/DarajaGriffin.java +++ b/Mage.Sets/src/mage/cards/d/DarajaGriffin.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -43,6 +42,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/d/Darba.java b/Mage.Sets/src/mage/cards/d/Darba.java index ecc9c9d1208..b9879fb21a7 100644 --- a/Mage.Sets/src/mage/cards/d/Darba.java +++ b/Mage.Sets/src/mage/cards/d/Darba.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DaredevilDragster.java b/Mage.Sets/src/mage/cards/d/DaredevilDragster.java index f6cc4f5d961..3034158b728 100644 --- a/Mage.Sets/src/mage/cards/d/DaredevilDragster.java +++ b/Mage.Sets/src/mage/cards/d/DaredevilDragster.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EndOfCombatTriggeredAbility; @@ -45,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.watchers.common.AttackedOrBlockedThisCombatWatcher; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/d/DarettiIngeniousIconoclast.java b/Mage.Sets/src/mage/cards/d/DarettiIngeniousIconoclast.java index d2f7d43d995..7d018ce125a 100644 --- a/Mage.Sets/src/mage/cards/d/DarettiIngeniousIconoclast.java +++ b/Mage.Sets/src/mage/cards/d/DarettiIngeniousIconoclast.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; @@ -54,6 +53,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCardInGraveyardOrBattlefield; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DarettiScrapSavant.java b/Mage.Sets/src/mage/cards/d/DarettiScrapSavant.java index febe5dd0080..68201fdf555 100644 --- a/Mage.Sets/src/mage/cards/d/DarettiScrapSavant.java +++ b/Mage.Sets/src/mage/cards/d/DarettiScrapSavant.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.TriggeredAbilityImpl; @@ -61,6 +60,8 @@ import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetDiscard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DarienKingOfKjeldor.java b/Mage.Sets/src/mage/cards/d/DarienKingOfKjeldor.java index 89e9abf7066..e53c1e5f8d0 100644 --- a/Mage.Sets/src/mage/cards/d/DarienKingOfKjeldor.java +++ b/Mage.Sets/src/mage/cards/d/DarienKingOfKjeldor.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -37,6 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -44,6 +44,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.token.SoldierToken; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,7 +54,7 @@ public class DarienKingOfKjeldor extends CardImpl { public DarienKingOfKjeldor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/d/DarigaazTheIgniter.java b/Mage.Sets/src/mage/cards/d/DarigaazTheIgniter.java index e702ce8a3c7..0667f196f40 100644 --- a/Mage.Sets/src/mage/cards/d/DarigaazTheIgniter.java +++ b/Mage.Sets/src/mage/cards/d/DarigaazTheIgniter.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -40,11 +39,14 @@ import mage.cards.CardSetInfo; import mage.choices.ChoiceColor; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author FenrisulfrX @@ -53,7 +55,7 @@ public class DarigaazTheIgniter extends CardImpl { public DarigaazTheIgniter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(6); this.toughness = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/d/DarigaazsAttendant.java b/Mage.Sets/src/mage/cards/d/DarigaazsAttendant.java index a0b07f2c42f..00f2866525b 100644 --- a/Mage.Sets/src/mage/cards/d/DarigaazsAttendant.java +++ b/Mage.Sets/src/mage/cards/d/DarigaazsAttendant.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DarigaazsCaldera.java b/Mage.Sets/src/mage/cards/d/DarigaazsCaldera.java index 5b157ee0382..bc39942388c 100644 --- a/Mage.Sets/src/mage/cards/d/DarigaazsCaldera.java +++ b/Mage.Sets/src/mage/cards/d/DarigaazsCaldera.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; @@ -42,6 +41,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DarigaazsCharm.java b/Mage.Sets/src/mage/cards/d/DarigaazsCharm.java index e7bce7f4ad1..31ad43ea81c 100644 --- a/Mage.Sets/src/mage/cards/d/DarigaazsCharm.java +++ b/Mage.Sets/src/mage/cards/d/DarigaazsCharm.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -42,6 +41,8 @@ import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author FenrisulfrX diff --git a/Mage.Sets/src/mage/cards/d/DaringApprentice.java b/Mage.Sets/src/mage/cards/d/DaringApprentice.java index 0367153fd74..43f218c48e7 100644 --- a/Mage.Sets/src/mage/cards/d/DaringApprentice.java +++ b/Mage.Sets/src/mage/cards/d/DaringApprentice.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,12 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DaringDemolition.java b/Mage.Sets/src/mage/cards/d/DaringDemolition.java index ab85bbe754c..94e3022dd94 100644 --- a/Mage.Sets/src/mage/cards/d/DaringDemolition.java +++ b/Mage.Sets/src/mage/cards/d/DaringDemolition.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -38,6 +37,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DaringLeap.java b/Mage.Sets/src/mage/cards/d/DaringLeap.java index 2e56b8d4447..051fd97607a 100644 --- a/Mage.Sets/src/mage/cards/d/DaringLeap.java +++ b/Mage.Sets/src/mage/cards/d/DaringLeap.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DaringSkyjek.java b/Mage.Sets/src/mage/cards/d/DaringSkyjek.java index b85e9f29992..6af44fe23b8 100644 --- a/Mage.Sets/src/mage/cards/d/DaringSkyjek.java +++ b/Mage.Sets/src/mage/cards/d/DaringSkyjek.java @@ -27,15 +27,16 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.BattalionAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DaringSleuth.java b/Mage.Sets/src/mage/cards/d/DaringSleuth.java index 9c62f07e530..7a9927c062f 100644 --- a/Mage.Sets/src/mage/cards/d/DaringSleuth.java +++ b/Mage.Sets/src/mage/cards/d/DaringSleuth.java @@ -27,20 +27,21 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.TransformAbility; -import mage.cards.b.BearerOfOverwhelmingTruths; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.b.BearerOfOverwhelmingTruths; import mage.constants.CardType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DaringThief.java b/Mage.Sets/src/mage/cards/d/DaringThief.java index 6a34d54197d..368cae9591b 100644 --- a/Mage.Sets/src/mage/cards/d/DaringThief.java +++ b/Mage.Sets/src/mage/cards/d/DaringThief.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -49,7 +46,11 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetControlledPermanent; -import mage.util.CardUtil; + +import java.util.EnumSet; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; /** * @@ -133,9 +134,9 @@ class TargetControlledPermanentSharingOpponentPermanentCardType extends TargetCo return new TargetControlledPermanentSharingOpponentPermanentCardType(this); } - private Set getOpponentPermanentCardTypes(UUID sourceId, UUID sourceControllerId, Game game) { + private EnumSet getOpponentPermanentCardTypes(UUID sourceId, UUID sourceControllerId, Game game) { Player controller = game.getPlayer(sourceControllerId); - Set cardTypes = new HashSet<>(); + EnumSet cardTypes =EnumSet.noneOf(CardType.class); if (controller != null) { for (Permanent permanent: game.getBattlefield().getActivePermanents(sourceControllerId, game)) { if (controller.hasOpponent(permanent.getControllerId(), game)) { @@ -170,7 +171,7 @@ class DaringThiefSecondTarget extends TargetPermanent { Permanent target1 = game.getPermanent(source.getFirstTarget()); Permanent opponentPermanent = game.getPermanent(id); if (target1 != null && opponentPermanent != null) { - return CardUtil.shareTypes(target1, opponentPermanent); + return target1.shareTypes(opponentPermanent); } } return false; @@ -183,7 +184,7 @@ class DaringThiefSecondTarget extends TargetPermanent { MageObject targetSource = game.getObject(sourceId); for (Permanent permanent : game.getBattlefield().getActivePermanents(filter, sourceControllerId, sourceId, game)) { if (!targets.containsKey(permanent.getId()) && permanent.canBeTargetedBy(targetSource, sourceControllerId, game)) { - if (CardUtil.shareTypes(permanent, firstTarget)) { + if (permanent.shareTypes(firstTarget)) { possibleTargets.add(permanent.getId()); } } diff --git a/Mage.Sets/src/mage/cards/d/DarkApprenticeship.java b/Mage.Sets/src/mage/cards/d/DarkApprenticeship.java index a622bca32fa..a7eb5509b5b 100644 --- a/Mage.Sets/src/mage/cards/d/DarkApprenticeship.java +++ b/Mage.Sets/src/mage/cards/d/DarkApprenticeship.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.condition.common.HateCondition; @@ -40,6 +39,8 @@ import mage.constants.TargetController; import mage.target.TargetPlayer; import mage.watchers.common.LifeLossOtherFromCombatWatcher; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/DarkBanishing.java b/Mage.Sets/src/mage/cards/d/DarkBanishing.java index ec6edaa94d4..2b0e60e5276 100644 --- a/Mage.Sets/src/mage/cards/d/DarkBanishing.java +++ b/Mage.Sets/src/mage/cards/d/DarkBanishing.java @@ -27,17 +27,18 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DarkBetrayal.java b/Mage.Sets/src/mage/cards/d/DarkBetrayal.java index 976a13d3a65..f4b329b6627 100644 --- a/Mage.Sets/src/mage/cards/d/DarkBetrayal.java +++ b/Mage.Sets/src/mage/cards/d/DarkBetrayal.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DarkConfidant.java b/Mage.Sets/src/mage/cards/d/DarkConfidant.java index b70c8cb6c6c..8e363a2b01c 100644 --- a/Mage.Sets/src/mage/cards/d/DarkConfidant.java +++ b/Mage.Sets/src/mage/cards/d/DarkConfidant.java @@ -27,16 +27,11 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; @@ -45,6 +40,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DarkDabbling.java b/Mage.Sets/src/mage/cards/d/DarkDabbling.java index 78fa1d99bec..2694bfa3aab 100644 --- a/Mage.Sets/src/mage/cards/d/DarkDabbling.java +++ b/Mage.Sets/src/mage/cards/d/DarkDabbling.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.SpellMasteryCondition; import mage.abilities.effects.OneShotEffect; @@ -43,6 +42,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DarkDeal.java b/Mage.Sets/src/mage/cards/d/DarkDeal.java index 319e4ceda95..9ed9a946c65 100644 --- a/Mage.Sets/src/mage/cards/d/DarkDeal.java +++ b/Mage.Sets/src/mage/cards/d/DarkDeal.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -39,6 +36,10 @@ import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DarkDecision.java b/Mage.Sets/src/mage/cards/d/DarkDecision.java index 350518ffba6..3dccc392322 100644 --- a/Mage.Sets/src/mage/cards/d/DarkDecision.java +++ b/Mage.Sets/src/mage/cards/d/DarkDecision.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.costs.common.PayLifeCost; @@ -48,6 +47,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/DarkDepths.java b/Mage.Sets/src/mage/cards/d/DarkDepths.java index b53e1a351b2..795d33eacdf 100644 --- a/Mage.Sets/src/mage/cards/d/DarkDepths.java +++ b/Mage.Sets/src/mage/cards/d/DarkDepths.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.StateTriggeredAbility; @@ -43,6 +42,7 @@ import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; @@ -50,6 +50,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Plopman @@ -58,8 +60,8 @@ public class DarkDepths extends CardImpl { public DarkDepths(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); - this.supertype.add("Legendary"); - this.supertype.add("Snow"); + addSuperType(SuperType.LEGENDARY); + addSuperType(SuperType.SNOW); // Dark Depths enters the battlefield with ten ice counters on it. this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.ICE.createInstance(10)), "with ten ice counters on it")); @@ -146,7 +148,7 @@ class MaritLageToken extends Token { this.setOriginalExpansionSetCode("CSP"); cardType.add(CardType.CREATURE); subtype.add("Avatar"); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); color.setBlack(true); power = new MageInt(20); diff --git a/Mage.Sets/src/mage/cards/d/DarkFavor.java b/Mage.Sets/src/mage/cards/d/DarkFavor.java index 0df67d0b124..fc26d00bc6e 100644 --- a/Mage.Sets/src/mage/cards/d/DarkFavor.java +++ b/Mage.Sets/src/mage/cards/d/DarkFavor.java @@ -28,9 +28,6 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,9 +37,15 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/d/DarkHatchling.java b/Mage.Sets/src/mage/cards/d/DarkHatchling.java index c1046aea07c..86a57e36e5c 100644 --- a/Mage.Sets/src/mage/cards/d/DarkHatchling.java +++ b/Mage.Sets/src/mage/cards/d/DarkHatchling.java @@ -28,8 +28,6 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -38,11 +36,14 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DarkHeartOfTheWood.java b/Mage.Sets/src/mage/cards/d/DarkHeartOfTheWood.java index 6fab43f77c6..742aa0ffad6 100644 --- a/Mage.Sets/src/mage/cards/d/DarkHeartOfTheWood.java +++ b/Mage.Sets/src/mage/cards/d/DarkHeartOfTheWood.java @@ -27,19 +27,19 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DarkImpostor.java b/Mage.Sets/src/mage/cards/d/DarkImpostor.java index e8591138186..bf9542b9a79 100644 --- a/Mage.Sets/src/mage/cards/d/DarkImpostor.java +++ b/Mage.Sets/src/mage/cards/d/DarkImpostor.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.ActivatedAbility; @@ -41,17 +40,14 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author noxx diff --git a/Mage.Sets/src/mage/cards/d/DarkIntimations.java b/Mage.Sets/src/mage/cards/d/DarkIntimations.java index 4b9e9da87f2..ebb1985a2cd 100644 --- a/Mage.Sets/src/mage/cards/d/DarkIntimations.java +++ b/Mage.Sets/src/mage/cards/d/DarkIntimations.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.ContinuousEffect; @@ -38,11 +35,7 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.FilterCard; import mage.filter.FilterPermanent; @@ -61,6 +54,10 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DarkMaze.java b/Mage.Sets/src/mage/cards/d/DarkMaze.java index 8b855845138..59988504dd8 100644 --- a/Mage.Sets/src/mage/cards/d/DarkMaze.java +++ b/Mage.Sets/src/mage/cards/d/DarkMaze.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DarkOffering.java b/Mage.Sets/src/mage/cards/d/DarkOffering.java index c9d3715b41d..1f16840709f 100644 --- a/Mage.Sets/src/mage/cards/d/DarkOffering.java +++ b/Mage.Sets/src/mage/cards/d/DarkOffering.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.GainLifeEffect; @@ -39,6 +38,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DarkPetition.java b/Mage.Sets/src/mage/cards/d/DarkPetition.java index 5bb744c33cf..e89b4ccf5b3 100644 --- a/Mage.Sets/src/mage/cards/d/DarkPetition.java +++ b/Mage.Sets/src/mage/cards/d/DarkPetition.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.Mana; import mage.abilities.condition.common.SpellMasteryCondition; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DarkProphecy.java b/Mage.Sets/src/mage/cards/d/DarkProphecy.java index a2ba6f7e438..5e66d06e28f 100644 --- a/Mage.Sets/src/mage/cards/d/DarkProphecy.java +++ b/Mage.Sets/src/mage/cards/d/DarkProphecy.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.Effect; @@ -40,6 +39,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DarkRevenant.java b/Mage.Sets/src/mage/cards/d/DarkRevenant.java index 7945dd5765f..0879d865b31 100644 --- a/Mage.Sets/src/mage/cards/d/DarkRevenant.java +++ b/Mage.Sets/src/mage/cards/d/DarkRevenant.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -39,10 +35,14 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DarkRitual.java b/Mage.Sets/src/mage/cards/d/DarkRitual.java index 3776d1e2e42..47e71d804d8 100644 --- a/Mage.Sets/src/mage/cards/d/DarkRitual.java +++ b/Mage.Sets/src/mage/cards/d/DarkRitual.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.Mana; import mage.abilities.effects.common.BasicManaEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DarkSalvation.java b/Mage.Sets/src/mage/cards/d/DarkSalvation.java index 6b5189a12f4..3ba3e70c5ac 100644 --- a/Mage.Sets/src/mage/cards/d/DarkSalvation.java +++ b/Mage.Sets/src/mage/cards/d/DarkSalvation.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.ManacostVariableValue; @@ -47,6 +46,8 @@ import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.SecondTargetPointer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DarkSupplicant.java b/Mage.Sets/src/mage/cards/d/DarkSupplicant.java index bde1f4d55fb..7edc3dd9516 100644 --- a/Mage.Sets/src/mage/cards/d/DarkSupplicant.java +++ b/Mage.Sets/src/mage/cards/d/DarkSupplicant.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.List; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +37,7 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.Cards; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.FilterCard; @@ -52,6 +49,9 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledPermanent; +import java.util.List; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DarkSuspicions.java b/Mage.Sets/src/mage/cards/d/DarkSuspicions.java index 00cc34d2fea..1e772f0c9af 100644 --- a/Mage.Sets/src/mage/cards/d/DarkSuspicions.java +++ b/Mage.Sets/src/mage/cards/d/DarkSuspicions.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -40,6 +38,8 @@ import mage.constants.TargetController; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author ESOF_1617_T5_G3 diff --git a/Mage.Sets/src/mage/cards/d/DarkTemper.java b/Mage.Sets/src/mage/cards/d/DarkTemper.java index ca716430f39..4c7a1601729 100644 --- a/Mage.Sets/src/mage/cards/d/DarkTemper.java +++ b/Mage.Sets/src/mage/cards/d/DarkTemper.java @@ -27,13 +27,13 @@ */ package mage.cards.d; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; diff --git a/Mage.Sets/src/mage/cards/d/DarkTrooper.java b/Mage.Sets/src/mage/cards/d/DarkTrooper.java index de71b0dcdf1..92024584fff 100644 --- a/Mage.Sets/src/mage/cards/d/DarkTrooper.java +++ b/Mage.Sets/src/mage/cards/d/DarkTrooper.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.RepairAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/DarkTutelage.java b/Mage.Sets/src/mage/cards/d/DarkTutelage.java index 8b258646971..d2da2ea5f9d 100644 --- a/Mage.Sets/src/mage/cards/d/DarkTutelage.java +++ b/Mage.Sets/src/mage/cards/d/DarkTutelage.java @@ -28,15 +28,10 @@ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.OnEventTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -44,6 +39,8 @@ import mage.game.Game; import mage.game.events.GameEvent.EventType; import mage.players.Player; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/DarkWithering.java b/Mage.Sets/src/mage/cards/d/DarkWithering.java index 320cc063fc3..fef0ee11ca1 100644 --- a/Mage.Sets/src/mage/cards/d/DarkWithering.java +++ b/Mage.Sets/src/mage/cards/d/DarkWithering.java @@ -27,13 +27,13 @@ */ package mage.cards.d; -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.MadnessAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; diff --git a/Mage.Sets/src/mage/cards/d/Darkblast.java b/Mage.Sets/src/mage/cards/d/Darkblast.java index 050dbfa5aae..552e41dafea 100644 --- a/Mage.Sets/src/mage/cards/d/Darkblast.java +++ b/Mage.Sets/src/mage/cards/d/Darkblast.java @@ -27,15 +27,16 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.DredgeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DarkestHour.java b/Mage.Sets/src/mage/cards/d/DarkestHour.java index 64134a51cbc..e14c48fa18c 100644 --- a/Mage.Sets/src/mage/cards/d/DarkestHour.java +++ b/Mage.Sets/src/mage/cards/d/DarkestHour.java @@ -27,23 +27,19 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DarkheartSliver.java b/Mage.Sets/src/mage/cards/d/DarkheartSliver.java index 92efb96f2fd..26523b7f8ab 100644 --- a/Mage.Sets/src/mage/cards/d/DarkheartSliver.java +++ b/Mage.Sets/src/mage/cards/d/DarkheartSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/d/DarklingStalker.java b/Mage.Sets/src/mage/cards/d/DarklingStalker.java index f6239a1a896..5bfa19e138c 100644 --- a/Mage.Sets/src/mage/cards/d/DarklingStalker.java +++ b/Mage.Sets/src/mage/cards/d/DarklingStalker.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; @@ -37,6 +34,12 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DarklitGargoyle.java b/Mage.Sets/src/mage/cards/d/DarklitGargoyle.java index 662a1e1988f..ea2680e9582 100644 --- a/Mage.Sets/src/mage/cards/d/DarklitGargoyle.java +++ b/Mage.Sets/src/mage/cards/d/DarklitGargoyle.java @@ -28,10 +28,6 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +35,11 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/Darkness.java b/Mage.Sets/src/mage/cards/d/Darkness.java index 8e5e6385b17..8d17477a9f2 100644 --- a/Mage.Sets/src/mage/cards/d/Darkness.java +++ b/Mage.Sets/src/mage/cards/d/Darkness.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DarkslickDrake.java b/Mage.Sets/src/mage/cards/d/DarkslickDrake.java index fab4d09dad7..1cabe116fcc 100644 --- a/Mage.Sets/src/mage/cards/d/DarkslickDrake.java +++ b/Mage.Sets/src/mage/cards/d/DarkslickDrake.java @@ -28,13 +28,13 @@ package mage.cards.d; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/d/DarkslickShores.java b/Mage.Sets/src/mage/cards/d/DarkslickShores.java index 6633e5b70fa..fce6aa550a5 100644 --- a/Mage.Sets/src/mage/cards/d/DarkslickShores.java +++ b/Mage.Sets/src/mage/cards/d/DarkslickShores.java @@ -28,23 +28,23 @@ package mage.cards.d; -import java.util.UUID; - -import mage.abilities.CountType; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; -import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.condition.InvertCondition; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author maurer.it_at_gmail.com @@ -61,7 +61,7 @@ public class DarkslickShores extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); // Darkslick Shores enters the battlefield tapped unless you control two or fewer other lands. - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 3)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 3)); String abilityText = "tapped unless you control two or fewer other lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); diff --git a/Mage.Sets/src/mage/cards/d/DarksteelAxe.java b/Mage.Sets/src/mage/cards/d/DarksteelAxe.java index 23551419323..defacf376f3 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelAxe.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelAxe.java @@ -28,9 +28,6 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.BoostEquippedEffect; @@ -38,7 +35,11 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DarksteelBrute.java b/Mage.Sets/src/mage/cards/d/DarksteelBrute.java index 327604e5fbe..29172d201af 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelBrute.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelBrute.java @@ -28,10 +28,6 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -39,9 +35,13 @@ import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DarksteelCitadel.java b/Mage.Sets/src/mage/cards/d/DarksteelCitadel.java index 469bfd4fe12..c2f8f19c52a 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelCitadel.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelCitadel.java @@ -28,12 +28,13 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.keyword.IndestructibleAbility; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DarksteelColossus.java b/Mage.Sets/src/mage/cards/d/DarksteelColossus.java index 9157f64b33b..ea46de60e97 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelColossus.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelColossus.java @@ -28,9 +28,6 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.PutIntoGraveFromAnywhereSourceAbility; import mage.abilities.effects.common.RevealAndShuffleIntoLibrarySourceEffect; @@ -38,6 +35,9 @@ import mage.abilities.keyword.IndestructibleAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DarksteelForge.java b/Mage.Sets/src/mage/cards/d/DarksteelForge.java index 776223c9811..c99f682aad0 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelForge.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelForge.java @@ -28,20 +28,20 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/d/DarksteelGargoyle.java b/Mage.Sets/src/mage/cards/d/DarksteelGargoyle.java index 4bf3c0876c9..980f6971109 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelGargoyle.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelGargoyle.java @@ -28,14 +28,14 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DarksteelJuggernaut.java b/Mage.Sets/src/mage/cards/d/DarksteelJuggernaut.java index f118961dcbc..f977141cb6f 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelJuggernaut.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelJuggernaut.java @@ -27,19 +27,21 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledArtifactPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DarksteelMutation.java b/Mage.Sets/src/mage/cards/d/DarksteelMutation.java index 070fc2ebc11..a496f2caef5 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelMutation.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelMutation.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.game.permanent.token.Token; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DarksteelMyr.java b/Mage.Sets/src/mage/cards/d/DarksteelMyr.java index f2d7914a59e..4a9076b6cf3 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelMyr.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelMyr.java @@ -28,12 +28,13 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DarksteelPendant.java b/Mage.Sets/src/mage/cards/d/DarksteelPendant.java index 7a8aff77c9e..547b5af0ffc 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelPendant.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelPendant.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DarksteelPlate.java b/Mage.Sets/src/mage/cards/d/DarksteelPlate.java index 81a817fb147..d47216e1567 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelPlate.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelPlate.java @@ -28,12 +28,6 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; @@ -41,6 +35,9 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DarksteelReactor.java b/Mage.Sets/src/mage/cards/d/DarksteelReactor.java index 4f09a1c735f..1f7dbed9567 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelReactor.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelReactor.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.abilities.StateTriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.WinGameSourceControllerEffect; @@ -38,11 +34,16 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DarksteelRelic.java b/Mage.Sets/src/mage/cards/d/DarksteelRelic.java index 1b2655eb3a6..2eeb25a4fc2 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelRelic.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelRelic.java @@ -27,11 +27,12 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DarksteelSentinel.java b/Mage.Sets/src/mage/cards/d/DarksteelSentinel.java index 23ce5934978..81051e630b4 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelSentinel.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelSentinel.java @@ -28,14 +28,15 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DarkthicketWolf.java b/Mage.Sets/src/mage/cards/d/DarkthicketWolf.java index 4bc93dce160..afabb60fd1e 100644 --- a/Mage.Sets/src/mage/cards/d/DarkthicketWolf.java +++ b/Mage.Sets/src/mage/cards/d/DarkthicketWolf.java @@ -27,18 +27,18 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DarkwatchElves.java b/Mage.Sets/src/mage/cards/d/DarkwatchElves.java index 8ee61358b28..ccf61d1c49d 100644 --- a/Mage.Sets/src/mage/cards/d/DarkwatchElves.java +++ b/Mage.Sets/src/mage/cards/d/DarkwatchElves.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.costs.mana.ManaCostsImpl; @@ -35,6 +34,7 @@ import mage.abilities.keyword.CyclingAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/d/DarkwaterCatacombs.java b/Mage.Sets/src/mage/cards/d/DarkwaterCatacombs.java index 3e1a3528af2..bb28851502b 100644 --- a/Mage.Sets/src/mage/cards/d/DarkwaterCatacombs.java +++ b/Mage.Sets/src/mage/cards/d/DarkwaterCatacombs.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DarkwaterEgg.java b/Mage.Sets/src/mage/cards/d/DarkwaterEgg.java index 113bbc301f2..285046f96ba 100644 --- a/Mage.Sets/src/mage/cards/d/DarkwaterEgg.java +++ b/Mage.Sets/src/mage/cards/d/DarkwaterEgg.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.Mana; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.TapSourceCost; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DarthMaul.java b/Mage.Sets/src/mage/cards/d/DarthMaul.java index 28c6fc7a707..20416f530f8 100644 --- a/Mage.Sets/src/mage/cards/d/DarthMaul.java +++ b/Mage.Sets/src/mage/cards/d/DarthMaul.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -40,9 +39,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.target.common.TargetCreaturePermanent; import mage.watchers.common.LifeLossOtherFromCombatWatcher; +import java.util.UUID; + /** * * @author Styxo @@ -51,7 +53,7 @@ public class DarthMaul extends CardImpl { public DarthMaul(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zabrak"); this.subtype.add("Sith"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/d/DarthSidiousSithLord.java b/Mage.Sets/src/mage/cards/d/DarthSidiousSithLord.java index e3836bb883e..e8e06a80f98 100644 --- a/Mage.Sets/src/mage/cards/d/DarthSidiousSithLord.java +++ b/Mage.Sets/src/mage/cards/d/DarthSidiousSithLord.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -47,6 +46,8 @@ import mage.target.TargetPermanent; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/DarthTyranus.java b/Mage.Sets/src/mage/cards/d/DarthTyranus.java index 18766d2ec60..a02a273052b 100644 --- a/Mage.Sets/src/mage/cards/d/DarthTyranus.java +++ b/Mage.Sets/src/mage/cards/d/DarthTyranus.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -52,6 +51,8 @@ import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/DarthVader.java b/Mage.Sets/src/mage/cards/d/DarthVader.java index 2edb9cd88b6..7d34ee8d021 100644 --- a/Mage.Sets/src/mage/cards/d/DarthVader.java +++ b/Mage.Sets/src/mage/cards/d/DarthVader.java @@ -27,29 +27,25 @@ */ package mage.cards.d; -import java.util.Iterator; -import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.dynamicvalue.common.CountersSourceCount; import mage.abilities.effects.ContinuousEffectImpl; -import mage.abilities.keyword.MenaceAbility; import mage.abilities.keyword.LifelinkAbility; +import mage.abilities.keyword.MenaceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.SubLayer; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.Iterator; +import java.util.UUID; + /** * * @author Styxo @@ -58,7 +54,7 @@ public class DarthVader extends CardImpl { public DarthVader(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Sith"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/d/DartingMerfolk.java b/Mage.Sets/src/mage/cards/d/DartingMerfolk.java index e33effc1825..433c477d706 100644 --- a/Mage.Sets/src/mage/cards/d/DartingMerfolk.java +++ b/Mage.Sets/src/mage/cards/d/DartingMerfolk.java @@ -27,15 +27,16 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DaruCavalier.java b/Mage.Sets/src/mage/cards/d/DaruCavalier.java index c931bd66967..28dc686b925 100644 --- a/Mage.Sets/src/mage/cards/d/DaruCavalier.java +++ b/Mage.Sets/src/mage/cards/d/DaruCavalier.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; @@ -39,6 +38,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.mageobject.NamePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DaruEncampment.java b/Mage.Sets/src/mage/cards/d/DaruEncampment.java index 9274272f38c..b8e42e6ea5e 100644 --- a/Mage.Sets/src/mage/cards/d/DaruEncampment.java +++ b/Mage.Sets/src/mage/cards/d/DaruEncampment.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,10 +34,15 @@ import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DaruLancer.java b/Mage.Sets/src/mage/cards/d/DaruLancer.java index 0fdd4bbefe0..e0e149b12a9 100644 --- a/Mage.Sets/src/mage/cards/d/DaruLancer.java +++ b/Mage.Sets/src/mage/cards/d/DaruLancer.java @@ -27,15 +27,16 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.MorphAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DaruMender.java b/Mage.Sets/src/mage/cards/d/DaruMender.java index d54f78651bf..648e95a62a2 100644 --- a/Mage.Sets/src/mage/cards/d/DaruMender.java +++ b/Mage.Sets/src/mage/cards/d/DaruMender.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DaruSanctifier.java b/Mage.Sets/src/mage/cards/d/DaruSanctifier.java index 6d4676eff95..a8ab97ddadc 100644 --- a/Mage.Sets/src/mage/cards/d/DaruSanctifier.java +++ b/Mage.Sets/src/mage/cards/d/DaruSanctifier.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DaruStinger.java b/Mage.Sets/src/mage/cards/d/DaruStinger.java index 4a9b4974d6b..df094b95201 100644 --- a/Mage.Sets/src/mage/cards/d/DaruStinger.java +++ b/Mage.Sets/src/mage/cards/d/DaruStinger.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DaruWarchief.java b/Mage.Sets/src/mage/cards/d/DaruWarchief.java index b0c0aad7d31..cbe956df081 100644 --- a/Mage.Sets/src/mage/cards/d/DaruWarchief.java +++ b/Mage.Sets/src/mage/cards/d/DaruWarchief.java @@ -27,20 +27,21 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DashHopes.java b/Mage.Sets/src/mage/cards/d/DashHopes.java index aa197c63814..92ade757964 100644 --- a/Mage.Sets/src/mage/cards/d/DashHopes.java +++ b/Mage.Sets/src/mage/cards/d/DashHopes.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.costs.common.PayLifeCost; @@ -43,6 +42,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DauntlessCathar.java b/Mage.Sets/src/mage/cards/d/DauntlessCathar.java index ee27c4519dd..fd13e8e900d 100644 --- a/Mage.Sets/src/mage/cards/d/DauntlessCathar.java +++ b/Mage.Sets/src/mage/cards/d/DauntlessCathar.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.game.permanent.token.SpiritWhiteToken; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/d/DauntlessDourbark.java b/Mage.Sets/src/mage/cards/d/DauntlessDourbark.java index fcd81a17a9e..3dbb264ecf1 100644 --- a/Mage.Sets/src/mage/cards/d/DauntlessDourbark.java +++ b/Mage.Sets/src/mage/cards/d/DauntlessDourbark.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -47,6 +46,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DauntlessEscort.java b/Mage.Sets/src/mage/cards/d/DauntlessEscort.java index 50bed08b9d9..c0d05af3ac6 100644 --- a/Mage.Sets/src/mage/cards/d/DauntlessEscort.java +++ b/Mage.Sets/src/mage/cards/d/DauntlessEscort.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -39,9 +35,14 @@ import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DauntlessOnslaught.java b/Mage.Sets/src/mage/cards/d/DauntlessOnslaught.java index a00a0f5a213..1c4ed1d5c7f 100644 --- a/Mage.Sets/src/mage/cards/d/DauntlessOnslaught.java +++ b/Mage.Sets/src/mage/cards/d/DauntlessOnslaught.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DauntlessRiverMarshal.java b/Mage.Sets/src/mage/cards/d/DauntlessRiverMarshal.java index 857298880c6..246dffa4f6c 100644 --- a/Mage.Sets/src/mage/cards/d/DauntlessRiverMarshal.java +++ b/Mage.Sets/src/mage/cards/d/DauntlessRiverMarshal.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DauthiCutthroat.java b/Mage.Sets/src/mage/cards/d/DauthiCutthroat.java index 6cb66fecefe..647fa766d1f 100644 --- a/Mage.Sets/src/mage/cards/d/DauthiCutthroat.java +++ b/Mage.Sets/src/mage/cards/d/DauthiCutthroat.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DauthiEmbrace.java b/Mage.Sets/src/mage/cards/d/DauthiEmbrace.java index fcd0c7d4e4d..e08ebfe603b 100644 --- a/Mage.Sets/src/mage/cards/d/DauthiEmbrace.java +++ b/Mage.Sets/src/mage/cards/d/DauthiEmbrace.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DauthiGhoul.java b/Mage.Sets/src/mage/cards/d/DauthiGhoul.java index b392902aefe..c46172955ea 100644 --- a/Mage.Sets/src/mage/cards/d/DauthiGhoul.java +++ b/Mage.Sets/src/mage/cards/d/DauthiGhoul.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -39,6 +38,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DauthiHorror.java b/Mage.Sets/src/mage/cards/d/DauthiHorror.java index 41d05cc671a..051a3935273 100644 --- a/Mage.Sets/src/mage/cards/d/DauthiHorror.java +++ b/Mage.Sets/src/mage/cards/d/DauthiHorror.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleEvasionAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DauthiJackal.java b/Mage.Sets/src/mage/cards/d/DauthiJackal.java index 689353a85f4..08a033f82e7 100644 --- a/Mage.Sets/src/mage/cards/d/DauthiJackal.java +++ b/Mage.Sets/src/mage/cards/d/DauthiJackal.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterBlockingCreature; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DauthiMarauder.java b/Mage.Sets/src/mage/cards/d/DauthiMarauder.java index 6f0f9ac0347..5201ae64aad 100644 --- a/Mage.Sets/src/mage/cards/d/DauthiMarauder.java +++ b/Mage.Sets/src/mage/cards/d/DauthiMarauder.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.ShadowAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DauthiMercenary.java b/Mage.Sets/src/mage/cards/d/DauthiMercenary.java index e5852c94d43..62f988d582b 100644 --- a/Mage.Sets/src/mage/cards/d/DauthiMercenary.java +++ b/Mage.Sets/src/mage/cards/d/DauthiMercenary.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +34,11 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.ShadowAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DauthiMindripper.java b/Mage.Sets/src/mage/cards/d/DauthiMindripper.java index f32e8b6f51e..4db0a18c526 100644 --- a/Mage.Sets/src/mage/cards/d/DauthiMindripper.java +++ b/Mage.Sets/src/mage/cards/d/DauthiMindripper.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -39,6 +38,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DauthiSlayer.java b/Mage.Sets/src/mage/cards/d/DauthiSlayer.java index 0be247bf597..f806385f11e 100644 --- a/Mage.Sets/src/mage/cards/d/DauthiSlayer.java +++ b/Mage.Sets/src/mage/cards/d/DauthiSlayer.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.abilities.keyword.ShadowAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DauthiTrapper.java b/Mage.Sets/src/mage/cards/d/DauthiTrapper.java index 5ebf1711d96..b9e5cedaa26 100644 --- a/Mage.Sets/src/mage/cards/d/DauthiTrapper.java +++ b/Mage.Sets/src/mage/cards/d/DauthiTrapper.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DauthiWarlord.java b/Mage.Sets/src/mage/cards/d/DauthiWarlord.java index bb1cf1a9a37..c58e4c22d96 100644 --- a/Mage.Sets/src/mage/cards/d/DauthiWarlord.java +++ b/Mage.Sets/src/mage/cards/d/DauthiWarlord.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -43,6 +42,8 @@ import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DawnCharm.java b/Mage.Sets/src/mage/cards/d/DawnCharm.java index b55bf2c4b74..4226b446ad2 100644 --- a/Mage.Sets/src/mage/cards/d/DawnCharm.java +++ b/Mage.Sets/src/mage/cards/d/DawnCharm.java @@ -27,15 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.Mode; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; import mage.abilities.effects.common.RegenerateTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.FilterSpell; import mage.filter.predicate.ObjectPlayer; import mage.filter.predicate.ObjectPlayerPredicate; @@ -45,6 +44,8 @@ import mage.target.Target; import mage.target.TargetSpell; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DawnElemental.java b/Mage.Sets/src/mage/cards/d/DawnElemental.java index 0a6dddaaa13..6c1c645d5c8 100644 --- a/Mage.Sets/src/mage/cards/d/DawnElemental.java +++ b/Mage.Sets/src/mage/cards/d/DawnElemental.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/d/DawnGryff.java b/Mage.Sets/src/mage/cards/d/DawnGryff.java index 4fa4648a28d..7baf9a42653 100644 --- a/Mage.Sets/src/mage/cards/d/DawnGryff.java +++ b/Mage.Sets/src/mage/cards/d/DawnGryff.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DawnOfTheDead.java b/Mage.Sets/src/mage/cards/d/DawnOfTheDead.java index b3e1167e104..70898b83ce1 100644 --- a/Mage.Sets/src/mage/cards/d/DawnOfTheDead.java +++ b/Mage.Sets/src/mage/cards/d/DawnOfTheDead.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -41,11 +40,7 @@ import mage.abilities.keyword.HasteAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.game.permanent.Permanent; @@ -53,6 +48,8 @@ import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DawnToDusk.java b/Mage.Sets/src/mage/cards/d/DawnToDusk.java index f360ba09a08..b616567e1c8 100644 --- a/Mage.Sets/src/mage/cards/d/DawnToDusk.java +++ b/Mage.Sets/src/mage/cards/d/DawnToDusk.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; @@ -39,6 +38,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DawnbreakReclaimer.java b/Mage.Sets/src/mage/cards/d/DawnbreakReclaimer.java index 92f47640d9d..8059d5c3734 100644 --- a/Mage.Sets/src/mage/cards/d/DawnbreakReclaimer.java +++ b/Mage.Sets/src/mage/cards/d/DawnbreakReclaimer.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -51,6 +48,10 @@ import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCardInOpponentsGraveyard; import mage.target.common.TargetOpponent; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DawnbringerCharioteers.java b/Mage.Sets/src/mage/cards/d/DawnbringerCharioteers.java index b33c88a6d1d..64289fe6b47 100644 --- a/Mage.Sets/src/mage/cards/d/DawnbringerCharioteers.java +++ b/Mage.Sets/src/mage/cards/d/DawnbringerCharioteers.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.FlyingAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DawnfeatherEagle.java b/Mage.Sets/src/mage/cards/d/DawnfeatherEagle.java index f04c901ec3c..ee90bf1fd07 100644 --- a/Mage.Sets/src/mage/cards/d/DawnfeatherEagle.java +++ b/Mage.Sets/src/mage/cards/d/DawnfeatherEagle.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/Dawnfluke.java b/Mage.Sets/src/mage/cards/d/Dawnfluke.java index 3e28a4db65e..8a3b32b6d4a 100644 --- a/Mage.Sets/src/mage/cards/d/Dawnfluke.java +++ b/Mage.Sets/src/mage/cards/d/Dawnfluke.java @@ -27,20 +27,21 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.PreventDamageToTargetEffect; -import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.EvokeAbility; +import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.Target; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DawnglareInvoker.java b/Mage.Sets/src/mage/cards/d/DawnglareInvoker.java index 29f4e3770e8..30230943035 100644 --- a/Mage.Sets/src/mage/cards/d/DawnglareInvoker.java +++ b/Mage.Sets/src/mage/cards/d/DawnglareInvoker.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DawnglowInfusion.java b/Mage.Sets/src/mage/cards/d/DawnglowInfusion.java index ae9cc4ff8a5..1085a11cec1 100644 --- a/Mage.Sets/src/mage/cards/d/DawnglowInfusion.java +++ b/Mage.Sets/src/mage/cards/d/DawnglowInfusion.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.condition.common.ManaWasSpentCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.dynamicvalue.DynamicValue; @@ -38,9 +35,12 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.InfoEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.watchers.common.ManaSpentToCastWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DawningPurist.java b/Mage.Sets/src/mage/cards/d/DawningPurist.java index 4a5e3e7fb47..81b1583576c 100644 --- a/Mage.Sets/src/mage/cards/d/DawningPurist.java +++ b/Mage.Sets/src/mage/cards/d/DawningPurist.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.ManaCostsImpl; @@ -44,6 +43,8 @@ import mage.game.events.DamagedPlayerEvent; import mage.game.events.GameEvent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author djbrez diff --git a/Mage.Sets/src/mage/cards/d/DawnrayArcher.java b/Mage.Sets/src/mage/cards/d/DawnrayArcher.java index ced0eeb05f1..8dc6c21210d 100644 --- a/Mage.Sets/src/mage/cards/d/DawnrayArcher.java +++ b/Mage.Sets/src/mage/cards/d/DawnrayArcher.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,9 +36,12 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.ExaltedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DawnsReflection.java b/Mage.Sets/src/mage/cards/d/DawnsReflection.java index 17f7aef0b78..0f5698ee9bc 100644 --- a/Mage.Sets/src/mage/cards/d/DawnsReflection.java +++ b/Mage.Sets/src/mage/cards/d/DawnsReflection.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.effects.common.AttachEffect; @@ -48,6 +47,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/Dawnstrider.java b/Mage.Sets/src/mage/cards/d/Dawnstrider.java index e49ab520b25..42d6bfcf824 100644 --- a/Mage.Sets/src/mage/cards/d/Dawnstrider.java +++ b/Mage.Sets/src/mage/cards/d/Dawnstrider.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,8 +36,13 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DawnstrikePaladin.java b/Mage.Sets/src/mage/cards/d/DawnstrikePaladin.java index 33efd054255..020cd0249f1 100644 --- a/Mage.Sets/src/mage/cards/d/DawnstrikePaladin.java +++ b/Mage.Sets/src/mage/cards/d/DawnstrikePaladin.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.VigilanceAbility; import mage.abilities.keyword.LifelinkAbility; +import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DawntreaderElk.java b/Mage.Sets/src/mage/cards/d/DawntreaderElk.java index 6408ee84b15..6fc2c8be521 100644 --- a/Mage.Sets/src/mage/cards/d/DawntreaderElk.java +++ b/Mage.Sets/src/mage/cards/d/DawntreaderElk.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -38,9 +34,14 @@ import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Zone; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DaxosOfMeletis.java b/Mage.Sets/src/mage/cards/d/DaxosOfMeletis.java index c0b2e411ae3..0f2172a7425 100644 --- a/Mage.Sets/src/mage/cards/d/DaxosOfMeletis.java +++ b/Mage.Sets/src/mage/cards/d/DaxosOfMeletis.java @@ -27,11 +27,10 @@ */ package mage.cards.d; -import java.util.Objects; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.AsThoughEffectImpl; @@ -42,13 +41,7 @@ import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.ManaType; -import mage.constants.Outcome; -import mage.constants.Zone; -import mage.filter.Filter; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.ExileZone; @@ -58,6 +51,9 @@ import mage.players.Player; import mage.target.targetpointer.FixedTarget; import mage.util.CardUtil; +import java.util.Objects; +import java.util.UUID; + /** * * @author LevelX2 @@ -67,12 +63,12 @@ public class DaxosOfMeletis extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 3 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); } public DaxosOfMeletis(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{U}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/d/DaxosTheReturned.java b/Mage.Sets/src/mage/cards/d/DaxosTheReturned.java index f5f4bd10c7c..f17640e5e79 100644 --- a/Mage.Sets/src/mage/cards/d/DaxosTheReturned.java +++ b/Mage.Sets/src/mage/cards/d/DaxosTheReturned.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; @@ -41,12 +40,7 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -55,6 +49,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes @@ -69,7 +65,7 @@ public class DaxosTheReturned extends CardImpl { public DaxosTheReturned(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Soldier"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/d/DaxossTorment.java b/Mage.Sets/src/mage/cards/d/DaxossTorment.java index e0ac0e2334b..ecc26a12c72 100644 --- a/Mage.Sets/src/mage/cards/d/DaxossTorment.java +++ b/Mage.Sets/src/mage/cards/d/DaxossTorment.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.abilityword.ConstellationAbility; import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DayOfDestiny.java b/Mage.Sets/src/mage/cards/d/DayOfDestiny.java index 1dea6612873..7b07e66c421 100644 --- a/Mage.Sets/src/mage/cards/d/DayOfDestiny.java +++ b/Mage.Sets/src/mage/cards/d/DayOfDestiny.java @@ -27,18 +27,19 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** * * @author Loki @@ -48,12 +49,12 @@ public class DayOfDestiny extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Legendary creatures"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public DayOfDestiny(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Legendary creatures you control get +2/+2. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(2, 2, Duration.WhileOnBattlefield, filter, false))); diff --git a/Mage.Sets/src/mage/cards/d/DayOfJudgment.java b/Mage.Sets/src/mage/cards/d/DayOfJudgment.java index 84c96935165..22dadf54b6a 100644 --- a/Mage.Sets/src/mage/cards/d/DayOfJudgment.java +++ b/Mage.Sets/src/mage/cards/d/DayOfJudgment.java @@ -28,13 +28,14 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/DayOfTheDragons.java b/Mage.Sets/src/mage/cards/d/DayOfTheDragons.java index f787ff146de..389724f51b6 100644 --- a/Mage.Sets/src/mage/cards/d/DayOfTheDragons.java +++ b/Mage.Sets/src/mage/cards/d/DayOfTheDragons.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -54,6 +51,10 @@ import mage.game.permanent.token.DragonToken2; import mage.players.Player; import mage.util.CardUtil; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DaybreakCoronet.java b/Mage.Sets/src/mage/cards/d/DaybreakCoronet.java index f289755247e..132997b41e5 100644 --- a/Mage.Sets/src/mage/cards/d/DaybreakCoronet.java +++ b/Mage.Sets/src/mage/cards/d/DaybreakCoronet.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.LinkedList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -42,11 +39,7 @@ import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicate; import mage.game.Game; @@ -54,6 +47,10 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.LinkedList; +import java.util.List; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DaybreakRanger.java b/Mage.Sets/src/mage/cards/d/DaybreakRanger.java index aea3252e05d..2955a5f811e 100644 --- a/Mage.Sets/src/mage/cards/d/DaybreakRanger.java +++ b/Mage.Sets/src/mage/cards/d/DaybreakRanger.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbility; @@ -43,13 +39,18 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TransformAbility; -import mage.cards.n.NightfallPredator; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.n.NightfallPredator; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DaysUndoing.java b/Mage.Sets/src/mage/cards/d/DaysUndoing.java index 7093c385dc1..ec21ebf8aac 100644 --- a/Mage.Sets/src/mage/cards/d/DaysUndoing.java +++ b/Mage.Sets/src/mage/cards/d/DaysUndoing.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/Daze.java b/Mage.Sets/src/mage/cards/d/Daze.java index fd36fcc60f5..1c63ae7ba48 100644 --- a/Mage.Sets/src/mage/cards/d/Daze.java +++ b/Mage.Sets/src/mage/cards/d/Daze.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; import mage.abilities.costs.mana.GenericManaCost; @@ -41,6 +40,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetSpell; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/d/DazzlingRamparts.java b/Mage.Sets/src/mage/cards/d/DazzlingRamparts.java index d0c4c26341b..d99b1b5cfcf 100644 --- a/Mage.Sets/src/mage/cards/d/DazzlingRamparts.java +++ b/Mage.Sets/src/mage/cards/d/DazzlingRamparts.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DazzlingReflection.java b/Mage.Sets/src/mage/cards/d/DazzlingReflection.java index c0d22aa0194..27fa8d51b43 100644 --- a/Mage.Sets/src/mage/cards/d/DazzlingReflection.java +++ b/Mage.Sets/src/mage/cards/d/DazzlingReflection.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -44,6 +43,8 @@ import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeadDrop.java b/Mage.Sets/src/mage/cards/d/DeadDrop.java index 655430f20dc..2d1576fd0e4 100644 --- a/Mage.Sets/src/mage/cards/d/DeadDrop.java +++ b/Mage.Sets/src/mage/cards/d/DeadDrop.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.SacrificeEffect; import mage.abilities.keyword.DelveAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeadGone.java b/Mage.Sets/src/mage/cards/d/DeadGone.java index 560348b79bf..22eabe88201 100644 --- a/Mage.Sets/src/mage/cards/d/DeadGone.java +++ b/Mage.Sets/src/mage/cards/d/DeadGone.java @@ -1,30 +1,31 @@ package mage.cards.d; +import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.Card; import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; +import mage.constants.SpellAbilityType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; -import java.util.UUID; - /** * @author dustinconrad */ public class DeadGone extends SplitCard { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature you don't control"); + static { filter.add(new ControllerPredicate(TargetController.NOT_YOU)); } public DeadGone(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}","{2}{R}",false); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}", "{2}{R}", SpellAbilityType.SPLIT); // Dead // Dead deals 2 damage to target creature. diff --git a/Mage.Sets/src/mage/cards/d/DeadReckoning.java b/Mage.Sets/src/mage/cards/d/DeadReckoning.java index 1595bab2c2b..18b1bf2a54d 100644 --- a/Mage.Sets/src/mage/cards/d/DeadReckoning.java +++ b/Mage.Sets/src/mage/cards/d/DeadReckoning.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -43,6 +42,8 @@ import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DeadReveler.java b/Mage.Sets/src/mage/cards/d/DeadReveler.java index ecf55f30ab4..57e53f80eb1 100644 --- a/Mage.Sets/src/mage/cards/d/DeadReveler.java +++ b/Mage.Sets/src/mage/cards/d/DeadReveler.java @@ -26,13 +26,14 @@ * or implied, of BetaSteward_at_googlemail.com. */ package mage.cards.d; - -import java.util.UUID; -import mage.constants.CardType; + import mage.MageInt; import mage.abilities.keyword.UnleashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DeadRingers.java b/Mage.Sets/src/mage/cards/d/DeadRingers.java index 212693d15a1..e0b4535e66d 100644 --- a/Mage.Sets/src/mage/cards/d/DeadRingers.java +++ b/Mage.Sets/src/mage/cards/d/DeadRingers.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.common.DestroyTargetEffect; @@ -42,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DeadWeight.java b/Mage.Sets/src/mage/cards/d/DeadWeight.java index 42488ad3fc7..a3d5c0445b9 100644 --- a/Mage.Sets/src/mage/cards/d/DeadWeight.java +++ b/Mage.Sets/src/mage/cards/d/DeadWeight.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -37,9 +34,15 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Alvin diff --git a/Mage.Sets/src/mage/cards/d/Deadapult.java b/Mage.Sets/src/mage/cards/d/Deadapult.java index 0e06a85d75b..b212867a1bd 100644 --- a/Mage.Sets/src/mage/cards/d/Deadapult.java +++ b/Mage.Sets/src/mage/cards/d/Deadapult.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -42,6 +41,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DeadbridgeChant.java b/Mage.Sets/src/mage/cards/d/DeadbridgeChant.java index 2929170a409..2b265fac2af 100644 --- a/Mage.Sets/src/mage/cards/d/DeadbridgeChant.java +++ b/Mage.Sets/src/mage/cards/d/DeadbridgeChant.java @@ -27,11 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,10 +35,15 @@ import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffec import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.TargetController; +import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeadbridgeGoliath.java b/Mage.Sets/src/mage/cards/d/DeadbridgeGoliath.java index 44f5991479e..52b6454eb40 100644 --- a/Mage.Sets/src/mage/cards/d/DeadbridgeGoliath.java +++ b/Mage.Sets/src/mage/cards/d/DeadbridgeGoliath.java @@ -27,12 +27,12 @@ */ package mage.cards.d; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.ScavengeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/d/DeadbridgeShaman.java b/Mage.Sets/src/mage/cards/d/DeadbridgeShaman.java index a2c43b48a2b..3525e4d6391 100644 --- a/Mage.Sets/src/mage/cards/d/DeadbridgeShaman.java +++ b/Mage.Sets/src/mage/cards/d/DeadbridgeShaman.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DeadeyeHarpooner.java b/Mage.Sets/src/mage/cards/d/DeadeyeHarpooner.java index 7a609b7fb5b..3a22d37245e 100644 --- a/Mage.Sets/src/mage/cards/d/DeadeyeHarpooner.java +++ b/Mage.Sets/src/mage/cards/d/DeadeyeHarpooner.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetOpponentsCreaturePermanent; import mage.watchers.common.RevoltWatcher; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/DeadeyeNavigator.java b/Mage.Sets/src/mage/cards/d/DeadeyeNavigator.java index ad50173d735..acb1c1a0de0 100644 --- a/Mage.Sets/src/mage/cards/d/DeadeyeNavigator.java +++ b/Mage.Sets/src/mage/cards/d/DeadeyeNavigator.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/d/DeadlockTrap.java b/Mage.Sets/src/mage/cards/d/DeadlockTrap.java index f954244b25c..00246855ea3 100644 --- a/Mage.Sets/src/mage/cards/d/DeadlockTrap.java +++ b/Mage.Sets/src/mage/cards/d/DeadlockTrap.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreatureOrPlaneswalker; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/d/DeadlyAllure.java b/Mage.Sets/src/mage/cards/d/DeadlyAllure.java index 59278caa5b5..eea3c749b05 100644 --- a/Mage.Sets/src/mage/cards/d/DeadlyAllure.java +++ b/Mage.Sets/src/mage/cards/d/DeadlyAllure.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.combat.MustBeBlockedByAtLeastOneTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -37,8 +34,13 @@ import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TimingRule; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/d/DeadlyDesigns.java b/Mage.Sets/src/mage/cards/d/DeadlyDesigns.java index adcffed33b7..472ad6b53c1 100644 --- a/Mage.Sets/src/mage/cards/d/DeadlyDesigns.java +++ b/Mage.Sets/src/mage/cards/d/DeadlyDesigns.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.StateTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/DeadlyGrub.java b/Mage.Sets/src/mage/cards/d/DeadlyGrub.java index 1cfa87e8aa1..a9d4a1b1c7c 100644 --- a/Mage.Sets/src/mage/cards/d/DeadlyGrub.java +++ b/Mage.Sets/src/mage/cards/d/DeadlyGrub.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -45,6 +44,8 @@ import mage.constants.CardType; import mage.counters.CounterType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DeadlyInsect.java b/Mage.Sets/src/mage/cards/d/DeadlyInsect.java index 4a4588c4695..a18f299d685 100644 --- a/Mage.Sets/src/mage/cards/d/DeadlyInsect.java +++ b/Mage.Sets/src/mage/cards/d/DeadlyInsect.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DeadlyRecluse.java b/Mage.Sets/src/mage/cards/d/DeadlyRecluse.java index 5650318cb3e..da4f9eccc69 100644 --- a/Mage.Sets/src/mage/cards/d/DeadlyRecluse.java +++ b/Mage.Sets/src/mage/cards/d/DeadlyRecluse.java @@ -28,13 +28,14 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DeadlyTempest.java b/Mage.Sets/src/mage/cards/d/DeadlyTempest.java index 1fa1b74c153..036e525d052 100644 --- a/Mage.Sets/src/mage/cards/d/DeadlyTempest.java +++ b/Mage.Sets/src/mage/cards/d/DeadlyTempest.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.HashMap; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -40,6 +38,9 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.HashMap; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeadlyWanderings.java b/Mage.Sets/src/mage/cards/d/DeadlyWanderings.java index 690ce38b014..d73d92db05f 100644 --- a/Mage.Sets/src/mage/cards/d/DeadlyWanderings.java +++ b/Mage.Sets/src/mage/cards/d/DeadlyWanderings.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.CreatureCountCondition; @@ -46,6 +45,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Deadshot.java b/Mage.Sets/src/mage/cards/d/Deadshot.java index 46643ab6d2b..75b7febc3ef 100644 --- a/Mage.Sets/src/mage/cards/d/Deadshot.java +++ b/Mage.Sets/src/mage/cards/d/Deadshot.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.TapTargetEffect; @@ -42,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.SecondTargetPointer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DeadshotMinotaur.java b/Mage.Sets/src/mage/cards/d/DeadshotMinotaur.java index bd3ac644114..d23f4b59943 100644 --- a/Mage.Sets/src/mage/cards/d/DeadshotMinotaur.java +++ b/Mage.Sets/src/mage/cards/d/DeadshotMinotaur.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,10 +36,13 @@ import mage.abilities.keyword.CyclingAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/d/DeadwoodTreefolk.java b/Mage.Sets/src/mage/cards/d/DeadwoodTreefolk.java index 25dce2ffa07..9611e92ab34 100644 --- a/Mage.Sets/src/mage/cards/d/DeadwoodTreefolk.java +++ b/Mage.Sets/src/mage/cards/d/DeadwoodTreefolk.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.AnotherCardPredicate; import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DearlyDeparted.java b/Mage.Sets/src/mage/cards/d/DearlyDeparted.java index 802c1caed25..061dad9b266 100644 --- a/Mage.Sets/src/mage/cards/d/DearlyDeparted.java +++ b/Mage.Sets/src/mage/cards/d/DearlyDeparted.java @@ -52,7 +52,7 @@ import mage.game.permanent.Permanent; public class DearlyDeparted extends CardImpl { public DearlyDeparted(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{W}{W}"); this.subtype.add("Spirit"); this.power = new MageInt(5); @@ -103,7 +103,7 @@ class DearlyDepartedEntersBattlefieldEffect extends ReplacementEffectImpl { public boolean replaceEvent(GameEvent event, Ability source, Game game) { Permanent target = ((EntersTheBattlefieldEvent) event).getTarget(); if (target != null) { - target.addCounters(CounterType.P1P1.createInstance(), source, game); + target.addCounters(CounterType.P1P1.createInstance(), source, game, event.getAppliedEffects()); } return false; } diff --git a/Mage.Sets/src/mage/cards/d/DeathBaron.java b/Mage.Sets/src/mage/cards/d/DeathBaron.java index 08bf2be4764..eb2202db8b8 100644 --- a/Mage.Sets/src/mage/cards/d/DeathBaron.java +++ b/Mage.Sets/src/mage/cards/d/DeathBaron.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -39,9 +35,14 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.DeathtouchAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DeathBomb.java b/Mage.Sets/src/mage/cards/d/DeathBomb.java index a1ac7884648..75955b095e3 100644 --- a/Mage.Sets/src/mage/cards/d/DeathBomb.java +++ b/Mage.Sets/src/mage/cards/d/DeathBomb.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.DestroyTargetEffect; @@ -42,6 +41,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DeathByDragons.java b/Mage.Sets/src/mage/cards/d/DeathByDragons.java index 793f6bea106..c78de6f9e42 100644 --- a/Mage.Sets/src/mage/cards/d/DeathByDragons.java +++ b/Mage.Sets/src/mage/cards/d/DeathByDragons.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -40,6 +39,8 @@ import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeathCloud.java b/Mage.Sets/src/mage/cards/d/DeathCloud.java index de7fcc19f01..728139bcc99 100644 --- a/Mage.Sets/src/mage/cards/d/DeathCloud.java +++ b/Mage.Sets/src/mage/cards/d/DeathCloud.java @@ -27,19 +27,20 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.Effect; -import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; import mage.abilities.effects.common.LoseLifeAllPlayersEffect; import mage.abilities.effects.common.SacrificeAllEffect; +import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeathCultist.java b/Mage.Sets/src/mage/cards/d/DeathCultist.java index 3a1979bed46..c9bb92cd154 100644 --- a/Mage.Sets/src/mage/cards/d/DeathCultist.java +++ b/Mage.Sets/src/mage/cards/d/DeathCultist.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -37,9 +34,12 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DeathDenied.java b/Mage.Sets/src/mage/cards/d/DeathDenied.java index b23b94dd451..98473312a48 100644 --- a/Mage.Sets/src/mage/cards/d/DeathDenied.java +++ b/Mage.Sets/src/mage/cards/d/DeathDenied.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.effects.Effect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeathFrenzy.java b/Mage.Sets/src/mage/cards/d/DeathFrenzy.java index 21cd9c2c5bc..c36b22c094c 100644 --- a/Mage.Sets/src/mage/cards/d/DeathFrenzy.java +++ b/Mage.Sets/src/mage/cards/d/DeathFrenzy.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.GainLifeEffect; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeathGrasp.java b/Mage.Sets/src/mage/cards/d/DeathGrasp.java index 671e7d9568b..0602557aef2 100644 --- a/Mage.Sets/src/mage/cards/d/DeathGrasp.java +++ b/Mage.Sets/src/mage/cards/d/DeathGrasp.java @@ -28,15 +28,16 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DeathHoodCobra.java b/Mage.Sets/src/mage/cards/d/DeathHoodCobra.java index 285ab205d9b..042b21008a7 100644 --- a/Mage.Sets/src/mage/cards/d/DeathHoodCobra.java +++ b/Mage.Sets/src/mage/cards/d/DeathHoodCobra.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +35,11 @@ import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DeathMatch.java b/Mage.Sets/src/mage/cards/d/DeathMatch.java index 38a202ac853..be741267304 100644 --- a/Mage.Sets/src/mage/cards/d/DeathMatch.java +++ b/Mage.Sets/src/mage/cards/d/DeathMatch.java @@ -27,24 +27,21 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FirstTargetPointer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DeathMutation.java b/Mage.Sets/src/mage/cards/d/DeathMutation.java index bc7cc0f1d3d..1c771c40340 100644 --- a/Mage.Sets/src/mage/cards/d/DeathMutation.java +++ b/Mage.Sets/src/mage/cards/d/DeathMutation.java @@ -27,20 +27,21 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.dynamicvalue.common.TargetConvertedManaCost; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.permanent.token.SaprolingToken; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DeathOfAThousandStings.java b/Mage.Sets/src/mage/cards/d/DeathOfAThousandStings.java index 747eccabe38..ba003a6acc0 100644 --- a/Mage.Sets/src/mage/cards/d/DeathOfAThousandStings.java +++ b/Mage.Sets/src/mage/cards/d/DeathOfAThousandStings.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.MoreCardsInHandThanOpponentsCondition; @@ -43,6 +42,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 @@ -65,7 +66,7 @@ public class DeathOfAThousandStings extends CardImpl { new BeginningOfUpkeepTriggeredAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToHandEffect(), TargetController.YOU, true), - new MoreCardsInHandThanOpponentsCondition(), + MoreCardsInHandThanOpponentsCondition.instance, "At the beginning of your upkeep, if you have more cards in hand than each opponent, you may return {this} from your graveyard to your hand."); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/d/DeathPitOffering.java b/Mage.Sets/src/mage/cards/d/DeathPitOffering.java index 845143980a0..909e16de9af 100644 --- a/Mage.Sets/src/mage/cards/d/DeathPitOffering.java +++ b/Mage.Sets/src/mage/cards/d/DeathPitOffering.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -36,16 +34,15 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.List; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DeathPitsOfRath.java b/Mage.Sets/src/mage/cards/d/DeathPitsOfRath.java index c9c1488d942..f78f5f1a165 100644 --- a/Mage.Sets/src/mage/cards/d/DeathPitsOfRath.java +++ b/Mage.Sets/src/mage/cards/d/DeathPitsOfRath.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -39,6 +38,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DeathPulse.java b/Mage.Sets/src/mage/cards/d/DeathPulse.java index 85b6bbff9ee..71ae06dc2a2 100644 --- a/Mage.Sets/src/mage/cards/d/DeathPulse.java +++ b/Mage.Sets/src/mage/cards/d/DeathPulse.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.CycleTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Temba21 diff --git a/Mage.Sets/src/mage/cards/d/DeathRattle.java b/Mage.Sets/src/mage/cards/d/DeathRattle.java index cceef8b4734..34431e73ade 100644 --- a/Mage.Sets/src/mage/cards/d/DeathRattle.java +++ b/Mage.Sets/src/mage/cards/d/DeathRattle.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.DelveAbility; @@ -39,6 +38,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeathSpark.java b/Mage.Sets/src/mage/cards/d/DeathSpark.java index a5cd714480f..99ecc69b5ff 100644 --- a/Mage.Sets/src/mage/cards/d/DeathSpark.java +++ b/Mage.Sets/src/mage/cards/d/DeathSpark.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.Condition; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DeathSpeakers.java b/Mage.Sets/src/mage/cards/d/DeathSpeakers.java index 0a981948580..8a95809f397 100644 --- a/Mage.Sets/src/mage/cards/d/DeathSpeakers.java +++ b/Mage.Sets/src/mage/cards/d/DeathSpeakers.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.ProtectionAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DeathStroke.java b/Mage.Sets/src/mage/cards/d/DeathStroke.java index df5ddda2b73..84e8ab9b27e 100644 --- a/Mage.Sets/src/mage/cards/d/DeathStroke.java +++ b/Mage.Sets/src/mage/cards/d/DeathStroke.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DeathTrooper.java b/Mage.Sets/src/mage/cards/d/DeathTrooper.java index a40372eb642..2d919a0f798 100644 --- a/Mage.Sets/src/mage/cards/d/DeathTrooper.java +++ b/Mage.Sets/src/mage/cards/d/DeathTrooper.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/DeathWard.java b/Mage.Sets/src/mage/cards/d/DeathWard.java index c5e28fa62f7..cf399a97581 100644 --- a/Mage.Sets/src/mage/cards/d/DeathWard.java +++ b/Mage.Sets/src/mage/cards/d/DeathWard.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.RegenerateTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/d/DeathWind.java b/Mage.Sets/src/mage/cards/d/DeathWind.java index b1858dbd52a..8803f40f862 100644 --- a/Mage.Sets/src/mage/cards/d/DeathWind.java +++ b/Mage.Sets/src/mage/cards/d/DeathWind.java @@ -27,13 +27,13 @@ */ package mage.cards.d; -import mage.constants.CardType; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.dynamicvalue.common.SignInversionDynamicValue; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/d/DeathWish.java b/Mage.Sets/src/mage/cards/d/DeathWish.java index 3bbf8a3919a..5260ea54dfe 100644 --- a/Mage.Sets/src/mage/cards/d/DeathWish.java +++ b/Mage.Sets/src/mage/cards/d/DeathWish.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.ExileSpellEffect; import mage.abilities.effects.common.LoseHalfLifeEffect; import mage.abilities.effects.common.WishEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.FilterCard; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DeathbellowRaider.java b/Mage.Sets/src/mage/cards/d/DeathbellowRaider.java index 2c1a254990c..67958942912 100644 --- a/Mage.Sets/src/mage/cards/d/DeathbellowRaider.java +++ b/Mage.Sets/src/mage/cards/d/DeathbellowRaider.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DeathbringerLiege.java b/Mage.Sets/src/mage/cards/d/DeathbringerLiege.java index f20e04f74dc..16994a584af 100644 --- a/Mage.Sets/src/mage/cards/d/DeathbringerLiege.java +++ b/Mage.Sets/src/mage/cards/d/DeathbringerLiege.java @@ -28,9 +28,6 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -41,6 +38,10 @@ import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; @@ -48,6 +49,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DeathbringerRegent.java b/Mage.Sets/src/mage/cards/d/DeathbringerRegent.java index 88803b6a491..316f26eb7d3 100644 --- a/Mage.Sets/src/mage/cards/d/DeathbringerRegent.java +++ b/Mage.Sets/src/mage/cards/d/DeathbringerRegent.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -87,7 +88,7 @@ class DeathbringerRegentCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - return new CastFromHandSourceCondition().apply(game, source) + return CastFromHandSourceCondition.instance.apply(game, source) && game.getBattlefield().getAllActivePermanents(new FilterCreaturePermanent(), game).size() >= 6; } } diff --git a/Mage.Sets/src/mage/cards/d/DeathbringerThoctar.java b/Mage.Sets/src/mage/cards/d/DeathbringerThoctar.java index 929d6ff21e5..4b3d366a9ea 100644 --- a/Mage.Sets/src/mage/cards/d/DeathbringerThoctar.java +++ b/Mage.Sets/src/mage/cards/d/DeathbringerThoctar.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DeathcapCultivator.java b/Mage.Sets/src/mage/cards/d/DeathcapCultivator.java index 0a9368901f0..2e43a24882f 100644 --- a/Mage.Sets/src/mage/cards/d/DeathcapCultivator.java +++ b/Mage.Sets/src/mage/cards/d/DeathcapCultivator.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.DeliriumCondition; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DeathcoilWurm.java b/Mage.Sets/src/mage/cards/d/DeathcoilWurm.java index 8a3fb159828..a45801394fd 100644 --- a/Mage.Sets/src/mage/cards/d/DeathcoilWurm.java +++ b/Mage.Sets/src/mage/cards/d/DeathcoilWurm.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DamageAsThoughNotBlockedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/d/DeathcultRogue.java b/Mage.Sets/src/mage/cards/d/DeathcultRogue.java index e9dd0195feb..84f42cd8ad6 100644 --- a/Mage.Sets/src/mage/cards/d/DeathcultRogue.java +++ b/Mage.Sets/src/mage/cards/d/DeathcultRogue.java @@ -27,20 +27,20 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.RestrictionEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeathcurseOgre.java b/Mage.Sets/src/mage/cards/d/DeathcurseOgre.java index c90dd3aadd5..ab8665c2a22 100644 --- a/Mage.Sets/src/mage/cards/d/DeathcurseOgre.java +++ b/Mage.Sets/src/mage/cards/d/DeathcurseOgre.java @@ -28,14 +28,14 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.LoseLifeAllPlayersEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DeathforgeShaman.java b/Mage.Sets/src/mage/cards/d/DeathforgeShaman.java index a3ae41d8ce6..bd048d5ef42 100644 --- a/Mage.Sets/src/mage/cards/d/DeathforgeShaman.java +++ b/Mage.Sets/src/mage/cards/d/DeathforgeShaman.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DeathgazeCockatrice.java b/Mage.Sets/src/mage/cards/d/DeathgazeCockatrice.java index 0e96b7bbf01..ad7f63e9fad 100644 --- a/Mage.Sets/src/mage/cards/d/DeathgazeCockatrice.java +++ b/Mage.Sets/src/mage/cards/d/DeathgazeCockatrice.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.DeathtouchAbility; +import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Deathgazer.java b/Mage.Sets/src/mage/cards/d/Deathgazer.java index 4b5bf1a4b8c..b30ca5ab999 100644 --- a/Mage.Sets/src/mage/cards/d/Deathgazer.java +++ b/Mage.Sets/src/mage/cards/d/Deathgazer.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/Deathgreeter.java b/Mage.Sets/src/mage/cards/d/Deathgreeter.java index b71f8a054de..72b5e6d9929 100644 --- a/Mage.Sets/src/mage/cards/d/Deathgreeter.java +++ b/Mage.Sets/src/mage/cards/d/Deathgreeter.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/Deathgrip.java b/Mage.Sets/src/mage/cards/d/Deathgrip.java index e74a0bf8f84..c6c8a23542b 100644 --- a/Mage.Sets/src/mage/cards/d/Deathgrip.java +++ b/Mage.Sets/src/mage/cards/d/Deathgrip.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author markedagain diff --git a/Mage.Sets/src/mage/cards/d/DeathknellKami.java b/Mage.Sets/src/mage/cards/d/DeathknellKami.java index ca7a58b2621..78e1673f3da 100644 --- a/Mage.Sets/src/mage/cards/d/DeathknellKami.java +++ b/Mage.Sets/src/mage/cards/d/DeathknellKami.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Deathlace.java b/Mage.Sets/src/mage/cards/d/Deathlace.java index b13045e4b57..4582f9ad830 100644 --- a/Mage.Sets/src/mage/cards/d/Deathlace.java +++ b/Mage.Sets/src/mage/cards/d/Deathlace.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetSpellOrPermanent; +import java.util.UUID; + /** * * @author AlumiuN diff --git a/Mage.Sets/src/mage/cards/d/DeathlessAngel.java b/Mage.Sets/src/mage/cards/d/DeathlessAngel.java index e66d04fb1d9..29e8820eb4c 100644 --- a/Mage.Sets/src/mage/cards/d/DeathlessAngel.java +++ b/Mage.Sets/src/mage/cards/d/DeathlessAngel.java @@ -28,10 +28,6 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,8 +38,13 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DeathlessBehemoth.java b/Mage.Sets/src/mage/cards/d/DeathlessBehemoth.java index 0f78e9878c3..b438109abeb 100644 --- a/Mage.Sets/src/mage/cards/d/DeathlessBehemoth.java +++ b/Mage.Sets/src/mage/cards/d/DeathlessBehemoth.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.ActivateAsSorceryActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -42,6 +41,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/Deathmark.java b/Mage.Sets/src/mage/cards/d/Deathmark.java index 72c92b800b8..a9c4716e8d1 100644 --- a/Mage.Sets/src/mage/cards/d/Deathmark.java +++ b/Mage.Sets/src/mage/cards/d/Deathmark.java @@ -28,17 +28,18 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/DeathmaskNezumi.java b/Mage.Sets/src/mage/cards/d/DeathmaskNezumi.java index f008d95eb20..ce0aee6aa07 100644 --- a/Mage.Sets/src/mage/cards/d/DeathmaskNezumi.java +++ b/Mage.Sets/src/mage/cards/d/DeathmaskNezumi.java @@ -27,10 +27,9 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.CardsInHandCondition; @@ -44,6 +43,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +60,7 @@ public class DeathmaskNezumi extends CardImpl { this.toughness = new MageInt(2); // As long as you have seven or more cards in hand, Deathmask Nezumi gets +2/+1 and has fear. - Condition condition = new CardsInHandCondition(CountType.MORE_THAN,6); + Condition condition = new CardsInHandCondition(ComparisonType.MORE_THAN,6); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostSourceEffect(2,1, Duration.WhileOnBattlefield), condition, "As long as you have seven or more cards in hand, {this} gets +2/+1")); ability.addEffect(new ConditionalContinuousEffect( diff --git a/Mage.Sets/src/mage/cards/d/DeathmistRaptor.java b/Mage.Sets/src/mage/cards/d/DeathmistRaptor.java index e0d8cdeefdf..ff1c1c149cb 100644 --- a/Mage.Sets/src/mage/cards/d/DeathmistRaptor.java +++ b/Mage.Sets/src/mage/cards/d/DeathmistRaptor.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -46,6 +45,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeathpactAngel.java b/Mage.Sets/src/mage/cards/d/DeathpactAngel.java index f2425c7d5ba..a7f6e5fc674 100644 --- a/Mage.Sets/src/mage/cards/d/DeathpactAngel.java +++ b/Mage.Sets/src/mage/cards/d/DeathpactAngel.java @@ -28,7 +28,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -48,6 +47,8 @@ import mage.filter.predicate.mageobject.NamePredicate; import mage.game.permanent.token.Token; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DeathreapRitual.java b/Mage.Sets/src/mage/cards/d/DeathreapRitual.java index 7b61a71590d..a9df0c67072 100644 --- a/Mage.Sets/src/mage/cards/d/DeathreapRitual.java +++ b/Mage.Sets/src/mage/cards/d/DeathreapRitual.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.condition.common.MorbidCondition; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/Deathrender.java b/Mage.Sets/src/mage/cards/d/Deathrender.java index a2ddb5aec90..b0b0520e696 100644 --- a/Mage.Sets/src/mage/cards/d/Deathrender.java +++ b/Mage.Sets/src/mage/cards/d/Deathrender.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -48,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author Blinke diff --git a/Mage.Sets/src/mage/cards/d/DeathriteShaman.java b/Mage.Sets/src/mage/cards/d/DeathriteShaman.java index 481a17f82e6..82f93773aaf 100644 --- a/Mage.Sets/src/mage/cards/d/DeathriteShaman.java +++ b/Mage.Sets/src/mage/cards/d/DeathriteShaman.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +38,7 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeOpponentsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; @@ -49,6 +47,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeathsApproach.java b/Mage.Sets/src/mage/cards/d/DeathsApproach.java index f07af1a1f06..8d5af1ed4a7 100644 --- a/Mage.Sets/src/mage/cards/d/DeathsApproach.java +++ b/Mage.Sets/src/mage/cards/d/DeathsApproach.java @@ -37,7 +37,10 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.game.Game; diff --git a/Mage.Sets/src/mage/cards/d/DeathsCaress.java b/Mage.Sets/src/mage/cards/d/DeathsCaress.java index 52db13eea35..2b7d4e1c800 100644 --- a/Mage.Sets/src/mage/cards/d/DeathsCaress.java +++ b/Mage.Sets/src/mage/cards/d/DeathsCaress.java @@ -27,20 +27,21 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DeathsDuet.java b/Mage.Sets/src/mage/cards/d/DeathsDuet.java index 02b3b88b655..25de2885329 100644 --- a/Mage.Sets/src/mage/cards/d/DeathsDuet.java +++ b/Mage.Sets/src/mage/cards/d/DeathsDuet.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DeathsHeadBuzzard.java b/Mage.Sets/src/mage/cards/d/DeathsHeadBuzzard.java index 97f8e59ecf2..426d193e959 100644 --- a/Mage.Sets/src/mage/cards/d/DeathsHeadBuzzard.java +++ b/Mage.Sets/src/mage/cards/d/DeathsHeadBuzzard.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DeathsPresence.java b/Mage.Sets/src/mage/cards/d/DeathsPresence.java index f7ac018b374..a48ebfd5133 100644 --- a/Mage.Sets/src/mage/cards/d/DeathsPresence.java +++ b/Mage.Sets/src/mage/cards/d/DeathsPresence.java @@ -28,7 +28,6 @@ package mage.cards.d; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; @@ -43,6 +42,8 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeathsShadow.java b/Mage.Sets/src/mage/cards/d/DeathsShadow.java index 6c8a6892b89..494cdb443a0 100644 --- a/Mage.Sets/src/mage/cards/d/DeathsShadow.java +++ b/Mage.Sets/src/mage/cards/d/DeathsShadow.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.ControllerLifeCount; @@ -37,9 +34,12 @@ import mage.abilities.dynamicvalue.common.SignInversionDynamicValue; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DeathsporeThallid.java b/Mage.Sets/src/mage/cards/d/DeathsporeThallid.java index 923b6188f92..fbce2c7d22d 100644 --- a/Mage.Sets/src/mage/cards/d/DeathsporeThallid.java +++ b/Mage.Sets/src/mage/cards/d/DeathsporeThallid.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -50,6 +49,8 @@ import mage.game.permanent.token.SaprolingToken; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DebilitatingInjury.java b/Mage.Sets/src/mage/cards/d/DebilitatingInjury.java index d1608326fbe..2975de246fc 100644 --- a/Mage.Sets/src/mage/cards/d/DebilitatingInjury.java +++ b/Mage.Sets/src/mage/cards/d/DebilitatingInjury.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DebtToTheDeathless.java b/Mage.Sets/src/mage/cards/d/DebtToTheDeathless.java index e0533acbce8..f38a46a8e3d 100644 --- a/Mage.Sets/src/mage/cards/d/DebtToTheDeathless.java +++ b/Mage.Sets/src/mage/cards/d/DebtToTheDeathless.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DebtorsKnell.java b/Mage.Sets/src/mage/cards/d/DebtorsKnell.java index e507a8d349d..0189d9f3a2c 100644 --- a/Mage.Sets/src/mage/cards/d/DebtorsKnell.java +++ b/Mage.Sets/src/mage/cards/d/DebtorsKnell.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DebtorsPulpit.java b/Mage.Sets/src/mage/cards/d/DebtorsPulpit.java index 7bb434ca0e9..d30e0668b4e 100644 --- a/Mage.Sets/src/mage/cards/d/DebtorsPulpit.java +++ b/Mage.Sets/src/mage/cards/d/DebtorsPulpit.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,10 +37,13 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DecayingSoil.java b/Mage.Sets/src/mage/cards/d/DecayingSoil.java index 2acd61d5193..e547e1d8568 100644 --- a/Mage.Sets/src/mage/cards/d/DecayingSoil.java +++ b/Mage.Sets/src/mage/cards/d/DecayingSoil.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -43,24 +42,22 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AbilityWord; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.other.OwnerPredicate; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.Game; -import mage.game.events.GameEvent.EventType; import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author cbt33, Nantuko (Nim Deathmantle) diff --git a/Mage.Sets/src/mage/cards/d/DeceiverExarch.java b/Mage.Sets/src/mage/cards/d/DeceiverExarch.java index 7605701a6f2..8fed12adc0c 100644 --- a/Mage.Sets/src/mage/cards/d/DeceiverExarch.java +++ b/Mage.Sets/src/mage/cards/d/DeceiverExarch.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TargetController; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -39,11 +36,15 @@ import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; import mage.filter.FilterPermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DeceiverOfForm.java b/Mage.Sets/src/mage/cards/d/DeceiverOfForm.java index 27f0b7c4e3c..06358fc0d3b 100644 --- a/Mage.Sets/src/mage/cards/d/DeceiverOfForm.java +++ b/Mage.Sets/src/mage/cards/d/DeceiverOfForm.java @@ -27,29 +27,22 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CopyEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.cards.*; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.permanent.PermanentCard; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Deception.java b/Mage.Sets/src/mage/cards/d/Deception.java index b4b75526160..f6986354494 100644 --- a/Mage.Sets/src/mage/cards/d/Deception.java +++ b/Mage.Sets/src/mage/cards/d/Deception.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/Decimate.java b/Mage.Sets/src/mage/cards/d/Decimate.java index 5e99f1bf98c..1bd1952dd9e 100644 --- a/Mage.Sets/src/mage/cards/d/Decimate.java +++ b/Mage.Sets/src/mage/cards/d/Decimate.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetEnchantmentPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author shieldal diff --git a/Mage.Sets/src/mage/cards/d/DecimatorBeetle.java b/Mage.Sets/src/mage/cards/d/DecimatorBeetle.java new file mode 100644 index 00000000000..726a9a05b6f --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DecimatorBeetle.java @@ -0,0 +1,138 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.effects.common.counter.RemoveCounterTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.counters.CounterType; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.ControllerIdPredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author spjspj + */ +public class DecimatorBeetle extends CardImpl { + + private final UUID originalId; + + public DecimatorBeetle(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{G}"); + + this.subtype.add("Insect"); + this.power = new MageInt(4); + this.toughness = new MageInt(5); + + // When Decimator Beetle enters the battlefield, put a -1/-1 counter on target creature you control. + Effect effect = new AddCountersTargetEffect(CounterType.M1M1.createInstance()); + Ability ability = new EntersBattlefieldTriggeredAbility(effect, false); + ability.addTarget(new TargetControlledCreaturePermanent()); + this.addAbility(ability); + + // Whenever Decimator Beetle attacks, remove a -1/-1 counter from target creature you control and put a -1/-1 counter on up to one target creature defending player controls. + Ability ability2 = new AttacksTriggeredAbility(new DecimatorBeetleEffect(), false); + ability2.addTarget(new TargetControlledCreaturePermanent()); + ability2.addTarget(new TargetCreaturePermanent(new FilterCreaturePermanent("creature defending player controls"))); + this.addAbility(ability2); + this.originalId = ability2.getId(); + } + + public DecimatorBeetle(final DecimatorBeetle card) { + super(card); + this.originalId = card.originalId; + } + + @Override + public void adjustTargets(Ability ability, Game game) { + if (ability.getOriginalId().equals(originalId)) { + ability.getTargets().clear(); + ability.addTarget(new TargetControlledCreaturePermanent()); + FilterCreaturePermanent filter = new FilterCreaturePermanent("creature defending player controls"); + UUID defenderId = game.getCombat().getDefenderId(ability.getSourceId()); + filter.add(new ControllerIdPredicate(defenderId)); + TargetCreaturePermanent target = new TargetCreaturePermanent(filter); + ability.addTarget(target); + } + } + + @Override + public DecimatorBeetle copy() { + return new DecimatorBeetle(this); + } +} + +class DecimatorBeetleEffect extends OneShotEffect { + + public DecimatorBeetleEffect() { + super(Outcome.DestroyPermanent); + staticText = "remove a -1/-1 counter from target creature you control and put a -1/-1 counter on up to one target creature defending player controls"; + } + + public DecimatorBeetleEffect(DecimatorBeetleEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent targetCreature = game.getPermanent(getTargetPointer().getFirst(game, source)); + if (targetCreature != null) { + Effect effect = new RemoveCounterTargetEffect(CounterType.M1M1.createInstance(1)); + effect.setTargetPointer(targetPointer); + effect.apply(game, source); + } + targetCreature = game.getPermanent(source.getTargets().get(1).getFirstTarget()); + if (targetCreature != null) { + Effect effect = new AddCountersTargetEffect(CounterType.M1M1.createInstance(1)); + effect.setTargetPointer(new FixedTarget(source.getTargets().get(1).getFirstTarget())); + effect.apply(game, source); + } + + return true; + } + + @Override + public DecimatorBeetleEffect copy() { + return new DecimatorBeetleEffect(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/DecimatorOfTheProvinces.java b/Mage.Sets/src/mage/cards/d/DecimatorOfTheProvinces.java index ff790e6b860..90c9eb902c6 100644 --- a/Mage.Sets/src/mage/cards/d/DecimatorOfTheProvinces.java +++ b/Mage.Sets/src/mage/cards/d/DecimatorOfTheProvinces.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; @@ -44,6 +43,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DecimatorWeb.java b/Mage.Sets/src/mage/cards/d/DecimatorWeb.java index 79fdeeba4cf..871286a8987 100644 --- a/Mage.Sets/src/mage/cards/d/DecimatorWeb.java +++ b/Mage.Sets/src/mage/cards/d/DecimatorWeb.java @@ -28,9 +28,6 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,10 +37,13 @@ import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Loki, nantuko diff --git a/Mage.Sets/src/mage/cards/d/DecisionParalysis.java b/Mage.Sets/src/mage/cards/d/DecisionParalysis.java new file mode 100644 index 00000000000..95d4dacecaf --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DecisionParalysis.java @@ -0,0 +1,61 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import java.util.UUID; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; +import mage.abilities.effects.common.TapTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class DecisionParalysis extends CardImpl { + + public DecisionParalysis(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{U}"); + + // Tap up to two target creatures. Those creatures don't untap during their controller's next untap step. + this.getSpellAbility().addEffect(new TapTargetEffect()); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2)); + this.getSpellAbility().addEffect(new DontUntapInControllersNextUntapStepTargetEffect("Those creatures")); + } + + public DecisionParalysis(final DecisionParalysis card) { + super(card); + } + + @Override + public DecisionParalysis copy() { + return new DecisionParalysis(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/DeclarationInStone.java b/Mage.Sets/src/mage/cards/d/DeclarationInStone.java index 990a770e33c..0270f549c31 100644 --- a/Mage.Sets/src/mage/cards/d/DeclarationInStone.java +++ b/Mage.Sets/src/mage/cards/d/DeclarationInStone.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -47,6 +44,10 @@ import mage.game.permanent.token.ClueArtifactToken; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/d/DeclarationOfNaught.java b/Mage.Sets/src/mage/cards/d/DeclarationOfNaught.java index afd5f0c8cad..959df83349c 100644 --- a/Mage.Sets/src/mage/cards/d/DeclarationOfNaught.java +++ b/Mage.Sets/src/mage/cards/d/DeclarationOfNaught.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.NamePredicate; import mage.game.Game; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DecoctionModule.java b/Mage.Sets/src/mage/cards/d/DecoctionModule.java index aa9ee67aa1c..3308e167f07 100644 --- a/Mage.Sets/src/mage/cards/d/DecoctionModule.java +++ b/Mage.Sets/src/mage/cards/d/DecoctionModule.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.CreatureEntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/Decommission.java b/Mage.Sets/src/mage/cards/d/Decommission.java index a7e5ed8c673..ff5761f5de4 100644 --- a/Mage.Sets/src/mage/cards/d/Decommission.java +++ b/Mage.Sets/src/mage/cards/d/Decommission.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.condition.common.RevoltCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -39,6 +38,8 @@ import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; import mage.watchers.common.RevoltWatcher; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/Decompose.java b/Mage.Sets/src/mage/cards/d/Decompose.java index 6f88772aa43..d27d07b5882 100644 --- a/Mage.Sets/src/mage/cards/d/Decompose.java +++ b/Mage.Sets/src/mage/cards/d/Decompose.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.target.common.TargetCardInASingleGraveyard; +import java.util.UUID; + /** * * @author ilcartographer @@ -46,7 +47,7 @@ public class Decompose extends CardImpl { // Exile up to three target cards from a single graveyard. this.getSpellAbility().addEffect(new ExileTargetEffect()); - this.getSpellAbility().addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("cards"))); + this.getSpellAbility().addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("cards from a single graveyard"))); } public Decompose(final Decompose card) { diff --git a/Mage.Sets/src/mage/cards/d/Deconstruct.java b/Mage.Sets/src/mage/cards/d/Deconstruct.java index 1edd68dd507..395db0546f1 100644 --- a/Mage.Sets/src/mage/cards/d/Deconstruct.java +++ b/Mage.Sets/src/mage/cards/d/Deconstruct.java @@ -27,17 +27,18 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.Mana; import mage.abilities.effects.common.BasicManaEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DecoratedGriffin.java b/Mage.Sets/src/mage/cards/d/DecoratedGriffin.java index 2d728288d16..2ac7615c61f 100644 --- a/Mage.Sets/src/mage/cards/d/DecoratedGriffin.java +++ b/Mage.Sets/src/mage/cards/d/DecoratedGriffin.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DecreeOfAnnihilation.java b/Mage.Sets/src/mage/cards/d/DecreeOfAnnihilation.java index dc94e855e64..8d2998961b1 100644 --- a/Mage.Sets/src/mage/cards/d/DecreeOfAnnihilation.java +++ b/Mage.Sets/src/mage/cards/d/DecreeOfAnnihilation.java @@ -27,25 +27,26 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.CycleTriggeredAbility; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.DestroyAllEffect; -import mage.abilities.keyword.CyclingAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterLandPermanent; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.game.Game; -import mage.game.permanent.Permanent; -import mage.players.Player; + import mage.abilities.Ability; + import mage.abilities.common.CycleTriggeredAbility; + import mage.abilities.costs.mana.ManaCostsImpl; + import mage.abilities.effects.OneShotEffect; + import mage.abilities.effects.common.DestroyAllEffect; + import mage.abilities.keyword.CyclingAbility; + import mage.cards.Card; + import mage.cards.CardImpl; + import mage.cards.CardSetInfo; + import mage.constants.CardType; + import mage.constants.Outcome; + import mage.filter.FilterPermanent; + import mage.filter.common.FilterLandPermanent; + import mage.filter.predicate.Predicates; + import mage.filter.predicate.mageobject.CardTypePredicate; + import mage.game.Game; + import mage.game.permanent.Permanent; + import mage.players.Player; + + import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DecreeOfJustice.java b/Mage.Sets/src/mage/cards/d/DecreeOfJustice.java index a812b8ff22b..bf64a70ff94 100644 --- a/Mage.Sets/src/mage/cards/d/DecreeOfJustice.java +++ b/Mage.Sets/src/mage/cards/d/DecreeOfJustice.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.CycleTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -48,6 +47,8 @@ import mage.game.permanent.token.SoldierToken; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DecreeOfPain.java b/Mage.Sets/src/mage/cards/d/DecreeOfPain.java index 0fab56920ef..7a3dca7a06b 100644 --- a/Mage.Sets/src/mage/cards/d/DecreeOfPain.java +++ b/Mage.Sets/src/mage/cards/d/DecreeOfPain.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.CycleTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DecreeOfSavagery.java b/Mage.Sets/src/mage/cards/d/DecreeOfSavagery.java index 9b6e4eea081..bf2410d44f6 100644 --- a/Mage.Sets/src/mage/cards/d/DecreeOfSavagery.java +++ b/Mage.Sets/src/mage/cards/d/DecreeOfSavagery.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.CycleTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,6 +40,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/d/DecreeOfSilence.java b/Mage.Sets/src/mage/cards/d/DecreeOfSilence.java index c42c25c6fd5..15b7c6c5e7b 100644 --- a/Mage.Sets/src/mage/cards/d/DecreeOfSilence.java +++ b/Mage.Sets/src/mage/cards/d/DecreeOfSilence.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.CycleTriggeredAbility; import mage.abilities.common.SpellCastOpponentTriggeredAbility; @@ -48,6 +47,8 @@ import mage.counters.CounterType; import mage.filter.FilterSpell; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DedicatedMartyr.java b/Mage.Sets/src/mage/cards/d/DedicatedMartyr.java index 11af8c99c7c..8c201ddbd33 100644 --- a/Mage.Sets/src/mage/cards/d/DedicatedMartyr.java +++ b/Mage.Sets/src/mage/cards/d/DedicatedMartyr.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/d/DeemWorthy.java b/Mage.Sets/src/mage/cards/d/DeemWorthy.java new file mode 100644 index 00000000000..d82e76cda7a --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DeemWorthy.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.cards.d; + +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.CycleTriggeredAbility; +import mage.abilities.keyword.CyclingAbility; + + +/** + * + * @author Darkside- + */ +public class DeemWorthy extends CardImpl { + + public DeemWorthy (UUID ownerId, CardSetInfo setInfo) { + super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{4}{R}"); + + + // Deem Worthy deals 7 damage to target creature. + this.getSpellAbility().addEffect(new DamageTargetEffect(7)); + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + + //Cycling {3}{R} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{3}{R}"))); + // When you cycle Deem Worthy, you may have it deal 2 damage to target creature. + Ability ability = new CycleTriggeredAbility(new DamageTargetEffect(2),true); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public DeemWorthy (final DeemWorthy card) { + super(card); + } + + @Override + public DeemWorthy copy() { + return new DeemWorthy(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/DeepAnalysis.java b/Mage.Sets/src/mage/cards/d/DeepAnalysis.java index cb0c6752c77..2ee9737fa34 100644 --- a/Mage.Sets/src/mage/cards/d/DeepAnalysis.java +++ b/Mage.Sets/src/mage/cards/d/DeepAnalysis.java @@ -27,7 +27,7 @@ */ package mage.cards.d; -import mage.constants.CardType; +import mage.abilities.costs.Cost; import mage.abilities.costs.Costs; import mage.abilities.costs.CostsImpl; import mage.abilities.costs.common.PayLifeCost; @@ -36,11 +36,11 @@ import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TimingRule; import mage.target.TargetPlayer; import java.util.UUID; -import mage.abilities.costs.Cost; /** * diff --git a/Mage.Sets/src/mage/cards/d/DeepReconnaissance.java b/Mage.Sets/src/mage/cards/d/DeepReconnaissance.java index 595649e31b4..bf77e601c1a 100644 --- a/Mage.Sets/src/mage/cards/d/DeepReconnaissance.java +++ b/Mage.Sets/src/mage/cards/d/DeepReconnaissance.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.abilities.keyword.FlashbackAbility; @@ -38,6 +37,8 @@ import mage.constants.TimingRule; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeepSeaKraken.java b/Mage.Sets/src/mage/cards/d/DeepSeaKraken.java index ef091c2825e..e0bf769a7e9 100644 --- a/Mage.Sets/src/mage/cards/d/DeepSeaKraken.java +++ b/Mage.Sets/src/mage/cards/d/DeepSeaKraken.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.condition.common.SuspendedCondition; @@ -46,6 +45,8 @@ import mage.counters.CounterType; import mage.filter.FilterSpell; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -71,7 +72,7 @@ public class DeepSeaKraken extends CardImpl { this.addAbility(new SuspendAbility(9, new ManaCostsImpl("{2}{U}"), this)); // Whenever an opponent casts a spell, if Deep-Sea Kraken is suspended, remove a time counter from it. this.addAbility(new ConditionalTriggeredAbility( - new SpellCastAllTriggeredAbility(Zone.EXILED, new RemoveCounterSourceEffect(CounterType.TIME.createInstance()), filter, false, SetTargetPointer.NONE), SuspendedCondition.getInstance(), + new SpellCastAllTriggeredAbility(Zone.EXILED, new RemoveCounterSourceEffect(CounterType.TIME.createInstance()), filter, false, SetTargetPointer.NONE), SuspendedCondition.instance, "Whenever an opponent casts a spell, if Deep-Sea Kraken is suspended, remove a time counter from it.")); } diff --git a/Mage.Sets/src/mage/cards/d/DeepSeaSerpent.java b/Mage.Sets/src/mage/cards/d/DeepSeaSerpent.java index 92c13d56def..fb9da7d9fcd 100644 --- a/Mage.Sets/src/mage/cards/d/DeepSeaSerpent.java +++ b/Mage.Sets/src/mage/cards/d/DeepSeaSerpent.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantAttackUnlessDefenderControllsPermanent; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DeepSeaTerror.java b/Mage.Sets/src/mage/cards/d/DeepSeaTerror.java index a3ed9deebf4..fc523803581 100644 --- a/Mage.Sets/src/mage/cards/d/DeepSeaTerror.java +++ b/Mage.Sets/src/mage/cards/d/DeepSeaTerror.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.InvertCondition; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeepSlumberTitan.java b/Mage.Sets/src/mage/cards/d/DeepSlumberTitan.java index 069ac2bcdbb..02e9f41843c 100644 --- a/Mage.Sets/src/mage/cards/d/DeepSlumberTitan.java +++ b/Mage.Sets/src/mage/cards/d/DeepSlumberTitan.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealtDamageToSourceTriggeredAbility; import mage.abilities.common.EntersBattlefieldTappedAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DeepSpawn.java b/Mage.Sets/src/mage/cards/d/DeepSpawn.java index 83fc08a90b5..0d1fd898353 100644 --- a/Mage.Sets/src/mage/cards/d/DeepSpawn.java +++ b/Mage.Sets/src/mage/cards/d/DeepSpawn.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -48,6 +47,8 @@ import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DeepcavernImp.java b/Mage.Sets/src/mage/cards/d/DeepcavernImp.java index 1f5fa402fba..e9bb35325de 100644 --- a/Mage.Sets/src/mage/cards/d/DeepcavernImp.java +++ b/Mage.Sets/src/mage/cards/d/DeepcavernImp.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.keyword.EchoAbility; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeepchannelMentor.java b/Mage.Sets/src/mage/cards/d/DeepchannelMentor.java index 6fbf8b918ab..85b535eef10 100644 --- a/Mage.Sets/src/mage/cards/d/DeepchannelMentor.java +++ b/Mage.Sets/src/mage/cards/d/DeepchannelMentor.java @@ -27,19 +27,20 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantBeBlockedAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DeepfathomSkulker.java b/Mage.Sets/src/mage/cards/d/DeepfathomSkulker.java index 6b502cd9a72..ad4d886c882 100644 --- a/Mage.Sets/src/mage/cards/d/DeepfathomSkulker.java +++ b/Mage.Sets/src/mage/cards/d/DeepfathomSkulker.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -47,6 +46,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DeepfireElemental.java b/Mage.Sets/src/mage/cards/d/DeepfireElemental.java index fa3b71d6304..1ed625e3440 100644 --- a/Mage.Sets/src/mage/cards/d/DeepfireElemental.java +++ b/Mage.Sets/src/mage/cards/d/DeepfireElemental.java @@ -27,9 +27,9 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; @@ -37,7 +37,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -80,7 +81,7 @@ public class DeepfireElemental extends CardImpl { ability.getTargets().clear(); FilterPermanent newFilter = filter.copy(); newFilter.setMessage(new StringBuilder("artifact or creature with converted mana cost {").append(ability.getManaCostsToPay().getX()).append('}').toString()); - newFilter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, ability.getManaCostsToPay().getX())); + newFilter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, ability.getManaCostsToPay().getX())); Target target = new TargetPermanent(newFilter); ability.addTarget(target); } diff --git a/Mage.Sets/src/mage/cards/d/DeepglowSkate.java b/Mage.Sets/src/mage/cards/d/DeepglowSkate.java index e41dcc62239..38f0b3041a0 100644 --- a/Mage.Sets/src/mage/cards/d/DeepglowSkate.java +++ b/Mage.Sets/src/mage/cards/d/DeepglowSkate.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -43,6 +42,8 @@ import mage.game.permanent.Permanent; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/d/DeeptreadMerrow.java b/Mage.Sets/src/mage/cards/d/DeeptreadMerrow.java index 470c6938fb0..126e9965bc4 100644 --- a/Mage.Sets/src/mage/cards/d/DeeptreadMerrow.java +++ b/Mage.Sets/src/mage/cards/d/DeeptreadMerrow.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import mage.constants.*; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; @@ -35,6 +34,10 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.IslandwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/d/DeepwaterHypnotist.java b/Mage.Sets/src/mage/cards/d/DeepwaterHypnotist.java index 063990348a6..54fd73eae46 100644 --- a/Mage.Sets/src/mage/cards/d/DeepwaterHypnotist.java +++ b/Mage.Sets/src/mage/cards/d/DeepwaterHypnotist.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeepwoodDrummer.java b/Mage.Sets/src/mage/cards/d/DeepwoodDrummer.java index 77f4c052831..a5b4b0d74c7 100644 --- a/Mage.Sets/src/mage/cards/d/DeepwoodDrummer.java +++ b/Mage.Sets/src/mage/cards/d/DeepwoodDrummer.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DeepwoodGhoul.java b/Mage.Sets/src/mage/cards/d/DeepwoodGhoul.java index e1f7d047355..79c88f5dee0 100644 --- a/Mage.Sets/src/mage/cards/d/DeepwoodGhoul.java +++ b/Mage.Sets/src/mage/cards/d/DeepwoodGhoul.java @@ -27,17 +27,17 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.PayLifeCost; import mage.abilities.effects.common.RegenerateSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DeepwoodLegate.java b/Mage.Sets/src/mage/cards/d/DeepwoodLegate.java index 2a666d70db8..dca7edda604 100644 --- a/Mage.Sets/src/mage/cards/d/DeepwoodLegate.java +++ b/Mage.Sets/src/mage/cards/d/DeepwoodLegate.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.condition.CompoundCondition; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DeepwoodTantiv.java b/Mage.Sets/src/mage/cards/d/DeepwoodTantiv.java index c1395239bd0..667e8445075 100644 --- a/Mage.Sets/src/mage/cards/d/DeepwoodTantiv.java +++ b/Mage.Sets/src/mage/cards/d/DeepwoodTantiv.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesBlockedTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DeepwoodWolverine.java b/Mage.Sets/src/mage/cards/d/DeepwoodWolverine.java index dc7d34bac69..01e63ce9cf5 100644 --- a/Mage.Sets/src/mage/cards/d/DeepwoodWolverine.java +++ b/Mage.Sets/src/mage/cards/d/DeepwoodWolverine.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesBlockedTriggeredAbility; import mage.abilities.effects.Effect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/Defang.java b/Mage.Sets/src/mage/cards/d/Defang.java index 32b1ee4ad17..91bd0251929 100644 --- a/Mage.Sets/src/mage/cards/d/Defang.java +++ b/Mage.Sets/src/mage/cards/d/Defang.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/d/Defeat.java b/Mage.Sets/src/mage/cards/d/Defeat.java index 2167f049233..9f1988fef7b 100644 --- a/Mage.Sets/src/mage/cards/d/Defeat.java +++ b/Mage.Sets/src/mage/cards/d/Defeat.java @@ -27,16 +27,17 @@ */ package mage.cards.d; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -46,7 +47,7 @@ public class Defeat extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public Defeat(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/d/DefendTheHearth.java b/Mage.Sets/src/mage/cards/d/DefendTheHearth.java index 12eef3e3adc..1c14d0403aa 100644 --- a/Mage.Sets/src/mage/cards/d/DefendTheHearth.java +++ b/Mage.Sets/src/mage/cards/d/DefendTheHearth.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.PreventAllDamageToPlayersEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DefenderEnVec.java b/Mage.Sets/src/mage/cards/d/DefenderEnVec.java index 5108aa9a446..c29defb50dd 100644 --- a/Mage.Sets/src/mage/cards/d/DefenderEnVec.java +++ b/Mage.Sets/src/mage/cards/d/DefenderEnVec.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DefenderOfChaos.java b/Mage.Sets/src/mage/cards/d/DefenderOfChaos.java index 0b699454245..4cac938124c 100644 --- a/Mage.Sets/src/mage/cards/d/DefenderOfChaos.java +++ b/Mage.Sets/src/mage/cards/d/DefenderOfChaos.java @@ -27,13 +27,13 @@ */ package mage.cards.d; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/d/DefenderOfLaw.java b/Mage.Sets/src/mage/cards/d/DefenderOfLaw.java index dd49cf79ef0..ce0438b7f16 100644 --- a/Mage.Sets/src/mage/cards/d/DefenderOfLaw.java +++ b/Mage.Sets/src/mage/cards/d/DefenderOfLaw.java @@ -27,13 +27,13 @@ */ package mage.cards.d; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/d/DefenderOfTheOrder.java b/Mage.Sets/src/mage/cards/d/DefenderOfTheOrder.java index 6e432c0c65f..e06a62c6ca1 100644 --- a/Mage.Sets/src/mage/cards/d/DefenderOfTheOrder.java +++ b/Mage.Sets/src/mage/cards/d/DefenderOfTheOrder.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DefenseGrid.java b/Mage.Sets/src/mage/cards/d/DefenseGrid.java index 120abbb45be..7498a653ff6 100644 --- a/Mage.Sets/src/mage/cards/d/DefenseGrid.java +++ b/Mage.Sets/src/mage/cards/d/DefenseGrid.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.common.SimpleStaticAbility; @@ -36,6 +35,7 @@ import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.game.Game; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/d/DefensiveStance.java b/Mage.Sets/src/mage/cards/d/DefensiveStance.java index d70d4619f08..a95f459867a 100644 --- a/Mage.Sets/src/mage/cards/d/DefensiveStance.java +++ b/Mage.Sets/src/mage/cards/d/DefensiveStance.java @@ -27,20 +27,21 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DefiantBloodlord.java b/Mage.Sets/src/mage/cards/d/DefiantBloodlord.java index 8a2fb58e48b..78504d89df2 100644 --- a/Mage.Sets/src/mage/cards/d/DefiantBloodlord.java +++ b/Mage.Sets/src/mage/cards/d/DefiantBloodlord.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.LoseLifeTargetEffect; @@ -41,6 +40,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DefiantElf.java b/Mage.Sets/src/mage/cards/d/DefiantElf.java index 4fc4ab82b51..123d748f973 100644 --- a/Mage.Sets/src/mage/cards/d/DefiantElf.java +++ b/Mage.Sets/src/mage/cards/d/DefiantElf.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DefiantFalcon.java b/Mage.Sets/src/mage/cards/d/DefiantFalcon.java index 3722ad9dbff..10db4288bf9 100644 --- a/Mage.Sets/src/mage/cards/d/DefiantFalcon.java +++ b/Mage.Sets/src/mage/cards/d/DefiantFalcon.java @@ -27,8 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,12 +38,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes @@ -54,7 +55,7 @@ public class DefiantFalcon extends CardImpl { static { filter.add(new SubtypePredicate("Rebel")); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public DefiantFalcon(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/d/DefiantGreatmaw.java b/Mage.Sets/src/mage/cards/d/DefiantGreatmaw.java new file mode 100644 index 00000000000..56994aac9f0 --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DefiantGreatmaw.java @@ -0,0 +1,125 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.effects.common.counter.RemoveCounterTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.AnotherPredicate; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class DefiantGreatmaw extends CardImpl { + + public DefiantGreatmaw(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); + + this.subtype.add("Hippo"); + this.power = new MageInt(4); + this.toughness = new MageInt(5); + + // When Defiant Greatmaw enters the battlefield, put two -1/-1 counters on target creature you control. + Ability ability = new EntersBattlefieldTriggeredAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance(2))); + ability.addTarget(new TargetControlledCreaturePermanent()); + this.addAbility(ability); + + // Whenever you put one or more -1/-1 counters on Defiant Greatmaw, remove a -1/-1 counter from another target creature you control. + this.addAbility(new DefiantGreatmawTriggeredAbility()); + } + + public DefiantGreatmaw(final DefiantGreatmaw card) { + super(card); + } + + @Override + public DefiantGreatmaw copy() { + return new DefiantGreatmaw(this); + } +} + +class DefiantGreatmawTriggeredAbility extends TriggeredAbilityImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another target creature"); + + static { + filter.add(new AnotherPredicate()); + filter.add(new ControllerPredicate(TargetController.YOU)); + } + + DefiantGreatmawTriggeredAbility() { + super(Zone.BATTLEFIELD, new RemoveCounterTargetEffect(CounterType.M1M1.createInstance(1)), false); + this.addTarget(new TargetCreaturePermanent(filter)); + } + + DefiantGreatmawTriggeredAbility(final DefiantGreatmawTriggeredAbility ability) { + super(ability); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.COUNTERS_ADDED; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + boolean weAreDoingIt = getControllerId().equals(game.getControllerId(event.getSourceId())); + boolean isM1M1Counters = event.getData().equals(CounterType.M1M1.getName()); + if (weAreDoingIt && isM1M1Counters && event.getTargetId().equals(this.getSourceId())) { + return true; + } + return false; + } + + @Override + public DefiantGreatmawTriggeredAbility copy() { + return new DefiantGreatmawTriggeredAbility(this); + } + + @Override + public String getRule() { + return "Whenever you put one or more -1/-1 counters on {this}, remove a -1/-1 counter from another target creature you control."; + } +} diff --git a/Mage.Sets/src/mage/cards/d/DefiantOgre.java b/Mage.Sets/src/mage/cards/d/DefiantOgre.java index 391972d2f44..92712de71a9 100644 --- a/Mage.Sets/src/mage/cards/d/DefiantOgre.java +++ b/Mage.Sets/src/mage/cards/d/DefiantOgre.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.counters.CounterType; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DefiantSalvager.java b/Mage.Sets/src/mage/cards/d/DefiantSalvager.java index 7a754c33198..8c4a878301a 100644 --- a/Mage.Sets/src/mage/cards/d/DefiantSalvager.java +++ b/Mage.Sets/src/mage/cards/d/DefiantSalvager.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DefiantStrike.java b/Mage.Sets/src/mage/cards/d/DefiantStrike.java index 766cf08dd45..1a13db1163b 100644 --- a/Mage.Sets/src/mage/cards/d/DefiantStrike.java +++ b/Mage.Sets/src/mage/cards/d/DefiantStrike.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DefilerOfSouls.java b/Mage.Sets/src/mage/cards/d/DefilerOfSouls.java index 401d7e9b70f..f52686ee2a1 100644 --- a/Mage.Sets/src/mage/cards/d/DefilerOfSouls.java +++ b/Mage.Sets/src/mage/cards/d/DefilerOfSouls.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -37,6 +34,10 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.MonocoloredPredicate; import mage.game.Game; @@ -45,6 +46,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DefilingTears.java b/Mage.Sets/src/mage/cards/d/DefilingTears.java index 85716af6c29..0397fb8b675 100644 --- a/Mage.Sets/src/mage/cards/d/DefilingTears.java +++ b/Mage.Sets/src/mage/cards/d/DefilingTears.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Derpthemeus diff --git a/Mage.Sets/src/mage/cards/d/DeflectingPalm.java b/Mage.Sets/src/mage/cards/d/DeflectingPalm.java index b5492fa960e..2688181f892 100644 --- a/Mage.Sets/src/mage/cards/d/DeflectingPalm.java +++ b/Mage.Sets/src/mage/cards/d/DeflectingPalm.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.PreventionEffectData; @@ -44,6 +43,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.TargetSource; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Deflection.java b/Mage.Sets/src/mage/cards/d/Deflection.java index 8c1d6786de8..d6a1e55fd99 100644 --- a/Mage.Sets/src/mage/cards/d/Deflection.java +++ b/Mage.Sets/src/mage/cards/d/Deflection.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.ChooseNewTargetsTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.NumberOfTargetsPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeftDismissal.java b/Mage.Sets/src/mage/cards/d/DeftDismissal.java index 9b92521b6bb..6cda826788c 100644 --- a/Mage.Sets/src/mage/cards/d/DeftDismissal.java +++ b/Mage.Sets/src/mage/cards/d/DeftDismissal.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageMultiEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterAttackingOrBlockingCreature; import mage.target.common.TargetCreaturePermanentAmount; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/DeftDuelist.java b/Mage.Sets/src/mage/cards/d/DeftDuelist.java index de01077b74b..163686af6e6 100644 --- a/Mage.Sets/src/mage/cards/d/DeftDuelist.java +++ b/Mage.Sets/src/mage/cards/d/DeftDuelist.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DeftbladeElite.java b/Mage.Sets/src/mage/cards/d/DeftbladeElite.java index 68bdadbe342..f777b0a48a5 100644 --- a/Mage.Sets/src/mage/cards/d/DeftbladeElite.java +++ b/Mage.Sets/src/mage/cards/d/DeftbladeElite.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DefyDeath.java b/Mage.Sets/src/mage/cards/d/DefyDeath.java index b8427e4c9cf..b565bbf18c0 100644 --- a/Mage.Sets/src/mage/cards/d/DefyDeath.java +++ b/Mage.Sets/src/mage/cards/d/DefyDeath.java @@ -27,20 +27,21 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.counters.CounterType; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DefyGravity.java b/Mage.Sets/src/mage/cards/d/DefyGravity.java index 73e2bf86856..22eadfd02d3 100644 --- a/Mage.Sets/src/mage/cards/d/DefyGravity.java +++ b/Mage.Sets/src/mage/cards/d/DefyGravity.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FlashbackAbility; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.TimingRule; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DegaDisciple.java b/Mage.Sets/src/mage/cards/d/DegaDisciple.java index a269aa44bbe..d2d7ab391f8 100644 --- a/Mage.Sets/src/mage/cards/d/DegaDisciple.java +++ b/Mage.Sets/src/mage/cards/d/DegaDisciple.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,8 +35,14 @@ import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/Degavolver.java b/Mage.Sets/src/mage/cards/d/Degavolver.java index 19147aab700..094fd3d31a1 100644 --- a/Mage.Sets/src/mage/cards/d/Degavolver.java +++ b/Mage.Sets/src/mage/cards/d/Degavolver.java @@ -27,11 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -45,8 +40,13 @@ import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/Deglamer.java b/Mage.Sets/src/mage/cards/d/Deglamer.java index d56aad440fc..a5037335b17 100644 --- a/Mage.Sets/src/mage/cards/d/Deglamer.java +++ b/Mage.Sets/src/mage/cards/d/Deglamer.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ShuffleIntoLibraryTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Dehydration.java b/Mage.Sets/src/mage/cards/d/Dehydration.java index 583bdc0fd6a..c508aaf7227 100644 --- a/Mage.Sets/src/mage/cards/d/Dehydration.java +++ b/Mage.Sets/src/mage/cards/d/Dehydration.java @@ -27,19 +27,20 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/Deicide.java b/Mage.Sets/src/mage/cards/d/Deicide.java index d065005b79d..46c4c58eaee 100644 --- a/Mage.Sets/src/mage/cards/d/Deicide.java +++ b/Mage.Sets/src/mage/cards/d/Deicide.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.common.search.SearchTargetGraveyardHandLibraryForCardNameAndExileEffect; @@ -41,6 +40,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DeityOfScars.java b/Mage.Sets/src/mage/cards/d/DeityOfScars.java index ef298357767..91b7790b483 100644 --- a/Mage.Sets/src/mage/cards/d/DeityOfScars.java +++ b/Mage.Sets/src/mage/cards/d/DeityOfScars.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/d/DejaVu.java b/Mage.Sets/src/mage/cards/d/DejaVu.java index b2d226d24c1..8bfb5773a61 100644 --- a/Mage.Sets/src/mage/cards/d/DejaVu.java +++ b/Mage.Sets/src/mage/cards/d/DejaVu.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/Delay.java b/Mage.Sets/src/mage/cards/d/Delay.java index 0960d08733d..5cb526eba29 100644 --- a/Mage.Sets/src/mage/cards/d/Delay.java +++ b/Mage.Sets/src/mage/cards/d/Delay.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.effects.Effect; @@ -47,6 +46,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DelayingShield.java b/Mage.Sets/src/mage/cards/d/DelayingShield.java index fb11e22afd1..0e14ee1fadc 100644 --- a/Mage.Sets/src/mage/cards/d/DelayingShield.java +++ b/Mage.Sets/src/mage/cards/d/DelayingShield.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,11 +38,7 @@ import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.game.Game; import mage.game.events.DamageEvent; @@ -52,6 +47,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DelifsCone.java b/Mage.Sets/src/mage/cards/d/DelifsCone.java index 6d2655852a3..d8b63a5ffc3 100644 --- a/Mage.Sets/src/mage/cards/d/DelifsCone.java +++ b/Mage.Sets/src/mage/cards/d/DelifsCone.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -47,6 +46,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/d/DelifsCube.java b/Mage.Sets/src/mage/cards/d/DelifsCube.java index 265415b85d9..4c38e2e6748 100644 --- a/Mage.Sets/src/mage/cards/d/DelifsCube.java +++ b/Mage.Sets/src/mage/cards/d/DelifsCube.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -49,6 +48,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/d/DeliriumSkeins.java b/Mage.Sets/src/mage/cards/d/DeliriumSkeins.java index fee174245f3..7dbf2f7105d 100644 --- a/Mage.Sets/src/mage/cards/d/DeliriumSkeins.java +++ b/Mage.Sets/src/mage/cards/d/DeliriumSkeins.java @@ -27,11 +27,12 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/Deluge.java b/Mage.Sets/src/mage/cards/d/Deluge.java index a9b68f7041c..3185d07fbc9 100644 --- a/Mage.Sets/src/mage/cards/d/Deluge.java +++ b/Mage.Sets/src/mage/cards/d/Deluge.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.TapAllEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/d/DelusionsOfMediocrity.java b/Mage.Sets/src/mage/cards/d/DelusionsOfMediocrity.java index 9b92a9a1eb5..9a24e8e13b5 100644 --- a/Mage.Sets/src/mage/cards/d/DelusionsOfMediocrity.java +++ b/Mage.Sets/src/mage/cards/d/DelusionsOfMediocrity.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.LeavesBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/d/DelverOfSecrets.java b/Mage.Sets/src/mage/cards/d/DelverOfSecrets.java index 9a15b7c558e..0d4e97c0bbc 100644 --- a/Mage.Sets/src/mage/cards/d/DelverOfSecrets.java +++ b/Mage.Sets/src/mage/cards/d/DelverOfSecrets.java @@ -27,21 +27,16 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.TransformAbility; +import mage.cards.*; import mage.cards.i.InsectileAberration; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.TargetController; import mage.filter.FilterCard; import mage.filter.common.FilterInstantOrSorceryCard; @@ -49,6 +44,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author Alvin diff --git a/Mage.Sets/src/mage/cards/d/Dematerialize.java b/Mage.Sets/src/mage/cards/d/Dematerialize.java index d120302dd7d..81bce6156e4 100644 --- a/Mage.Sets/src/mage/cards/d/Dematerialize.java +++ b/Mage.Sets/src/mage/cards/d/Dematerialize.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.FlashbackAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.TimingRule; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/d/DementiaBat.java b/Mage.Sets/src/mage/cards/d/DementiaBat.java index bc2398aeb4b..e899fc87d98 100644 --- a/Mage.Sets/src/mage/cards/d/DementiaBat.java +++ b/Mage.Sets/src/mage/cards/d/DementiaBat.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -38,8 +35,12 @@ import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DementiaSliver.java b/Mage.Sets/src/mage/cards/d/DementiaSliver.java index a199b17ff3f..b9ec9188937 100644 --- a/Mage.Sets/src/mage/cards/d/DementiaSliver.java +++ b/Mage.Sets/src/mage/cards/d/DementiaSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -38,11 +37,7 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.NameACardEffect; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; @@ -53,6 +48,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DemigodOfRevenge.java b/Mage.Sets/src/mage/cards/d/DemigodOfRevenge.java index de5a7ce4c04..0185fb5196a 100644 --- a/Mage.Sets/src/mage/cards/d/DemigodOfRevenge.java +++ b/Mage.Sets/src/mage/cards/d/DemigodOfRevenge.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.NamePredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Demolish.java b/Mage.Sets/src/mage/cards/d/Demolish.java index adc0c2719ba..c4b7277aedb 100644 --- a/Mage.Sets/src/mage/cards/d/Demolish.java +++ b/Mage.Sets/src/mage/cards/d/Demolish.java @@ -28,16 +28,17 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/DemolitionStomper.java b/Mage.Sets/src/mage/cards/d/DemolitionStomper.java index b27f97ea995..968a6a339f0 100644 --- a/Mage.Sets/src/mage/cards/d/DemolitionStomper.java +++ b/Mage.Sets/src/mage/cards/d/DemolitionStomper.java @@ -27,8 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; import mage.abilities.keyword.CrewAbility; @@ -36,10 +36,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author emerald000 @@ -48,7 +49,7 @@ public class DemolitionStomper extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public DemolitionStomper(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/d/DemonOfDarkSchemes.java b/Mage.Sets/src/mage/cards/d/DemonOfDarkSchemes.java index 578be6379f6..2b24b02e36b 100644 --- a/Mage.Sets/src/mage/cards/d/DemonOfDarkSchemes.java +++ b/Mage.Sets/src/mage/cards/d/DemonOfDarkSchemes.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; @@ -48,6 +47,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DemonOfDeathsGate.java b/Mage.Sets/src/mage/cards/d/DemonOfDeathsGate.java index 520c9326b1c..5480d96191d 100644 --- a/Mage.Sets/src/mage/cards/d/DemonOfDeathsGate.java +++ b/Mage.Sets/src/mage/cards/d/DemonOfDeathsGate.java @@ -28,7 +28,6 @@ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.costs.AlternativeCostSourceAbility; @@ -43,6 +42,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/DemonOfWailingAgonies.java b/Mage.Sets/src/mage/cards/d/DemonOfWailingAgonies.java index 7c33892e87a..792e81509d7 100644 --- a/Mage.Sets/src/mage/cards/d/DemonOfWailingAgonies.java +++ b/Mage.Sets/src/mage/cards/d/DemonOfWailingAgonies.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.abilityword.LieutenantAbility; @@ -41,6 +40,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DemonPossessedWitch.java b/Mage.Sets/src/mage/cards/d/DemonPossessedWitch.java index 7cc4409c5c5..bec8350caf0 100644 --- a/Mage.Sets/src/mage/cards/d/DemonPossessedWitch.java +++ b/Mage.Sets/src/mage/cards/d/DemonPossessedWitch.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DestroyTargetEffect; @@ -42,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/Demonfire.java b/Mage.Sets/src/mage/cards/d/Demonfire.java index b994ca89c4c..dfa5711b622 100644 --- a/Mage.Sets/src/mage/cards/d/Demonfire.java +++ b/Mage.Sets/src/mage/cards/d/Demonfire.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.HellbentCondition; @@ -46,6 +45,8 @@ import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; import mage.watchers.common.DamagedByWatcher; +import java.util.UUID; + /** * * @author JotaPeRL diff --git a/Mage.Sets/src/mage/cards/d/DemonicAppetite.java b/Mage.Sets/src/mage/cards/d/DemonicAppetite.java index 4885a5c7ebc..653a1d15833 100644 --- a/Mage.Sets/src/mage/cards/d/DemonicAppetite.java +++ b/Mage.Sets/src/mage/cards/d/DemonicAppetite.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -38,15 +37,13 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DemonicCollusion.java b/Mage.Sets/src/mage/cards/d/DemonicCollusion.java index 4b9bd8defd3..b71e35d7d17 100644 --- a/Mage.Sets/src/mage/cards/d/DemonicCollusion.java +++ b/Mage.Sets/src/mage/cards/d/DemonicCollusion.java @@ -27,17 +27,18 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.costs.common.DiscardTargetCost; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.abilities.keyword.BuybackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DemonicConsultation.java b/Mage.Sets/src/mage/cards/d/DemonicConsultation.java index fd0a61754b3..4ab6265a18e 100644 --- a/Mage.Sets/src/mage/cards/d/DemonicConsultation.java +++ b/Mage.Sets/src/mage/cards/d/DemonicConsultation.java @@ -27,15 +27,10 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.cards.repository.CardRepository; import mage.choices.Choice; import mage.choices.ChoiceImpl; @@ -45,6 +40,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DemonicDread.java b/Mage.Sets/src/mage/cards/d/DemonicDread.java index 95deb8a39cb..3cc8a7bbe46 100644 --- a/Mage.Sets/src/mage/cards/d/DemonicDread.java +++ b/Mage.Sets/src/mage/cards/d/DemonicDread.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.combat.CantBlockTargetEffect; import mage.abilities.keyword.CascadeAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DemonicHordes.java b/Mage.Sets/src/mage/cards/d/DemonicHordes.java index 1019b6d7468..4c551c4ae9d 100644 --- a/Mage.Sets/src/mage/cards/d/DemonicHordes.java +++ b/Mage.Sets/src/mage/cards/d/DemonicHordes.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -53,6 +52,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DemonicPact.java b/Mage.Sets/src/mage/cards/d/DemonicPact.java index ef3306e780a..5197cfd25a3 100644 --- a/Mage.Sets/src/mage/cards/d/DemonicPact.java +++ b/Mage.Sets/src/mage/cards/d/DemonicPact.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -44,6 +43,8 @@ import mage.constants.TargetController; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DemonicRising.java b/Mage.Sets/src/mage/cards/d/DemonicRising.java index 248d7660577..80376054e1a 100644 --- a/Mage.Sets/src/mage/cards/d/DemonicRising.java +++ b/Mage.Sets/src/mage/cards/d/DemonicRising.java @@ -27,17 +27,18 @@ */ package mage.cards.d; -import mage.constants.CardType; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility; +import mage.abilities.condition.common.CreatureCountCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.game.permanent.token.DemonToken; -import java.util.UUID; -import mage.abilities.condition.common.CreatureCountCondition; +import mage.constants.CardType; import mage.constants.TargetController; +import mage.game.permanent.token.DemonToken; + +import java.util.UUID; /** * @author noxx diff --git a/Mage.Sets/src/mage/cards/d/DemonicTaskmaster.java b/Mage.Sets/src/mage/cards/d/DemonicTaskmaster.java index a35581fec06..ec27a2c0237 100644 --- a/Mage.Sets/src/mage/cards/d/DemonicTaskmaster.java +++ b/Mage.Sets/src/mage/cards/d/DemonicTaskmaster.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -35,6 +34,7 @@ import mage.abilities.effects.common.SacrificeEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; diff --git a/Mage.Sets/src/mage/cards/d/DemonicTorment.java b/Mage.Sets/src/mage/cards/d/DemonicTorment.java index a64af83d5ca..1f55471bcf2 100644 --- a/Mage.Sets/src/mage/cards/d/DemonicTorment.java +++ b/Mage.Sets/src/mage/cards/d/DemonicTorment.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -36,14 +35,12 @@ import mage.abilities.effects.common.combat.CantAttackAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DemonicTutor.java b/Mage.Sets/src/mage/cards/d/DemonicTutor.java index 5c31be0db2c..a3cd2a33e08 100644 --- a/Mage.Sets/src/mage/cards/d/DemonicTutor.java +++ b/Mage.Sets/src/mage/cards/d/DemonicTutor.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/d/DemonlordOfAshmouth.java b/Mage.Sets/src/mage/cards/d/DemonlordOfAshmouth.java index 5ec9914125b..046d63f3c54 100644 --- a/Mage.Sets/src/mage/cards/d/DemonlordOfAshmouth.java +++ b/Mage.Sets/src/mage/cards/d/DemonlordOfAshmouth.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -41,6 +40,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/d/DemonmailHauberk.java b/Mage.Sets/src/mage/cards/d/DemonmailHauberk.java index 61269eee21e..01ba28ee497 100644 --- a/Mage.Sets/src/mage/cards/d/DemonmailHauberk.java +++ b/Mage.Sets/src/mage/cards/d/DemonmailHauberk.java @@ -27,19 +27,19 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/d/DemonsGrasp.java b/Mage.Sets/src/mage/cards/d/DemonsGrasp.java index d886d6a9149..4a35fab2bf0 100644 --- a/Mage.Sets/src/mage/cards/d/DemonsGrasp.java +++ b/Mage.Sets/src/mage/cards/d/DemonsGrasp.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DemonsHerald.java b/Mage.Sets/src/mage/cards/d/DemonsHerald.java index 1b3ddd3e46e..6493a55b8b3 100644 --- a/Mage.Sets/src/mage/cards/d/DemonsHerald.java +++ b/Mage.Sets/src/mage/cards/d/DemonsHerald.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -40,6 +37,8 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.NamePredicate; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DemonsHorn.java b/Mage.Sets/src/mage/cards/d/DemonsHorn.java index e2f88216813..5d265b3d1a4 100644 --- a/Mage.Sets/src/mage/cards/d/DemonsHorn.java +++ b/Mage.Sets/src/mage/cards/d/DemonsHorn.java @@ -28,17 +28,18 @@ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; -import mage.constants.CardType; import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/DemonsJester.java b/Mage.Sets/src/mage/cards/d/DemonsJester.java index 13c1f1873ec..8e9d8f66f71 100644 --- a/Mage.Sets/src/mage/cards/d/DemonsJester.java +++ b/Mage.Sets/src/mage/cards/d/DemonsJester.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.HellbentCondition; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author daagar diff --git a/Mage.Sets/src/mage/cards/d/DemonspineWhip.java b/Mage.Sets/src/mage/cards/d/DemonspineWhip.java index a10e00bf475..ec1423b2d92 100644 --- a/Mage.Sets/src/mage/cards/d/DemonspineWhip.java +++ b/Mage.Sets/src/mage/cards/d/DemonspineWhip.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -39,9 +38,14 @@ import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/Demoralize.java b/Mage.Sets/src/mage/cards/d/Demoralize.java index 3ff2a11c32f..427c0df5ea1 100644 --- a/Mage.Sets/src/mage/cards/d/Demoralize.java +++ b/Mage.Sets/src/mage/cards/d/Demoralize.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.condition.common.CardsInControllerGraveCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.AddContinuousEffectToGame; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/d/Demystify.java b/Mage.Sets/src/mage/cards/d/Demystify.java index cf7ee225929..bb51e0b0acc 100644 --- a/Mage.Sets/src/mage/cards/d/Demystify.java +++ b/Mage.Sets/src/mage/cards/d/Demystify.java @@ -28,13 +28,14 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DenProtector.java b/Mage.Sets/src/mage/cards/d/DenProtector.java index ae954b7b2a0..fcb1f6231a7 100644 --- a/Mage.Sets/src/mage/cards/d/DenProtector.java +++ b/Mage.Sets/src/mage/cards/d/DenProtector.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DenizenOfTheDeep.java b/Mage.Sets/src/mage/cards/d/DenizenOfTheDeep.java index 583d998b933..cf40920a92b 100644 --- a/Mage.Sets/src/mage/cards/d/DenizenOfTheDeep.java +++ b/Mage.Sets/src/mage/cards/d/DenizenOfTheDeep.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.Effect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DenseCanopy.java b/Mage.Sets/src/mage/cards/d/DenseCanopy.java index b73fb0ceb83..11ed4b8bf3f 100644 --- a/Mage.Sets/src/mage/cards/d/DenseCanopy.java +++ b/Mage.Sets/src/mage/cards/d/DenseCanopy.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.RestrictionEffect; @@ -42,6 +41,8 @@ import mage.filter.predicate.mageobject.AbilityPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DenseFoliage.java b/Mage.Sets/src/mage/cards/d/DenseFoliage.java index f088987c108..71c2da4201e 100644 --- a/Mage.Sets/src/mage/cards/d/DenseFoliage.java +++ b/Mage.Sets/src/mage/cards/d/DenseFoliage.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.CantBeTargetedAllEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/d/DenyExistence.java b/Mage.Sets/src/mage/cards/d/DenyExistence.java index d9886eea0c0..f05ba116674 100644 --- a/Mage.Sets/src/mage/cards/d/DenyExistence.java +++ b/Mage.Sets/src/mage/cards/d/DenyExistence.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetWithReplacementEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreatureSpell; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DenyReality.java b/Mage.Sets/src/mage/cards/d/DenyReality.java index 9ba03ad01e8..74d994ab6de 100644 --- a/Mage.Sets/src/mage/cards/d/DenyReality.java +++ b/Mage.Sets/src/mage/cards/d/DenyReality.java @@ -28,14 +28,15 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.CascadeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DenyingWind.java b/Mage.Sets/src/mage/cards/d/DenyingWind.java index 087b5379449..2705441842c 100644 --- a/Mage.Sets/src/mage/cards/d/DenyingWind.java +++ b/Mage.Sets/src/mage/cards/d/DenyingWind.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -43,6 +41,9 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCardInLibrary; +import java.util.List; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DepalaPilotExemplar.java b/Mage.Sets/src/mage/cards/d/DepalaPilotExemplar.java index 7cabd1d5643..949ea88af56 100644 --- a/Mage.Sets/src/mage/cards/d/DepalaPilotExemplar.java +++ b/Mage.Sets/src/mage/cards/d/DepalaPilotExemplar.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesTappedSourceTriggeredAbility; @@ -42,10 +41,7 @@ import mage.abilities.effects.common.RevealLibraryPutIntoHandEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -53,6 +49,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 @@ -61,7 +59,7 @@ public class DepalaPilotExemplar extends CardImpl { public DepalaPilotExemplar(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dwarf"); this.subtype.add("Pilot"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/d/DeployTheGatewatch.java b/Mage.Sets/src/mage/cards/d/DeployTheGatewatch.java index d9042c27e77..162614ff963 100644 --- a/Mage.Sets/src/mage/cards/d/DeployTheGatewatch.java +++ b/Mage.Sets/src/mage/cards/d/DeployTheGatewatch.java @@ -27,14 +27,9 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -44,6 +39,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DeployTheTroops.java b/Mage.Sets/src/mage/cards/d/DeployTheTroops.java index 7b5beeba9cb..99037246aba 100644 --- a/Mage.Sets/src/mage/cards/d/DeployTheTroops.java +++ b/Mage.Sets/src/mage/cards/d/DeployTheTroops.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.TrooperToken; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/DeployToTheFront.java b/Mage.Sets/src/mage/cards/d/DeployToTheFront.java index 89aa7a72b46..6818267dad7 100644 --- a/Mage.Sets/src/mage/cards/d/DeployToTheFront.java +++ b/Mage.Sets/src/mage/cards/d/DeployToTheFront.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.game.permanent.token.SoldierToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Deprive.java b/Mage.Sets/src/mage/cards/d/Deprive.java index 8b201bc9dce..ac8375fb4b9 100644 --- a/Mage.Sets/src/mage/cards/d/Deprive.java +++ b/Mage.Sets/src/mage/cards/d/Deprive.java @@ -28,17 +28,18 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.target.TargetSpell; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/DeputizedProtester.java b/Mage.Sets/src/mage/cards/d/DeputizedProtester.java index 8ddae93a6df..c1bb7d7bd2f 100644 --- a/Mage.Sets/src/mage/cards/d/DeputizedProtester.java +++ b/Mage.Sets/src/mage/cards/d/DeputizedProtester.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.MenaceAbility; import mage.abilities.keyword.MeleeAbility; +import mage.abilities.keyword.MenaceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DeputyOfAcquittals.java b/Mage.Sets/src/mage/cards/d/DeputyOfAcquittals.java index eff2fc640c7..6e094710bc0 100644 --- a/Mage.Sets/src/mage/cards/d/DeputyOfAcquittals.java +++ b/Mage.Sets/src/mage/cards/d/DeputyOfAcquittals.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TargetController; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,12 +34,16 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DerangedAssistant.java b/Mage.Sets/src/mage/cards/d/DerangedAssistant.java index 8b8d06b0975..cc51fcc96c9 100644 --- a/Mage.Sets/src/mage/cards/d/DerangedAssistant.java +++ b/Mage.Sets/src/mage/cards/d/DerangedAssistant.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.costs.common.PutTopCardOfYourLibraryToGraveyardCost; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DerangedHermit.java b/Mage.Sets/src/mage/cards/d/DerangedHermit.java index b3c087b880e..62f7f33c900 100644 --- a/Mage.Sets/src/mage/cards/d/DerangedHermit.java +++ b/Mage.Sets/src/mage/cards/d/DerangedHermit.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,10 +35,15 @@ import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.abilities.keyword.EchoAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.SquirrelToken; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DerangedOutcast.java b/Mage.Sets/src/mage/cards/d/DerangedOutcast.java index d627c51dd68..efc11c02444 100644 --- a/Mage.Sets/src/mage/cards/d/DerangedOutcast.java +++ b/Mage.Sets/src/mage/cards/d/DerangedOutcast.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +35,7 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledPermanent; @@ -45,6 +43,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DerangedWhelp.java b/Mage.Sets/src/mage/cards/d/DerangedWhelp.java index 002c78f12d9..08adbfc0844 100644 --- a/Mage.Sets/src/mage/cards/d/DerangedWhelp.java +++ b/Mage.Sets/src/mage/cards/d/DerangedWhelp.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.MenaceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Derelor.java b/Mage.Sets/src/mage/cards/d/Derelor.java index 12852f8fb53..4bd7a476655 100644 --- a/Mage.Sets/src/mage/cards/d/Derelor.java +++ b/Mage.Sets/src/mage/cards/d/Derelor.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/d/DereviEmpyrialTactician.java b/Mage.Sets/src/mage/cards/d/DereviEmpyrialTactician.java index 326b6be9e99..e0b461de6dd 100644 --- a/Mage.Sets/src/mage/cards/d/DereviEmpyrialTactician.java +++ b/Mage.Sets/src/mage/cards/d/DereviEmpyrialTactician.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.ActivatedAbilityImpl; @@ -42,6 +41,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.DamagedPlayerEvent; @@ -51,6 +51,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +61,7 @@ public class DereviEmpyrialTactician extends CardImpl { public DereviEmpyrialTactician(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Bird"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/d/DescendUponTheSinful.java b/Mage.Sets/src/mage/cards/d/DescendUponTheSinful.java index f3b4094cf90..d3cdec8d40a 100644 --- a/Mage.Sets/src/mage/cards/d/DescendUponTheSinful.java +++ b/Mage.Sets/src/mage/cards/d/DescendUponTheSinful.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.condition.common.DeliriumCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.Effect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.game.permanent.token.AngelToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DescendantOfKiyomaro.java b/Mage.Sets/src/mage/cards/d/DescendantOfKiyomaro.java index 2ab93fcadc3..1c0d5d425af 100644 --- a/Mage.Sets/src/mage/cards/d/DescendantOfKiyomaro.java +++ b/Mage.Sets/src/mage/cards/d/DescendantOfKiyomaro.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageTriggeredAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,11 +61,11 @@ public class DescendantOfKiyomaro extends CardImpl { // As long as you have more cards in hand than each opponent, Descendant of Kiyomaro gets +1/+2 and has "Whenever this creature deals combat damage, you gain 3 life." Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostSourceEffect(1,2, Duration.WhileOnBattlefield), - new MoreCardsInHandThanOpponentsCondition(), + MoreCardsInHandThanOpponentsCondition.instance, "As long as you have more cards in hand than each opponent, {this} gets +1/+2")); ability.addEffect(new ConditionalContinuousEffect( new GainAbilitySourceEffect(new DealsCombatDamageTriggeredAbility(new GainLifeEffect(3), false)), - new MoreCardsInHandThanOpponentsCondition(), + MoreCardsInHandThanOpponentsCondition.instance, "and has \"Whenever this creature deals combat damage, you gain 3 life.\"")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/d/DescendantOfMasumaro.java b/Mage.Sets/src/mage/cards/d/DescendantOfMasumaro.java index 5412a84808b..5b49d6cee5e 100644 --- a/Mage.Sets/src/mage/cards/d/DescendantOfMasumaro.java +++ b/Mage.Sets/src/mage/cards/d/DescendantOfMasumaro.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -44,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DescendantOfSoramaro.java b/Mage.Sets/src/mage/cards/d/DescendantOfSoramaro.java index f3cc1b0edc5..c98478d22af 100644 --- a/Mage.Sets/src/mage/cards/d/DescendantOfSoramaro.java +++ b/Mage.Sets/src/mage/cards/d/DescendantOfSoramaro.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +35,10 @@ import mage.abilities.effects.Effect; import mage.abilities.effects.common.LookLibraryControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DescendantsPath.java b/Mage.Sets/src/mage/cards/d/DescendantsPath.java index 6cc36053f63..3a876bb7cc2 100644 --- a/Mage.Sets/src/mage/cards/d/DescendantsPath.java +++ b/Mage.Sets/src/mage/cards/d/DescendantsPath.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -38,13 +35,15 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.CardsImpl; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; -import mage.util.CardUtil; + +import java.util.UUID; /** * @@ -102,7 +101,7 @@ class DescendantsPathEffect extends OneShotEffect { FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent(); boolean found = false; for (Permanent permanent: game.getBattlefield().getAllActivePermanents(filter, controller.getId(), game)) { - if (CardUtil.shareSubtypes(card, permanent, game)) { + if (card.shareSubtypes(permanent, game)) { found = true; break; } diff --git a/Mage.Sets/src/mage/cards/d/DescentIntoMadness.java b/Mage.Sets/src/mage/cards/d/DescentIntoMadness.java index d2bcc20378e..e07212c0534 100644 --- a/Mage.Sets/src/mage/cards/d/DescentIntoMadness.java +++ b/Mage.Sets/src/mage/cards/d/DescentIntoMadness.java @@ -27,31 +27,34 @@ */ package mage.cards.d; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.FilterCard; import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardIdPredicate; +import mage.filter.predicate.permanent.PermanentIdPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import mage.players.PlayerList; import mage.target.Target; import mage.target.TargetCard; import mage.target.common.TargetControlledPermanent; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; import java.util.UUID; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.CardIdPredicate; -import mage.filter.predicate.permanent.PermanentIdPredicate; -import mage.players.PlayerList; /** * 5/1/2012 For each despair counter on Descent into Madness, you'll exile a permanent diff --git a/Mage.Sets/src/mage/cards/d/DesecratedEarth.java b/Mage.Sets/src/mage/cards/d/DesecratedEarth.java index bed6b7f383f..b50dadafe50 100644 --- a/Mage.Sets/src/mage/cards/d/DesecratedEarth.java +++ b/Mage.Sets/src/mage/cards/d/DesecratedEarth.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -40,6 +39,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DesecrationDemon.java b/Mage.Sets/src/mage/cards/d/DesecrationDemon.java index 4e33319d83a..86ed9f4433c 100644 --- a/Mage.Sets/src/mage/cards/d/DesecrationDemon.java +++ b/Mage.Sets/src/mage/cards/d/DesecrationDemon.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; @@ -38,6 +34,8 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.TargetController; import mage.counters.CounterType; import mage.filter.common.FilterControlledPermanent; @@ -48,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DesecrationElemental.java b/Mage.Sets/src/mage/cards/d/DesecrationElemental.java index b862dc97cbc..e868562f256 100644 --- a/Mage.Sets/src/mage/cards/d/DesecrationElemental.java +++ b/Mage.Sets/src/mage/cards/d/DesecrationElemental.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.effects.common.SacrificeControllerEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DesecrationPlague.java b/Mage.Sets/src/mage/cards/d/DesecrationPlague.java index 97d2d312315..8b143974e5c 100644 --- a/Mage.Sets/src/mage/cards/d/DesecrationPlague.java +++ b/Mage.Sets/src/mage/cards/d/DesecrationPlague.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -37,6 +36,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DesecratorHag.java b/Mage.Sets/src/mage/cards/d/DesecratorHag.java index bd6adecef0f..a21262077ed 100644 --- a/Mage.Sets/src/mage/cards/d/DesecratorHag.java +++ b/Mage.Sets/src/mage/cards/d/DesecratorHag.java @@ -27,16 +27,11 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -45,6 +40,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/Desert.java b/Mage.Sets/src/mage/cards/d/Desert.java index 3ea37794a48..125ee864a1d 100644 --- a/Mage.Sets/src/mage/cards/d/Desert.java +++ b/Mage.Sets/src/mage/cards/d/Desert.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.IsStepCondition; import mage.abilities.costs.common.TapSourceCost; @@ -44,6 +43,8 @@ import mage.filter.predicate.permanent.AttackingPredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DesertCerodon.java b/Mage.Sets/src/mage/cards/d/DesertCerodon.java new file mode 100644 index 00000000000..17129eeec44 --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DesertCerodon.java @@ -0,0 +1,63 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class DesertCerodon extends CardImpl { + + public DesertCerodon(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{R}"); + + this.subtype.add("Beast"); + this.power = new MageInt(6); + this.toughness = new MageInt(4); + + // Cycling {R} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{R}"))); + } + + public DesertCerodon(final DesertCerodon card) { + super(card); + } + + @Override + public DesertCerodon copy() { + return new DesertCerodon(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/DesertDrake.java b/Mage.Sets/src/mage/cards/d/DesertDrake.java index d6cb8c13fae..e8874c767f2 100644 --- a/Mage.Sets/src/mage/cards/d/DesertDrake.java +++ b/Mage.Sets/src/mage/cards/d/DesertDrake.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DesertNomads.java b/Mage.Sets/src/mage/cards/d/DesertNomads.java index 92eb9b5e0aa..99e18ef32e7 100644 --- a/Mage.Sets/src/mage/cards/d/DesertNomads.java +++ b/Mage.Sets/src/mage/cards/d/DesertNomads.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/d/DesertSandstorm.java b/Mage.Sets/src/mage/cards/d/DesertSandstorm.java index 929772d3f2d..0eae81e55db 100644 --- a/Mage.Sets/src/mage/cards/d/DesertSandstorm.java +++ b/Mage.Sets/src/mage/cards/d/DesertSandstorm.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.DamageAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DesertTwister.java b/Mage.Sets/src/mage/cards/d/DesertTwister.java index 08ebd5b6eb3..b6cb528fd40 100644 --- a/Mage.Sets/src/mage/cards/d/DesertTwister.java +++ b/Mage.Sets/src/mage/cards/d/DesertTwister.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; -import mage.constants.CardType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/d/DesertedTemple.java b/Mage.Sets/src/mage/cards/d/DesertedTemple.java index ea733363f17..a0b97b4f022 100644 --- a/Mage.Sets/src/mage/cards/d/DesertedTemple.java +++ b/Mage.Sets/src/mage/cards/d/DesertedTemple.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DesertersQuarters.java b/Mage.Sets/src/mage/cards/d/DesertersQuarters.java index 8a4d14120e8..bca2e741112 100644 --- a/Mage.Sets/src/mage/cards/d/DesertersQuarters.java +++ b/Mage.Sets/src/mage/cards/d/DesertersQuarters.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SkipUntapOptionalAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Desertion.java b/Mage.Sets/src/mage/cards/d/Desertion.java index 4eb49331c8b..2ad97057f85 100644 --- a/Mage.Sets/src/mage/cards/d/Desertion.java +++ b/Mage.Sets/src/mage/cards/d/Desertion.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -43,6 +40,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Quercitron @@ -89,15 +88,13 @@ class DesertionEffect extends OneShotEffect { if (controller != null) { Spell targetSpell = game.getStack().getSpell(targetPointer.getFirst(game, source)); if (targetSpell != null) { - Set cardTypes = new HashSet<>(targetSpell.getCardType()); - if (!cardTypes.isEmpty()) { //targetPointer.getFirst(game, source) - if (cardTypes.contains(CardType.ARTIFACT) || cardTypes.contains(CardType.CREATURE)) { + if (targetSpell.isArtifact() || targetSpell.isCreature()) { return game.getStack().counter(targetSpell.getId(), source.getSourceId(), game, Zone.BATTLEFIELD, false, ZoneDetail.NONE); } else { return game.getStack().counter(targetSpell.getId(), source.getSourceId(), game); } - } + } } return false; diff --git a/Mage.Sets/src/mage/cards/d/DesiccatedNaga.java b/Mage.Sets/src/mage/cards/d/DesiccatedNaga.java new file mode 100644 index 00000000000..747f1bd0cfc --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DesiccatedNaga.java @@ -0,0 +1,88 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.constants.ComparisonType; +import mage.abilities.common.ActivateIfConditionActivatedAbility; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.LoseLifeTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.filter.common.FilterPlaneswalkerPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.common.TargetOpponent; + +/** + * + * @author fireshoes + */ +public class DesiccatedNaga extends CardImpl { + + private static final FilterPlaneswalkerPermanent filter = new FilterPlaneswalkerPermanent("you control a Liliana planeswalker"); + + static { + filter.add(new SubtypePredicate("Liliana")); + } + + public DesiccatedNaga(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); + + this.subtype.add("Zombie"); + this.subtype.add("Naga"); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // {3}{B}: Target opponent loses 2 life and you gain 2 life. Activate this ability only if you control a Liliana planeswalker. + Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, + new LoseLifeTargetEffect(2), + new ManaCostsImpl("{3}{B}"), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0)); + ability.addTarget(new TargetOpponent()); + Effect effect = new GainLifeEffect(2); + effect.setText("and you gain 2 life"); + ability.addEffect(effect); + this.addAbility(ability); + } + + public DesiccatedNaga(final DesiccatedNaga card) { + super(card); + } + + @Override + public DesiccatedNaga copy() { + return new DesiccatedNaga(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/DesolateLighthouse.java b/Mage.Sets/src/mage/cards/d/DesolateLighthouse.java index b2754181646..d2bbbe80373 100644 --- a/Mage.Sets/src/mage/cards/d/DesolateLighthouse.java +++ b/Mage.Sets/src/mage/cards/d/DesolateLighthouse.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +34,10 @@ import mage.abilities.effects.common.DrawDiscardControllerEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DesolationAngel.java b/Mage.Sets/src/mage/cards/d/DesolationAngel.java index d834bae7c6e..6de8b95a9f6 100644 --- a/Mage.Sets/src/mage/cards/d/DesolationAngel.java +++ b/Mage.Sets/src/mage/cards/d/DesolationAngel.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; @@ -42,6 +41,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/d/DesolationGiant.java b/Mage.Sets/src/mage/cards/d/DesolationGiant.java index bd07f232f7b..156e84e3a54 100644 --- a/Mage.Sets/src/mage/cards/d/DesolationGiant.java +++ b/Mage.Sets/src/mage/cards/d/DesolationGiant.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DesolationTwin.java b/Mage.Sets/src/mage/cards/d/DesolationTwin.java index a29fd4fb902..528ad36515b 100644 --- a/Mage.Sets/src/mage/cards/d/DesolationTwin.java +++ b/Mage.Sets/src/mage/cards/d/DesolationTwin.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.CreateTokenEffect; @@ -41,6 +40,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.token.Token; import mage.game.stack.Spell; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DesperateCharge.java b/Mage.Sets/src/mage/cards/d/DesperateCharge.java index 7c472141e18..436af75c832 100644 --- a/Mage.Sets/src/mage/cards/d/DesperateCharge.java +++ b/Mage.Sets/src/mage/cards/d/DesperateCharge.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DesperateRavings.java b/Mage.Sets/src/mage/cards/d/DesperateRavings.java index dbe5e40dfad..30e5e114eca 100644 --- a/Mage.Sets/src/mage/cards/d/DesperateRavings.java +++ b/Mage.Sets/src/mage/cards/d/DesperateRavings.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TimingRule; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; @@ -39,9 +35,14 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.Cards; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.TimingRule; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DesperateRitual.java b/Mage.Sets/src/mage/cards/d/DesperateRitual.java index 71b9c94f7cf..2cc951031d3 100644 --- a/Mage.Sets/src/mage/cards/d/DesperateRitual.java +++ b/Mage.Sets/src/mage/cards/d/DesperateRitual.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.Mana; import mage.abilities.effects.common.BasicManaEffect; import mage.abilities.keyword.SpliceOntoArcaneAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DesperateSentry.java b/Mage.Sets/src/mage/cards/d/DesperateSentry.java index b7c891fb5f6..8c7ae21f61a 100644 --- a/Mage.Sets/src/mage/cards/d/DesperateSentry.java +++ b/Mage.Sets/src/mage/cards/d/DesperateSentry.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.game.permanent.token.EldraziHorrorToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DesperateStand.java b/Mage.Sets/src/mage/cards/d/DesperateStand.java index 83aa8b34521..ff3f86ca9e7 100644 --- a/Mage.Sets/src/mage/cards/d/DesperateStand.java +++ b/Mage.Sets/src/mage/cards/d/DesperateStand.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.abilityword.StriveAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Despise.java b/Mage.Sets/src/mage/cards/d/Despise.java index 8b66d565288..ccd2332392f 100644 --- a/Mage.Sets/src/mage/cards/d/Despise.java +++ b/Mage.Sets/src/mage/cards/d/Despise.java @@ -27,17 +27,17 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.discard.DiscardCardYouChooseTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/Despoil.java b/Mage.Sets/src/mage/cards/d/Despoil.java index 6a6f74c8b9b..13372f5463d 100644 --- a/Mage.Sets/src/mage/cards/d/Despoil.java +++ b/Mage.Sets/src/mage/cards/d/Despoil.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.LoseLifeTargetControllerEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DespoilerOfSouls.java b/Mage.Sets/src/mage/cards/d/DespoilerOfSouls.java index 111c9d6d286..7306f7a83f4 100644 --- a/Mage.Sets/src/mage/cards/d/DespoilerOfSouls.java +++ b/Mage.Sets/src/mage/cards/d/DespoilerOfSouls.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CantBlockAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardIdPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/Despondency.java b/Mage.Sets/src/mage/cards/d/Despondency.java index 383f1c8b4f1..dfb6151f035 100644 --- a/Mage.Sets/src/mage/cards/d/Despondency.java +++ b/Mage.Sets/src/mage/cards/d/Despondency.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author hanasu diff --git a/Mage.Sets/src/mage/cards/d/DespoticScepter.java b/Mage.Sets/src/mage/cards/d/DespoticScepter.java index eccd268dbad..21dfe830553 100644 --- a/Mage.Sets/src/mage/cards/d/DespoticScepter.java +++ b/Mage.Sets/src/mage/cards/d/DespoticScepter.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -41,6 +40,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.other.OwnerPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DestinedLead.java b/Mage.Sets/src/mage/cards/d/DestinedLead.java new file mode 100644 index 00000000000..18824517760 --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DestinedLead.java @@ -0,0 +1,77 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import java.util.UUID; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.combat.MustBeBlockedByAllTargetEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.AftermathAbility; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SpellAbilityType; +import mage.target.common.TargetCreaturePermanent; + +public class DestinedLead extends SplitCard { + + public DestinedLead(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{1}{B}", "{3}{G}", SpellAbilityType.SPLIT_AFTERMATH); + + // Destined + // Target creature gets +1/+0 and gains indestructible until end of turn. + getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); + Effect effect = new BoostTargetEffect(1, 0, Duration.EndOfTurn); + effect.setText("Target creature gets +1/+0"); + getLeftHalfCard().getSpellAbility().addEffect(effect); + + effect = new GainAbilityTargetEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn); + effect.setText("and gains indestructible until end of turn"); + getLeftHalfCard().getSpellAbility().addEffect(effect); + + // to + // Lead + // All creatures able to block target creature this turn must do so. + ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); + getRightHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); + getRightHalfCard().getSpellAbility().addEffect(new MustBeBlockedByAllTargetEffect(Duration.EndOfTurn)); + } + + public DestinedLead(final DestinedLead card) { + super(card); + } + + @Override + public DestinedLead copy() { + return new DestinedLead(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/DestroyTheEvidence.java b/Mage.Sets/src/mage/cards/d/DestroyTheEvidence.java index 1fc45c695c9..8f404c7b426 100644 --- a/Mage.Sets/src/mage/cards/d/DestroyTheEvidence.java +++ b/Mage.Sets/src/mage/cards/d/DestroyTheEvidence.java @@ -27,25 +27,21 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageObject; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DestructiveFlow.java b/Mage.Sets/src/mage/cards/d/DestructiveFlow.java index c560638bca4..1e7369e7513 100644 --- a/Mage.Sets/src/mage/cards/d/DestructiveFlow.java +++ b/Mage.Sets/src/mage/cards/d/DestructiveFlow.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.SacrificeEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DestructiveForce.java b/Mage.Sets/src/mage/cards/d/DestructiveForce.java index 858dfe9bcc9..57507ad5187 100644 --- a/Mage.Sets/src/mage/cards/d/DestructiveForce.java +++ b/Mage.Sets/src/mage/cards/d/DestructiveForce.java @@ -28,17 +28,18 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.effects.common.SacrificeAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/DestructiveRevelry.java b/Mage.Sets/src/mage/cards/d/DestructiveRevelry.java index 8cad2a2da9f..2cf3760331d 100644 --- a/Mage.Sets/src/mage/cards/d/DestructiveRevelry.java +++ b/Mage.Sets/src/mage/cards/d/DestructiveRevelry.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -41,6 +40,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DestructiveTampering.java b/Mage.Sets/src/mage/cards/d/DestructiveTampering.java index 6883136dfb8..43ee1c3e938 100644 --- a/Mage.Sets/src/mage/cards/d/DestructiveTampering.java +++ b/Mage.Sets/src/mage/cards/d/DestructiveTampering.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.combat.CantBlockAllEffect; @@ -41,6 +40,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/d/DestructorDragon.java b/Mage.Sets/src/mage/cards/d/DestructorDragon.java index 8b3d643dea1..4e44b2f60db 100644 --- a/Mage.Sets/src/mage/cards/d/DestructorDragon.java +++ b/Mage.Sets/src/mage/cards/d/DestructorDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -41,6 +40,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DetentionSphere.java b/Mage.Sets/src/mage/cards/d/DetentionSphere.java index 7802e440487..5d210a54f33 100644 --- a/Mage.Sets/src/mage/cards/d/DetentionSphere.java +++ b/Mage.Sets/src/mage/cards/d/DetentionSphere.java @@ -27,11 +27,7 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageObject; - -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.LeavesBattlefieldTriggeredAbility; @@ -39,6 +35,8 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterNonlandPermanent; @@ -50,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** diff --git a/Mage.Sets/src/mage/cards/d/Detonate.java b/Mage.Sets/src/mage/cards/d/Detonate.java index db0297979d4..f08080cfc0a 100644 --- a/Mage.Sets/src/mage/cards/d/Detonate.java +++ b/Mage.Sets/src/mage/cards/d/Detonate.java @@ -27,8 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.SpellAbility; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.Effect; @@ -37,12 +37,13 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -66,7 +67,7 @@ public class Detonate extends CardImpl { ability.getTargets().clear(); int xValue = ability.getManaCostsToPay().getX(); FilterArtifactPermanent filter = new FilterArtifactPermanent("artifact with converted mana cost X"); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, xValue)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue)); ability.addTarget(new TargetArtifactPermanent(filter)); } } diff --git a/Mage.Sets/src/mage/cards/d/Detritivore.java b/Mage.Sets/src/mage/cards/d/Detritivore.java index 6903cc1bc85..f1939e42977 100644 --- a/Mage.Sets/src/mage/cards/d/Detritivore.java +++ b/Mage.Sets/src/mage/cards/d/Detritivore.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -42,6 +41,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.FilterCard; @@ -54,6 +54,8 @@ import mage.game.events.GameEvent.EventType; import mage.players.Player; import mage.target.common.TargetNonBasicLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -127,7 +129,7 @@ class NonBasicLandsInOpponentsGraveyards implements DynamicValue { static { filter.add(new CardTypePredicate(CardType.LAND)); - filter.add(Predicates.not(new SupertypePredicate("Basic"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); } diff --git a/Mage.Sets/src/mage/cards/d/DeusOfCalamity.java b/Mage.Sets/src/mage/cards/d/DeusOfCalamity.java index c232cbde473..e96d73a344d 100644 --- a/Mage.Sets/src/mage/cards/d/DeusOfCalamity.java +++ b/Mage.Sets/src/mage/cards/d/DeusOfCalamity.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DestroyTargetEffect; @@ -44,6 +43,8 @@ import mage.game.events.GameEvent.EventType; import mage.target.Target; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Devastate.java b/Mage.Sets/src/mage/cards/d/Devastate.java index f59bf1c6cd1..6e1ab06d33a 100644 --- a/Mage.Sets/src/mage/cards/d/Devastate.java +++ b/Mage.Sets/src/mage/cards/d/Devastate.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.DamageEverythingEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DevastatingDreams.java b/Mage.Sets/src/mage/cards/d/DevastatingDreams.java index a4c62f9b1b0..dfd3e5f414f 100644 --- a/Mage.Sets/src/mage/cards/d/DevastatingDreams.java +++ b/Mage.Sets/src/mage/cards/d/DevastatingDreams.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.VariableCostImpl; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/Devastation.java b/Mage.Sets/src/mage/cards/d/Devastation.java index 50cfc21f25a..1329bfdb859 100644 --- a/Mage.Sets/src/mage/cards/d/Devastation.java +++ b/Mage.Sets/src/mage/cards/d/Devastation.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DevastationTide.java b/Mage.Sets/src/mage/cards/d/DevastationTide.java index 413a35a3241..09da3aea846 100644 --- a/Mage.Sets/src/mage/cards/d/DevastationTide.java +++ b/Mage.Sets/src/mage/cards/d/DevastationTide.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ReturnToHandFromBattlefieldAllEffect; import mage.abilities.keyword.MiracleAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterNonlandPermanent; +import java.util.UUID; + /** * * @author noxx diff --git a/Mage.Sets/src/mage/cards/d/DeviantGlee.java b/Mage.Sets/src/mage/cards/d/DeviantGlee.java index a6c7c354f27..44350cd79c0 100644 --- a/Mage.Sets/src/mage/cards/d/DeviantGlee.java +++ b/Mage.Sets/src/mage/cards/d/DeviantGlee.java @@ -28,7 +28,6 @@ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,14 +40,12 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DevilsPlay.java b/Mage.Sets/src/mage/cards/d/DevilsPlay.java index ff231f363c4..0b4f60ed470 100644 --- a/Mage.Sets/src/mage/cards/d/DevilsPlay.java +++ b/Mage.Sets/src/mage/cards/d/DevilsPlay.java @@ -27,18 +27,18 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TimingRule; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DevilsPlayground.java b/Mage.Sets/src/mage/cards/d/DevilsPlayground.java index aba8268be22..9dacdab7bc6 100644 --- a/Mage.Sets/src/mage/cards/d/DevilsPlayground.java +++ b/Mage.Sets/src/mage/cards/d/DevilsPlayground.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.DevilToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DevilthornFox.java b/Mage.Sets/src/mage/cards/d/DevilthornFox.java index d3b09986dec..131f10e16fc 100644 --- a/Mage.Sets/src/mage/cards/d/DevilthornFox.java +++ b/Mage.Sets/src/mage/cards/d/DevilthornFox.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DevotedCaretaker.java b/Mage.Sets/src/mage/cards/d/DevotedCaretaker.java index 2627cdaae6d..08eb3a9aa46 100644 --- a/Mage.Sets/src/mage/cards/d/DevotedCaretaker.java +++ b/Mage.Sets/src/mage/cards/d/DevotedCaretaker.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.Target; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki (Ursapine), LevelX2 (Eight-and-a-Half Tails), cbt diff --git a/Mage.Sets/src/mage/cards/d/DevotedCropMate.java b/Mage.Sets/src/mage/cards/d/DevotedCropMate.java new file mode 100644 index 00000000000..4f7251a732d --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DevotedCropMate.java @@ -0,0 +1,81 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; +import mage.abilities.keyword.ExertAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.filter.common.FilterCreatureCard; +import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author Styxo + */ +public class DevotedCropMate extends CardImpl { + + private static final FilterCreatureCard filter = new FilterCreatureCard("creature card with converted mana cost 2 or less from your graveyard"); + + static { + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); + } + + public DevotedCropMate(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); + + this.subtype.add("Human"); + this.subtype.add("Warrior"); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // You may exert Devoted Crop-Mate as it attacks. When you do, return target creature card with converted mana cost 2 or less from your graveyard to the battlefield. + Effect effect = new ReturnFromGraveyardToBattlefieldTargetEffect(); + effect.setText("return target creature card with converted mana cost 2 or less from your graveyard to the battlefield"); + BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(effect); + ability.addTarget(new TargetCardInYourGraveyard(filter)); + addAbility(new ExertAbility(ability)); + + } + + public DevotedCropMate(final DevotedCropMate card) { + super(card); + } + + @Override + public DevotedCropMate copy() { + return new DevotedCropMate(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/DevotedDruid.java b/Mage.Sets/src/mage/cards/d/DevotedDruid.java index 2900c9e4f8e..1518f14a8d2 100644 --- a/Mage.Sets/src/mage/cards/d/DevotedDruid.java +++ b/Mage.Sets/src/mage/cards/d/DevotedDruid.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.PutCountersSourceCost; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DevotedHero.java b/Mage.Sets/src/mage/cards/d/DevotedHero.java index a15a08d907a..31f1a8926ee 100644 --- a/Mage.Sets/src/mage/cards/d/DevotedHero.java +++ b/Mage.Sets/src/mage/cards/d/DevotedHero.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DevotedRetainer.java b/Mage.Sets/src/mage/cards/d/DevotedRetainer.java index 2fe52fdab20..89ccaeeed82 100644 --- a/Mage.Sets/src/mage/cards/d/DevotedRetainer.java +++ b/Mage.Sets/src/mage/cards/d/DevotedRetainer.java @@ -28,12 +28,13 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.BushidoAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DevourFlesh.java b/Mage.Sets/src/mage/cards/d/DevourFlesh.java index e36060141ab..ce3a74d85bc 100644 --- a/Mage.Sets/src/mage/cards/d/DevourFlesh.java +++ b/Mage.Sets/src/mage/cards/d/DevourFlesh.java @@ -27,14 +27,12 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; @@ -43,6 +41,8 @@ import mage.target.Target; import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DevourInFlames.java b/Mage.Sets/src/mage/cards/d/DevourInFlames.java index b85e7a593c9..cf804a964e8 100644 --- a/Mage.Sets/src/mage/cards/d/DevourInFlames.java +++ b/Mage.Sets/src/mage/cards/d/DevourInFlames.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.common.FilterControlledLandPermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreatureOrPlaneswalker; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DevourInShadow.java b/Mage.Sets/src/mage/cards/d/DevourInShadow.java index 51262edc4fe..c5c5c4f4fce 100644 --- a/Mage.Sets/src/mage/cards/d/DevourInShadow.java +++ b/Mage.Sets/src/mage/cards/d/DevourInShadow.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -40,6 +39,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DevouringDeep.java b/Mage.Sets/src/mage/cards/d/DevouringDeep.java index 66f8439d46c..b1ff1f10e5c 100644 --- a/Mage.Sets/src/mage/cards/d/DevouringDeep.java +++ b/Mage.Sets/src/mage/cards/d/DevouringDeep.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.IslandwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DevouringGreed.java b/Mage.Sets/src/mage/cards/d/DevouringGreed.java index b6802b54129..aba420ed719 100644 --- a/Mage.Sets/src/mage/cards/d/DevouringGreed.java +++ b/Mage.Sets/src/mage/cards/d/DevouringGreed.java @@ -27,15 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; @@ -43,6 +42,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DevouringLight.java b/Mage.Sets/src/mage/cards/d/DevouringLight.java index eb343e9b21b..bb76b04dd9b 100644 --- a/Mage.Sets/src/mage/cards/d/DevouringLight.java +++ b/Mage.Sets/src/mage/cards/d/DevouringLight.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.keyword.ConvokeAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DevouringRage.java b/Mage.Sets/src/mage/cards/d/DevouringRage.java index ca3ab1b941d..4e1badea7a0 100644 --- a/Mage.Sets/src/mage/cards/d/DevouringRage.java +++ b/Mage.Sets/src/mage/cards/d/DevouringRage.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.common.SacrificeTargetCost; @@ -39,7 +35,9 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.Outcome; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; @@ -48,6 +46,8 @@ import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DevouringStrossus.java b/Mage.Sets/src/mage/cards/d/DevouringStrossus.java index cb4ed052f38..688ea136adf 100644 --- a/Mage.Sets/src/mage/cards/d/DevouringStrossus.java +++ b/Mage.Sets/src/mage/cards/d/DevouringStrossus.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DevouringSwarm.java b/Mage.Sets/src/mage/cards/d/DevouringSwarm.java index 8275dc321bd..c17d6b5204d 100644 --- a/Mage.Sets/src/mage/cards/d/DevouringSwarm.java +++ b/Mage.Sets/src/mage/cards/d/DevouringSwarm.java @@ -28,9 +28,6 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -38,10 +35,13 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/d/DevoutChaplain.java b/Mage.Sets/src/mage/cards/d/DevoutChaplain.java index 03d543b62e6..73988462889 100644 --- a/Mage.Sets/src/mage/cards/d/DevoutChaplain.java +++ b/Mage.Sets/src/mage/cards/d/DevoutChaplain.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +35,8 @@ import mage.abilities.costs.common.TapTargetCost; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; @@ -46,6 +45,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * @author noxx diff --git a/Mage.Sets/src/mage/cards/d/DevoutHarpist.java b/Mage.Sets/src/mage/cards/d/DevoutHarpist.java index ffecd0f8802..746e0c9bfef 100644 --- a/Mage.Sets/src/mage/cards/d/DevoutHarpist.java +++ b/Mage.Sets/src/mage/cards/d/DevoutHarpist.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DevoutInvocation.java b/Mage.Sets/src/mage/cards/d/DevoutInvocation.java index 05854067354..623580b1c44 100644 --- a/Mage.Sets/src/mage/cards/d/DevoutInvocation.java +++ b/Mage.Sets/src/mage/cards/d/DevoutInvocation.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -45,6 +41,11 @@ import mage.game.permanent.token.AngelToken; import mage.players.Player; import mage.target.TargetPermanent; +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DevoutLightcaster.java b/Mage.Sets/src/mage/cards/d/DevoutLightcaster.java index 6d2519eec47..77de07a9053 100644 --- a/Mage.Sets/src/mage/cards/d/DevoutLightcaster.java +++ b/Mage.Sets/src/mage/cards/d/DevoutLightcaster.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -36,10 +34,13 @@ import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DevoutMonk.java b/Mage.Sets/src/mage/cards/d/DevoutMonk.java index 0b637915422..6145174f717 100644 --- a/Mage.Sets/src/mage/cards/d/DevoutMonk.java +++ b/Mage.Sets/src/mage/cards/d/DevoutMonk.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DevoutWitness.java b/Mage.Sets/src/mage/cards/d/DevoutWitness.java index ce8a70d3fd1..05be2896d14 100644 --- a/Mage.Sets/src/mage/cards/d/DevoutWitness.java +++ b/Mage.Sets/src/mage/cards/d/DevoutWitness.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DewdropSpy.java b/Mage.Sets/src/mage/cards/d/DewdropSpy.java index 9c3b2275494..d745e7f4fd0 100644 --- a/Mage.Sets/src/mage/cards/d/DewdropSpy.java +++ b/Mage.Sets/src/mage/cards/d/DewdropSpy.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DhundOperative.java b/Mage.Sets/src/mage/cards/d/DhundOperative.java index 50e059d78b9..4ed700d2b7d 100644 --- a/Mage.Sets/src/mage/cards/d/DhundOperative.java +++ b/Mage.Sets/src/mage/cards/d/DhundOperative.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DiabolicEdict.java b/Mage.Sets/src/mage/cards/d/DiabolicEdict.java index 7ee67e26e17..e73cfb78eb6 100644 --- a/Mage.Sets/src/mage/cards/d/DiabolicEdict.java +++ b/Mage.Sets/src/mage/cards/d/DiabolicEdict.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.SacrificeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DiabolicIntent.java b/Mage.Sets/src/mage/cards/d/DiabolicIntent.java index a1af2e6f48a..0d6d64f2a5a 100644 --- a/Mage.Sets/src/mage/cards/d/DiabolicIntent.java +++ b/Mage.Sets/src/mage/cards/d/DiabolicIntent.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DiabolicMachine.java b/Mage.Sets/src/mage/cards/d/DiabolicMachine.java index 6ec3070d0c7..f35b827c558 100644 --- a/Mage.Sets/src/mage/cards/d/DiabolicMachine.java +++ b/Mage.Sets/src/mage/cards/d/DiabolicMachine.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/d/DiabolicRevelation.java b/Mage.Sets/src/mage/cards/d/DiabolicRevelation.java index a594e4c4cbb..acff292b117 100644 --- a/Mage.Sets/src/mage/cards/d/DiabolicRevelation.java +++ b/Mage.Sets/src/mage/cards/d/DiabolicRevelation.java @@ -27,22 +27,22 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.FilterCard; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DiabolicServitude.java b/Mage.Sets/src/mage/cards/d/DiabolicServitude.java index b07ed4e620c..e5990106ca6 100644 --- a/Mage.Sets/src/mage/cards/d/DiabolicServitude.java +++ b/Mage.Sets/src/mage/cards/d/DiabolicServitude.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -52,6 +51,8 @@ import mage.game.events.ZoneChangeEvent; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DiabolicTutor.java b/Mage.Sets/src/mage/cards/d/DiabolicTutor.java index c56baee7f63..ce6fff02723 100644 --- a/Mage.Sets/src/mage/cards/d/DiabolicTutor.java +++ b/Mage.Sets/src/mage/cards/d/DiabolicTutor.java @@ -28,13 +28,14 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DiamondFaerie.java b/Mage.Sets/src/mage/cards/d/DiamondFaerie.java index 72a26196d32..df0e0d040a5 100644 --- a/Mage.Sets/src/mage/cards/d/DiamondFaerie.java +++ b/Mage.Sets/src/mage/cards/d/DiamondFaerie.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,10 +36,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** * * @author LoneFox @@ -50,12 +52,12 @@ public class DiamondFaerie extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Snow creatures"); static { - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); } public DiamondFaerie(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{W}{U}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Faerie"); this.power = new MageInt(3); this.toughness = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/d/DiamondKaleidoscope.java b/Mage.Sets/src/mage/cards/d/DiamondKaleidoscope.java index 2ad5e1e9317..f5e188466bb 100644 --- a/Mage.Sets/src/mage/cards/d/DiamondKaleidoscope.java +++ b/Mage.Sets/src/mage/cards/d/DiamondKaleidoscope.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -45,6 +44,8 @@ import mage.filter.predicate.permanent.TokenPredicate; import mage.game.permanent.token.PrismToken; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DiamondValley.java b/Mage.Sets/src/mage/cards/d/DiamondValley.java index a275d513d40..af4d63d954b 100644 --- a/Mage.Sets/src/mage/cards/d/DiamondValley.java +++ b/Mage.Sets/src/mage/cards/d/DiamondValley.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DiaochanArtfulBeauty.java b/Mage.Sets/src/mage/cards/d/DiaochanArtfulBeauty.java index 00f50eb31d4..e8804c8eefa 100644 --- a/Mage.Sets/src/mage/cards/d/DiaochanArtfulBeauty.java +++ b/Mage.Sets/src/mage/cards/d/DiaochanArtfulBeauty.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -38,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -46,6 +46,8 @@ import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetOpponentsChoicePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +56,7 @@ public class DiaochanArtfulBeauty extends CardImpl { public DiaochanArtfulBeauty(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); @@ -62,7 +64,7 @@ public class DiaochanArtfulBeauty extends CardImpl { this.toughness = new MageInt(1); // {tap}: Destroy target creature of your choice, then destroy target creature of an opponent's choice. Activate this ability only during your turn, before attackers are declared. - Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DiaochanArtfulBeautyDestroyEffect(), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DiaochanArtfulBeautyDestroyEffect(), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCreaturePermanent()); ability.addTarget(new TargetOpponentsChoicePermanent(1, 1, new FilterCreaturePermanent(), false, true)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/d/DictateOfErebos.java b/Mage.Sets/src/mage/cards/d/DictateOfErebos.java index 87cb1a626f4..48afbfa998d 100644 --- a/Mage.Sets/src/mage/cards/d/DictateOfErebos.java +++ b/Mage.Sets/src/mage/cards/d/DictateOfErebos.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.SacrificeOpponentsEffect; import mage.abilities.keyword.FlashAbility; @@ -39,6 +38,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DictateOfHeliod.java b/Mage.Sets/src/mage/cards/d/DictateOfHeliod.java index 51e5aac6c42..47f1ab89d13 100644 --- a/Mage.Sets/src/mage/cards/d/DictateOfHeliod.java +++ b/Mage.Sets/src/mage/cards/d/DictateOfHeliod.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.keyword.FlashAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DictateOfKarametra.java b/Mage.Sets/src/mage/cards/d/DictateOfKarametra.java index 363e44b134d..04710394a08 100644 --- a/Mage.Sets/src/mage/cards/d/DictateOfKarametra.java +++ b/Mage.Sets/src/mage/cards/d/DictateOfKarametra.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.common.TapForManaAllTriggeredManaAbility; import mage.abilities.effects.common.AddManaOfAnyTypeProducedEffect; import mage.abilities.keyword.FlashAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.SetTargetPointer; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DictateOfKruphix.java b/Mage.Sets/src/mage/cards/d/DictateOfKruphix.java index 5c9f198e563..a05d8b8b917 100644 --- a/Mage.Sets/src/mage/cards/d/DictateOfKruphix.java +++ b/Mage.Sets/src/mage/cards/d/DictateOfKruphix.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.keyword.FlashAbility; @@ -40,6 +39,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DictateOfTheTwinGods.java b/Mage.Sets/src/mage/cards/d/DictateOfTheTwinGods.java index 8e4814dbcd9..656b51ab2e2 100644 --- a/Mage.Sets/src/mage/cards/d/DictateOfTheTwinGods.java +++ b/Mage.Sets/src/mage/cards/d/DictateOfTheTwinGods.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; @@ -45,6 +44,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Didgeridoo.java b/Mage.Sets/src/mage/cards/d/Didgeridoo.java index a34a364fce4..081baed532c 100644 --- a/Mage.Sets/src/mage/cards/d/Didgeridoo.java +++ b/Mage.Sets/src/mage/cards/d/Didgeridoo.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.PutPermanentOnBattlefieldEffect; @@ -38,6 +37,8 @@ import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DieYoung.java b/Mage.Sets/src/mage/cards/d/DieYoung.java index 8b5c4037aba..36b80fcdde7 100644 --- a/Mage.Sets/src/mage/cards/d/DieYoung.java +++ b/Mage.Sets/src/mage/cards/d/DieYoung.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.common.PayEnergyCost; @@ -47,6 +46,8 @@ import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DiffusionSliver.java b/Mage.Sets/src/mage/cards/d/DiffusionSliver.java index 4a5eb089d74..a0560d77471 100644 --- a/Mage.Sets/src/mage/cards/d/DiffusionSliver.java +++ b/Mage.Sets/src/mage/cards/d/DiffusionSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.GenericManaCost; @@ -45,6 +44,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.TargetStackObject; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DigThroughTime.java b/Mage.Sets/src/mage/cards/d/DigThroughTime.java index 6c67940f530..705edef213b 100644 --- a/Mage.Sets/src/mage/cards/d/DigThroughTime.java +++ b/Mage.Sets/src/mage/cards/d/DigThroughTime.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; import mage.abilities.keyword.DelveAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterCard; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DiligentFarmhand.java b/Mage.Sets/src/mage/cards/d/DiligentFarmhand.java index f845de87996..23f646734ba 100644 --- a/Mage.Sets/src/mage/cards/d/DiligentFarmhand.java +++ b/Mage.Sets/src/mage/cards/d/DiligentFarmhand.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DiluvianPrimordial.java b/Mage.Sets/src/mage/cards/d/DiluvianPrimordial.java index cb84ea95cd8..3356bde8e1e 100644 --- a/Mage.Sets/src/mage/cards/d/DiluvianPrimordial.java +++ b/Mage.Sets/src/mage/cards/d/DiluvianPrimordial.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -55,6 +54,8 @@ import mage.target.Target; import mage.target.common.TargetCardInOpponentsGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DimensionalInfiltrator.java b/Mage.Sets/src/mage/cards/d/DimensionalInfiltrator.java index fb2fc88583a..de0a3704ccb 100644 --- a/Mage.Sets/src/mage/cards/d/DimensionalInfiltrator.java +++ b/Mage.Sets/src/mage/cards/d/DimensionalInfiltrator.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -48,6 +47,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/Diminish.java b/Mage.Sets/src/mage/cards/d/Diminish.java index 4e3c25360b4..6a65f745fbe 100644 --- a/Mage.Sets/src/mage/cards/d/Diminish.java +++ b/Mage.Sets/src/mage/cards/d/Diminish.java @@ -28,14 +28,15 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.SetPowerToughnessTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/DiminishingReturns.java b/Mage.Sets/src/mage/cards/d/DiminishingReturns.java index c20aff85926..b4ba571cd9f 100644 --- a/Mage.Sets/src/mage/cards/d/DiminishingReturns.java +++ b/Mage.Sets/src/mage/cards/d/DiminishingReturns.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/d/DimirAqueduct.java b/Mage.Sets/src/mage/cards/d/DimirAqueduct.java index d184bc3fdc2..03ba8ffb1a5 100644 --- a/Mage.Sets/src/mage/cards/d/DimirAqueduct.java +++ b/Mage.Sets/src/mage/cards/d/DimirAqueduct.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.Mana; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/d/DimirCharm.java b/Mage.Sets/src/mage/cards/d/DimirCharm.java index 0d4f999b50c..26f44025528 100644 --- a/Mage.Sets/src/mage/cards/d/DimirCharm.java +++ b/Mage.Sets/src/mage/cards/d/DimirCharm.java @@ -27,21 +27,16 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.FilterSpell; import mage.filter.common.FilterCreaturePermanent; @@ -54,6 +49,8 @@ import mage.target.TargetPlayer; import mage.target.TargetSpell; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman @@ -64,7 +61,7 @@ public class DimirCharm extends CardImpl { private static final FilterSpell filterSorcery = new FilterSpell("sorcery spell"); static { - filterCreature.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filterCreature.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); filterSorcery.add(new CardTypePredicate(CardType.SORCERY)); } diff --git a/Mage.Sets/src/mage/cards/d/DimirCluestone.java b/Mage.Sets/src/mage/cards/d/DimirCluestone.java index 7f5d23bf2a7..0262eeceab8 100644 --- a/Mage.Sets/src/mage/cards/d/DimirCluestone.java +++ b/Mage.Sets/src/mage/cards/d/DimirCluestone.java @@ -28,9 +28,6 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +38,10 @@ import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DimirCutpurse.java b/Mage.Sets/src/mage/cards/d/DimirCutpurse.java index 157b9c360c3..3e1809e4ad5 100644 --- a/Mage.Sets/src/mage/cards/d/DimirCutpurse.java +++ b/Mage.Sets/src/mage/cards/d/DimirCutpurse.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -39,6 +38,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DimirDoppelganger.java b/Mage.Sets/src/mage/cards/d/DimirDoppelganger.java index cb3b53b07c4..c5203e307f1 100644 --- a/Mage.Sets/src/mage/cards/d/DimirDoppelganger.java +++ b/Mage.Sets/src/mage/cards/d/DimirDoppelganger.java @@ -35,11 +35,7 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CopyEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; @@ -113,7 +109,7 @@ class DimirDoppelgangerEffect extends OneShotEffect { newBluePrint = new PermanentCard((Card) copyFromCard, source.getControllerId(), game); newBluePrint.assignNewId(); ApplyToPermanent applier = new DimirDoppelgangerApplier(); - applier.apply(game, newBluePrint); + applier.apply(game, newBluePrint, source, dimirDoppelganger.getId()); CopyEffect copyEffect = new CopyEffect(Duration.Custom, newBluePrint, dimirDoppelganger.getId()); copyEffect.newId(); copyEffect.setApplier(applier); @@ -130,7 +126,7 @@ class DimirDoppelgangerEffect extends OneShotEffect { class DimirDoppelgangerApplier extends ApplyToPermanent { @Override - public boolean apply(Game game, Permanent permanent) { + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DimirDoppelgangerEffect(), new ManaCostsImpl("{1}{U}{B}")); ability.addTarget(new TargetCardInGraveyard(new FilterCreatureCard("creature card in a graveyard"))); permanent.getAbilities().add(ability); @@ -138,7 +134,7 @@ class DimirDoppelgangerApplier extends ApplyToPermanent { } @Override - public boolean apply(Game game, MageObject mageObject) { + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DimirDoppelgangerEffect(), new ManaCostsImpl("{1}{U}{B}")); ability.addTarget(new TargetCardInGraveyard(new FilterCreatureCard("creature card in a graveyard"))); mageObject.getAbilities().add(ability); diff --git a/Mage.Sets/src/mage/cards/d/DimirGuildgate.java b/Mage.Sets/src/mage/cards/d/DimirGuildgate.java index 395c4e9e424..2389ca3ebac 100644 --- a/Mage.Sets/src/mage/cards/d/DimirGuildgate.java +++ b/Mage.Sets/src/mage/cards/d/DimirGuildgate.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DimirGuildmage.java b/Mage.Sets/src/mage/cards/d/DimirGuildmage.java index d7d75b7adb9..0b7c9b90fe2 100644 --- a/Mage.Sets/src/mage/cards/d/DimirGuildmage.java +++ b/Mage.Sets/src/mage/cards/d/DimirGuildmage.java @@ -27,20 +27,20 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.effects.common.DrawCardTargetEffect; +import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DimirHouseGuard.java b/Mage.Sets/src/mage/cards/d/DimirHouseGuard.java index 643bdb6dd8b..6efa31b8c3f 100644 --- a/Mage.Sets/src/mage/cards/d/DimirHouseGuard.java +++ b/Mage.Sets/src/mage/cards/d/DimirHouseGuard.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -38,9 +35,12 @@ import mage.abilities.keyword.FearAbility; import mage.abilities.keyword.TransmuteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DimirInfiltrator.java b/Mage.Sets/src/mage/cards/d/DimirInfiltrator.java index ac8df59dc1d..3f09ab90e7d 100644 --- a/Mage.Sets/src/mage/cards/d/DimirInfiltrator.java +++ b/Mage.Sets/src/mage/cards/d/DimirInfiltrator.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; -import mage.abilities.keyword.TransmuteAbility; import mage.abilities.keyword.CantBeBlockedSourceAbility; +import mage.abilities.keyword.TransmuteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DimirMachinations.java b/Mage.Sets/src/mage/cards/d/DimirMachinations.java index 7493efb1906..5b0b613ab9e 100644 --- a/Mage.Sets/src/mage/cards/d/DimirMachinations.java +++ b/Mage.Sets/src/mage/cards/d/DimirMachinations.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.TransmuteAbility; @@ -44,6 +43,8 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DimirSignet.java b/Mage.Sets/src/mage/cards/d/DimirSignet.java index 28402752382..44c6e78b9ea 100644 --- a/Mage.Sets/src/mage/cards/d/DimirSignet.java +++ b/Mage.Sets/src/mage/cards/d/DimirSignet.java @@ -28,9 +28,6 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -38,6 +35,10 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DinOfTheFireherd.java b/Mage.Sets/src/mage/cards/d/DinOfTheFireherd.java index 1350cb42340..edc69d1620c 100644 --- a/Mage.Sets/src/mage/cards/d/DinOfTheFireherd.java +++ b/Mage.Sets/src/mage/cards/d/DinOfTheFireherd.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -47,6 +46,8 @@ import mage.players.Player; import mage.target.common.TargetOpponent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DingusEgg.java b/Mage.Sets/src/mage/cards/d/DingusEgg.java index 3b4675aa087..00e068e164e 100644 --- a/Mage.Sets/src/mage/cards/d/DingusEgg.java +++ b/Mage.Sets/src/mage/cards/d/DingusEgg.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -41,6 +40,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.events.ZoneChangeEvent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/d/DinrovaHorror.java b/Mage.Sets/src/mage/cards/d/DinrovaHorror.java index 60420670001..7dc9fdab664 100644 --- a/Mage.Sets/src/mage/cards/d/DinrovaHorror.java +++ b/Mage.Sets/src/mage/cards/d/DinrovaHorror.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -42,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DiplomacyOfTheWastes.java b/Mage.Sets/src/mage/cards/d/DiplomacyOfTheWastes.java index 2f39d657353..0c147959748 100644 --- a/Mage.Sets/src/mage/cards/d/DiplomacyOfTheWastes.java +++ b/Mage.Sets/src/mage/cards/d/DiplomacyOfTheWastes.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; @@ -39,6 +38,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterNonlandCard; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DiplomaticEscort.java b/Mage.Sets/src/mage/cards/d/DiplomaticEscort.java index d18418a78d7..b145801dc6a 100644 --- a/Mage.Sets/src/mage/cards/d/DiplomaticEscort.java +++ b/Mage.Sets/src/mage/cards/d/DiplomaticEscort.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.other.TargetsPermanentPredicate; import mage.target.TargetStackObject; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DiplomaticImmunity.java b/Mage.Sets/src/mage/cards/d/DiplomaticImmunity.java index d703328afee..52a5b2d5d4e 100644 --- a/Mage.Sets/src/mage/cards/d/DiplomaticImmunity.java +++ b/Mage.Sets/src/mage/cards/d/DiplomaticImmunity.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DireUndercurrents.java b/Mage.Sets/src/mage/cards/d/DireUndercurrents.java index 6b10d57b402..023d9493690 100644 --- a/Mage.Sets/src/mage/cards/d/DireUndercurrents.java +++ b/Mage.Sets/src/mage/cards/d/DireUndercurrents.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DiregrafCaptain.java b/Mage.Sets/src/mage/cards/d/DiregrafCaptain.java index c7ab9538b09..b3be879e223 100644 --- a/Mage.Sets/src/mage/cards/d/DiregrafCaptain.java +++ b/Mage.Sets/src/mage/cards/d/DiregrafCaptain.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; @@ -48,6 +47,8 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DiregrafColossus.java b/Mage.Sets/src/mage/cards/d/DiregrafColossus.java index 4281ccec0b4..529c268e521 100644 --- a/Mage.Sets/src/mage/cards/d/DiregrafColossus.java +++ b/Mage.Sets/src/mage/cards/d/DiregrafColossus.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -47,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.ZombieToken; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DiregrafEscort.java b/Mage.Sets/src/mage/cards/d/DiregrafEscort.java index 3e62642ce26..f96d64e8635 100644 --- a/Mage.Sets/src/mage/cards/d/DiregrafEscort.java +++ b/Mage.Sets/src/mage/cards/d/DiregrafEscort.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityPairedEffect; @@ -41,6 +40,8 @@ import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/d/DiregrafGhoul.java b/Mage.Sets/src/mage/cards/d/DiregrafGhoul.java index 58eb0d033a3..4c8d56257f3 100644 --- a/Mage.Sets/src/mage/cards/d/DiregrafGhoul.java +++ b/Mage.Sets/src/mage/cards/d/DiregrafGhoul.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/d/DirgeOfDread.java b/Mage.Sets/src/mage/cards/d/DirgeOfDread.java index a3bd30267a1..2a3278924e8 100644 --- a/Mage.Sets/src/mage/cards/d/DirgeOfDread.java +++ b/Mage.Sets/src/mage/cards/d/DirgeOfDread.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.CycleTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DirgurNemesis.java b/Mage.Sets/src/mage/cards/d/DirgurNemesis.java index aa37f4a9937..9dc71cf49a2 100644 --- a/Mage.Sets/src/mage/cards/d/DirgurNemesis.java +++ b/Mage.Sets/src/mage/cards/d/DirgurNemesis.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.DefenderAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DirtcowlWurm.java b/Mage.Sets/src/mage/cards/d/DirtcowlWurm.java index e0ffc0cd881..a73b156bf8f 100644 --- a/Mage.Sets/src/mage/cards/d/DirtcowlWurm.java +++ b/Mage.Sets/src/mage/cards/d/DirtcowlWurm.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -41,6 +40,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DirtwaterWraith.java b/Mage.Sets/src/mage/cards/d/DirtwaterWraith.java index d614292cd12..3c655b31c48 100644 --- a/Mage.Sets/src/mage/cards/d/DirtwaterWraith.java +++ b/Mage.Sets/src/mage/cards/d/DirtwaterWraith.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DirtyWererat.java b/Mage.Sets/src/mage/cards/d/DirtyWererat.java index 90435f8ff00..103e60667ef 100644 --- a/Mage.Sets/src/mage/cards/d/DirtyWererat.java +++ b/Mage.Sets/src/mage/cards/d/DirtyWererat.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/d/Disallow.java b/Mage.Sets/src/mage/cards/d/Disallow.java index 337b685a596..741e4ee850f 100644 --- a/Mage.Sets/src/mage/cards/d/Disallow.java +++ b/Mage.Sets/src/mage/cards/d/Disallow.java @@ -27,6 +27,7 @@ */ package mage.cards.d; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -34,7 +35,6 @@ import mage.constants.CardType; import mage.target.TargetStackObject; import java.util.UUID; -import mage.abilities.effects.Effect; /** * @author JRHerlehy diff --git a/Mage.Sets/src/mage/cards/d/DisappearingAct.java b/Mage.Sets/src/mage/cards/d/DisappearingAct.java index cd52dd30010..f5ae4ea9e94 100644 --- a/Mage.Sets/src/mage/cards/d/DisappearingAct.java +++ b/Mage.Sets/src/mage/cards/d/DisappearingAct.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.target.TargetSpell; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/Disarm.java b/Mage.Sets/src/mage/cards/d/Disarm.java index c454f000021..2ca5f190d39 100644 --- a/Mage.Sets/src/mage/cards/d/Disarm.java +++ b/Mage.Sets/src/mage/cards/d/Disarm.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Derpthemeus diff --git a/Mage.Sets/src/mage/cards/d/DisasterRadius.java b/Mage.Sets/src/mage/cards/d/DisasterRadius.java index 49715589bb5..db1e2d69f3d 100644 --- a/Mage.Sets/src/mage/cards/d/DisasterRadius.java +++ b/Mage.Sets/src/mage/cards/d/DisasterRadius.java @@ -27,16 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; import mage.abilities.Ability; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.TargetController; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; @@ -44,6 +42,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DiscipleOfBolas.java b/Mage.Sets/src/mage/cards/d/DiscipleOfBolas.java index 2ee3ea2d641..2fd39336ecd 100644 --- a/Mage.Sets/src/mage/cards/d/DiscipleOfBolas.java +++ b/Mage.Sets/src/mage/cards/d/DiscipleOfBolas.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,6 +43,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DiscipleOfDeceit.java b/Mage.Sets/src/mage/cards/d/DiscipleOfDeceit.java index 559cdaa61ac..8d48acd6512 100644 --- a/Mage.Sets/src/mage/cards/d/DiscipleOfDeceit.java +++ b/Mage.Sets/src/mage/cards/d/DiscipleOfDeceit.java @@ -27,10 +27,10 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.costs.Cost; import mage.abilities.costs.common.DiscardTargetCost; import mage.abilities.effects.OneShotEffect; @@ -41,7 +41,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.common.FilterNonlandCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -50,6 +49,8 @@ import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -111,7 +112,7 @@ class DiscipleOfDeceitEffect extends OneShotEffect { } String targetName = new StringBuilder("card with converted mana cost of ").append(card.getConvertedManaCost()).toString(); FilterCard filter = new FilterCard(targetName); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, card.getConvertedManaCost())); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, card.getConvertedManaCost())); return new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true, true).apply(game, source); } } diff --git a/Mage.Sets/src/mage/cards/d/DiscipleOfGrace.java b/Mage.Sets/src/mage/cards/d/DiscipleOfGrace.java index 9e8d3ef3460..48f6ea1eb7f 100644 --- a/Mage.Sets/src/mage/cards/d/DiscipleOfGrace.java +++ b/Mage.Sets/src/mage/cards/d/DiscipleOfGrace.java @@ -28,7 +28,6 @@ package mage.cards.d; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.costs.mana.ManaCostsImpl; @@ -36,6 +35,7 @@ import mage.abilities.keyword.CyclingAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/d/DiscipleOfGriselbrand.java b/Mage.Sets/src/mage/cards/d/DiscipleOfGriselbrand.java index a644cddb0a9..ac40ed593bb 100644 --- a/Mage.Sets/src/mage/cards/d/DiscipleOfGriselbrand.java +++ b/Mage.Sets/src/mage/cards/d/DiscipleOfGriselbrand.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,10 +36,15 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DiscipleOfKangee.java b/Mage.Sets/src/mage/cards/d/DiscipleOfKangee.java index fd9c5842fd0..f76aacf46ba 100644 --- a/Mage.Sets/src/mage/cards/d/DiscipleOfKangee.java +++ b/Mage.Sets/src/mage/cards/d/DiscipleOfKangee.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -45,6 +44,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DiscipleOfLaw.java b/Mage.Sets/src/mage/cards/d/DiscipleOfLaw.java index e3c41cab055..8dda5221b78 100644 --- a/Mage.Sets/src/mage/cards/d/DiscipleOfLaw.java +++ b/Mage.Sets/src/mage/cards/d/DiscipleOfLaw.java @@ -28,8 +28,6 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +35,9 @@ import mage.abilities.keyword.CyclingAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DiscipleOfMalice.java b/Mage.Sets/src/mage/cards/d/DiscipleOfMalice.java index 76901256f9b..e8cb849c827 100644 --- a/Mage.Sets/src/mage/cards/d/DiscipleOfMalice.java +++ b/Mage.Sets/src/mage/cards/d/DiscipleOfMalice.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DiscipleOfPhenax.java b/Mage.Sets/src/mage/cards/d/DiscipleOfPhenax.java index 8fc00a7a2ac..7bb50ffc3bc 100644 --- a/Mage.Sets/src/mage/cards/d/DiscipleOfPhenax.java +++ b/Mage.Sets/src/mage/cards/d/DiscipleOfPhenax.java @@ -27,18 +27,12 @@ */ package mage.cards.d; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.dynamicvalue.common.DevotionCount; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Outcome; @@ -50,6 +44,9 @@ import mage.target.TargetCard; import mage.target.TargetPlayer; import mage.target.common.TargetCardInHand; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DiscipleOfTeveshSzat.java b/Mage.Sets/src/mage/cards/d/DiscipleOfTeveshSzat.java index 0638385b923..f8e300e1297 100644 --- a/Mage.Sets/src/mage/cards/d/DiscipleOfTeveshSzat.java +++ b/Mage.Sets/src/mage/cards/d/DiscipleOfTeveshSzat.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DiscipleOfTheOldWays.java b/Mage.Sets/src/mage/cards/d/DiscipleOfTheOldWays.java index 26d82e22ea1..e7d091bc31b 100644 --- a/Mage.Sets/src/mage/cards/d/DiscipleOfTheOldWays.java +++ b/Mage.Sets/src/mage/cards/d/DiscipleOfTheOldWays.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,9 +34,12 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DiscipleOfTheRing.java b/Mage.Sets/src/mage/cards/d/DiscipleOfTheRing.java index 1c0d744fd03..7b06e392969 100644 --- a/Mage.Sets/src/mage/cards/d/DiscipleOfTheRing.java +++ b/Mage.Sets/src/mage/cards/d/DiscipleOfTheRing.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -51,6 +50,8 @@ import mage.target.TargetSpell; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DiscipleOfTheVault.java b/Mage.Sets/src/mage/cards/d/DiscipleOfTheVault.java index 95c47148492..8426548d114 100644 --- a/Mage.Sets/src/mage/cards/d/DiscipleOfTheVault.java +++ b/Mage.Sets/src/mage/cards/d/DiscipleOfTheVault.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ZoneChangeAllTriggeredAbility; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/Discombobulate.java b/Mage.Sets/src/mage/cards/d/Discombobulate.java index ad117f077df..79099badcd0 100644 --- a/Mage.Sets/src/mage/cards/d/Discombobulate.java +++ b/Mage.Sets/src/mage/cards/d/Discombobulate.java @@ -28,14 +28,15 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.LookLibraryControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/d/DisdainfulStroke.java b/Mage.Sets/src/mage/cards/d/DisdainfulStroke.java index 317978c5e0f..05e33c01cc9 100644 --- a/Mage.Sets/src/mage/cards/d/DisdainfulStroke.java +++ b/Mage.Sets/src/mage/cards/d/DisdainfulStroke.java @@ -27,16 +27,17 @@ */ package mage.cards.d; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author emerald000 @@ -45,7 +46,7 @@ public class DisdainfulStroke extends CardImpl { private static final FilterSpell filter = new FilterSpell("spell with converted mana cost 4 or greater"); static { - filter.add(new ConvertedManaCostPredicate(ComparisonType.GreaterThan, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 3)); } public DisdainfulStroke(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/d/DiseaseCarriers.java b/Mage.Sets/src/mage/cards/d/DiseaseCarriers.java index 7aebceec986..ab8334922c9 100644 --- a/Mage.Sets/src/mage/cards/d/DiseaseCarriers.java +++ b/Mage.Sets/src/mage/cards/d/DiseaseCarriers.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/Disembowel.java b/Mage.Sets/src/mage/cards/d/Disembowel.java index 15933c59d13..7a5a5c68eab 100644 --- a/Mage.Sets/src/mage/cards/d/Disembowel.java +++ b/Mage.Sets/src/mage/cards/d/Disembowel.java @@ -27,19 +27,20 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.SpellAbility; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -60,7 +61,7 @@ public class Disembowel extends CardImpl { ability.getTargets().clear(); int xValue = ability.getManaCostsToPay().getX(); FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with converted mana cost X"); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, xValue)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue)); ability.addTarget(new TargetCreaturePermanent(filter)); } } diff --git a/Mage.Sets/src/mage/cards/d/Disenchant.java b/Mage.Sets/src/mage/cards/d/Disenchant.java index 56394f7befc..943e09f3bf7 100644 --- a/Mage.Sets/src/mage/cards/d/Disenchant.java +++ b/Mage.Sets/src/mage/cards/d/Disenchant.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/Disentomb.java b/Mage.Sets/src/mage/cards/d/Disentomb.java index a9fabfd44ae..6a8c28d4b70 100644 --- a/Mage.Sets/src/mage/cards/d/Disentomb.java +++ b/Mage.Sets/src/mage/cards/d/Disentomb.java @@ -28,14 +28,15 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/Disfigure.java b/Mage.Sets/src/mage/cards/d/Disfigure.java index 82268d481b8..f5c10e5bfdc 100644 --- a/Mage.Sets/src/mage/cards/d/Disfigure.java +++ b/Mage.Sets/src/mage/cards/d/Disfigure.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/Disintegrate.java b/Mage.Sets/src/mage/cards/d/Disintegrate.java index 53bbb0dcd9f..6454a2cfd48 100644 --- a/Mage.Sets/src/mage/cards/d/Disintegrate.java +++ b/Mage.Sets/src/mage/cards/d/Disintegrate.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -41,6 +39,8 @@ import mage.constants.Duration; import mage.target.common.TargetCreatureOrPlayer; import mage.watchers.common.DamagedByWatcher; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/d/DismalBackwater.java b/Mage.Sets/src/mage/cards/d/DismalBackwater.java index abb5ab66aa2..3c88b2b9180 100644 --- a/Mage.Sets/src/mage/cards/d/DismalBackwater.java +++ b/Mage.Sets/src/mage/cards/d/DismalBackwater.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DismalFailure.java b/Mage.Sets/src/mage/cards/d/DismalFailure.java index 8c0ed81fbc6..7248d92f4a0 100644 --- a/Mage.Sets/src/mage/cards/d/DismalFailure.java +++ b/Mage.Sets/src/mage/cards/d/DismalFailure.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Dismantle.java b/Mage.Sets/src/mage/cards/d/Dismantle.java new file mode 100644 index 00000000000..7276dd10547 --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/Dismantle.java @@ -0,0 +1,122 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.counters.Counter; +import mage.counters.CounterType; +import mage.filter.common.FilterControlledArtifactPermanent; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.Target; +import mage.target.common.TargetArtifactPermanent; +import mage.target.common.TargetControlledPermanent; + +import java.util.UUID; + +/** + * + * @author Styxo + */ +public class Dismantle extends CardImpl { + + public Dismantle(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}"); + + // Destroy target artifact. If that artifact had counters on it, put that many +1/+1 counters or charge counters on an artifact you control. + this.getSpellAbility().addEffect(new DismantleEffect()); + this.getSpellAbility().addTarget(new TargetArtifactPermanent()); + + } + + public Dismantle(final Dismantle card) { + super(card); + } + + @Override + public Dismantle copy() { + return new Dismantle(this); + } + +} + +class DismantleEffect extends OneShotEffect { + + public DismantleEffect() { + super(Outcome.DestroyPermanent); + this.staticText = "Destroy target artifact. If that artifact had counters on it, put that many +1/+1 counters or charge counters on an artifact you control"; + + } + + public DismantleEffect(final DismantleEffect effect) { + super(effect); + } + + @Override + public DismantleEffect copy() { + return new DismantleEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source)); + if (controller != null) { + if (permanent != null) { + int counterCount = 0; + counterCount = permanent.getCounters(game).values().stream().map((counter) -> counter.getCount()).reduce(counterCount, Integer::sum); + permanent.destroy(source.getSourceId(), game, false); + if (counterCount > 0) { + Target target = new TargetControlledPermanent(1, 1, new FilterControlledArtifactPermanent("an artifact you control"), true); + if (target.canChoose(controller.getId(), game)) { + controller.chooseTarget(Outcome.Benefit, target, source, game); + Permanent artifact = game.getPermanent(target.getFirstTarget()); + Counter counter; + if (controller.chooseUse(Outcome.BoostCreature, "What kind of counters do you want to add?", null, "+1/+1 counters", "Charge counters", source, game)) { + counter = CounterType.P1P1.createInstance(counterCount); + } else { + counter = CounterType.CHARGE.createInstance(counterCount); + } + if (artifact != null) { + artifact.addCounters(counter, source, game); + } + } + } + } + return true; + } + return false; + } + +} diff --git a/Mage.Sets/src/mage/cards/d/DismantlingBlow.java b/Mage.Sets/src/mage/cards/d/DismantlingBlow.java index c6c820e46fb..38e8b84b0a9 100644 --- a/Mage.Sets/src/mage/cards/d/DismantlingBlow.java +++ b/Mage.Sets/src/mage/cards/d/DismantlingBlow.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Dismember.java b/Mage.Sets/src/mage/cards/d/Dismember.java index 72db3fa5301..a18214ccb40 100644 --- a/Mage.Sets/src/mage/cards/d/Dismember.java +++ b/Mage.Sets/src/mage/cards/d/Dismember.java @@ -28,15 +28,15 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/d/Dismiss.java b/Mage.Sets/src/mage/cards/d/Dismiss.java index 050f8990990..6ccad3b447f 100644 --- a/Mage.Sets/src/mage/cards/d/Dismiss.java +++ b/Mage.Sets/src/mage/cards/d/Dismiss.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DismissIntoDream.java b/Mage.Sets/src/mage/cards/d/DismissIntoDream.java index 1cc91a0ab6e..1e10a1e0e28 100644 --- a/Mage.Sets/src/mage/cards/d/DismissIntoDream.java +++ b/Mage.Sets/src/mage/cards/d/DismissIntoDream.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BecomesTargetTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -35,18 +34,14 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Disorder.java b/Mage.Sets/src/mage/cards/d/Disorder.java index dc4a4bd135f..21d2208ec49 100644 --- a/Mage.Sets/src/mage/cards/d/Disorder.java +++ b/Mage.Sets/src/mage/cards/d/Disorder.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -42,6 +41,8 @@ import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/Disorient.java b/Mage.Sets/src/mage/cards/d/Disorient.java index 8f43602c55f..096bce8288f 100644 --- a/Mage.Sets/src/mage/cards/d/Disorient.java +++ b/Mage.Sets/src/mage/cards/d/Disorient.java @@ -28,14 +28,15 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DisownedAncestor.java b/Mage.Sets/src/mage/cards/d/DisownedAncestor.java index 85191480ef8..b0f2638b577 100644 --- a/Mage.Sets/src/mage/cards/d/DisownedAncestor.java +++ b/Mage.Sets/src/mage/cards/d/DisownedAncestor.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.OutlastAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Dispatch.java b/Mage.Sets/src/mage/cards/d/Dispatch.java index 27e63083468..7a43a047c24 100644 --- a/Mage.Sets/src/mage/cards/d/Dispatch.java +++ b/Mage.Sets/src/mage/cards/d/Dispatch.java @@ -28,16 +28,17 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.condition.common.MetalcraftCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/Dispel.java b/Mage.Sets/src/mage/cards/d/Dispel.java index b5e3f889ea7..22fee266428 100644 --- a/Mage.Sets/src/mage/cards/d/Dispel.java +++ b/Mage.Sets/src/mage/cards/d/Dispel.java @@ -27,15 +27,16 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DispellersCapsule.java b/Mage.Sets/src/mage/cards/d/DispellersCapsule.java index 59934e086e4..3408231744e 100644 --- a/Mage.Sets/src/mage/cards/d/DispellersCapsule.java +++ b/Mage.Sets/src/mage/cards/d/DispellersCapsule.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -37,9 +34,13 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DispenseJustice.java b/Mage.Sets/src/mage/cards/d/DispenseJustice.java index e97d2be04ca..7a9d115ad9c 100644 --- a/Mage.Sets/src/mage/cards/d/DispenseJustice.java +++ b/Mage.Sets/src/mage/cards/d/DispenseJustice.java @@ -28,19 +28,20 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.condition.common.MetalcraftCondition; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.SacrificeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterAttackingCreature; import mage.game.Game; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author maurer.it_at_gmail.com diff --git a/Mage.Sets/src/mage/cards/d/DispersalShield.java b/Mage.Sets/src/mage/cards/d/DispersalShield.java index 90b90754dfd..975392f3477 100644 --- a/Mage.Sets/src/mage/cards/d/DispersalShield.java +++ b/Mage.Sets/src/mage/cards/d/DispersalShield.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.HighestConvertedManaCostValue; @@ -42,6 +40,8 @@ import mage.game.Game; import mage.game.stack.Spell; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/d/DispersalTechnician.java b/Mage.Sets/src/mage/cards/d/DispersalTechnician.java index e936755bf74..132b1273f7a 100644 --- a/Mage.Sets/src/mage/cards/d/DispersalTechnician.java +++ b/Mage.Sets/src/mage/cards/d/DispersalTechnician.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.filter.common.FilterArtifactPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/d/Disperse.java b/Mage.Sets/src/mage/cards/d/Disperse.java index 69c0fcfaf84..9cac805845d 100644 --- a/Mage.Sets/src/mage/cards/d/Disperse.java +++ b/Mage.Sets/src/mage/cards/d/Disperse.java @@ -28,13 +28,14 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetNonlandPermanent; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/d/DispersingOrb.java b/Mage.Sets/src/mage/cards/d/DispersingOrb.java index 9c2c0d4d8c0..fd51737bf62 100644 --- a/Mage.Sets/src/mage/cards/d/DispersingOrb.java +++ b/Mage.Sets/src/mage/cards/d/DispersingOrb.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Derpthemeus diff --git a/Mage.Sets/src/mage/cards/d/Displace.java b/Mage.Sets/src/mage/cards/d/Displace.java index ee2e1c822ca..9d29a20276a 100644 --- a/Mage.Sets/src/mage/cards/d/Displace.java +++ b/Mage.Sets/src/mage/cards/d/Displace.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.ExileTargetForSourceEffect; import mage.abilities.effects.common.ReturnToBattlefieldUnderYourControlTargetEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DisplacementWave.java b/Mage.Sets/src/mage/cards/d/DisplacementWave.java index 16b55087277..6e5c0374c09 100644 --- a/Mage.Sets/src/mage/cards/d/DisplacementWave.java +++ b/Mage.Sets/src/mage/cards/d/DisplacementWave.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DisplayOfDominance.java b/Mage.Sets/src/mage/cards/d/DisplayOfDominance.java index bd5c93b5609..134b8cf8abd 100644 --- a/Mage.Sets/src/mage/cards/d/DisplayOfDominance.java +++ b/Mage.Sets/src/mage/cards/d/DisplayOfDominance.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageObject; import mage.ObjectColor; import mage.abilities.Ability; @@ -50,6 +49,8 @@ import mage.game.permanent.Permanent; import mage.game.stack.Spell; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Dispossess.java b/Mage.Sets/src/mage/cards/d/Dispossess.java new file mode 100644 index 00000000000..4c1e749ae4a --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/Dispossess.java @@ -0,0 +1,86 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.common.NameACardEffect; +import mage.abilities.effects.common.search.SearchTargetGraveyardHandLibraryForCardNameAndExileEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.game.Game; +import mage.target.TargetPlayer; + +/** + * + * @author fireshoes + */ +public class Dispossess extends CardImpl { + + public Dispossess(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}"); + + // Name an artifact card. Search target player's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library. + this.getSpellAbility().addEffect((new NameACardEffect(NameACardEffect.TypeOfName.ARTIFACT_NAME))); + this.getSpellAbility().addTarget(new TargetPlayer()); + this.getSpellAbility().addEffect(new DispossessEffect()); + } + + public Dispossess(final Dispossess card) { + super(card); + } + + @Override + public Dispossess copy() { + return new Dispossess(this); + } +} + +class DispossessEffect extends SearchTargetGraveyardHandLibraryForCardNameAndExileEffect { + + public DispossessEffect() { + super(true, "target opponent's", "any number of cards with that name"); + } + + public DispossessEffect(final DispossessEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + String cardName = (String) game.getState().getValue(source.getSourceId().toString() + NameACardEffect.INFO_KEY); + return super.applySearchAndExile(game, source, cardName, targetPointer.getFirst(game, source)); + } + + @Override + public DispossessEffect copy() { + return new DispossessEffect(this); + } + +} diff --git a/Mage.Sets/src/mage/cards/d/Disrupt.java b/Mage.Sets/src/mage/cards/d/Disrupt.java index 8d249d43ebe..9b571fcfac6 100644 --- a/Mage.Sets/src/mage/cards/d/Disrupt.java +++ b/Mage.Sets/src/mage/cards/d/Disrupt.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CounterUnlessPaysEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -39,6 +38,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DisruptingScepter.java b/Mage.Sets/src/mage/cards/d/DisruptingScepter.java index cafd4a3f88e..010432fb46f 100644 --- a/Mage.Sets/src/mage/cards/d/DisruptingScepter.java +++ b/Mage.Sets/src/mage/cards/d/DisruptingScepter.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.condition.common.MyTurnCondition; @@ -38,9 +35,12 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DisruptingShoal.java b/Mage.Sets/src/mage/cards/d/DisruptingShoal.java index 135d930f682..01beb93ee31 100644 --- a/Mage.Sets/src/mage/cards/d/DisruptingShoal.java +++ b/Mage.Sets/src/mage/cards/d/DisruptingShoal.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.Mode; @@ -50,6 +49,8 @@ import mage.game.stack.Spell; import mage.target.TargetSpell; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DisruptionAura.java b/Mage.Sets/src/mage/cards/d/DisruptionAura.java index eef0f3820df..ac5b45e3ff3 100644 --- a/Mage.Sets/src/mage/cards/d/DisruptionAura.java +++ b/Mage.Sets/src/mage/cards/d/DisruptionAura.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,11 +38,7 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; @@ -51,6 +46,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetArtifactPermanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DisruptivePitmage.java b/Mage.Sets/src/mage/cards/d/DisruptivePitmage.java index e5b8ffbc81e..87d25af6d0f 100644 --- a/Mage.Sets/src/mage/cards/d/DisruptivePitmage.java +++ b/Mage.Sets/src/mage/cards/d/DisruptivePitmage.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DisruptiveStudent.java b/Mage.Sets/src/mage/cards/d/DisruptiveStudent.java index 6908e05e109..e69171152f8 100644 --- a/Mage.Sets/src/mage/cards/d/DisruptiveStudent.java +++ b/Mage.Sets/src/mage/cards/d/DisruptiveStudent.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,12 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CounterUnlessPaysEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DissensionInTheRanks.java b/Mage.Sets/src/mage/cards/d/DissensionInTheRanks.java index dc32156cd39..301b8b8add1 100644 --- a/Mage.Sets/src/mage/cards/d/DissensionInTheRanks.java +++ b/Mage.Sets/src/mage/cards/d/DissensionInTheRanks.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.FightTargetsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -37,6 +36,8 @@ import mage.filter.predicate.mageobject.AnotherTargetPredicate; import mage.filter.predicate.permanent.BlockingPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DissentersDeliverance.java b/Mage.Sets/src/mage/cards/d/DissentersDeliverance.java new file mode 100644 index 00000000000..015ea34ebb6 --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DissentersDeliverance.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.common.TargetArtifactPermanent; + +/** + * + * @author fireshoes + */ +public class DissentersDeliverance extends CardImpl { + + public DissentersDeliverance(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}"); + + + // Destroy target artifact. + getSpellAbility().addEffect(new DestroyTargetEffect()); + getSpellAbility().addTarget(new TargetArtifactPermanent()); + + // Cycling {G} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{G}"))); + + } + + public DissentersDeliverance(final DissentersDeliverance card) { + super(card); + } + + @Override + public DissentersDeliverance copy() { + return new DissentersDeliverance(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/Dissipate.java b/Mage.Sets/src/mage/cards/d/Dissipate.java index bbadb8fc571..4a130286c08 100644 --- a/Mage.Sets/src/mage/cards/d/Dissipate.java +++ b/Mage.Sets/src/mage/cards/d/Dissipate.java @@ -27,10 +27,10 @@ */ package mage.cards.d; -import mage.constants.CardType; import mage.abilities.effects.common.CounterTargetWithReplacementEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetSpell; diff --git a/Mage.Sets/src/mage/cards/d/DissipationField.java b/Mage.Sets/src/mage/cards/d/DissipationField.java index 592643e6729..93783e5b133 100644 --- a/Mage.Sets/src/mage/cards/d/DissipationField.java +++ b/Mage.Sets/src/mage/cards/d/DissipationField.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; @@ -40,6 +39,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author ayratn diff --git a/Mage.Sets/src/mage/cards/d/Dissolve.java b/Mage.Sets/src/mage/cards/d/Dissolve.java index 2c2ecdb9bfc..b1f5c24a531 100644 --- a/Mage.Sets/src/mage/cards/d/Dissolve.java +++ b/Mage.Sets/src/mage/cards/d/Dissolve.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.target.Target; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DistantMelody.java b/Mage.Sets/src/mage/cards/d/DistantMelody.java index ecd0c88bc88..95b64f2e0e5 100644 --- a/Mage.Sets/src/mage/cards/d/DistantMelody.java +++ b/Mage.Sets/src/mage/cards/d/DistantMelody.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.OneShotEffect; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DistantMemories.java b/Mage.Sets/src/mage/cards/d/DistantMemories.java index 65e205fc481..b6f02d9500b 100644 --- a/Mage.Sets/src/mage/cards/d/DistantMemories.java +++ b/Mage.Sets/src/mage/cards/d/DistantMemories.java @@ -27,20 +27,21 @@ */ package mage.cards.d; -import java.util.Set; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.Set; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DistemperOfTheBlood.java b/Mage.Sets/src/mage/cards/d/DistemperOfTheBlood.java index abff2196f66..c30e53328f1 100644 --- a/Mage.Sets/src/mage/cards/d/DistemperOfTheBlood.java +++ b/Mage.Sets/src/mage/cards/d/DistemperOfTheBlood.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DistendedMindbender.java b/Mage.Sets/src/mage/cards/d/DistendedMindbender.java index 6258693423a..e09494ae22f 100644 --- a/Mage.Sets/src/mage/cards/d/DistendedMindbender.java +++ b/Mage.Sets/src/mage/cards/d/DistendedMindbender.java @@ -27,10 +27,9 @@ */ package mage.cards.d; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CastSourceTriggeredAbility; @@ -41,7 +40,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -51,6 +49,9 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetOpponent; +import java.util.List; +import java.util.UUID; + /** * * @author fireshoes @@ -90,8 +91,8 @@ class DistendedMindbenderEffect extends OneShotEffect { private static final FilterCard filterThreeOrLess = new FilterCard("a nonland card from it with converted mana cost 3 or less"); static { - filterFourOrGreater.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 3)); - filterThreeOrLess.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filterFourOrGreater.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 3)); + filterThreeOrLess.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); filterThreeOrLess.add(Predicates.not(new CardTypePredicate(CardType.LAND))); } diff --git a/Mage.Sets/src/mage/cards/d/DistortingLens.java b/Mage.Sets/src/mage/cards/d/DistortingLens.java index f0b67486661..20e663150cf 100644 --- a/Mage.Sets/src/mage/cards/d/DistortingLens.java +++ b/Mage.Sets/src/mage/cards/d/DistortingLens.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -46,6 +45,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/d/DistortingWake.java b/Mage.Sets/src/mage/cards/d/DistortingWake.java index 3b83318f41d..5537d1d8a96 100644 --- a/Mage.Sets/src/mage/cards/d/DistortingWake.java +++ b/Mage.Sets/src/mage/cards/d/DistortingWake.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.effects.Effect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.target.Target; import mage.target.common.TargetNonlandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DistortionStrike.java b/Mage.Sets/src/mage/cards/d/DistortionStrike.java index e6ba85f95b7..0a0ff889f39 100644 --- a/Mage.Sets/src/mage/cards/d/DistortionStrike.java +++ b/Mage.Sets/src/mage/cards/d/DistortionStrike.java @@ -27,17 +27,18 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.Effect; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.ReboundAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/Distress.java b/Mage.Sets/src/mage/cards/d/Distress.java index 39530e31e7f..a07bc571f26 100644 --- a/Mage.Sets/src/mage/cards/d/Distress.java +++ b/Mage.Sets/src/mage/cards/d/Distress.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.discard.DiscardCardYouChooseTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -38,6 +37,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/d/DisturbedBurial.java b/Mage.Sets/src/mage/cards/d/DisturbedBurial.java index 3562d8622e8..cf9f9b3f865 100644 --- a/Mage.Sets/src/mage/cards/d/DisturbedBurial.java +++ b/Mage.Sets/src/mage/cards/d/DisturbedBurial.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; +import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.BuybackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; -import mage.abilities.effects.common.ReturnToHandTargetEffect; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DisturbingPlot.java b/Mage.Sets/src/mage/cards/d/DisturbingPlot.java index 6ca51903036..32b48322662 100644 --- a/Mage.Sets/src/mage/cards/d/DisturbingPlot.java +++ b/Mage.Sets/src/mage/cards/d/DisturbingPlot.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.ConspireAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DiveBomber.java b/Mage.Sets/src/mage/cards/d/DiveBomber.java index 60f364d6d77..b742145039f 100644 --- a/Mage.Sets/src/mage/cards/d/DiveBomber.java +++ b/Mage.Sets/src/mage/cards/d/DiveBomber.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterAttackingOrBlockingCreature; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DivebomberGriffin.java b/Mage.Sets/src/mage/cards/d/DivebomberGriffin.java index a1a0c3cc4e0..6abcfdd2e92 100644 --- a/Mage.Sets/src/mage/cards/d/DivebomberGriffin.java +++ b/Mage.Sets/src/mage/cards/d/DivebomberGriffin.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,10 +36,13 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterAttackingOrBlockingCreature; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DivergentGrowth.java b/Mage.Sets/src/mage/cards/d/DivergentGrowth.java index 986041f9664..e69768be977 100644 --- a/Mage.Sets/src/mage/cards/d/DivergentGrowth.java +++ b/Mage.Sets/src/mage/cards/d/DivergentGrowth.java @@ -27,8 +27,7 @@ */ package mage.cards.d; -import java.util.UUID; - +import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.mana.ActivatedManaAbilityImpl; import mage.abilities.mana.AnyColorManaAbility; @@ -37,7 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterControlledLandPermanent; -import mage.abilities.effects.Effect; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DivergentTransformations.java b/Mage.Sets/src/mage/cards/d/DivergentTransformations.java index 81044f05e96..8f47cc06fca 100644 --- a/Mage.Sets/src/mage/cards/d/DivergentTransformations.java +++ b/Mage.Sets/src/mage/cards/d/DivergentTransformations.java @@ -27,20 +27,11 @@ */ package mage.cards.d; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.UndauntedAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -50,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.*; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DiversionaryTactics.java b/Mage.Sets/src/mage/cards/d/DiversionaryTactics.java index 8bcd5439223..8cc5b3ad41d 100644 --- a/Mage.Sets/src/mage/cards/d/DiversionaryTactics.java +++ b/Mage.Sets/src/mage/cards/d/DiversionaryTactics.java @@ -27,15 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; @@ -43,6 +41,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/d/Divert.java b/Mage.Sets/src/mage/cards/d/Divert.java index cc5636faa6b..41d2e131924 100644 --- a/Mage.Sets/src/mage/cards/d/Divert.java +++ b/Mage.Sets/src/mage/cards/d/Divert.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.mana.GenericManaCost; @@ -41,6 +40,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author cbt33, Rafbill (Frightful Delustions) diff --git a/Mage.Sets/src/mage/cards/d/Divination.java b/Mage.Sets/src/mage/cards/d/Divination.java index 0d7f47b4d99..efce95ca25a 100644 --- a/Mage.Sets/src/mage/cards/d/Divination.java +++ b/Mage.Sets/src/mage/cards/d/Divination.java @@ -28,11 +28,12 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DivineDeflection.java b/Mage.Sets/src/mage/cards/d/DivineDeflection.java index ea4a405c779..e75425cd9e2 100644 --- a/Mage.Sets/src/mage/cards/d/DivineDeflection.java +++ b/Mage.Sets/src/mage/cards/d/DivineDeflection.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.PreventionEffectData; import mage.abilities.effects.PreventionEffectImpl; @@ -41,6 +40,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/d/DivineFavor.java b/Mage.Sets/src/mage/cards/d/DivineFavor.java index 9e8da3a792a..6b36d90b191 100644 --- a/Mage.Sets/src/mage/cards/d/DivineFavor.java +++ b/Mage.Sets/src/mage/cards/d/DivineFavor.java @@ -28,9 +28,6 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,9 +37,15 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/d/DivineIntervention.java b/Mage.Sets/src/mage/cards/d/DivineIntervention.java index 9b1be523e13..bbf0ec995c9 100644 --- a/Mage.Sets/src/mage/cards/d/DivineIntervention.java +++ b/Mage.Sets/src/mage/cards/d/DivineIntervention.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.Objects; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -51,6 +49,9 @@ import mage.game.permanent.Permanent; import mage.game.stack.StackObject; import mage.players.Player; +import java.util.Objects; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/d/DivineLight.java b/Mage.Sets/src/mage/cards/d/DivineLight.java index 3035f362f88..9c3d4bd9979 100644 --- a/Mage.Sets/src/mage/cards/d/DivineLight.java +++ b/Mage.Sets/src/mage/cards/d/DivineLight.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.PreventAllDamageToAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -37,6 +36,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DivineOffering.java b/Mage.Sets/src/mage/cards/d/DivineOffering.java index 9e33324dc4c..bbb52b22f67 100644 --- a/Mage.Sets/src/mage/cards/d/DivineOffering.java +++ b/Mage.Sets/src/mage/cards/d/DivineOffering.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.dynamicvalue.common.TargetConvertedManaCost; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author ayratn diff --git a/Mage.Sets/src/mage/cards/d/DivinePresence.java b/Mage.Sets/src/mage/cards/d/DivinePresence.java index 5a7ab55499c..f61c64931e5 100644 --- a/Mage.Sets/src/mage/cards/d/DivinePresence.java +++ b/Mage.Sets/src/mage/cards/d/DivinePresence.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DivineReckoning.java b/Mage.Sets/src/mage/cards/d/DivineReckoning.java index 23930107329..d33119caa27 100644 --- a/Mage.Sets/src/mage/cards/d/DivineReckoning.java +++ b/Mage.Sets/src/mage/cards/d/DivineReckoning.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; @@ -48,6 +45,10 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledPermanent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/d/DivineSacrament.java b/Mage.Sets/src/mage/cards/d/DivineSacrament.java index 636b723ca36..42d627aa942 100644 --- a/Mage.Sets/src/mage/cards/d/DivineSacrament.java +++ b/Mage.Sets/src/mage/cards/d/DivineSacrament.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Beta_Steward (Honor of the Pure), LevelX2 (Demoralize), cbt diff --git a/Mage.Sets/src/mage/cards/d/DivineTransformation.java b/Mage.Sets/src/mage/cards/d/DivineTransformation.java index 7b149824bd8..3365e15786c 100644 --- a/Mage.Sets/src/mage/cards/d/DivineTransformation.java +++ b/Mage.Sets/src/mage/cards/d/DivineTransformation.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/d/DivineVerdict.java b/Mage.Sets/src/mage/cards/d/DivineVerdict.java index 7d7303d404c..9cc85aa00bb 100644 --- a/Mage.Sets/src/mage/cards/d/DivineVerdict.java +++ b/Mage.Sets/src/mage/cards/d/DivineVerdict.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterAttackingOrBlockingCreature; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DivinerSpirit.java b/Mage.Sets/src/mage/cards/d/DivinerSpirit.java index f963f3f371a..0d47a134927 100644 --- a/Mage.Sets/src/mage/cards/d/DivinerSpirit.java +++ b/Mage.Sets/src/mage/cards/d/DivinerSpirit.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToAPlayerTriggeredAbility; @@ -39,6 +38,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DivinersWand.java b/Mage.Sets/src/mage/cards/d/DivinersWand.java index 49d0fc75b88..847a8355a92 100644 --- a/Mage.Sets/src/mage/cards/d/DivinersWand.java +++ b/Mage.Sets/src/mage/cards/d/DivinersWand.java @@ -27,12 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.DrawCardControllerTriggeredAbility; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; @@ -49,11 +43,13 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.SetTargetPointer; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DivingGriffin.java b/Mage.Sets/src/mage/cards/d/DivingGriffin.java index 0561d3292c4..721b1709d29 100644 --- a/Mage.Sets/src/mage/cards/d/DivingGriffin.java +++ b/Mage.Sets/src/mage/cards/d/DivingGriffin.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DiviningWitch.java b/Mage.Sets/src/mage/cards/d/DiviningWitch.java index 47295968c63..f92247e076b 100644 --- a/Mage.Sets/src/mage/cards/d/DiviningWitch.java +++ b/Mage.Sets/src/mage/cards/d/DiviningWitch.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -47,6 +46,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author maxlebedev diff --git a/Mage.Sets/src/mage/cards/d/DivinityOfPride.java b/Mage.Sets/src/mage/cards/d/DivinityOfPride.java index 8e4af190847..993080bdc0c 100644 --- a/Mage.Sets/src/mage/cards/d/DivinityOfPride.java +++ b/Mage.Sets/src/mage/cards/d/DivinityOfPride.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DizzySpell.java b/Mage.Sets/src/mage/cards/d/DizzySpell.java index 79f8dffe3e0..f2a0032eb24 100644 --- a/Mage.Sets/src/mage/cards/d/DizzySpell.java +++ b/Mage.Sets/src/mage/cards/d/DizzySpell.java @@ -27,16 +27,16 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.TransmuteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DjerusResolve.java b/Mage.Sets/src/mage/cards/d/DjerusResolve.java new file mode 100644 index 00000000000..5f2b2a5a5ec --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DjerusResolve.java @@ -0,0 +1,75 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.PreventDamageToTargetEffect; +import mage.abilities.effects.common.UntapTargetEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class DjerusResolve extends CardImpl { + + public DjerusResolve(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{W}"); + + // Untap target creature. + Effect effect = new UntapTargetEffect(); + effect.setText("Untap target creature"); + this.getSpellAbility().addEffect(effect); + + // Prevent all damage that would be dealt to it this turn. + effect = new PreventDamageToTargetEffect(Duration.EndOfTurn, Integer.MAX_VALUE); + effect.setText("Prevent all damage that would be dealt to it this turn"); + this.getSpellAbility().addEffect(effect); + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + + } + + public DjerusResolve(final DjerusResolve card) { + super(card); + } + + @Override + public DjerusResolve copy() { + return new DjerusResolve(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/DjinnOfInfiniteDeceits.java b/Mage.Sets/src/mage/cards/d/DjinnOfInfiniteDeceits.java index 1dbaac8f2de..63f11545ecb 100644 --- a/Mage.Sets/src/mage/cards/d/DjinnOfInfiniteDeceits.java +++ b/Mage.Sets/src/mage/cards/d/DjinnOfInfiniteDeceits.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -38,15 +37,14 @@ import mage.abilities.effects.common.continuous.ExchangeControlTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TurnPhase; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,7 +54,7 @@ public class DjinnOfInfiniteDeceits extends CardImpl { private static final String rule = "Exchange control of two target nonlegendary creatures"; private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nonlegendary creature"); static { - filter.add(Predicates.not(new SupertypePredicate("Legendary"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.LEGENDARY))); } public DjinnOfInfiniteDeceits(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/d/DjinnOfTheLamp.java b/Mage.Sets/src/mage/cards/d/DjinnOfTheLamp.java index 6a83b4c25eb..5e43b29172f 100644 --- a/Mage.Sets/src/mage/cards/d/DjinnOfTheLamp.java +++ b/Mage.Sets/src/mage/cards/d/DjinnOfTheLamp.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DjinnOfWishes.java b/Mage.Sets/src/mage/cards/d/DjinnOfWishes.java index 0a65c1f3fa3..ac165400651 100644 --- a/Mage.Sets/src/mage/cards/d/DjinnOfWishes.java +++ b/Mage.Sets/src/mage/cards/d/DjinnOfWishes.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -38,11 +37,7 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.FlyingAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -50,6 +45,8 @@ import mage.counters.CounterType; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/d/DoOrDie.java b/Mage.Sets/src/mage/cards/d/DoOrDie.java index c46aad28063..933c4051d3c 100644 --- a/Mage.Sets/src/mage/cards/d/DoOrDie.java +++ b/Mage.Sets/src/mage/cards/d/DoOrDie.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -43,6 +40,10 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DocentOfPerfection.java b/Mage.Sets/src/mage/cards/d/DocentOfPerfection.java index 37e4f74dabb..db82b19019b 100644 --- a/Mage.Sets/src/mage/cards/d/DocentOfPerfection.java +++ b/Mage.Sets/src/mage/cards/d/DocentOfPerfection.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -37,9 +36,9 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TransformAbility; -import mage.cards.f.FinalIteration; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.f.FinalIteration; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; @@ -53,6 +52,8 @@ import mage.game.Game; import mage.game.permanent.token.HumanWizardToken; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/Dodecapod.java b/Mage.Sets/src/mage/cards/d/Dodecapod.java index faa4adacfb8..91ebb4ca3cb 100644 --- a/Mage.Sets/src/mage/cards/d/Dodecapod.java +++ b/Mage.Sets/src/mage/cards/d/Dodecapod.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DoggedHunter.java b/Mage.Sets/src/mage/cards/d/DoggedHunter.java index 2485713a163..1f2b00d51b6 100644 --- a/Mage.Sets/src/mage/cards/d/DoggedHunter.java +++ b/Mage.Sets/src/mage/cards/d/DoggedHunter.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.TokenPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author noxx (Harvester of Souls), cbt33 diff --git a/Mage.Sets/src/mage/cards/d/DolmenGate.java b/Mage.Sets/src/mage/cards/d/DolmenGate.java index 28dd613506c..a0c7dfac669 100644 --- a/Mage.Sets/src/mage/cards/d/DolmenGate.java +++ b/Mage.Sets/src/mage/cards/d/DolmenGate.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.PreventAllDamageToAllEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledCreatureInPlay; import mage.filter.predicate.permanent.AttackingPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DomesticatedHydra.java b/Mage.Sets/src/mage/cards/d/DomesticatedHydra.java index 20f3d4e1b66..4212d403ab6 100644 --- a/Mage.Sets/src/mage/cards/d/DomesticatedHydra.java +++ b/Mage.Sets/src/mage/cards/d/DomesticatedHydra.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Domestication.java b/Mage.Sets/src/mage/cards/d/Domestication.java index e80f0c41f64..eac4ad4fa3c 100644 --- a/Mage.Sets/src/mage/cards/d/Domestication.java +++ b/Mage.Sets/src/mage/cards/d/Domestication.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility; @@ -42,6 +39,7 @@ import mage.abilities.effects.common.continuous.ControlEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; @@ -49,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/Dominate.java b/Mage.Sets/src/mage/cards/d/Dominate.java index ef0d30d7000..d25377ba9a1 100644 --- a/Mage.Sets/src/mage/cards/d/Dominate.java +++ b/Mage.Sets/src/mage/cards/d/Dominate.java @@ -27,21 +27,22 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.SpellAbility; import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -66,7 +67,7 @@ public class Dominate extends CardImpl { ability.getTargets().clear(); int xValue = ability.getManaCostsToPay().getX(); FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with converted mana cost X or less"); - filter.add(Predicates.not(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, xValue))); + filter.add(Predicates.not(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, xValue))); ability.addTarget(new TargetCreaturePermanent(filter)); } } diff --git a/Mage.Sets/src/mage/cards/d/DominatingLicid.java b/Mage.Sets/src/mage/cards/d/DominatingLicid.java index 09165e8ccce..7ab0a25e096 100644 --- a/Mage.Sets/src/mage/cards/d/DominatingLicid.java +++ b/Mage.Sets/src/mage/cards/d/DominatingLicid.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LicidAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DominatorDrone.java b/Mage.Sets/src/mage/cards/d/DominatorDrone.java index cc3e5ad527d..e4534af1e1c 100644 --- a/Mage.Sets/src/mage/cards/d/DominatorDrone.java +++ b/Mage.Sets/src/mage/cards/d/DominatorDrone.java @@ -27,9 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -44,6 +43,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorlessPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -74,7 +75,7 @@ public class DominatorDrone extends CardImpl { TriggeredAbility triggeredAbility = new EntersBattlefieldTriggeredAbility(new LoseLifeOpponentsEffect(2)); this.addAbility(new ConditionalTriggeredAbility( triggeredAbility, - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0), "When {this} enters the battlefield, if you control another colorless creature, each opponent loses 2 life.")); } diff --git a/Mage.Sets/src/mage/cards/d/Domineer.java b/Mage.Sets/src/mage/cards/d/Domineer.java index 1829064afd1..730669c51d2 100644 --- a/Mage.Sets/src/mage/cards/d/Domineer.java +++ b/Mage.Sets/src/mage/cards/d/Domineer.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DomineeringWill.java b/Mage.Sets/src/mage/cards/d/DomineeringWill.java index ee861946140..397ceeaa1f4 100644 --- a/Mage.Sets/src/mage/cards/d/DomineeringWill.java +++ b/Mage.Sets/src/mage/cards/d/DomineeringWill.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.Effect; @@ -50,6 +49,8 @@ import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.SecondTargetPointer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DominusOfFealty.java b/Mage.Sets/src/mage/cards/d/DominusOfFealty.java index c3bae10dd4d..95203f0ae0d 100644 --- a/Mage.Sets/src/mage/cards/d/DominusOfFealty.java +++ b/Mage.Sets/src/mage/cards/d/DominusOfFealty.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -40,10 +37,13 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DomriRade.java b/Mage.Sets/src/mage/cards/d/DomriRade.java index 16f5947be5a..9f2be0dc973 100644 --- a/Mage.Sets/src/mage/cards/d/DomriRade.java +++ b/Mage.Sets/src/mage/cards/d/DomriRade.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; @@ -59,6 +58,8 @@ import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Donate.java b/Mage.Sets/src/mage/cards/d/Donate.java index de1284c6656..9e89b3d3d24 100644 --- a/Mage.Sets/src/mage/cards/d/Donate.java +++ b/Mage.Sets/src/mage/cards/d/Donate.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -44,6 +43,8 @@ import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/d/DongZhouTheTyrant.java b/Mage.Sets/src/mage/cards/d/DongZhouTheTyrant.java index beb4ff5e875..1c154b1072a 100644 --- a/Mage.Sets/src/mage/cards/d/DongZhouTheTyrant.java +++ b/Mage.Sets/src/mage/cards/d/DongZhouTheTyrant.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -36,6 +35,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; @@ -44,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -58,7 +60,7 @@ public class DongZhouTheTyrant extends CardImpl { public DongZhouTheTyrant(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/d/DoomBlade.java b/Mage.Sets/src/mage/cards/d/DoomBlade.java index 3eb675c7a68..05ffce1a3da 100644 --- a/Mage.Sets/src/mage/cards/d/DoomBlade.java +++ b/Mage.Sets/src/mage/cards/d/DoomBlade.java @@ -28,17 +28,18 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LokiX diff --git a/Mage.Sets/src/mage/cards/d/DoomedDissenter.java b/Mage.Sets/src/mage/cards/d/DoomedDissenter.java new file mode 100644 index 00000000000..f0c4c57eec6 --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DoomedDissenter.java @@ -0,0 +1,64 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.game.permanent.token.ZombieToken; + +/** + * + * @author Styxo + */ +public class DoomedDissenter extends CardImpl { + + public DoomedDissenter(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}"); + + this.subtype.add("Human"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // When Doomed Dissenter dies, create a 2/2 black Zombie creature token. + this.addAbility(new DiesTriggeredAbility(new CreateTokenEffect(new ZombieToken()))); + } + + public DoomedDissenter(final DoomedDissenter card) { + super(card); + } + + @Override + public DoomedDissenter copy() { + return new DoomedDissenter(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/DoomedNecromancer.java b/Mage.Sets/src/mage/cards/d/DoomedNecromancer.java index 50ef4076c97..e283c1f599a 100644 --- a/Mage.Sets/src/mage/cards/d/DoomedNecromancer.java +++ b/Mage.Sets/src/mage/cards/d/DoomedNecromancer.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,11 +36,14 @@ import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DoomedTraveler.java b/Mage.Sets/src/mage/cards/d/DoomedTraveler.java index ad5b971ff02..6daf5dd201d 100644 --- a/Mage.Sets/src/mage/cards/d/DoomedTraveler.java +++ b/Mage.Sets/src/mage/cards/d/DoomedTraveler.java @@ -27,15 +27,16 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.SpiritWhiteToken; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/d/Doomgape.java b/Mage.Sets/src/mage/cards/d/Doomgape.java index 6235d240937..a4fd6bc9426 100644 --- a/Mage.Sets/src/mage/cards/d/Doomgape.java +++ b/Mage.Sets/src/mage/cards/d/Doomgape.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -45,6 +44,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/Doomsday.java b/Mage.Sets/src/mage/cards/d/Doomsday.java index 05971ffb80b..68b079224cd 100644 --- a/Mage.Sets/src/mage/cards/d/Doomsday.java +++ b/Mage.Sets/src/mage/cards/d/Doomsday.java @@ -27,15 +27,10 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.LoseHalfLifeEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -44,6 +39,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DoomsdaySpecter.java b/Mage.Sets/src/mage/cards/d/DoomsdaySpecter.java index c917080fc07..af090044a5b 100644 --- a/Mage.Sets/src/mage/cards/d/DoomsdaySpecter.java +++ b/Mage.Sets/src/mage/cards/d/DoomsdaySpecter.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DoomwakeGiant.java b/Mage.Sets/src/mage/cards/d/DoomwakeGiant.java index d5d6ee4f0be..e09a261b445 100644 --- a/Mage.Sets/src/mage/cards/d/DoomwakeGiant.java +++ b/Mage.Sets/src/mage/cards/d/DoomwakeGiant.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.abilityword.ConstellationAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; @@ -39,6 +38,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DoorOfDestinies.java b/Mage.Sets/src/mage/cards/d/DoorOfDestinies.java index 982ab90894d..f2908393a7a 100644 --- a/Mage.Sets/src/mage/cards/d/DoorOfDestinies.java +++ b/Mage.Sets/src/mage/cards/d/DoorOfDestinies.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.AsEntersBattlefieldAbility; @@ -37,13 +36,7 @@ import mage.abilities.effects.common.ChooseCreatureTypeEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.FilterSpell; import mage.filter.common.FilterCreaturePermanent; @@ -55,6 +48,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.game.stack.Spell; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DoorToNothingness.java b/Mage.Sets/src/mage/cards/d/DoorToNothingness.java index dcd77a9dd71..c227e7ce1ea 100644 --- a/Mage.Sets/src/mage/cards/d/DoorToNothingness.java +++ b/Mage.Sets/src/mage/cards/d/DoorToNothingness.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -39,12 +36,15 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/Doorkeeper.java b/Mage.Sets/src/mage/cards/d/Doorkeeper.java index 769d3b8f46e..21d14ce6937 100644 --- a/Mage.Sets/src/mage/cards/d/Doorkeeper.java +++ b/Mage.Sets/src/mage/cards/d/Doorkeeper.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,10 +37,14 @@ import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DoranTheSiegeTower.java b/Mage.Sets/src/mage/cards/d/DoranTheSiegeTower.java index 99462b01b38..cde7ba5a338 100644 --- a/Mage.Sets/src/mage/cards/d/DoranTheSiegeTower.java +++ b/Mage.Sets/src/mage/cards/d/DoranTheSiegeTower.java @@ -27,23 +27,18 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.SubLayer; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; +import java.util.UUID; + /** * * 613.10. Some continuous effects affect game rules rather than objects. For example, @@ -61,7 +56,7 @@ public class DoranTheSiegeTower extends CardImpl { public DoranTheSiegeTower(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Treefolk"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/d/DormantGomazoa.java b/Mage.Sets/src/mage/cards/d/DormantGomazoa.java index 0dd535bced7..b3537fe1627 100644 --- a/Mage.Sets/src/mage/cards/d/DormantGomazoa.java +++ b/Mage.Sets/src/mage/cards/d/DormantGomazoa.java @@ -27,18 +27,19 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.Zone; -import mage.constants.CardType; import mage.MageInt; -import mage.abilities.keyword.FlyingAbility; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; +import mage.abilities.common.BecomesTargetControllerSpellTriggeredAbility; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; -import mage.abilities.common.BecomesTargetControllerSpellTriggeredAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DormantSliver.java b/Mage.Sets/src/mage/cards/d/DormantSliver.java index 07cf80a9039..0b405c3cbb1 100644 --- a/Mage.Sets/src/mage/cards/d/DormantSliver.java +++ b/Mage.Sets/src/mage/cards/d/DormantSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/d/DormantVolcano.java b/Mage.Sets/src/mage/cards/d/DormantVolcano.java index 600514bacac..996bb0181a9 100644 --- a/Mage.Sets/src/mage/cards/d/DormantVolcano.java +++ b/Mage.Sets/src/mage/cards/d/DormantVolcano.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.Mana; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DosanTheFallingLeaf.java b/Mage.Sets/src/mage/cards/d/DosanTheFallingLeaf.java index ce0651a441b..4dd097dbedc 100644 --- a/Mage.Sets/src/mage/cards/d/DosanTheFallingLeaf.java +++ b/Mage.Sets/src/mage/cards/d/DosanTheFallingLeaf.java @@ -27,20 +27,18 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author Loki @@ -49,7 +47,7 @@ public class DosanTheFallingLeaf extends CardImpl { public DosanTheFallingLeaf(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Monk"); diff --git a/Mage.Sets/src/mage/cards/d/DosansOldestChant.java b/Mage.Sets/src/mage/cards/d/DosansOldestChant.java index 364387a9b39..9c1e492ade9 100644 --- a/Mage.Sets/src/mage/cards/d/DosansOldestChant.java +++ b/Mage.Sets/src/mage/cards/d/DosansOldestChant.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DoubleCleave.java b/Mage.Sets/src/mage/cards/d/DoubleCleave.java index 86f480b6516..d2fc6395d55 100644 --- a/Mage.Sets/src/mage/cards/d/DoubleCleave.java +++ b/Mage.Sets/src/mage/cards/d/DoubleCleave.java @@ -27,16 +27,16 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.DoubleStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DoubleNegative.java b/Mage.Sets/src/mage/cards/d/DoubleNegative.java index e8844e91f75..d31cc9aaa8b 100644 --- a/Mage.Sets/src/mage/cards/d/DoubleNegative.java +++ b/Mage.Sets/src/mage/cards/d/DoubleNegative.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.FilterSpell; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DoublingCube.java b/Mage.Sets/src/mage/cards/d/DoublingCube.java index f43260df503..5a346038c9c 100644 --- a/Mage.Sets/src/mage/cards/d/DoublingCube.java +++ b/Mage.Sets/src/mage/cards/d/DoublingCube.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.players.ManaPool; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DoublingSeason.java b/Mage.Sets/src/mage/cards/d/DoublingSeason.java index 72a86fd92cc..6d051176af1 100644 --- a/Mage.Sets/src/mage/cards/d/DoublingSeason.java +++ b/Mage.Sets/src/mage/cards/d/DoublingSeason.java @@ -31,6 +31,7 @@ import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; +import mage.abilities.effects.common.replacement.CreateTwiceThatManyTokensEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -51,7 +52,8 @@ public class DoublingSeason extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{G}"); // If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DoublingSeasonTokenEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CreateTwiceThatManyTokensEffect())); + // If an effect would place one or more counters on a permanent you control, it places twice that many of those counters on that permanent instead. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DoublingSeasonCounterEffect())); @@ -67,40 +69,6 @@ public class DoublingSeason extends CardImpl { } } -class DoublingSeasonTokenEffect extends ReplacementEffectImpl { - - public DoublingSeasonTokenEffect() { - super(Duration.WhileOnBattlefield, Outcome.Copy); - staticText = "If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead"; - } - - public DoublingSeasonTokenEffect(final DoublingSeasonTokenEffect effect) { - super(effect); - } - - @Override - public DoublingSeasonTokenEffect copy() { - return new DoublingSeasonTokenEffect(this); - } - - @Override - public boolean checksEventType(GameEvent event, Game game) { - return event.getType() == GameEvent.EventType.CREATE_TOKEN; - } - - @Override - public boolean applies(GameEvent event, Ability source, Game game) { - return event.getPlayerId().equals(source.getControllerId()); - } - - @Override - public boolean replaceEvent(GameEvent event, Ability source, Game game) { - event.setAmount(event.getAmount() * 2); - return false; - } - -} - class DoublingSeasonCounterEffect extends ReplacementEffectImpl { DoublingSeasonCounterEffect() { diff --git a/Mage.Sets/src/mage/cards/d/DoubtlessOne.java b/Mage.Sets/src/mage/cards/d/DoubtlessOne.java index 2dd399f240d..1a87170deba 100644 --- a/Mage.Sets/src/mage/cards/d/DoubtlessOne.java +++ b/Mage.Sets/src/mage/cards/d/DoubtlessOne.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsDamageGainLifeSourceTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/Douse.java b/Mage.Sets/src/mage/cards/d/Douse.java index 5482ecd398e..8d204baf413 100644 --- a/Mage.Sets/src/mage/cards/d/Douse.java +++ b/Mage.Sets/src/mage/cards/d/Douse.java @@ -27,19 +27,20 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CounterTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/d/DouseInGloom.java b/Mage.Sets/src/mage/cards/d/DouseInGloom.java index 9b30942040d..d61bc564525 100644 --- a/Mage.Sets/src/mage/cards/d/DouseInGloom.java +++ b/Mage.Sets/src/mage/cards/d/DouseInGloom.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/Dovescape.java b/Mage.Sets/src/mage/cards/d/Dovescape.java index 1ca4b64ed80..92e76a622fe 100644 --- a/Mage.Sets/src/mage/cards/d/Dovescape.java +++ b/Mage.Sets/src/mage/cards/d/Dovescape.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastAllTriggeredAbility; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.game.permanent.token.Token; import mage.game.stack.Spell; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DovinBaan.java b/Mage.Sets/src/mage/cards/d/DovinBaan.java index 6979c1b5385..24be763b9aa 100644 --- a/Mage.Sets/src/mage/cards/d/DovinBaan.java +++ b/Mage.Sets/src/mage/cards/d/DovinBaan.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -53,6 +52,8 @@ import mage.game.events.GameEvent.EventType; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DownDirty.java b/Mage.Sets/src/mage/cards/d/DownDirty.java index 85557a36f2d..fe4c76ced15 100644 --- a/Mage.Sets/src/mage/cards/d/DownDirty.java +++ b/Mage.Sets/src/mage/cards/d/DownDirty.java @@ -25,28 +25,22 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.d; import java.util.UUID; -import mage.constants.CardType; -import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; +import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.SpellAbilityType; import mage.target.TargetPlayer; import mage.target.common.TargetCardInYourGraveyard; -/** - * - * @author LevelX2 - */ - - public class DownDirty extends SplitCard { public DownDirty(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{B}","{2}{G}",true); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{B}", "{2}{G}", SpellAbilityType.SPLIT_FUSED); // Down // Target player discards two cards. diff --git a/Mage.Sets/src/mage/cards/d/Downdraft.java b/Mage.Sets/src/mage/cards/d/Downdraft.java index 3f0a27abfb5..18be536f403 100644 --- a/Mage.Sets/src/mage/cards/d/Downdraft.java +++ b/Mage.Sets/src/mage/cards/d/Downdraft.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DownhillCharge.java b/Mage.Sets/src/mage/cards/d/DownhillCharge.java index c12a0470512..b015c3b8b0c 100644 --- a/Mage.Sets/src/mage/cards/d/DownhillCharge.java +++ b/Mage.Sets/src/mage/cards/d/DownhillCharge.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/Downpour.java b/Mage.Sets/src/mage/cards/d/Downpour.java index 170b3d79f87..32943b81268 100644 --- a/Mage.Sets/src/mage/cards/d/Downpour.java +++ b/Mage.Sets/src/mage/cards/d/Downpour.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/Downsize.java b/Mage.Sets/src/mage/cards/d/Downsize.java index 75e46855cc8..73924e99ee7 100644 --- a/Mage.Sets/src/mage/cards/d/Downsize.java +++ b/Mage.Sets/src/mage/cards/d/Downsize.java @@ -27,21 +27,21 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.OverloadAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DowsingShaman.java b/Mage.Sets/src/mage/cards/d/DowsingShaman.java index 6207aed9c8a..4654d94a835 100644 --- a/Mage.Sets/src/mage/cards/d/DowsingShaman.java +++ b/Mage.Sets/src/mage/cards/d/DowsingShaman.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,11 +35,14 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/Draco.java b/Mage.Sets/src/mage/cards/d/Draco.java index d004576ac65..aa48c5727f7 100644 --- a/Mage.Sets/src/mage/cards/d/Draco.java +++ b/Mage.Sets/src/mage/cards/d/Draco.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -45,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author Simown diff --git a/Mage.Sets/src/mage/cards/d/DraconianCylix.java b/Mage.Sets/src/mage/cards/d/DraconianCylix.java index 071f47e65e6..ab1daf7d29e 100644 --- a/Mage.Sets/src/mage/cards/d/DraconianCylix.java +++ b/Mage.Sets/src/mage/cards/d/DraconianCylix.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardCardCost; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DraconicRoar.java b/Mage.Sets/src/mage/cards/d/DraconicRoar.java index 1ce30c3c266..57135017bb9 100644 --- a/Mage.Sets/src/mage/cards/d/DraconicRoar.java +++ b/Mage.Sets/src/mage/cards/d/DraconicRoar.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.OneShotEffect; @@ -48,6 +46,8 @@ import mage.target.common.TargetCardInHand; import mage.target.common.TargetCreaturePermanent; import mage.watchers.common.DragonOnTheBattlefieldWhileSpellWasCastWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Dracoplasm.java b/Mage.Sets/src/mage/cards/d/Dracoplasm.java index 8609d41e87e..9bc7f4baf76 100644 --- a/Mage.Sets/src/mage/cards/d/Dracoplasm.java +++ b/Mage.Sets/src/mage/cards/d/Dracoplasm.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,12 +39,7 @@ import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; @@ -56,6 +50,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DrafnasRestoration.java b/Mage.Sets/src/mage/cards/d/DrafnasRestoration.java index 29928428166..a6f5d71904c 100644 --- a/Mage.Sets/src/mage/cards/d/DrafnasRestoration.java +++ b/Mage.Sets/src/mage/cards/d/DrafnasRestoration.java @@ -27,17 +27,10 @@ */ package mage.cards.d; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.common.FilterArtifactCard; @@ -48,6 +41,10 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCardInGraveyard; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DragDown.java b/Mage.Sets/src/mage/cards/d/DragDown.java index daaa26256b1..557c5c34649 100644 --- a/Mage.Sets/src/mage/cards/d/DragDown.java +++ b/Mage.Sets/src/mage/cards/d/DragDown.java @@ -27,15 +27,16 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.dynamicvalue.common.DomainValue; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DragUnder.java b/Mage.Sets/src/mage/cards/d/DragUnder.java index 3fc832bad3e..596443dae0f 100644 --- a/Mage.Sets/src/mage/cards/d/DragUnder.java +++ b/Mage.Sets/src/mage/cards/d/DragUnder.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DragonAppeasement.java b/Mage.Sets/src/mage/cards/d/DragonAppeasement.java index 4af38e92122..c5c4b638106 100644 --- a/Mage.Sets/src/mage/cards/d/DragonAppeasement.java +++ b/Mage.Sets/src/mage/cards/d/DragonAppeasement.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DragonArch.java b/Mage.Sets/src/mage/cards/d/DragonArch.java index 66441fa4abe..0a7b8999cfe 100644 --- a/Mage.Sets/src/mage/cards/d/DragonArch.java +++ b/Mage.Sets/src/mage/cards/d/DragonArch.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.MulticoloredPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DragonBellMonk.java b/Mage.Sets/src/mage/cards/d/DragonBellMonk.java index e947c738bb6..61668299c95 100644 --- a/Mage.Sets/src/mage/cards/d/DragonBellMonk.java +++ b/Mage.Sets/src/mage/cards/d/DragonBellMonk.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.VigilanceAbility; import mage.abilities.keyword.ProwessAbility; +import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DragonBlood.java b/Mage.Sets/src/mage/cards/d/DragonBlood.java index 16f8c315a35..3b0111fdf80 100644 --- a/Mage.Sets/src/mage/cards/d/DragonBlood.java +++ b/Mage.Sets/src/mage/cards/d/DragonBlood.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -37,10 +34,13 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DragonBreath.java b/Mage.Sets/src/mage/cards/d/DragonBreath.java index 53c6014f87a..e2a63691683 100644 --- a/Mage.Sets/src/mage/cards/d/DragonBreath.java +++ b/Mage.Sets/src/mage/cards/d/DragonBreath.java @@ -27,8 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -42,14 +42,7 @@ import mage.abilities.keyword.HasteAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; @@ -58,6 +51,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 @@ -66,7 +61,7 @@ public class DragonBreath extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature with converted mana cost 6 or greater"); static { - filter.add(new ConvertedManaCostPredicate(ComparisonType.GreaterThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 5)); } public DragonBreath(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/d/DragonBroodmother.java b/Mage.Sets/src/mage/cards/d/DragonBroodmother.java index f1977ced4c7..de311fd6100 100644 --- a/Mage.Sets/src/mage/cards/d/DragonBroodmother.java +++ b/Mage.Sets/src/mage/cards/d/DragonBroodmother.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DragonEgg.java b/Mage.Sets/src/mage/cards/d/DragonEgg.java index c73a9b9246e..d7f4cdfeedb 100644 --- a/Mage.Sets/src/mage/cards/d/DragonEgg.java +++ b/Mage.Sets/src/mage/cards/d/DragonEgg.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DragonEngine.java b/Mage.Sets/src/mage/cards/d/DragonEngine.java index 233dd71036f..25c73969488 100644 --- a/Mage.Sets/src/mage/cards/d/DragonEngine.java +++ b/Mage.Sets/src/mage/cards/d/DragonEngine.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/d/DragonFangs.java b/Mage.Sets/src/mage/cards/d/DragonFangs.java index e12fcc75503..e449959c79d 100644 --- a/Mage.Sets/src/mage/cards/d/DragonFangs.java +++ b/Mage.Sets/src/mage/cards/d/DragonFangs.java @@ -27,8 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.OneShotEffect; @@ -40,13 +40,7 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; -import mage.filter.Filter; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; @@ -55,6 +49,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -63,7 +59,7 @@ public class DragonFangs extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature with converted mana cost 6 or greater"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 5)); } public DragonFangs(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/d/DragonFodder.java b/Mage.Sets/src/mage/cards/d/DragonFodder.java index 04f743bc7f1..58f49e488b6 100644 --- a/Mage.Sets/src/mage/cards/d/DragonFodder.java +++ b/Mage.Sets/src/mage/cards/d/DragonFodder.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.GoblinToken; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DragonGrip.java b/Mage.Sets/src/mage/cards/d/DragonGrip.java index 320f1cf7019..47342ce2c45 100644 --- a/Mage.Sets/src/mage/cards/d/DragonGrip.java +++ b/Mage.Sets/src/mage/cards/d/DragonGrip.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.FerociousCondition; @@ -42,14 +41,12 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DragonHatchling.java b/Mage.Sets/src/mage/cards/d/DragonHatchling.java index e34cec227a9..7b93d6ca622 100644 --- a/Mage.Sets/src/mage/cards/d/DragonHatchling.java +++ b/Mage.Sets/src/mage/cards/d/DragonHatchling.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +34,11 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DragonHunter.java b/Mage.Sets/src/mage/cards/d/DragonHunter.java index d932b0237c0..195d243a32a 100644 --- a/Mage.Sets/src/mage/cards/d/DragonHunter.java +++ b/Mage.Sets/src/mage/cards/d/DragonHunter.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -35,14 +34,12 @@ import mage.abilities.effects.AsThoughEffectImpl; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.game.Game; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DragonMage.java b/Mage.Sets/src/mage/cards/d/DragonMage.java index df56bb3588b..0ed01d6fa2f 100644 --- a/Mage.Sets/src/mage/cards/d/DragonMage.java +++ b/Mage.Sets/src/mage/cards/d/DragonMage.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DragonMantle.java b/Mage.Sets/src/mage/cards/d/DragonMantle.java index 911627e9ac2..d18ac8d6a6f 100644 --- a/Mage.Sets/src/mage/cards/d/DragonMantle.java +++ b/Mage.Sets/src/mage/cards/d/DragonMantle.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -40,14 +39,12 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DragonMask.java b/Mage.Sets/src/mage/cards/d/DragonMask.java index 7bf95f9b845..3f9d3e3b97c 100644 --- a/Mage.Sets/src/mage/cards/d/DragonMask.java +++ b/Mage.Sets/src/mage/cards/d/DragonMask.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -44,6 +43,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/d/DragonRoost.java b/Mage.Sets/src/mage/cards/d/DragonRoost.java index 107a4fabf88..caa20eb1379 100644 --- a/Mage.Sets/src/mage/cards/d/DragonRoost.java +++ b/Mage.Sets/src/mage/cards/d/DragonRoost.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.game.permanent.token.DragonToken2; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DragonScales.java b/Mage.Sets/src/mage/cards/d/DragonScales.java index 63cf3794c1b..33c255ba8c9 100644 --- a/Mage.Sets/src/mage/cards/d/DragonScales.java +++ b/Mage.Sets/src/mage/cards/d/DragonScales.java @@ -27,8 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.OneShotEffect; @@ -40,13 +40,7 @@ import mage.abilities.keyword.VigilanceAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; -import mage.filter.Filter; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; @@ -55,6 +49,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -63,7 +59,7 @@ public class DragonScales extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature with converted mana cost 6 or greater"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 5)); } public DragonScales(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/d/DragonScarredBear.java b/Mage.Sets/src/mage/cards/d/DragonScarredBear.java index 5323b6518e0..a446cd654da 100644 --- a/Mage.Sets/src/mage/cards/d/DragonScarredBear.java +++ b/Mage.Sets/src/mage/cards/d/DragonScarredBear.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.AbilityWord; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DragonShadow.java b/Mage.Sets/src/mage/cards/d/DragonShadow.java index 180d0b81361..544177d9b7e 100644 --- a/Mage.Sets/src/mage/cards/d/DragonShadow.java +++ b/Mage.Sets/src/mage/cards/d/DragonShadow.java @@ -27,8 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.OneShotEffect; @@ -40,13 +40,7 @@ import mage.abilities.keyword.FearAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; -import mage.filter.Filter; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; @@ -55,6 +49,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -63,7 +59,7 @@ public class DragonShadow extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature with converted mana cost 6 or greater"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 5)); } public DragonShadow(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/d/DragonStyleTwins.java b/Mage.Sets/src/mage/cards/d/DragonStyleTwins.java index a581bec601a..8cd38169aea 100644 --- a/Mage.Sets/src/mage/cards/d/DragonStyleTwins.java +++ b/Mage.Sets/src/mage/cards/d/DragonStyleTwins.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.DoubleStrikeAbility; import mage.abilities.keyword.ProwessAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DragonTempest.java b/Mage.Sets/src/mage/cards/d/DragonTempest.java index fb585ca392c..06264220b72 100644 --- a/Mage.Sets/src/mage/cards/d/DragonTempest.java +++ b/Mage.Sets/src/mage/cards/d/DragonTempest.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.effects.Effect; @@ -37,11 +36,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; @@ -51,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DragonThroneOfTarkir.java b/Mage.Sets/src/mage/cards/d/DragonThroneOfTarkir.java index d00efe30898..c1a007eacba 100644 --- a/Mage.Sets/src/mage/cards/d/DragonThroneOfTarkir.java +++ b/Mage.Sets/src/mage/cards/d/DragonThroneOfTarkir.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -44,13 +43,11 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +56,7 @@ public class DragonThroneOfTarkir extends CardImpl { public DragonThroneOfTarkir(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Equipment"); // Equipped creature has defender and "{2}, {T}: Other creatures you control gain trample and get +X/+X until end of turn, where X is this creature's power." diff --git a/Mage.Sets/src/mage/cards/d/DragonTyrant.java b/Mage.Sets/src/mage/cards/d/DragonTyrant.java index a398e1c4952..64f38768d3e 100644 --- a/Mage.Sets/src/mage/cards/d/DragonTyrant.java +++ b/Mage.Sets/src/mage/cards/d/DragonTyrant.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DragonWhelp.java b/Mage.Sets/src/mage/cards/d/DragonWhelp.java index 8951f353b5f..12670f14b2a 100644 --- a/Mage.Sets/src/mage/cards/d/DragonWhelp.java +++ b/Mage.Sets/src/mage/cards/d/DragonWhelp.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.ActivationInfo; @@ -47,6 +46,8 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DragonWhisperer.java b/Mage.Sets/src/mage/cards/d/DragonWhisperer.java index 8683df206ea..d78722a4170 100644 --- a/Mage.Sets/src/mage/cards/d/DragonWhisperer.java +++ b/Mage.Sets/src/mage/cards/d/DragonWhisperer.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -46,6 +45,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.game.permanent.token.DragonToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DragonWings.java b/Mage.Sets/src/mage/cards/d/DragonWings.java index 5a83ea34613..ccc3e2232c2 100644 --- a/Mage.Sets/src/mage/cards/d/DragonWings.java +++ b/Mage.Sets/src/mage/cards/d/DragonWings.java @@ -27,8 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,12 +41,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; -import mage.filter.Filter; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; @@ -55,6 +50,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -63,7 +60,7 @@ public class DragonWings extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature with converted mana cost 6 or greater"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 5)); } public DragonWings(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/d/DragonlairSpider.java b/Mage.Sets/src/mage/cards/d/DragonlairSpider.java index dd917237657..158341deb83 100644 --- a/Mage.Sets/src/mage/cards/d/DragonlairSpider.java +++ b/Mage.Sets/src/mage/cards/d/DragonlairSpider.java @@ -27,16 +27,17 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SpellCastOpponentTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.InsectToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DragonloftIdol.java b/Mage.Sets/src/mage/cards/d/DragonloftIdol.java index 0c4f4f37bdf..003ae075b61 100644 --- a/Mage.Sets/src/mage/cards/d/DragonloftIdol.java +++ b/Mage.Sets/src/mage/cards/d/DragonloftIdol.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -48,6 +47,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DragonlordAtarka.java b/Mage.Sets/src/mage/cards/d/DragonlordAtarka.java index 14238939da4..91ec577d28f 100644 --- a/Mage.Sets/src/mage/cards/d/DragonlordAtarka.java +++ b/Mage.Sets/src/mage/cards/d/DragonlordAtarka.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,11 +36,14 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterCreatureOrPlaneswalkerPermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreatureOrPlaneswalkerAmount; +import java.util.UUID; + /** * * @author fireshoes @@ -56,7 +58,7 @@ public class DragonlordAtarka extends CardImpl { public DragonlordAtarka(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elder"); this.subtype.add("Dragon"); this.power = new MageInt(8); diff --git a/Mage.Sets/src/mage/cards/d/DragonlordDromoka.java b/Mage.Sets/src/mage/cards/d/DragonlordDromoka.java index bbd48042228..8ea4586564b 100644 --- a/Mage.Sets/src/mage/cards/d/DragonlordDromoka.java +++ b/Mage.Sets/src/mage/cards/d/DragonlordDromoka.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CantBeCounteredAbility; @@ -37,13 +36,12 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,7 +50,7 @@ public class DragonlordDromoka extends CardImpl { public DragonlordDromoka(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{W}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Elder"); this.subtype.add("Dragon"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/d/DragonlordKolaghan.java b/Mage.Sets/src/mage/cards/d/DragonlordKolaghan.java index 41610767341..595cb73a7be 100644 --- a/Mage.Sets/src/mage/cards/d/DragonlordKolaghan.java +++ b/Mage.Sets/src/mage/cards/d/DragonlordKolaghan.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -49,6 +49,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +59,7 @@ public class DragonlordKolaghan extends CardImpl { public DragonlordKolaghan(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elder"); this.subtype.add("Dragon"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/d/DragonlordOjutai.java b/Mage.Sets/src/mage/cards/d/DragonlordOjutai.java index 50571ff4330..09865581049 100644 --- a/Mage.Sets/src/mage/cards/d/DragonlordOjutai.java +++ b/Mage.Sets/src/mage/cards/d/DragonlordOjutai.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,9 +42,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; +import java.util.UUID; + /** * * @author fireshoes @@ -54,7 +56,7 @@ public class DragonlordOjutai extends CardImpl { public DragonlordOjutai(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elder"); this.subtype.add("Dragon"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/d/DragonlordSilumgar.java b/Mage.Sets/src/mage/cards/d/DragonlordSilumgar.java index 65fb2f0c655..fa42332d200 100644 --- a/Mage.Sets/src/mage/cards/d/DragonlordSilumgar.java +++ b/Mage.Sets/src/mage/cards/d/DragonlordSilumgar.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,6 +43,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; @@ -51,6 +51,8 @@ import mage.target.common.TargetCreatureOrPlaneswalker; import mage.util.CardUtil; import mage.util.GameLog; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -59,7 +61,7 @@ public class DragonlordSilumgar extends CardImpl { public DragonlordSilumgar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elder"); this.subtype.add("Dragon"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/d/DragonlordsPrerogative.java b/Mage.Sets/src/mage/cards/d/DragonlordsPrerogative.java index eddbb7ff9a8..0bfc8768dbe 100644 --- a/Mage.Sets/src/mage/cards/d/DragonlordsPrerogative.java +++ b/Mage.Sets/src/mage/cards/d/DragonlordsPrerogative.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; @@ -50,6 +49,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DragonlordsServant.java b/Mage.Sets/src/mage/cards/d/DragonlordsServant.java index 4c1cb335d59..68ea8329618 100644 --- a/Mage.Sets/src/mage/cards/d/DragonlordsServant.java +++ b/Mage.Sets/src/mage/cards/d/DragonlordsServant.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; @@ -38,6 +37,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DragonmasterOutcast.java b/Mage.Sets/src/mage/cards/d/DragonmasterOutcast.java index b3fd955144d..c123b497045 100644 --- a/Mage.Sets/src/mage/cards/d/DragonmasterOutcast.java +++ b/Mage.Sets/src/mage/cards/d/DragonmasterOutcast.java @@ -27,11 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.abilities.CountType; -import mage.constants.CardType; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -39,11 +36,14 @@ import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.permanent.token.DragonToken2; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -66,7 +66,7 @@ public class DragonmasterOutcast extends CardImpl { // At the beginning of your upkeep, if you control six or more lands, create a 5/5 red Dragon creature token with flying. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new CreateTokenEffect(new DragonToken2(), 1), TargetController.YOU, false); - this.addAbility(new ConditionalTriggeredAbility(ability, new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 5), "At the beginning of your upkeep, if you control six or more lands, create a 5/5 red Dragon creature token with flying.")); + this.addAbility(new ConditionalTriggeredAbility(ability, new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 5), "At the beginning of your upkeep, if you control six or more lands, create a 5/5 red Dragon creature token with flying.")); } public DragonmasterOutcast(final DragonmasterOutcast card) { diff --git a/Mage.Sets/src/mage/cards/d/Dragonrage.java b/Mage.Sets/src/mage/cards/d/Dragonrage.java index 0bafcd6e74f..c78d485bd8a 100644 --- a/Mage.Sets/src/mage/cards/d/Dragonrage.java +++ b/Mage.Sets/src/mage/cards/d/Dragonrage.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AttackingPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DragonsClaw.java b/Mage.Sets/src/mage/cards/d/DragonsClaw.java index f259878511b..898c7653a3e 100644 --- a/Mage.Sets/src/mage/cards/d/DragonsClaw.java +++ b/Mage.Sets/src/mage/cards/d/DragonsClaw.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/DragonsEyeSavants.java b/Mage.Sets/src/mage/cards/d/DragonsEyeSavants.java index bca366afcb7..5a76259f5e3 100644 --- a/Mage.Sets/src/mage/cards/d/DragonsEyeSavants.java +++ b/Mage.Sets/src/mage/cards/d/DragonsEyeSavants.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCardInHand; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DragonsEyeSentry.java b/Mage.Sets/src/mage/cards/d/DragonsEyeSentry.java index 2f15fb94bc1..845c61da884 100644 --- a/Mage.Sets/src/mage/cards/d/DragonsEyeSentry.java +++ b/Mage.Sets/src/mage/cards/d/DragonsEyeSentry.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.FirstStrikeAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DragonsHerald.java b/Mage.Sets/src/mage/cards/d/DragonsHerald.java index 2964d12b3e8..6f4abbf5d89 100644 --- a/Mage.Sets/src/mage/cards/d/DragonsHerald.java +++ b/Mage.Sets/src/mage/cards/d/DragonsHerald.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -40,6 +37,8 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.NamePredicate; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DragonscaleBoon.java b/Mage.Sets/src/mage/cards/d/DragonscaleBoon.java index 06d352b110b..158d750338a 100644 --- a/Mage.Sets/src/mage/cards/d/DragonscaleBoon.java +++ b/Mage.Sets/src/mage/cards/d/DragonscaleBoon.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DragonscaleGeneral.java b/Mage.Sets/src/mage/cards/d/DragonscaleGeneral.java index a97c8ee8f32..de7434480fe 100644 --- a/Mage.Sets/src/mage/cards/d/DragonscaleGeneral.java +++ b/Mage.Sets/src/mage/cards/d/DragonscaleGeneral.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -40,6 +39,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.TappedPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Dragonshift.java b/Mage.Sets/src/mage/cards/d/Dragonshift.java index df4dc6b6f1a..83dd1bbe18c 100644 --- a/Mage.Sets/src/mage/cards/d/Dragonshift.java +++ b/Mage.Sets/src/mage/cards/d/Dragonshift.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; @@ -48,6 +47,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.permanent.token.Token; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DragonskullSummit.java b/Mage.Sets/src/mage/cards/d/DragonskullSummit.java index 30220336050..e16e247e816 100644 --- a/Mage.Sets/src/mage/cards/d/DragonskullSummit.java +++ b/Mage.Sets/src/mage/cards/d/DragonskullSummit.java @@ -28,24 +28,24 @@ package mage.cards.d; -import java.util.UUID; - -import mage.abilities.CountType; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; -import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.condition.InvertCondition; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -61,7 +61,7 @@ public class DragonskullSummit extends CardImpl { public DragonskullSummit(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0)); String abilityText = "tapped unless you control a Swamp or a Mountain"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlackManaAbility()); diff --git a/Mage.Sets/src/mage/cards/d/DragonsoulKnight.java b/Mage.Sets/src/mage/cards/d/DragonsoulKnight.java index 6d964183ea0..e4ba098dd9b 100644 --- a/Mage.Sets/src/mage/cards/d/DragonsoulKnight.java +++ b/Mage.Sets/src/mage/cards/d/DragonsoulKnight.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,15 +40,12 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DragonspeakerShaman.java b/Mage.Sets/src/mage/cards/d/DragonspeakerShaman.java index 9b78e3498c3..c52396b878a 100644 --- a/Mage.Sets/src/mage/cards/d/DragonspeakerShaman.java +++ b/Mage.Sets/src/mage/cards/d/DragonspeakerShaman.java @@ -27,17 +27,18 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/Dragonstalker.java b/Mage.Sets/src/mage/cards/d/Dragonstalker.java index 810fe227264..4eabf83f1e8 100644 --- a/Mage.Sets/src/mage/cards/d/Dragonstalker.java +++ b/Mage.Sets/src/mage/cards/d/Dragonstalker.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.ProtectionAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.FilterPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Dragonstorm.java b/Mage.Sets/src/mage/cards/d/Dragonstorm.java index 0231d94784e..ab637eeb29e 100644 --- a/Mage.Sets/src/mage/cards/d/Dragonstorm.java +++ b/Mage.Sets/src/mage/cards/d/Dragonstorm.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.abilities.keyword.StormAbility; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DrainLife.java b/Mage.Sets/src/mage/cards/d/DrainLife.java index 3fda51e13b1..f3c0d0dd209 100644 --- a/Mage.Sets/src/mage/cards/d/DrainLife.java +++ b/Mage.Sets/src/mage/cards/d/DrainLife.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.costs.VariableCost; import mage.abilities.costs.mana.VariableManaCost; @@ -43,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/d/DrainTheWell.java b/Mage.Sets/src/mage/cards/d/DrainTheWell.java index 44a1ac51499..5850840d971 100644 --- a/Mage.Sets/src/mage/cards/d/DrainTheWell.java +++ b/Mage.Sets/src/mage/cards/d/DrainTheWell.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DrainingWhelk.java b/Mage.Sets/src/mage/cards/d/DrainingWhelk.java index 31258222f2b..55955d89ee5 100644 --- a/Mage.Sets/src/mage/cards/d/DrainingWhelk.java +++ b/Mage.Sets/src/mage/cards/d/DrainingWhelk.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.stack.Spell; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DrainpipeVermin.java b/Mage.Sets/src/mage/cards/d/DrainpipeVermin.java index 1cf4a3db661..fe3dfafd21f 100644 --- a/Mage.Sets/src/mage/cards/d/DrainpipeVermin.java +++ b/Mage.Sets/src/mage/cards/d/DrainpipeVermin.java @@ -27,19 +27,20 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.costs.mana.ColoredManaCost; -import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.effects.common.DoIfCostPaid; +import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DrakeFamiliar.java b/Mage.Sets/src/mage/cards/d/DrakeFamiliar.java index 91e28e49318..ad6cc553304 100644 --- a/Mage.Sets/src/mage/cards/d/DrakeFamiliar.java +++ b/Mage.Sets/src/mage/cards/d/DrakeFamiliar.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -45,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/d/DrakeHatchling.java b/Mage.Sets/src/mage/cards/d/DrakeHatchling.java index 3fe4047f080..2749d3278f9 100644 --- a/Mage.Sets/src/mage/cards/d/DrakeHatchling.java +++ b/Mage.Sets/src/mage/cards/d/DrakeHatchling.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DrakeHaven.java b/Mage.Sets/src/mage/cards/d/DrakeHaven.java new file mode 100644 index 00000000000..2700bc47e8d --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DrakeHaven.java @@ -0,0 +1,65 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import java.util.UUID; +import mage.abilities.common.CycleOrDiscardControllerTriggeredAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.DoIfCostPaid; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.game.permanent.token.DrakeToken; + +/** + * + * @author fireshoes + */ +public class DrakeHaven extends CardImpl { + + public DrakeHaven(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{U}"); + + // When you cycle or discard a card, you may pay {1}. If you do, create a 2/2 blue Drake creature token with flying. + this.addAbility(new CycleOrDiscardControllerTriggeredAbility( + new DoIfCostPaid( + new CreateTokenEffect(new DrakeToken()), + new GenericManaCost(1))) + ); + } + + public DrakeHaven(final DrakeHaven card) { + super(card); + } + + @Override + public DrakeHaven copy() { + return new DrakeHaven(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/DrakeSkullCameo.java b/Mage.Sets/src/mage/cards/d/DrakeSkullCameo.java index 19dca75d1b2..45eb8d0d4a9 100644 --- a/Mage.Sets/src/mage/cards/d/DrakeSkullCameo.java +++ b/Mage.Sets/src/mage/cards/d/DrakeSkullCameo.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DrakeUmbra.java b/Mage.Sets/src/mage/cards/d/DrakeUmbra.java index 2b3c13013e9..7106c03baf9 100644 --- a/Mage.Sets/src/mage/cards/d/DrakeUmbra.java +++ b/Mage.Sets/src/mage/cards/d/DrakeUmbra.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -40,9 +37,12 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TotemArmorAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DrakestownForgotten.java b/Mage.Sets/src/mage/cards/d/DrakestownForgotten.java index 7f146c1d574..f1fd80fc137 100644 --- a/Mage.Sets/src/mage/cards/d/DrakestownForgotten.java +++ b/Mage.Sets/src/mage/cards/d/DrakestownForgotten.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -46,6 +45,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DrakewingKrasis.java b/Mage.Sets/src/mage/cards/d/DrakewingKrasis.java index aea1a63d2e2..a57c0615029 100644 --- a/Mage.Sets/src/mage/cards/d/DrakewingKrasis.java +++ b/Mage.Sets/src/mage/cards/d/DrakewingKrasis.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DralnuLichLord.java b/Mage.Sets/src/mage/cards/d/DralnuLichLord.java index 0f30b7257d0..e874d85be3a 100644 --- a/Mage.Sets/src/mage/cards/d/DralnuLichLord.java +++ b/Mage.Sets/src/mage/cards/d/DralnuLichLord.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,13 +39,7 @@ import mage.abilities.keyword.FlashbackAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TimingRule; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; @@ -56,6 +49,8 @@ import mage.game.events.DamageCreatureEvent; import mage.game.events.GameEvent; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author emerald000 @@ -71,7 +66,7 @@ public class DralnuLichLord extends CardImpl { public DralnuLichLord(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/d/DralnusCrusade.java b/Mage.Sets/src/mage/cards/d/DralnusCrusade.java index 87a90c7d674..6b43bc1b23a 100755 --- a/Mage.Sets/src/mage/cards/d/DralnusCrusade.java +++ b/Mage.Sets/src/mage/cards/d/DralnusCrusade.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -35,18 +34,13 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import static mage.constants.Layer.ColorChangingEffects_5; -import static mage.constants.Layer.TypeChangingEffects_4; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.StaticFilters; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author brikr diff --git a/Mage.Sets/src/mage/cards/d/DralnusPet.java b/Mage.Sets/src/mage/cards/d/DralnusPet.java index f50bc567783..2c254c5bad8 100644 --- a/Mage.Sets/src/mage/cards/d/DralnusPet.java +++ b/Mage.Sets/src/mage/cards/d/DralnusPet.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.SpellAbility; @@ -56,6 +55,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DramaticEntrance.java b/Mage.Sets/src/mage/cards/d/DramaticEntrance.java index 610c17b2bed..ce59ab13d67 100644 --- a/Mage.Sets/src/mage/cards/d/DramaticEntrance.java +++ b/Mage.Sets/src/mage/cards/d/DramaticEntrance.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.PutPermanentOnBattlefieldEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DramaticRescue.java b/Mage.Sets/src/mage/cards/d/DramaticRescue.java index 0bd0c626a86..5eb35aa2ce7 100644 --- a/Mage.Sets/src/mage/cards/d/DramaticRescue.java +++ b/Mage.Sets/src/mage/cards/d/DramaticRescue.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DramaticReversal.java b/Mage.Sets/src/mage/cards/d/DramaticReversal.java index 8b91aff5362..85a81244420 100644 --- a/Mage.Sets/src/mage/cards/d/DramaticReversal.java +++ b/Mage.Sets/src/mage/cards/d/DramaticReversal.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.UntapAllControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterNonlandPermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DranaKalastriaBloodchief.java b/Mage.Sets/src/mage/cards/d/DranaKalastriaBloodchief.java index bb9f54b4532..3a40814f8d2 100644 --- a/Mage.Sets/src/mage/cards/d/DranaKalastriaBloodchief.java +++ b/Mage.Sets/src/mage/cards/d/DranaKalastriaBloodchief.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,10 +39,14 @@ import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki @@ -54,7 +55,7 @@ public class DranaKalastriaBloodchief extends CardImpl { public DranaKalastriaBloodchief(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/d/DranaLiberatorOfMalakir.java b/Mage.Sets/src/mage/cards/d/DranaLiberatorOfMalakir.java index d673a23491a..3179edc6cf3 100644 --- a/Mage.Sets/src/mage/cards/d/DranaLiberatorOfMalakir.java +++ b/Mage.Sets/src/mage/cards/d/DranaLiberatorOfMalakir.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersAllEffect; @@ -36,11 +35,14 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.counters.CounterType; import mage.filter.common.FilterAttackingCreature; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -55,7 +57,7 @@ public class DranaLiberatorOfMalakir extends CardImpl { public DranaLiberatorOfMalakir(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.subtype.add("Ally"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/d/DranasChosen.java b/Mage.Sets/src/mage/cards/d/DranasChosen.java index 48b480f2d14..3d75436ad7c 100644 --- a/Mage.Sets/src/mage/cards/d/DranasChosen.java +++ b/Mage.Sets/src/mage/cards/d/DranasChosen.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.game.permanent.token.ZombieToken; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DranasEmissary.java b/Mage.Sets/src/mage/cards/d/DranasEmissary.java index d25ae4b9f3b..e15994873c5 100644 --- a/Mage.Sets/src/mage/cards/d/DranasEmissary.java +++ b/Mage.Sets/src/mage/cards/d/DranasEmissary.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DrasticRevelation.java b/Mage.Sets/src/mage/cards/d/DrasticRevelation.java index b9dc1c5fb6c..6c367e48bfe 100644 --- a/Mage.Sets/src/mage/cards/d/DrasticRevelation.java +++ b/Mage.Sets/src/mage/cards/d/DrasticRevelation.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -39,6 +38,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/Dread.java b/Mage.Sets/src/mage/cards/d/Dread.java index 1870f62fd9d..27cc72d043d 100644 --- a/Mage.Sets/src/mage/cards/d/Dread.java +++ b/Mage.Sets/src/mage/cards/d/Dread.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.PutIntoGraveFromAnywhereSourceTriggeredAbility; @@ -45,6 +44,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DreadCacodemon.java b/Mage.Sets/src/mage/cards/d/DreadCacodemon.java index 4e733a5ebca..5bdeae024d2 100644 --- a/Mage.Sets/src/mage/cards/d/DreadCacodemon.java +++ b/Mage.Sets/src/mage/cards/d/DreadCacodemon.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) */ @@ -70,7 +71,7 @@ public class DreadCacodemon extends CardImpl { // if you cast it from your hand, destroy all creatures your opponents control, then tap all other creatures you control. TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DestroyAllEffect(opponentsCreatures, false)); ability.addEffect(new TapAllEffect(otherCreaturesYouControl)); - this.addAbility(new ConditionalTriggeredAbility(ability, new CastFromHandSourceCondition(), + this.addAbility(new ConditionalTriggeredAbility(ability, CastFromHandSourceCondition.instance, "When {this} enters the battlefield, if you cast it from your hand, destroy all creatures your opponents control, then tap all other creatures you control."), new CastFromHandWatcher()); } diff --git a/Mage.Sets/src/mage/cards/d/DreadDefiler.java b/Mage.Sets/src/mage/cards/d/DreadDefiler.java index abfb2cf104b..449b09ca719 100644 --- a/Mage.Sets/src/mage/cards/d/DreadDefiler.java +++ b/Mage.Sets/src/mage/cards/d/DreadDefiler.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DreadDrone.java b/Mage.Sets/src/mage/cards/d/DreadDrone.java index 1ec9982755c..d135c0f45bb 100644 --- a/Mage.Sets/src/mage/cards/d/DreadDrone.java +++ b/Mage.Sets/src/mage/cards/d/DreadDrone.java @@ -28,15 +28,16 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.EldraziSpawnToken; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DreadOfNight.java b/Mage.Sets/src/mage/cards/d/DreadOfNight.java index 3b7146117ab..8b1fb414989 100644 --- a/Mage.Sets/src/mage/cards/d/DreadOfNight.java +++ b/Mage.Sets/src/mage/cards/d/DreadOfNight.java @@ -27,19 +27,19 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DreadReaper.java b/Mage.Sets/src/mage/cards/d/DreadReaper.java index 7220704d6c9..9886113f4f7 100644 --- a/Mage.Sets/src/mage/cards/d/DreadReaper.java +++ b/Mage.Sets/src/mage/cards/d/DreadReaper.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DreadReturn.java b/Mage.Sets/src/mage/cards/d/DreadReturn.java index 4a31b6639d8..216abb3de20 100644 --- a/Mage.Sets/src/mage/cards/d/DreadReturn.java +++ b/Mage.Sets/src/mage/cards/d/DreadReturn.java @@ -27,19 +27,20 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TimingRule; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TimingRule; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/d/DreadSlag.java b/Mage.Sets/src/mage/cards/d/DreadSlag.java index 4f0122cc1ec..060f33ee9b9 100644 --- a/Mage.Sets/src/mage/cards/d/DreadSlag.java +++ b/Mage.Sets/src/mage/cards/d/DreadSlag.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DreadSlaver.java b/Mage.Sets/src/mage/cards/d/DreadSlaver.java index 7e5a6d1e4d8..1eb4b926943 100644 --- a/Mage.Sets/src/mage/cards/d/DreadSlaver.java +++ b/Mage.Sets/src/mage/cards/d/DreadSlaver.java @@ -27,26 +27,23 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealtDamageAndDiedTriggeredAbility; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.continuous.BecomesBlackZombieAdditionEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** @@ -98,7 +95,7 @@ class DreadSlaverEffect extends OneShotEffect { if (card != null) { Zone currentZone = game.getState().getZone(card.getId()); if (card.putOntoBattlefield(game, currentZone, source.getSourceId(), source.getControllerId())) { - ContinuousEffect effect = new DreadSlaverContiniousEffect(); + ContinuousEffect effect = new BecomesBlackZombieAdditionEffect(); effect.setTargetPointer(new FixedTarget(card.getId())); game.addEffect(effect, source); return true; @@ -108,54 +105,3 @@ class DreadSlaverEffect extends OneShotEffect { } } - -class DreadSlaverContiniousEffect extends ContinuousEffectImpl { - - public DreadSlaverContiniousEffect() { - super(Duration.Custom, Outcome.Neutral); - staticText = "That creature is a black Zombie in addition to its other colors and types"; - } - - public DreadSlaverContiniousEffect(final DreadSlaverContiniousEffect effect) { - super(effect); - } - - @Override - public DreadSlaverContiniousEffect copy() { - return new DreadSlaverContiniousEffect(this); - } - - @Override - public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { - Permanent creature = game.getPermanent(targetPointer.getFirst(game, source)); - if (creature != null) { - switch (layer) { - case TypeChangingEffects_4: - if (sublayer == SubLayer.NA) { - creature.getSubtype(game).add("Zombie"); - } - break; - case ColorChangingEffects_5: - if (sublayer == SubLayer.NA) { - creature.getColor(game).setBlack(true); - } - break; - } - return true; - } else { - this.used = true; - } - return false; - } - - @Override - public boolean apply(Game game, Ability source) { - return false; - } - - @Override - public boolean hasLayer(Layer layer) { - return layer == Layer.ColorChangingEffects_5 || layer == Layer.TypeChangingEffects_4; - } - -} diff --git a/Mage.Sets/src/mage/cards/d/DreadSpecter.java b/Mage.Sets/src/mage/cards/d/DreadSpecter.java index 788ff32891f..066cf8ea541 100644 --- a/Mage.Sets/src/mage/cards/d/DreadSpecter.java +++ b/Mage.Sets/src/mage/cards/d/DreadSpecter.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author djbrez diff --git a/Mage.Sets/src/mage/cards/d/DreadStatuary.java b/Mage.Sets/src/mage/cards/d/DreadStatuary.java index 28370b65b20..fc773c1c88f 100644 --- a/Mage.Sets/src/mage/cards/d/DreadStatuary.java +++ b/Mage.Sets/src/mage/cards/d/DreadStatuary.java @@ -28,10 +28,6 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,8 +35,13 @@ import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/DreadSummons.java b/Mage.Sets/src/mage/cards/d/DreadSummons.java index c5b7cd45fcd..90d6eaa95a6 100644 --- a/Mage.Sets/src/mage/cards/d/DreadSummons.java +++ b/Mage.Sets/src/mage/cards/d/DreadSummons.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; @@ -42,6 +40,9 @@ import mage.game.Game; import mage.game.permanent.token.ZombieToken; import mage.players.Player; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DreadWanderer.java b/Mage.Sets/src/mage/cards/d/DreadWanderer.java new file mode 100644 index 00000000000..cf13c8f04e4 --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DreadWanderer.java @@ -0,0 +1,76 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.decorator.ConditionalActivatedAbility; +import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TimingRule; +import mage.constants.Zone; + +import java.util.UUID; +import mage.abilities.condition.common.HeckbentCondition; + +/** + * + * @author fireshoes + */ +public class DreadWanderer extends CardImpl { + + public DreadWanderer(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}"); + + this.subtype.add("Zombie"); + this.subtype.add("Jackal"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Dread Wanderer enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // {2}{B}: Return Dread Wanderer from your graveyard to the battlefield. + // Activate this ability only any time you could cast a sorcery and only if you have one or fewer cards in hand. + ConditionalActivatedAbility ability = new ConditionalActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(), new ManaCostsImpl("{2}{B}"), HeckbentCondition.instance); + ability.setTiming(TimingRule.SORCERY); + addAbility(ability); + } + + public DreadWanderer(final DreadWanderer card) { + super(card); + } + + @Override + public DreadWanderer copy() { + return new DreadWanderer(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/DreadWarlock.java b/Mage.Sets/src/mage/cards/d/DreadWarlock.java index 749e9be7f97..dd942e76491 100644 --- a/Mage.Sets/src/mage/cards/d/DreadWarlock.java +++ b/Mage.Sets/src/mage/cards/d/DreadWarlock.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleEvasionAbility; @@ -40,6 +39,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/Dreadbore.java b/Mage.Sets/src/mage/cards/d/Dreadbore.java index 2cc0626e8e9..e03d969c318 100644 --- a/Mage.Sets/src/mage/cards/d/Dreadbore.java +++ b/Mage.Sets/src/mage/cards/d/Dreadbore.java @@ -27,10 +27,10 @@ */ package mage.cards.d; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; diff --git a/Mage.Sets/src/mage/cards/d/DreadbringerLampads.java b/Mage.Sets/src/mage/cards/d/DreadbringerLampads.java index 8c8fdde077e..92be977439e 100644 --- a/Mage.Sets/src/mage/cards/d/DreadbringerLampads.java +++ b/Mage.Sets/src/mage/cards/d/DreadbringerLampads.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.abilityword.ConstellationAbility; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DreadshipReef.java b/Mage.Sets/src/mage/cards/d/DreadshipReef.java index c1cbcc2c16a..08c7c7b5929 100644 --- a/Mage.Sets/src/mage/cards/d/DreadshipReef.java +++ b/Mage.Sets/src/mage/cards/d/DreadshipReef.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveVariableCountersSourceCost; @@ -45,6 +44,8 @@ import mage.constants.ColoredManaSymbol; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Dreadwaters.java b/Mage.Sets/src/mage/cards/d/Dreadwaters.java index 138d93ab908..2446908dd3d 100644 --- a/Mage.Sets/src/mage/cards/d/Dreadwaters.java +++ b/Mage.Sets/src/mage/cards/d/Dreadwaters.java @@ -27,11 +27,11 @@ */ package mage.cards.d; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.permanent.ControllerPredicate; diff --git a/Mage.Sets/src/mage/cards/d/Dreadwing.java b/Mage.Sets/src/mage/cards/d/Dreadwing.java index 40b03501687..8cf0b1ad538 100644 --- a/Mage.Sets/src/mage/cards/d/Dreadwing.java +++ b/Mage.Sets/src/mage/cards/d/Dreadwing.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DreamCache.java b/Mage.Sets/src/mage/cards/d/DreamCache.java index aea8b3a573a..2a8a292930c 100644 --- a/Mage.Sets/src/mage/cards/d/DreamCache.java +++ b/Mage.Sets/src/mage/cards/d/DreamCache.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/d/DreamChisel.java b/Mage.Sets/src/mage/cards/d/DreamChisel.java index 372317c4684..abc1aaf198b 100644 --- a/Mage.Sets/src/mage/cards/d/DreamChisel.java +++ b/Mage.Sets/src/mage/cards/d/DreamChisel.java @@ -27,16 +27,17 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.other.FaceDownPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DreamFracture.java b/Mage.Sets/src/mage/cards/d/DreamFracture.java index bdd7f77cb9b..f57f1cf6357 100644 --- a/Mage.Sets/src/mage/cards/d/DreamFracture.java +++ b/Mage.Sets/src/mage/cards/d/DreamFracture.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -39,6 +38,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DreamHalls.java b/Mage.Sets/src/mage/cards/d/DreamHalls.java index 6cb8130c679..3226596aadb 100644 --- a/Mage.Sets/src/mage/cards/d/DreamHalls.java +++ b/Mage.Sets/src/mage/cards/d/DreamHalls.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.SourceIsSpellCondition; @@ -36,18 +35,15 @@ import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.AnotherCardPredicate; import mage.filter.predicate.mageobject.SharesColorWithSourcePredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DreamLeash.java b/Mage.Sets/src/mage/cards/d/DreamLeash.java index 809e8d331ce..15c14426c46 100644 --- a/Mage.Sets/src/mage/cards/d/DreamLeash.java +++ b/Mage.Sets/src/mage/cards/d/DreamLeash.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -43,6 +41,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author maxlebedev diff --git a/Mage.Sets/src/mage/cards/d/DreamPillager.java b/Mage.Sets/src/mage/cards/d/DreamPillager.java index 11d602be697..6beaff4cb19 100644 --- a/Mage.Sets/src/mage/cards/d/DreamPillager.java +++ b/Mage.Sets/src/mage/cards/d/DreamPillager.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -41,11 +39,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.DamagedPlayerEvent; import mage.game.events.GameEvent; @@ -53,6 +47,9 @@ import mage.game.events.GameEvent.EventType; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DreamProwler.java b/Mage.Sets/src/mage/cards/d/DreamProwler.java index f4f41bd41cc..8c11e458925 100644 --- a/Mage.Sets/src/mage/cards/d/DreamProwler.java +++ b/Mage.Sets/src/mage/cards/d/DreamProwler.java @@ -27,9 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalRestrictionEffect; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterAttackingCreature; +import java.util.UUID; + /** * * @author emerald000 @@ -54,7 +55,7 @@ public class DreamProwler extends CardImpl { this.toughness = new MageInt(5); // Dream Prowler can't be blocked as long as it's attacking alone. - Effect effect = new ConditionalRestrictionEffect(new CantBeBlockedSourceEffect(), new PermanentsOnTheBattlefieldCondition(new FilterAttackingCreature(), CountType.FEWER_THAN, 2)); + Effect effect = new ConditionalRestrictionEffect(new CantBeBlockedSourceEffect(), new PermanentsOnTheBattlefieldCondition(new FilterAttackingCreature(), ComparisonType.FEWER_THAN, 2)); effect.setText("{this} can't be blocked as long as it's attacking alone"); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); } diff --git a/Mage.Sets/src/mage/cards/d/DreamSalvage.java b/Mage.Sets/src/mage/cards/d/DreamSalvage.java index bff5a22e989..b7848104e0c 100644 --- a/Mage.Sets/src/mage/cards/d/DreamSalvage.java +++ b/Mage.Sets/src/mage/cards/d/DreamSalvage.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -44,6 +40,11 @@ import mage.players.Player; import mage.target.common.TargetOpponent; import mage.watchers.Watcher; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DreamStalker.java b/Mage.Sets/src/mage/cards/d/DreamStalker.java index 16381c96368..173fb1a4772 100644 --- a/Mage.Sets/src/mage/cards/d/DreamStalker.java +++ b/Mage.Sets/src/mage/cards/d/DreamStalker.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.ReturnToHandChosenControlledPermanentEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DreamThief.java b/Mage.Sets/src/mage/cards/d/DreamThief.java index 7e63448138b..47f357f2c90 100644 --- a/Mage.Sets/src/mage/cards/d/DreamThief.java +++ b/Mage.Sets/src/mage/cards/d/DreamThief.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.stack.Spell; import mage.watchers.common.SpellsCastWatcher; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DreamThrush.java b/Mage.Sets/src/mage/cards/d/DreamThrush.java index fa79453e0a2..a911c1fed5c 100644 --- a/Mage.Sets/src/mage/cards/d/DreamThrush.java +++ b/Mage.Sets/src/mage/cards/d/DreamThrush.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.target.Target; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DreamTwist.java b/Mage.Sets/src/mage/cards/d/DreamTwist.java index cd79a0dc48a..7fc61199628 100644 --- a/Mage.Sets/src/mage/cards/d/DreamTwist.java +++ b/Mage.Sets/src/mage/cards/d/DreamTwist.java @@ -27,12 +27,12 @@ */ package mage.cards.d; -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TimingRule; import mage.target.TargetPlayer; diff --git a/Mage.Sets/src/mage/cards/d/DreambornMuse.java b/Mage.Sets/src/mage/cards/d/DreambornMuse.java index 09d876c49a7..791adc9e06a 100644 --- a/Mage.Sets/src/mage/cards/d/DreambornMuse.java +++ b/Mage.Sets/src/mage/cards/d/DreambornMuse.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.dynamicvalue.common.CardsInTargetPlayerHandCount; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author cbrianhill diff --git a/Mage.Sets/src/mage/cards/d/Dreamcatcher.java b/Mage.Sets/src/mage/cards/d/Dreamcatcher.java index 58f859a98e5..a50450228e5 100644 --- a/Mage.Sets/src/mage/cards/d/Dreamcatcher.java +++ b/Mage.Sets/src/mage/cards/d/Dreamcatcher.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterSpiritOrArcaneCard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DreampodDruid.java b/Mage.Sets/src/mage/cards/d/DreampodDruid.java index 5dc74b143ab..155468ef5f2 100644 --- a/Mage.Sets/src/mage/cards/d/DreampodDruid.java +++ b/Mage.Sets/src/mage/cards/d/DreampodDruid.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.EnchantedSourceCondition; @@ -40,6 +39,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.game.permanent.token.SaprolingToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DreamsGrip.java b/Mage.Sets/src/mage/cards/d/DreamsGrip.java index 89b01436ab9..f1bed89c70a 100644 --- a/Mage.Sets/src/mage/cards/d/DreamsGrip.java +++ b/Mage.Sets/src/mage/cards/d/DreamsGrip.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.Effect; import mage.abilities.effects.common.TapTargetEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author michael.napoleon@gmail.com diff --git a/Mage.Sets/src/mage/cards/d/DreamscapeArtist.java b/Mage.Sets/src/mage/cards/d/DreamscapeArtist.java index fb93bb2771f..6e762015098 100644 --- a/Mage.Sets/src/mage/cards/d/DreamscapeArtist.java +++ b/Mage.Sets/src/mage/cards/d/DreamscapeArtist.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.filter.common.FilterControlledLandPermanent; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DreamspoilerWitches.java b/Mage.Sets/src/mage/cards/d/DreamspoilerWitches.java index 12c44dbb53b..2c4f1b7644f 100644 --- a/Mage.Sets/src/mage/cards/d/DreamspoilerWitches.java +++ b/Mage.Sets/src/mage/cards/d/DreamspoilerWitches.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DreamstoneHedron.java b/Mage.Sets/src/mage/cards/d/DreamstoneHedron.java index ad24e32f98f..cf181285ff3 100644 --- a/Mage.Sets/src/mage/cards/d/DreamstoneHedron.java +++ b/Mage.Sets/src/mage/cards/d/DreamstoneHedron.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.Mana; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/Dreamwinder.java b/Mage.Sets/src/mage/cards/d/Dreamwinder.java index 9d88f280b70..350ccb244f3 100644 --- a/Mage.Sets/src/mage/cards/d/Dreamwinder.java +++ b/Mage.Sets/src/mage/cards/d/Dreamwinder.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.target.Target; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author cbt33, LevelX2 (Walk the Aeons), KholdFuzion (Dandan) diff --git a/Mage.Sets/src/mage/cards/d/Dredge.java b/Mage.Sets/src/mage/cards/d/Dredge.java index 60247271134..a606db3c16e 100644 --- a/Mage.Sets/src/mage/cards/d/Dredge.java +++ b/Mage.Sets/src/mage/cards/d/Dredge.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.SacrificeControllerEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DregMangler.java b/Mage.Sets/src/mage/cards/d/DregMangler.java index 877ad1d4618..7f418c7ff65 100644 --- a/Mage.Sets/src/mage/cards/d/DregMangler.java +++ b/Mage.Sets/src/mage/cards/d/DregMangler.java @@ -27,13 +27,13 @@ */ package mage.cards.d; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.ScavengeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/d/DregReaver.java b/Mage.Sets/src/mage/cards/d/DregReaver.java index a8e2f352bf9..7f00e9b82ce 100644 --- a/Mage.Sets/src/mage/cards/d/DregReaver.java +++ b/Mage.Sets/src/mage/cards/d/DregReaver.java @@ -28,11 +28,12 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DregsOfSorrow.java b/Mage.Sets/src/mage/cards/d/DregsOfSorrow.java index aed15220212..2fb0f3d0661 100644 --- a/Mage.Sets/src/mage/cards/d/DregsOfSorrow.java +++ b/Mage.Sets/src/mage/cards/d/DregsOfSorrow.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.SpellAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DregscapeZombie.java b/Mage.Sets/src/mage/cards/d/DregscapeZombie.java index 45188e231bc..378d612d5ad 100644 --- a/Mage.Sets/src/mage/cards/d/DregscapeZombie.java +++ b/Mage.Sets/src/mage/cards/d/DregscapeZombie.java @@ -28,13 +28,14 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.UnearthAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/Drekavac.java b/Mage.Sets/src/mage/cards/d/Drekavac.java index 19e54acc572..4c526b0f846 100644 --- a/Mage.Sets/src/mage/cards/d/Drekavac.java +++ b/Mage.Sets/src/mage/cards/d/Drekavac.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.common.DiscardTargetCost; @@ -40,6 +39,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/Drelnoch.java b/Mage.Sets/src/mage/cards/d/Drelnoch.java index ce760601851..feef97e9626 100644 --- a/Mage.Sets/src/mage/cards/d/Drelnoch.java +++ b/Mage.Sets/src/mage/cards/d/Drelnoch.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesBlockedTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DriftOfPhantasms.java b/Mage.Sets/src/mage/cards/d/DriftOfPhantasms.java index e4f76f4bf73..53afc15eba4 100644 --- a/Mage.Sets/src/mage/cards/d/DriftOfPhantasms.java +++ b/Mage.Sets/src/mage/cards/d/DriftOfPhantasms.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TransmuteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DrifterIlDal.java b/Mage.Sets/src/mage/cards/d/DrifterIlDal.java index 9b222817f88..10f51cc3d95 100644 --- a/Mage.Sets/src/mage/cards/d/DrifterIlDal.java +++ b/Mage.Sets/src/mage/cards/d/DrifterIlDal.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DriftingDjinn.java b/Mage.Sets/src/mage/cards/d/DriftingDjinn.java index 9709ec04dfa..0c72e28c4b2 100644 --- a/Mage.Sets/src/mage/cards/d/DriftingDjinn.java +++ b/Mage.Sets/src/mage/cards/d/DriftingDjinn.java @@ -28,9 +28,6 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,8 +36,11 @@ import mage.abilities.keyword.CyclingAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/d/DriftingMeadow.java b/Mage.Sets/src/mage/cards/d/DriftingMeadow.java index 09466ce06ff..53ad4549cef 100644 --- a/Mage.Sets/src/mage/cards/d/DriftingMeadow.java +++ b/Mage.Sets/src/mage/cards/d/DriftingMeadow.java @@ -29,14 +29,15 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.CyclingAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DriftingShade.java b/Mage.Sets/src/mage/cards/d/DriftingShade.java index fcbd3e38595..ca40b1bb0ab 100644 --- a/Mage.Sets/src/mage/cards/d/DriftingShade.java +++ b/Mage.Sets/src/mage/cards/d/DriftingShade.java @@ -28,9 +28,6 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; @@ -38,6 +35,12 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DrillSkimmer.java b/Mage.Sets/src/mage/cards/d/DrillSkimmer.java index 0a222ad25df..b2cbfb47c36 100644 --- a/Mage.Sets/src/mage/cards/d/DrillSkimmer.java +++ b/Mage.Sets/src/mage/cards/d/DrillSkimmer.java @@ -27,9 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -46,6 +45,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author wetterlicht @@ -68,7 +69,7 @@ public class DrillSkimmer extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); // Drill-Skimmer has shroud as long as you control another artifact creature. - Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0); + Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(ShroudAbility.getInstance(), Duration.WhileOnBattlefield), condition, "{this} has shroud as long as you control another artifact creature."))); diff --git a/Mage.Sets/src/mage/cards/d/DrippingDead.java b/Mage.Sets/src/mage/cards/d/DrippingDead.java index f4191f4d099..153ee379cae 100644 --- a/Mage.Sets/src/mage/cards/d/DrippingDead.java +++ b/Mage.Sets/src/mage/cards/d/DrippingDead.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CantBlockAbility; import mage.abilities.common.DealsCombatDamageToACreatureTriggeredAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DrippingTongueZubera.java b/Mage.Sets/src/mage/cards/d/DrippingTongueZubera.java index a6a5fff2140..00db86c5842 100644 --- a/Mage.Sets/src/mage/cards/d/DrippingTongueZubera.java +++ b/Mage.Sets/src/mage/cards/d/DrippingTongueZubera.java @@ -28,18 +28,18 @@ package mage.cards.d; -import java.util.UUID; - -import mage.abilities.dynamicvalue.common.ZuberasDiedDynamicValue; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.dynamicvalue.common.ZuberasDiedDynamicValue; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.SpiritToken; import mage.watchers.common.ZuberasDiedWatcher; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DriverOfTheDead.java b/Mage.Sets/src/mage/cards/d/DriverOfTheDead.java index c42eaeff045..876f0a6ed5e 100644 --- a/Mage.Sets/src/mage/cards/d/DriverOfTheDead.java +++ b/Mage.Sets/src/mage/cards/d/DriverOfTheDead.java @@ -27,14 +27,14 @@ */ package mage.cards.d; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.Target; @@ -50,7 +50,7 @@ public class DriverOfTheDead extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("creature card with converted mana cost 2 or less from your graveyard to the battlefield"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); } public DriverOfTheDead(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/d/DrogskolCaptain.java b/Mage.Sets/src/mage/cards/d/DrogskolCaptain.java index 1ec1cef2b6f..25d72826830 100644 --- a/Mage.Sets/src/mage/cards/d/DrogskolCaptain.java +++ b/Mage.Sets/src/mage/cards/d/DrogskolCaptain.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -38,11 +35,14 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DrogskolCavalry.java b/Mage.Sets/src/mage/cards/d/DrogskolCavalry.java index 58c8eb82246..cf84bd56837 100644 --- a/Mage.Sets/src/mage/cards/d/DrogskolCavalry.java +++ b/Mage.Sets/src/mage/cards/d/DrogskolCavalry.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.permanent.token.SpiritWhiteToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DrogskolReaver.java b/Mage.Sets/src/mage/cards/d/DrogskolReaver.java index 8cd22c101a1..28c89d548ba 100644 --- a/Mage.Sets/src/mage/cards/d/DrogskolReaver.java +++ b/Mage.Sets/src/mage/cards/d/DrogskolReaver.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DrogskolShieldmate.java b/Mage.Sets/src/mage/cards/d/DrogskolShieldmate.java index e203f56866e..7f43192495a 100644 --- a/Mage.Sets/src/mage/cards/d/DrogskolShieldmate.java +++ b/Mage.Sets/src/mage/cards/d/DrogskolShieldmate.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DroidCommando.java b/Mage.Sets/src/mage/cards/d/DroidCommando.java index 550a9e55c6d..919933faf12 100644 --- a/Mage.Sets/src/mage/cards/d/DroidCommando.java +++ b/Mage.Sets/src/mage/cards/d/DroidCommando.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/DroidFactory.java b/Mage.Sets/src/mage/cards/d/DroidFactory.java index c28dc7a279e..929ebbaff08 100644 --- a/Mage.Sets/src/mage/cards/d/DroidFactory.java +++ b/Mage.Sets/src/mage/cards/d/DroidFactory.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.ArrayList; -import java.util.UUID; import mage.MageObject; import mage.abilities.ActivatedAbilityImpl; import mage.abilities.costs.common.SacrificeSourceCost; @@ -39,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicate; @@ -48,6 +47,9 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.ArrayList; +import java.util.UUID; + /** * * @author Styxo @@ -91,7 +93,7 @@ public class DroidFactory extends CardImpl { subtypePredicates.add(new SubtypePredicate("Plains")); subtypePredicates.add(new SubtypePredicate("Island")); filter.add(Predicates.or(subtypePredicates)); - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); TargetCardInLibrary target = new TargetCardInLibrary(filter); addEffect(new SearchLibraryPutInPlayEffect(target, true, true, Outcome.PutLandInPlay)); } diff --git a/Mage.Sets/src/mage/cards/d/DroidFoundry.java b/Mage.Sets/src/mage/cards/d/DroidFoundry.java index 4c26d322df1..3db7b8fbed9 100644 --- a/Mage.Sets/src/mage/cards/d/DroidFoundry.java +++ b/Mage.Sets/src/mage/cards/d/DroidFoundry.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.Mana; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/Droideka.java b/Mage.Sets/src/mage/cards/d/Droideka.java index 233a960a3f9..75413ba4bfd 100644 --- a/Mage.Sets/src/mage/cards/d/Droideka.java +++ b/Mage.Sets/src/mage/cards/d/Droideka.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetStackObject; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/DromadPurebred.java b/Mage.Sets/src/mage/cards/d/DromadPurebred.java index 70063097142..6112f9754ac 100644 --- a/Mage.Sets/src/mage/cards/d/DromadPurebred.java +++ b/Mage.Sets/src/mage/cards/d/DromadPurebred.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealtDamageToSourceTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Derpthemeus diff --git a/Mage.Sets/src/mage/cards/d/DromarTheBanisher.java b/Mage.Sets/src/mage/cards/d/DromarTheBanisher.java index adb385450cd..70c8bb497f6 100644 --- a/Mage.Sets/src/mage/cards/d/DromarTheBanisher.java +++ b/Mage.Sets/src/mage/cards/d/DromarTheBanisher.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -41,11 +40,14 @@ import mage.cards.CardSetInfo; import mage.choices.ChoiceColor; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 @@ -54,7 +56,7 @@ public class DromarTheBanisher extends CardImpl { public DromarTheBanisher(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/d/DromarsAttendant.java b/Mage.Sets/src/mage/cards/d/DromarsAttendant.java index 46c726f09c4..adc16b011b4 100644 --- a/Mage.Sets/src/mage/cards/d/DromarsAttendant.java +++ b/Mage.Sets/src/mage/cards/d/DromarsAttendant.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DromarsCavern.java b/Mage.Sets/src/mage/cards/d/DromarsCavern.java index 099a10e7642..d5bf6e1b99e 100644 --- a/Mage.Sets/src/mage/cards/d/DromarsCavern.java +++ b/Mage.Sets/src/mage/cards/d/DromarsCavern.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; @@ -42,6 +41,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DromarsCharm.java b/Mage.Sets/src/mage/cards/d/DromarsCharm.java index 1a4c450f7bd..1c4cc40be4e 100644 --- a/Mage.Sets/src/mage/cards/d/DromarsCharm.java +++ b/Mage.Sets/src/mage/cards/d/DromarsCharm.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.GainLifeEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.target.TargetSpell; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DromokaCaptain.java b/Mage.Sets/src/mage/cards/d/DromokaCaptain.java index a463d68be17..ce3fc8c8e6b 100644 --- a/Mage.Sets/src/mage/cards/d/DromokaCaptain.java +++ b/Mage.Sets/src/mage/cards/d/DromokaCaptain.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.keyword.BolsterEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DromokaDunecaster.java b/Mage.Sets/src/mage/cards/d/DromokaDunecaster.java index dcd3bfd0a42..0aef416049f 100644 --- a/Mage.Sets/src/mage/cards/d/DromokaDunecaster.java +++ b/Mage.Sets/src/mage/cards/d/DromokaDunecaster.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -43,6 +42,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DromokaMonument.java b/Mage.Sets/src/mage/cards/d/DromokaMonument.java index 02a0e7e8598..4478ebc7051 100644 --- a/Mage.Sets/src/mage/cards/d/DromokaMonument.java +++ b/Mage.Sets/src/mage/cards/d/DromokaMonument.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DromokaTheEternal.java b/Mage.Sets/src/mage/cards/d/DromokaTheEternal.java index 1df06ff6908..ffff611ef12 100644 --- a/Mage.Sets/src/mage/cards/d/DromokaTheEternal.java +++ b/Mage.Sets/src/mage/cards/d/DromokaTheEternal.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksCreatureYouControlTriggeredAbility; import mage.abilities.effects.keyword.BolsterEffect; @@ -35,8 +34,11 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -45,7 +47,7 @@ public class DromokaTheEternal extends CardImpl { public DromokaTheEternal(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(5); this.toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/d/DromokaWarrior.java b/Mage.Sets/src/mage/cards/d/DromokaWarrior.java index 2635ee57d1b..29ea0ff95a6 100644 --- a/Mage.Sets/src/mage/cards/d/DromokaWarrior.java +++ b/Mage.Sets/src/mage/cards/d/DromokaWarrior.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DromokasCommand.java b/Mage.Sets/src/mage/cards/d/DromokasCommand.java index 51bb89c387e..e7105a34d24 100644 --- a/Mage.Sets/src/mage/cards/d/DromokasCommand.java +++ b/Mage.Sets/src/mage/cards/d/DromokasCommand.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.Effect; import mage.abilities.effects.common.FightTargetsEffect; @@ -49,6 +48,8 @@ import mage.target.TargetSpell; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DromokasGift.java b/Mage.Sets/src/mage/cards/d/DromokasGift.java index 98f1c6e5851..6f9fbc9aa43 100644 --- a/Mage.Sets/src/mage/cards/d/DromokasGift.java +++ b/Mage.Sets/src/mage/cards/d/DromokasGift.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.keyword.BolsterEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Dromosaur.java b/Mage.Sets/src/mage/cards/d/Dromosaur.java index c926e7b2800..6705615a75a 100644 --- a/Mage.Sets/src/mage/cards/d/Dromosaur.java +++ b/Mage.Sets/src/mage/cards/d/Dromosaur.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DroneHolocron.java b/Mage.Sets/src/mage/cards/d/DroneHolocron.java index dedccc96165..49b34f7cdd5 100644 --- a/Mage.Sets/src/mage/cards/d/DroneHolocron.java +++ b/Mage.Sets/src/mage/cards/d/DroneHolocron.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/DronepackKindred.java b/Mage.Sets/src/mage/cards/d/DronepackKindred.java index 5c49d6827e5..eb83dcacfab 100644 --- a/Mage.Sets/src/mage/cards/d/DronepackKindred.java +++ b/Mage.Sets/src/mage/cards/d/DronepackKindred.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DroolingGroodion.java b/Mage.Sets/src/mage/cards/d/DroolingGroodion.java index 3270454be73..53d4f9ceedb 100644 --- a/Mage.Sets/src/mage/cards/d/DroolingGroodion.java +++ b/Mage.Sets/src/mage/cards/d/DroolingGroodion.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -36,12 +35,7 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AnotherTargetPredicate; @@ -50,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DroolingOgre.java b/Mage.Sets/src/mage/cards/d/DroolingOgre.java index 33046456168..445f6e513de 100644 --- a/Mage.Sets/src/mage/cards/d/DroolingOgre.java +++ b/Mage.Sets/src/mage/cards/d/DroolingOgre.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -48,6 +47,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author wetterlicht diff --git a/Mage.Sets/src/mage/cards/d/DropOfHoney.java b/Mage.Sets/src/mage/cards/d/DropOfHoney.java index 4a2512ea55e..601b8215941 100644 --- a/Mage.Sets/src/mage/cards/d/DropOfHoney.java +++ b/Mage.Sets/src/mage/cards/d/DropOfHoney.java @@ -27,8 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.StateTriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -39,7 +39,6 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; @@ -49,6 +48,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author MarcoMarin, but I mostly copied from LevelX2's PorphyryNodes :) @@ -113,7 +114,7 @@ class DropOfHoneyEffect extends OneShotEffect { } if (multipleExist) { FilterCreaturePermanent filter = new FilterCreaturePermanent("one of the creatures with the least power"); - filter.add(new PowerPredicate(Filter.ComparisonType.Equal, leastPower)); + filter.add(new PowerPredicate(ComparisonType.EQUAL_TO, leastPower)); Target target = new TargetPermanent(filter); target.setNotTarget(true); if (target.canChoose(source.getSourceId(), source.getControllerId(), game)) { diff --git a/Mage.Sets/src/mage/cards/d/DrossCrocodile.java b/Mage.Sets/src/mage/cards/d/DrossCrocodile.java index 5a3820a6406..b9b905ddc81 100644 --- a/Mage.Sets/src/mage/cards/d/DrossCrocodile.java +++ b/Mage.Sets/src/mage/cards/d/DrossCrocodile.java @@ -27,11 +27,12 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DrossGolem.java b/Mage.Sets/src/mage/cards/d/DrossGolem.java index 6889edf8ee7..e7cf055ee20 100644 --- a/Mage.Sets/src/mage/cards/d/DrossGolem.java +++ b/Mage.Sets/src/mage/cards/d/DrossGolem.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.AffinityForLandTypeAbility; import mage.abilities.keyword.FearAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DrossHarvester.java b/Mage.Sets/src/mage/cards/d/DrossHarvester.java index 6385f8caa85..208fb240603 100644 --- a/Mage.Sets/src/mage/cards/d/DrossHarvester.java +++ b/Mage.Sets/src/mage/cards/d/DrossHarvester.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DrossHopper.java b/Mage.Sets/src/mage/cards/d/DrossHopper.java index 1ed292065ab..0d6e8a3df46 100644 --- a/Mage.Sets/src/mage/cards/d/DrossHopper.java +++ b/Mage.Sets/src/mage/cards/d/DrossHopper.java @@ -28,10 +28,6 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -39,8 +35,13 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DrossProwler.java b/Mage.Sets/src/mage/cards/d/DrossProwler.java index 49cdffdced4..560e5c0278f 100644 --- a/Mage.Sets/src/mage/cards/d/DrossProwler.java +++ b/Mage.Sets/src/mage/cards/d/DrossProwler.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DrossRipper.java b/Mage.Sets/src/mage/cards/d/DrossRipper.java index 59f6ad670bd..e0a576afaa8 100644 --- a/Mage.Sets/src/mage/cards/d/DrossRipper.java +++ b/Mage.Sets/src/mage/cards/d/DrossRipper.java @@ -28,18 +28,18 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DrossScorpion.java b/Mage.Sets/src/mage/cards/d/DrossScorpion.java index 15412fcbc73..f60726ffb22 100644 --- a/Mage.Sets/src/mage/cards/d/DrossScorpion.java +++ b/Mage.Sets/src/mage/cards/d/DrossScorpion.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; @@ -39,6 +38,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DroveOfElves.java b/Mage.Sets/src/mage/cards/d/DroveOfElves.java index 6ff0884660c..715205c48d7 100644 --- a/Mage.Sets/src/mage/cards/d/DroveOfElves.java +++ b/Mage.Sets/src/mage/cards/d/DroveOfElves.java @@ -27,10 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -39,9 +35,14 @@ import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DrownInFilth.java b/Mage.Sets/src/mage/cards/d/DrownInFilth.java index 8fd59238e2a..394669b4b37 100644 --- a/Mage.Sets/src/mage/cards/d/DrownInFilth.java +++ b/Mage.Sets/src/mage/cards/d/DrownInFilth.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; import mage.abilities.dynamicvalue.common.SignInversionDynamicValue; @@ -38,9 +35,13 @@ import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffec import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.common.FilterLandCard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DrownInSorrow.java b/Mage.Sets/src/mage/cards/d/DrownInSorrow.java index ccab0d01d8c..fa50b306a19 100644 --- a/Mage.Sets/src/mage/cards/d/DrownInSorrow.java +++ b/Mage.Sets/src/mage/cards/d/DrownInSorrow.java @@ -27,14 +27,15 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.effects.common.continuous.BoostAllEffect; +import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/d/Drowned.java b/Mage.Sets/src/mage/cards/d/Drowned.java index 26a52380249..69428c8b0a0 100644 --- a/Mage.Sets/src/mage/cards/d/Drowned.java +++ b/Mage.Sets/src/mage/cards/d/Drowned.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DrownedCatacomb.java b/Mage.Sets/src/mage/cards/d/DrownedCatacomb.java index dfff2cbae6a..cf79f7ecb86 100644 --- a/Mage.Sets/src/mage/cards/d/DrownedCatacomb.java +++ b/Mage.Sets/src/mage/cards/d/DrownedCatacomb.java @@ -28,24 +28,24 @@ package mage.cards.d; -import java.util.UUID; - -import mage.abilities.CountType; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; -import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.condition.InvertCondition; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -61,7 +61,7 @@ public class DrownedCatacomb extends CardImpl { public DrownedCatacomb(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Island or a Swamp"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlackManaAbility()); diff --git a/Mage.Sets/src/mage/cards/d/DrownedRusalka.java b/Mage.Sets/src/mage/cards/d/DrownedRusalka.java index c6fdff37141..59e1e7457ad 100644 --- a/Mage.Sets/src/mage/cards/d/DrownedRusalka.java +++ b/Mage.Sets/src/mage/cards/d/DrownedRusalka.java @@ -27,14 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.discard.DiscardControllerEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.discard.DiscardControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DrownerInitiate.java b/Mage.Sets/src/mage/cards/d/DrownerInitiate.java index f7f6c9faabb..874268d778c 100644 --- a/Mage.Sets/src/mage/cards/d/DrownerInitiate.java +++ b/Mage.Sets/src/mage/cards/d/DrownerInitiate.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -42,6 +41,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DrownerOfHope.java b/Mage.Sets/src/mage/cards/d/DrownerOfHope.java index 33ed8aff565..ef4ad1490db 100644 --- a/Mage.Sets/src/mage/cards/d/DrownerOfHope.java +++ b/Mage.Sets/src/mage/cards/d/DrownerOfHope.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -48,6 +47,8 @@ import mage.game.permanent.token.EldraziScionToken; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DrownerOfSecrets.java b/Mage.Sets/src/mage/cards/d/DrownerOfSecrets.java index d3941efe11b..b42cfe77b18 100644 --- a/Mage.Sets/src/mage/cards/d/DrownerOfSecrets.java +++ b/Mage.Sets/src/mage/cards/d/DrownerOfSecrets.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,6 +34,7 @@ import mage.abilities.costs.common.TapTargetCost; import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; @@ -45,6 +43,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DrownyardBehemoth.java b/Mage.Sets/src/mage/cards/d/DrownyardBehemoth.java index dcbf143ae9f..f15652989f3 100644 --- a/Mage.Sets/src/mage/cards/d/DrownyardBehemoth.java +++ b/Mage.Sets/src/mage/cards/d/DrownyardBehemoth.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/d/DrownyardExplorers.java b/Mage.Sets/src/mage/cards/d/DrownyardExplorers.java index f465a681c66..c413c20a218 100644 --- a/Mage.Sets/src/mage/cards/d/DrownyardExplorers.java +++ b/Mage.Sets/src/mage/cards/d/DrownyardExplorers.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.keyword.InvestigateEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DrownyardTemple.java b/Mage.Sets/src/mage/cards/d/DrownyardTemple.java index 35ff0980938..cac900d160b 100644 --- a/Mage.Sets/src/mage/cards/d/DrownyardTemple.java +++ b/Mage.Sets/src/mage/cards/d/DrownyardTemple.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DrudgeBeetle.java b/Mage.Sets/src/mage/cards/d/DrudgeBeetle.java index 880ec1830e4..cad4d0faa6f 100644 --- a/Mage.Sets/src/mage/cards/d/DrudgeBeetle.java +++ b/Mage.Sets/src/mage/cards/d/DrudgeBeetle.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.ScavengeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DrudgeReavers.java b/Mage.Sets/src/mage/cards/d/DrudgeReavers.java index 0e91693e58e..9f0b0e40315 100644 --- a/Mage.Sets/src/mage/cards/d/DrudgeReavers.java +++ b/Mage.Sets/src/mage/cards/d/DrudgeReavers.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DrudgeSkeletons.java b/Mage.Sets/src/mage/cards/d/DrudgeSkeletons.java index e72927afefd..fb37213a8e5 100644 --- a/Mage.Sets/src/mage/cards/d/DrudgeSkeletons.java +++ b/Mage.Sets/src/mage/cards/d/DrudgeSkeletons.java @@ -28,15 +28,16 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.RegenerateSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DrudgeSpell.java b/Mage.Sets/src/mage/cards/d/DrudgeSpell.java index 0abeb15866a..126a7ca3d31 100644 --- a/Mage.Sets/src/mage/cards/d/DrudgeSpell.java +++ b/Mage.Sets/src/mage/cards/d/DrudgeSpell.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.LeavesBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -47,6 +46,8 @@ import mage.filter.predicate.permanent.TokenPredicate; import mage.game.permanent.token.SkeletonToken; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DruidLyrist.java b/Mage.Sets/src/mage/cards/d/DruidLyrist.java index cf4e47b8f53..24d249a3a8c 100644 --- a/Mage.Sets/src/mage/cards/d/DruidLyrist.java +++ b/Mage.Sets/src/mage/cards/d/DruidLyrist.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DruidOfTheAnima.java b/Mage.Sets/src/mage/cards/d/DruidOfTheAnima.java index 550536a17d2..ba45fa0667b 100644 --- a/Mage.Sets/src/mage/cards/d/DruidOfTheAnima.java +++ b/Mage.Sets/src/mage/cards/d/DruidOfTheAnima.java @@ -28,14 +28,15 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.mana.GreenManaAbility; import mage.abilities.mana.RedManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DruidOfTheCowl.java b/Mage.Sets/src/mage/cards/d/DruidOfTheCowl.java index 3d9b371f63e..578a1fbb042 100644 --- a/Mage.Sets/src/mage/cards/d/DruidOfTheCowl.java +++ b/Mage.Sets/src/mage/cards/d/DruidOfTheCowl.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DruidicSatchel.java b/Mage.Sets/src/mage/cards/d/DruidicSatchel.java index 876475f058d..6b2e685a0a4 100644 --- a/Mage.Sets/src/mage/cards/d/DruidicSatchel.java +++ b/Mage.Sets/src/mage/cards/d/DruidicSatchel.java @@ -27,17 +27,12 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -46,6 +41,8 @@ import mage.game.permanent.token.SaprolingToken; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/d/DruidsCall.java b/Mage.Sets/src/mage/cards/d/DruidsCall.java index 0d234a8d658..851e499802d 100644 --- a/Mage.Sets/src/mage/cards/d/DruidsCall.java +++ b/Mage.Sets/src/mage/cards/d/DruidsCall.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DealtDamageAttachedTriggeredAbility; import mage.abilities.dynamicvalue.common.NumericSetToEffectValues; @@ -45,6 +44,8 @@ import mage.game.permanent.token.SquirrelToken; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DruidsDeliverance.java b/Mage.Sets/src/mage/cards/d/DruidsDeliverance.java index 4fd41b50ae5..c99a99ef62e 100644 --- a/Mage.Sets/src/mage/cards/d/DruidsDeliverance.java +++ b/Mage.Sets/src/mage/cards/d/DruidsDeliverance.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.PopulateEffect; import mage.abilities.effects.common.PreventDamageToControllerEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LevleX2 diff --git a/Mage.Sets/src/mage/cards/d/DruidsFamiliar.java b/Mage.Sets/src/mage/cards/d/DruidsFamiliar.java index 624a55ca53d..c11e41e7e75 100644 --- a/Mage.Sets/src/mage/cards/d/DruidsFamiliar.java +++ b/Mage.Sets/src/mage/cards/d/DruidsFamiliar.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostPairedEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author noxx diff --git a/Mage.Sets/src/mage/cards/d/DruidsRepository.java b/Mage.Sets/src/mage/cards/d/DruidsRepository.java index 0ea2ab7e2d7..d16b4825cf8 100644 --- a/Mage.Sets/src/mage/cards/d/DruidsRepository.java +++ b/Mage.Sets/src/mage/cards/d/DruidsRepository.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.AttacksCreatureYouControlTriggeredAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author noxx diff --git a/Mage.Sets/src/mage/cards/d/Drumhunter.java b/Mage.Sets/src/mage/cards/d/Drumhunter.java index 0af57152537..610471739d6 100644 --- a/Mage.Sets/src/mage/cards/d/Drumhunter.java +++ b/Mage.Sets/src/mage/cards/d/Drumhunter.java @@ -27,8 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.mana.ColorlessManaAbility; @@ -36,13 +36,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author North @@ -79,7 +80,7 @@ class DrumHunterTriggeredAbility extends TriggeredAbilityImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public DrumHunterTriggeredAbility() { diff --git a/Mage.Sets/src/mage/cards/d/DrunauCorpseTrawler.java b/Mage.Sets/src/mage/cards/d/DrunauCorpseTrawler.java index 102e6842555..dab5473457a 100644 --- a/Mage.Sets/src/mage/cards/d/DrunauCorpseTrawler.java +++ b/Mage.Sets/src/mage/cards/d/DrunauCorpseTrawler.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -45,6 +44,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.game.permanent.token.ZombieToken; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DrySpell.java b/Mage.Sets/src/mage/cards/d/DrySpell.java index 193b1296eef..1a580b6b21c 100644 --- a/Mage.Sets/src/mage/cards/d/DrySpell.java +++ b/Mage.Sets/src/mage/cards/d/DrySpell.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.DamageEverythingEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/d/DryadArbor.java b/Mage.Sets/src/mage/cards/d/DryadArbor.java index 9bb535fa7e2..4287ca8c22b 100644 --- a/Mage.Sets/src/mage/cards/d/DryadArbor.java +++ b/Mage.Sets/src/mage/cards/d/DryadArbor.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DryadMilitant.java b/Mage.Sets/src/mage/cards/d/DryadMilitant.java index ceb349f4ca0..45e1f154e9a 100644 --- a/Mage.Sets/src/mage/cards/d/DryadMilitant.java +++ b/Mage.Sets/src/mage/cards/d/DryadMilitant.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DryadSophisticate.java b/Mage.Sets/src/mage/cards/d/DryadSophisticate.java index 890a9521907..a5868fdd371 100644 --- a/Mage.Sets/src/mage/cards/d/DryadSophisticate.java +++ b/Mage.Sets/src/mage/cards/d/DryadSophisticate.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.LandwalkAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DryadsCaress.java b/Mage.Sets/src/mage/cards/d/DryadsCaress.java index a51a2a80610..8d048a6c994 100644 --- a/Mage.Sets/src/mage/cards/d/DryadsCaress.java +++ b/Mage.Sets/src/mage/cards/d/DryadsCaress.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.condition.common.ManaWasSpentCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -40,6 +39,8 @@ import mage.constants.ColoredManaSymbol; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Wehk diff --git a/Mage.Sets/src/mage/cards/d/DryadsFavor.java b/Mage.Sets/src/mage/cards/d/DryadsFavor.java index 69e42f4ef9a..0fc79a9cb03 100644 --- a/Mage.Sets/src/mage/cards/d/DryadsFavor.java +++ b/Mage.Sets/src/mage/cards/d/DryadsFavor.java @@ -28,7 +28,6 @@ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/DualCasting.java b/Mage.Sets/src/mage/cards/d/DualCasting.java index 9cc3b6f0cdf..09d91612d74 100644 --- a/Mage.Sets/src/mage/cards/d/DualCasting.java +++ b/Mage.Sets/src/mage/cards/d/DualCasting.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,12 +38,7 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -53,6 +47,8 @@ import mage.target.TargetPermanent; import mage.target.TargetSpell; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DualShot.java b/Mage.Sets/src/mage/cards/d/DualShot.java index f6c8be430c7..3ca5e3cb783 100644 --- a/Mage.Sets/src/mage/cards/d/DualShot.java +++ b/Mage.Sets/src/mage/cards/d/DualShot.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DualcasterMage.java b/Mage.Sets/src/mage/cards/d/DualcasterMage.java index 3991ae3a160..af01feff424 100644 --- a/Mage.Sets/src/mage/cards/d/DualcasterMage.java +++ b/Mage.Sets/src/mage/cards/d/DualcasterMage.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DubiousChallenge.java b/Mage.Sets/src/mage/cards/d/DubiousChallenge.java index 75e753d9bb7..0cf6dbc6f4a 100644 --- a/Mage.Sets/src/mage/cards/d/DubiousChallenge.java +++ b/Mage.Sets/src/mage/cards/d/DubiousChallenge.java @@ -27,15 +27,10 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -45,6 +40,8 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DuctCrawler.java b/Mage.Sets/src/mage/cards/d/DuctCrawler.java index ca962927f3d..b4f4aaebc62 100644 --- a/Mage.Sets/src/mage/cards/d/DuctCrawler.java +++ b/Mage.Sets/src/mage/cards/d/DuctCrawler.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/d/DueRespect.java b/Mage.Sets/src/mage/cards/d/DueRespect.java index c4d42d743a1..1e1cc7ee2a5 100644 --- a/Mage.Sets/src/mage/cards/d/DueRespect.java +++ b/Mage.Sets/src/mage/cards/d/DueRespect.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -41,6 +40,8 @@ import mage.game.events.EntersTheBattlefieldEvent; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author North @@ -86,7 +87,7 @@ class DueRespectEffect extends ReplacementEffectImpl { public boolean replaceEvent(GameEvent event, Ability source, Game game) { Permanent permanent = ((EntersTheBattlefieldEvent) event).getTarget(); if (permanent != null) { - permanent.setTapped(true); + permanent.tap(game); } return false; } diff --git a/Mage.Sets/src/mage/cards/d/DuelingGrounds.java b/Mage.Sets/src/mage/cards/d/DuelingGrounds.java index f2652bbcc2b..4ad7859c703 100644 --- a/Mage.Sets/src/mage/cards/d/DuelingGrounds.java +++ b/Mage.Sets/src/mage/cards/d/DuelingGrounds.java @@ -29,7 +29,6 @@ package mage.cards.d; import java.util.Set; import java.util.UUID; - import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -52,7 +51,7 @@ import mage.watchers.common.BlockedThisTurnWatcher; public class DuelingGrounds extends CardImpl { public DuelingGrounds(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{G}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{G}{W}"); // No more than one creature can attack each turn. this.addAbility( @@ -101,10 +100,10 @@ class NoMoreThanOneCreatureCanAttackEachTurnEffect extends RestrictionEffect { if (!game.getCombat().getAttackers().isEmpty()) { return false; } - AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get("AttackedThisTurn"); - Set attackedThisTurnCreatures = watcher.getAttackedThisTurnCreatures(); + AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get(AttackedThisTurnWatcher.class.getName()); + Set attackedThisTurnCreatures = watcher.getAttackedThisTurnCreatures(); return attackedThisTurnCreatures.isEmpty() - || (attackedThisTurnCreatures.size() == 1 && attackedThisTurnCreatures.contains(attacker.getId())); + || (attackedThisTurnCreatures.size() == 1 && attackedThisTurnCreatures.contains(new MageObjectReference(attacker, game))); } } diff --git a/Mage.Sets/src/mage/cards/d/DuelistsHeritage.java b/Mage.Sets/src/mage/cards/d/DuelistsHeritage.java index a9fdc13b05f..0eb93a2089f 100644 --- a/Mage.Sets/src/mage/cards/d/DuelistsHeritage.java +++ b/Mage.Sets/src/mage/cards/d/DuelistsHeritage.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -43,6 +42,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DuergarAssailant.java b/Mage.Sets/src/mage/cards/d/DuergarAssailant.java index c1ec8f48e9a..e8af34ffa28 100644 --- a/Mage.Sets/src/mage/cards/d/DuergarAssailant.java +++ b/Mage.Sets/src/mage/cards/d/DuergarAssailant.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DuergarCaveGuard.java b/Mage.Sets/src/mage/cards/d/DuergarCaveGuard.java index db912f2fbb5..8dcd9efa426 100644 --- a/Mage.Sets/src/mage/cards/d/DuergarCaveGuard.java +++ b/Mage.Sets/src/mage/cards/d/DuergarCaveGuard.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,9 +34,12 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.WitherAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DuergarHedgeMage.java b/Mage.Sets/src/mage/cards/d/DuergarHedgeMage.java index eb6ee64215e..61da9dcb5e5 100644 --- a/Mage.Sets/src/mage/cards/d/DuergarHedgeMage.java +++ b/Mage.Sets/src/mage/cards/d/DuergarHedgeMage.java @@ -27,10 +27,9 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -68,12 +69,12 @@ public class DuergarHedgeMage extends CardImpl { this.toughness = new MageInt(2); // When Duergar Hedge-Mage enters the battlefield, if you control two or more Mountains, you may destroy target artifact. - Ability ability = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), true), new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1), rule1); + Ability ability = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), true), new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1), rule1); ability.addTarget(new TargetArtifactPermanent()); this.addAbility(ability); // When Duergar Hedge-Mage enters the battlefield, if you control two or more Plains, you may destroy target enchantment. - Ability ability2 = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), true), new PermanentsOnTheBattlefieldCondition(filter2, CountType.MORE_THAN, 1), rule2); + Ability ability2 = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), true), new PermanentsOnTheBattlefieldCondition(filter2, ComparisonType.MORE_THAN, 1), rule2); ability2.addTarget(new TargetEnchantmentPermanent()); this.addAbility(ability2); diff --git a/Mage.Sets/src/mage/cards/d/DuergarMineCaptain.java b/Mage.Sets/src/mage/cards/d/DuergarMineCaptain.java index 7d51177ffd7..03c917d07ed 100644 --- a/Mage.Sets/src/mage/cards/d/DuergarMineCaptain.java +++ b/Mage.Sets/src/mage/cards/d/DuergarMineCaptain.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterAttackingCreature; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DukharaPeafowl.java b/Mage.Sets/src/mage/cards/d/DukharaPeafowl.java index 24e4d89e65e..cb38f5b50c1 100644 --- a/Mage.Sets/src/mage/cards/d/DukharaPeafowl.java +++ b/Mage.Sets/src/mage/cards/d/DukharaPeafowl.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DukharaScavenger.java b/Mage.Sets/src/mage/cards/d/DukharaScavenger.java index 1c5ac9cbf42..c7b44275922 100644 --- a/Mage.Sets/src/mage/cards/d/DukharaScavenger.java +++ b/Mage.Sets/src/mage/cards/d/DukharaScavenger.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.filter.StaticFilters; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DulcetSirens.java b/Mage.Sets/src/mage/cards/d/DulcetSirens.java index f5a9d037a03..94e37770dd0 100644 --- a/Mage.Sets/src/mage/cards/d/DulcetSirens.java +++ b/Mage.Sets/src/mage/cards/d/DulcetSirens.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.target.Target; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DuneBeetle.java b/Mage.Sets/src/mage/cards/d/DuneBeetle.java new file mode 100644 index 00000000000..dadf12d0dde --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DuneBeetle.java @@ -0,0 +1,58 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import java.util.UUID; +import mage.MageInt; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class DuneBeetle extends CardImpl { + + public DuneBeetle(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}"); + + this.subtype.add("Insect"); + this.power = new MageInt(1); + this.toughness = new MageInt(4); + } + + public DuneBeetle(final DuneBeetle card) { + super(card); + } + + @Override + public DuneBeetle copy() { + return new DuneBeetle(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/DuneBroodNephilim.java b/Mage.Sets/src/mage/cards/d/DuneBroodNephilim.java index 42adfc50a65..c282d8519cd 100644 --- a/Mage.Sets/src/mage/cards/d/DuneBroodNephilim.java +++ b/Mage.Sets/src/mage/cards/d/DuneBroodNephilim.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -39,6 +38,8 @@ import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/d/Duneblast.java b/Mage.Sets/src/mage/cards/d/Duneblast.java index fd03d8e1af3..9ca45f07809 100644 --- a/Mage.Sets/src/mage/cards/d/Duneblast.java +++ b/Mage.Sets/src/mage/cards/d/Duneblast.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.Objects; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -42,6 +40,9 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.Objects; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DuneriderOutlaw.java b/Mage.Sets/src/mage/cards/d/DuneriderOutlaw.java index d7ff5ab626f..a17bb3452cf 100644 --- a/Mage.Sets/src/mage/cards/d/DuneriderOutlaw.java +++ b/Mage.Sets/src/mage/cards/d/DuneriderOutlaw.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.TriggeredAbility; @@ -39,9 +37,12 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/d/DungeonGeists.java b/Mage.Sets/src/mage/cards/d/DungeonGeists.java index d45fae3e5db..d4eadd63255 100644 --- a/Mage.Sets/src/mage/cards/d/DungeonGeists.java +++ b/Mage.Sets/src/mage/cards/d/DungeonGeists.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -37,13 +36,7 @@ import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.PhaseStep; -import mage.constants.TargetController; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; @@ -54,6 +47,8 @@ import mage.target.Target; import mage.target.common.TargetCreaturePermanent; import mage.watchers.Watcher; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/d/DungeonShade.java b/Mage.Sets/src/mage/cards/d/DungeonShade.java index 8a2d558b2df..e1c7e5f54cf 100644 --- a/Mage.Sets/src/mage/cards/d/DungeonShade.java +++ b/Mage.Sets/src/mage/cards/d/DungeonShade.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DungroveElder.java b/Mage.Sets/src/mage/cards/d/DungroveElder.java index 445c0c50143..a7833ce80de 100644 --- a/Mage.Sets/src/mage/cards/d/DungroveElder.java +++ b/Mage.Sets/src/mage/cards/d/DungroveElder.java @@ -28,11 +28,6 @@ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -40,9 +35,14 @@ import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/Duplicant.java b/Mage.Sets/src/mage/cards/d/Duplicant.java index b19d11d6120..8c4cb2256f7 100644 --- a/Mage.Sets/src/mage/cards/d/Duplicant.java +++ b/Mage.Sets/src/mage/cards/d/Duplicant.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -38,12 +37,7 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.TokenPredicate; @@ -51,6 +45,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DurableHandicraft.java b/Mage.Sets/src/mage/cards/d/DurableHandicraft.java index 4c2be49db5c..fe8a380542b 100644 --- a/Mage.Sets/src/mage/cards/d/DurableHandicraft.java +++ b/Mage.Sets/src/mage/cards/d/DurableHandicraft.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/d/Duress.java b/Mage.Sets/src/mage/cards/d/Duress.java index 7df18ee75d7..879aef14a25 100644 --- a/Mage.Sets/src/mage/cards/d/Duress.java +++ b/Mage.Sets/src/mage/cards/d/Duress.java @@ -28,7 +28,6 @@ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.discard.DiscardCardYouChooseTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -38,6 +37,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/DurkwoodBaloth.java b/Mage.Sets/src/mage/cards/d/DurkwoodBaloth.java index 34ac09e0b97..6baecad2685 100644 --- a/Mage.Sets/src/mage/cards/d/DurkwoodBaloth.java +++ b/Mage.Sets/src/mage/cards/d/DurkwoodBaloth.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.SuspendAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DurkwoodBoars.java b/Mage.Sets/src/mage/cards/d/DurkwoodBoars.java index 7a03fc1da08..50ff4d0a7e6 100644 --- a/Mage.Sets/src/mage/cards/d/DurkwoodBoars.java +++ b/Mage.Sets/src/mage/cards/d/DurkwoodBoars.java @@ -27,11 +27,12 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DuskDawn.java b/Mage.Sets/src/mage/cards/d/DuskDawn.java new file mode 100644 index 00000000000..247f8a50a0d --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DuskDawn.java @@ -0,0 +1,119 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.d; + +import java.util.Set; +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.DestroyAllEffect; +import mage.abilities.keyword.AftermathAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.constants.Outcome; +import mage.constants.SpellAbilityType; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.common.FilterCreatureCard; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.PowerPredicate; +import mage.game.Game; +import mage.players.Player; + +public class DuskDawn extends SplitCard { + + private static final FilterCreaturePermanent filterCreatures3orGreater = new FilterCreaturePermanent("creatures with power greater than or equal to 3"); + + static { + filterCreatures3orGreater.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); + } + + public DuskDawn(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.SORCERY}, "{2}{W}{W}", "{3}{W}{W}", SpellAbilityType.SPLIT_AFTERMATH); + + // Dusk + // Destroy all creatures with power 3 or greater. + Effect destroy = new DestroyAllEffect(filterCreatures3orGreater); + destroy.setText("Destroy all creatures with power greater than or equal to 3."); + getLeftHalfCard().getSpellAbility().addEffect(destroy); + + // Dawn + // Return all creature cards with power less than or equal to 2 from your graveyard to your hand. + ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); + getRightHalfCard().getSpellAbility().addEffect(new DawnEffect()); + + } + + public DuskDawn(final DuskDawn card) { + super(card); + } + + @Override + public DuskDawn copy() { + return new DuskDawn(this); + } +} + +class DawnEffect extends OneShotEffect { + + private static final FilterCard filter2orLess = new FilterCreatureCard("creatures with power less than or equal to 2"); + + static { + filter2orLess.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); + } + + DawnEffect() { + super(Outcome.Benefit); + this.staticText = "Return all creature cards with power 2 or less from your graveyard to your hand."; + } + + DawnEffect(final DawnEffect effect) { + super(effect); + } + + @Override + public DawnEffect copy() { + return new DawnEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(source.getControllerId()); + if (player != null) { + Set cards = player.getGraveyard().getCards(filter2orLess, game); + player.moveCards(cards, Zone.HAND, source, game); + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/cards/d/DuskFeaster.java b/Mage.Sets/src/mage/cards/d/DuskFeaster.java index 4b9afa1ec83..fbc5bf50a77 100644 --- a/Mage.Sets/src/mage/cards/d/DuskFeaster.java +++ b/Mage.Sets/src/mage/cards/d/DuskFeaster.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.HashSet; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -39,14 +37,13 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; +import java.util.EnumSet; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -109,7 +106,7 @@ class DuskFeasterCostReductionEffect extends CostModificationEffectImpl { boolean hasDelirium = false; Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - HashSet foundCardTypes = new HashSet<>(); + EnumSet foundCardTypes = EnumSet.noneOf(CardType.class); for (Card card : controller.getGraveyard().getCards(game)) { foundCardTypes.addAll(card.getCardType()); } diff --git a/Mage.Sets/src/mage/cards/d/DuskImp.java b/Mage.Sets/src/mage/cards/d/DuskImp.java index 5abdc08a21b..d0dadac4b45 100644 --- a/Mage.Sets/src/mage/cards/d/DuskImp.java +++ b/Mage.Sets/src/mage/cards/d/DuskImp.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DuskUrchins.java b/Mage.Sets/src/mage/cards/d/DuskUrchins.java index 82a68bda5ee..160790ba03a 100644 --- a/Mage.Sets/src/mage/cards/d/DuskUrchins.java +++ b/Mage.Sets/src/mage/cards/d/DuskUrchins.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; import mage.abilities.common.DiesTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/d/DuskdaleWurm.java b/Mage.Sets/src/mage/cards/d/DuskdaleWurm.java index bb98c777389..637bb1f7a3f 100644 --- a/Mage.Sets/src/mage/cards/d/DuskdaleWurm.java +++ b/Mage.Sets/src/mage/cards/d/DuskdaleWurm.java @@ -28,12 +28,13 @@ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DuskhunterBat.java b/Mage.Sets/src/mage/cards/d/DuskhunterBat.java index 43cf2209d97..cf3397b86b5 100644 --- a/Mage.Sets/src/mage/cards/d/DuskhunterBat.java +++ b/Mage.Sets/src/mage/cards/d/DuskhunterBat.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.BloodthirstAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DuskmantleGuildmage.java b/Mage.Sets/src/mage/cards/d/DuskmantleGuildmage.java index 4b12cdf56d7..291c185ffc1 100644 --- a/Mage.Sets/src/mage/cards/d/DuskmantleGuildmage.java +++ b/Mage.Sets/src/mage/cards/d/DuskmantleGuildmage.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -50,6 +49,8 @@ import mage.game.events.ZoneChangeEvent; import mage.target.TargetPlayer; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth and LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DuskmantleHouseOfShadow.java b/Mage.Sets/src/mage/cards/d/DuskmantleHouseOfShadow.java index 6798c34c55d..09c55b8e447 100644 --- a/Mage.Sets/src/mage/cards/d/DuskmantleHouseOfShadow.java +++ b/Mage.Sets/src/mage/cards/d/DuskmantleHouseOfShadow.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,9 +35,12 @@ import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DuskmantleProwler.java b/Mage.Sets/src/mage/cards/d/DuskmantleProwler.java index 52089d83a1f..05d5853e9da 100644 --- a/Mage.Sets/src/mage/cards/d/DuskmantleProwler.java +++ b/Mage.Sets/src/mage/cards/d/DuskmantleProwler.java @@ -27,13 +27,14 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; -import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.ExaltedAbility; +import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DuskmantleSeer.java b/Mage.Sets/src/mage/cards/d/DuskmantleSeer.java index d4c69f27969..12b1e4a6209 100644 --- a/Mage.Sets/src/mage/cards/d/DuskmantleSeer.java +++ b/Mage.Sets/src/mage/cards/d/DuskmantleSeer.java @@ -27,25 +27,21 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.TargetController; +import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DuskriderFalcon.java b/Mage.Sets/src/mage/cards/d/DuskriderFalcon.java index 373edac0740..fdccbb75262 100644 --- a/Mage.Sets/src/mage/cards/d/DuskriderFalcon.java +++ b/Mage.Sets/src/mage/cards/d/DuskriderFalcon.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.FlyingAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DuskriderPeregrine.java b/Mage.Sets/src/mage/cards/d/DuskriderPeregrine.java index 613f1dcd21d..da73f1c5ec7 100644 --- a/Mage.Sets/src/mage/cards/d/DuskriderPeregrine.java +++ b/Mage.Sets/src/mage/cards/d/DuskriderPeregrine.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +35,9 @@ import mage.abilities.keyword.ProtectionAbility; import mage.abilities.keyword.SuspendAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/Duskwalker.java b/Mage.Sets/src/mage/cards/d/Duskwalker.java index 360c478e758..169725ef143 100644 --- a/Mage.Sets/src/mage/cards/d/Duskwalker.java +++ b/Mage.Sets/src/mage/cards/d/Duskwalker.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author michael.napoleon@gmail.com diff --git a/Mage.Sets/src/mage/cards/d/Duskworker.java b/Mage.Sets/src/mage/cards/d/Duskworker.java index e763669f17d..8900aab7752 100644 --- a/Mage.Sets/src/mage/cards/d/Duskworker.java +++ b/Mage.Sets/src/mage/cards/d/Duskworker.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.BecomesBlockedTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,12 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/d/DustBowl.java b/Mage.Sets/src/mage/cards/d/DustBowl.java index 2d78701ca64..fc75be21971 100644 --- a/Mage.Sets/src/mage/cards/d/DustBowl.java +++ b/Mage.Sets/src/mage/cards/d/DustBowl.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -44,6 +43,8 @@ import mage.target.Target; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetNonBasicLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DustCorona.java b/Mage.Sets/src/mage/cards/d/DustCorona.java index edc42938e61..6bd7a77d1bd 100644 --- a/Mage.Sets/src/mage/cards/d/DustCorona.java +++ b/Mage.Sets/src/mage/cards/d/DustCorona.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -38,16 +37,14 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/DustElemental.java b/Mage.Sets/src/mage/cards/d/DustElemental.java index 7326f92ce0e..4d2ded5601c 100644 --- a/Mage.Sets/src/mage/cards/d/DustElemental.java +++ b/Mage.Sets/src/mage/cards/d/DustElemental.java @@ -27,18 +27,19 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.ReturnToHandChosenControlledPermanentEffect; +import mage.abilities.keyword.FearAbility; import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.FlyingAbility; -import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Zeplar1_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/d/DustOfMoments.java b/Mage.Sets/src/mage/cards/d/DustOfMoments.java index 529125a9d16..03deb130c9b 100644 --- a/Mage.Sets/src/mage/cards/d/DustOfMoments.java +++ b/Mage.Sets/src/mage/cards/d/DustOfMoments.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.List; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.Mode; @@ -49,6 +47,9 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.List; +import java.util.UUID; + /** * * @author Gal Lerman diff --git a/Mage.Sets/src/mage/cards/d/DustStalker.java b/Mage.Sets/src/mage/cards/d/DustStalker.java index 82bcf198c44..db7af79f77a 100644 --- a/Mage.Sets/src/mage/cards/d/DustStalker.java +++ b/Mage.Sets/src/mage/cards/d/DustStalker.java @@ -27,9 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.effects.common.ReturnToHandSourceEffect; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorlessPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -69,7 +70,7 @@ public class DustStalker extends CardImpl { this.addAbility(HasteAbility.getInstance()); // At the beginning of each end step, if you control no other colorless creatures, return Dust Stalker to its owner's hand. this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(), TargetController.ANY, - new PermanentsOnTheBattlefieldCondition(filter, CountType.EQUAL_TO, 0), false)); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.EQUAL_TO, 0), false)); } public DustStalker(final DustStalker card) { diff --git a/Mage.Sets/src/mage/cards/d/DustToDust.java b/Mage.Sets/src/mage/cards/d/DustToDust.java index 9b7b238fd0e..d2a1cb0dc64 100644 --- a/Mage.Sets/src/mage/cards/d/DustToDust.java +++ b/Mage.Sets/src/mage/cards/d/DustToDust.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DutifulAttendant.java b/Mage.Sets/src/mage/cards/d/DutifulAttendant.java index a268fa2e1d4..704ace11774 100644 --- a/Mage.Sets/src/mage/cards/d/DutifulAttendant.java +++ b/Mage.Sets/src/mage/cards/d/DutifulAttendant.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -39,6 +38,8 @@ import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.AnotherCardPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DutifulReturn.java b/Mage.Sets/src/mage/cards/d/DutifulReturn.java index f33b54a620f..78a8ccfd75b 100644 --- a/Mage.Sets/src/mage/cards/d/DutifulReturn.java +++ b/Mage.Sets/src/mage/cards/d/DutifulReturn.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DutifulThrull.java b/Mage.Sets/src/mage/cards/d/DutifulThrull.java index 9b6b934a62a..2ca2ec82795 100644 --- a/Mage.Sets/src/mage/cards/d/DutifulThrull.java +++ b/Mage.Sets/src/mage/cards/d/DutifulThrull.java @@ -27,18 +27,18 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.RegenerateSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DutyBoundDead.java b/Mage.Sets/src/mage/cards/d/DutyBoundDead.java index c3b9de94e71..994c001d6c8 100644 --- a/Mage.Sets/src/mage/cards/d/DutyBoundDead.java +++ b/Mage.Sets/src/mage/cards/d/DutyBoundDead.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +34,10 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.keyword.ExaltedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DwarvenArmorer.java b/Mage.Sets/src/mage/cards/d/DwarvenArmorer.java index e0080af8131..fe4e31a3690 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenArmorer.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenArmorer.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.HashSet; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -52,6 +50,9 @@ import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.HashSet; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DwarvenArmory.java b/Mage.Sets/src/mage/cards/d/DwarvenArmory.java index 966e1745d17..1a3e00ce19c 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenArmory.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenArmory.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.IsStepCondition; import mage.abilities.costs.common.SacrificeTargetCost; @@ -44,6 +43,8 @@ import mage.filter.common.FilterControlledLandPermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DwarvenBerserker.java b/Mage.Sets/src/mage/cards/d/DwarvenBerserker.java index e7192589f31..2a587b4a8c7 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenBerserker.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenBerserker.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesBlockedTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DwarvenBlastminer.java b/Mage.Sets/src/mage/cards/d/DwarvenBlastminer.java index 989ba43d52f..283eb552c69 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenBlastminer.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenBlastminer.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetNonBasicLandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DwarvenBloodboiler.java b/Mage.Sets/src/mage/cards/d/DwarvenBloodboiler.java index c7715b94512..720a2c134f8 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenBloodboiler.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenBloodboiler.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DwarvenCatapult.java b/Mage.Sets/src/mage/cards/d/DwarvenCatapult.java index cd58a256922..7c19a006303 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenCatapult.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenCatapult.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DamageAllControlledTargetEffect; @@ -39,6 +38,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/d/DwarvenDemolitionTeam.java b/Mage.Sets/src/mage/cards/d/DwarvenDemolitionTeam.java index 79a53dec7b6..e71b5323d11 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenDemolitionTeam.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenDemolitionTeam.java @@ -27,9 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,11 +34,14 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/d/DwarvenDriller.java b/Mage.Sets/src/mage/cards/d/DwarvenDriller.java index bc1738a89f0..6f27fbbc3b5 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenDriller.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenDriller.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/d/DwarvenGrunt.java b/Mage.Sets/src/mage/cards/d/DwarvenGrunt.java index 78a35222fcc..9aed0796fde 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenGrunt.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenGrunt.java @@ -27,12 +27,13 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.MountainwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DwarvenHold.java b/Mage.Sets/src/mage/cards/d/DwarvenHold.java index 27195fa6e6b..baa3848ad02 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenHold.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenHold.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -50,6 +49,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/d/DwarvenLandslide.java b/Mage.Sets/src/mage/cards/d/DwarvenLandslide.java index 6676dcb5f4a..afb031bfc4e 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenLandslide.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenLandslide.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.condition.common.KickedCondition; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DwarvenLieutenant.java b/Mage.Sets/src/mage/cards/d/DwarvenLieutenant.java index 41b27e32602..fb064024d32 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenLieutenant.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenLieutenant.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DwarvenMiner.java b/Mage.Sets/src/mage/cards/d/DwarvenMiner.java index ff98af1ae64..b490e756411 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenMiner.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenMiner.java @@ -5,7 +5,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -18,6 +17,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetNonBasicLandPermanent; +import java.util.UUID; + /** * * @author nick.myers diff --git a/Mage.Sets/src/mage/cards/d/DwarvenNomad.java b/Mage.Sets/src/mage/cards/d/DwarvenNomad.java index 8d0b7c4e065..be2db9cc356 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenNomad.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenNomad.java @@ -27,9 +27,9 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; @@ -37,11 +37,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -51,7 +52,7 @@ public class DwarvenNomad extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less"); static { - filter.add(new PowerPredicate(ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public DwarvenNomad(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/d/DwarvenPatrol.java b/Mage.Sets/src/mage/cards/d/DwarvenPatrol.java index 18b098f8737..9e6b572df3d 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenPatrol.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenPatrol.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DwarvenPony.java b/Mage.Sets/src/mage/cards/d/DwarvenPony.java index 259fc3e5c25..70b05cf42f2 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenPony.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenPony.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DwarvenRecruiter.java b/Mage.Sets/src/mage/cards/d/DwarvenRecruiter.java index d3d8aa5b508..d8b4514a27a 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenRecruiter.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenRecruiter.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.RecruiterEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DwarvenRuins.java b/Mage.Sets/src/mage/cards/d/DwarvenRuins.java index 92081e999c5..2f727091644 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenRuins.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenRuins.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/d/DwarvenSoldier.java b/Mage.Sets/src/mage/cards/d/DwarvenSoldier.java index 8277b34a259..3a77f999ecd 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenSoldier.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenSoldier.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/d/DwarvenSong.java b/Mage.Sets/src/mage/cards/d/DwarvenSong.java index 33d8db13bdb..369680563f1 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenSong.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenSong.java @@ -28,17 +28,17 @@ package mage.cards.d; - import java.util.UUID; - - import mage.ObjectColor; - import mage.abilities.effects.Effect; - import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; - import mage.cards.CardImpl; +import mage.ObjectColor; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; +import mage.cards.CardImpl; import mage.cards.CardSetInfo; - import mage.constants.CardType; - import mage.constants.Duration; - import mage.filter.common.FilterCreaturePermanent; - import mage.target.common.TargetCreaturePermanent; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.filter.common.FilterCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DwarvenStrikeForce.java b/Mage.Sets/src/mage/cards/d/DwarvenStrikeForce.java index d5f53c0001f..7facd050d8f 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenStrikeForce.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenStrikeForce.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/d/DwarvenThaumaturgist.java b/Mage.Sets/src/mage/cards/d/DwarvenThaumaturgist.java index 4dc68e668a7..03888b23fa7 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenThaumaturgist.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenThaumaturgist.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DwarvenTrader.java b/Mage.Sets/src/mage/cards/d/DwarvenTrader.java index cc75ac7c763..8a78cc50c98 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenTrader.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenTrader.java @@ -27,11 +27,12 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/d/DwarvenVigilantes.java b/Mage.Sets/src/mage/cards/d/DwarvenVigilantes.java index ad2d61fe829..d13756a96e2 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenVigilantes.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenVigilantes.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DwarvenWarriors.java b/Mage.Sets/src/mage/cards/d/DwarvenWarriors.java index 92b00a8fc6c..69d5ddc20e7 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenWarriors.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenWarriors.java @@ -27,9 +27,9 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; @@ -37,11 +37,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -51,7 +52,7 @@ public class DwarvenWarriors extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less"); static { - filter.add(new PowerPredicate(ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public DwarvenWarriors(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/d/DwarvenWeaponsmith.java b/Mage.Sets/src/mage/cards/d/DwarvenWeaponsmith.java index ed660a88374..84ea54a71d1 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenWeaponsmith.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenWeaponsmith.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.condition.common.IsStepCondition; @@ -45,6 +44,8 @@ import mage.filter.common.FilterControlledArtifactPermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DwellOnThePast.java b/Mage.Sets/src/mage/cards/d/DwellOnThePast.java index 0636f84d320..a7f1c1d3ad4 100644 --- a/Mage.Sets/src/mage/cards/d/DwellOnThePast.java +++ b/Mage.Sets/src/mage/cards/d/DwellOnThePast.java @@ -27,8 +27,6 @@ */ package mage.cards.d; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -43,6 +41,9 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCardInGraveyard; +import java.util.List; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/d/DwynenGiltLeafDaen.java b/Mage.Sets/src/mage/cards/d/DwynenGiltLeafDaen.java index a658cfd0ce3..52ab5181591 100644 --- a/Mage.Sets/src/mage/cards/d/DwynenGiltLeafDaen.java +++ b/Mage.Sets/src/mage/cards/d/DwynenGiltLeafDaen.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,11 +38,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AttackingPredicate; +import java.util.UUID; + /** * * @author emerald000 @@ -57,7 +59,7 @@ public class DwynenGiltLeafDaen extends CardImpl { public DwynenGiltLeafDaen(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Warrior"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/d/DwynensElite.java b/Mage.Sets/src/mage/cards/d/DwynensElite.java index aa0efde0f62..79f440fe808 100644 --- a/Mage.Sets/src/mage/cards/d/DwynensElite.java +++ b/Mage.Sets/src/mage/cards/d/DwynensElite.java @@ -27,9 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.permanent.token.ElfToken; +import java.util.UUID; + /** * * @author fireshoes @@ -67,7 +68,7 @@ public class DwynensElite extends CardImpl { TriggeredAbility triggeredAbility = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ElfToken())); this.addAbility(new ConditionalTriggeredAbility( triggeredAbility, - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0), "When {this} enters the battlefield, if you control another Elf, create a 1/1 green Elf Warrior creature token.")); } diff --git a/Mage.Sets/src/mage/cards/d/DyingWail.java b/Mage.Sets/src/mage/cards/d/DyingWail.java index c94c0868344..b0f4b1aac0f 100644 --- a/Mage.Sets/src/mage/cards/d/DyingWail.java +++ b/Mage.Sets/src/mage/cards/d/DyingWail.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.effects.common.AttachEffect; @@ -41,6 +40,8 @@ import mage.target.TargetPermanent; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/d/DyingWish.java b/Mage.Sets/src/mage/cards/d/DyingWish.java index 998386217ca..628ced0274a 100644 --- a/Mage.Sets/src/mage/cards/d/DyingWish.java +++ b/Mage.Sets/src/mage/cards/d/DyingWish.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -47,6 +46,8 @@ import mage.target.TargetPermanent; import mage.target.TargetPlayer; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/Dynacharge.java b/Mage.Sets/src/mage/cards/d/Dynacharge.java index 4941bfa6012..2f597dc90e6 100644 --- a/Mage.Sets/src/mage/cards/d/Dynacharge.java +++ b/Mage.Sets/src/mage/cards/d/Dynacharge.java @@ -27,17 +27,18 @@ */ package mage.cards.d; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.OverloadAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/d/DynavoltTower.java b/Mage.Sets/src/mage/cards/d/DynavoltTower.java index cb58112965b..43c1acc2f7a 100644 --- a/Mage.Sets/src/mage/cards/d/DynavoltTower.java +++ b/Mage.Sets/src/mage/cards/d/DynavoltTower.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterInstantOrSorcerySpell; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/d/Dystopia.java b/Mage.Sets/src/mage/cards/d/Dystopia.java index 0117152fe2a..b1065fa1d3f 100644 --- a/Mage.Sets/src/mage/cards/d/Dystopia.java +++ b/Mage.Sets/src/mage/cards/d/Dystopia.java @@ -27,7 +27,6 @@ */ package mage.cards.d; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.costs.common.PayLifeCost; @@ -41,6 +40,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/e/EMPBlast.java b/Mage.Sets/src/mage/cards/e/EMPBlast.java index f2043de3211..83e1b36f4b2 100644 --- a/Mage.Sets/src/mage/cards/e/EMPBlast.java +++ b/Mage.Sets/src/mage/cards/e/EMPBlast.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ExileTargetEffect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/e/EagerCadet.java b/Mage.Sets/src/mage/cards/e/EagerCadet.java index ba46ca10aac..aab1fe80133 100644 --- a/Mage.Sets/src/mage/cards/e/EagerCadet.java +++ b/Mage.Sets/src/mage/cards/e/EagerCadet.java @@ -27,11 +27,12 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/EagerConstruct.java b/Mage.Sets/src/mage/cards/e/EagerConstruct.java index 1638582ddfa..db335b10a22 100644 --- a/Mage.Sets/src/mage/cards/e/EagerConstruct.java +++ b/Mage.Sets/src/mage/cards/e/EagerConstruct.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,6 +38,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EagleOfTheWatch.java b/Mage.Sets/src/mage/cards/e/EagleOfTheWatch.java index 4fa5dda8966..92e9c6c1cda 100644 --- a/Mage.Sets/src/mage/cards/e/EagleOfTheWatch.java +++ b/Mage.Sets/src/mage/cards/e/EagleOfTheWatch.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EarlyFrost.java b/Mage.Sets/src/mage/cards/e/EarlyFrost.java index 4c718a6e044..3ae7e97dea9 100644 --- a/Mage.Sets/src/mage/cards/e/EarlyFrost.java +++ b/Mage.Sets/src/mage/cards/e/EarlyFrost.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EarlyHarvest.java b/Mage.Sets/src/mage/cards/e/EarlyHarvest.java index a5d060b09be..1efd4abe365 100644 --- a/Mage.Sets/src/mage/cards/e/EarlyHarvest.java +++ b/Mage.Sets/src/mage/cards/e/EarlyHarvest.java @@ -27,13 +27,13 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.game.Game; @@ -41,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Plopman @@ -69,7 +71,7 @@ class UntapAllLandsTargetEffect extends OneShotEffect { private static final FilterLandPermanent filter = new FilterLandPermanent(); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public UntapAllLandsTargetEffect() { diff --git a/Mage.Sets/src/mage/cards/e/EarnestFellowship.java b/Mage.Sets/src/mage/cards/e/EarnestFellowship.java index 3f169001621..6217b885395 100644 --- a/Mage.Sets/src/mage/cards/e/EarnestFellowship.java +++ b/Mage.Sets/src/mage/cards/e/EarnestFellowship.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -37,12 +34,7 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -50,6 +42,10 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author cbt33, Loki (TakenoSamuraiGeneral), North (Coat of Arms) diff --git a/Mage.Sets/src/mage/cards/e/EarsplittingRats.java b/Mage.Sets/src/mage/cards/e/EarsplittingRats.java index 656be897c36..97ecc996127 100644 --- a/Mage.Sets/src/mage/cards/e/EarsplittingRats.java +++ b/Mage.Sets/src/mage/cards/e/EarsplittingRats.java @@ -27,19 +27,19 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardCardCost; -import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; import mage.abilities.effects.common.RegenerateSourceEffect; +import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EarthElemental.java b/Mage.Sets/src/mage/cards/e/EarthElemental.java index fcb24749597..b97b64f3f95 100644 --- a/Mage.Sets/src/mage/cards/e/EarthElemental.java +++ b/Mage.Sets/src/mage/cards/e/EarthElemental.java @@ -28,11 +28,12 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/EarthRift.java b/Mage.Sets/src/mage/cards/e/EarthRift.java index 4f6c0771be1..1fec6a7d83a 100644 --- a/Mage.Sets/src/mage/cards/e/EarthRift.java +++ b/Mage.Sets/src/mage/cards/e/EarthRift.java @@ -27,16 +27,17 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TimingRule; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TimingRule; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/EarthServant.java b/Mage.Sets/src/mage/cards/e/EarthServant.java index c014bde6e69..d76d184bd1e 100644 --- a/Mage.Sets/src/mage/cards/e/EarthServant.java +++ b/Mage.Sets/src/mage/cards/e/EarthServant.java @@ -28,21 +28,22 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com, North diff --git a/Mage.Sets/src/mage/cards/e/EarthSurge.java b/Mage.Sets/src/mage/cards/e/EarthSurge.java index c87c6be50a7..9fb0093f72a 100644 --- a/Mage.Sets/src/mage/cards/e/EarthSurge.java +++ b/Mage.Sets/src/mage/cards/e/EarthSurge.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/e/Earthbind.java b/Mage.Sets/src/mage/cards/e/Earthbind.java index 036131aae79..d264d2ba792 100644 --- a/Mage.Sets/src/mage/cards/e/Earthbind.java +++ b/Mage.Sets/src/mage/cards/e/Earthbind.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.Effect; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/e/Earthblighter.java b/Mage.Sets/src/mage/cards/e/Earthblighter.java index 8de56502885..21ae5600c8a 100644 --- a/Mage.Sets/src/mage/cards/e/Earthblighter.java +++ b/Mage.Sets/src/mage/cards/e/Earthblighter.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/Earthbrawn.java b/Mage.Sets/src/mage/cards/e/Earthbrawn.java index 89849b71811..fb062365ca1 100644 --- a/Mage.Sets/src/mage/cards/e/Earthbrawn.java +++ b/Mage.Sets/src/mage/cards/e/Earthbrawn.java @@ -27,17 +27,17 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.ReinforceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/Earthcraft.java b/Mage.Sets/src/mage/cards/e/Earthcraft.java index b9bcce6efeb..5ec5770778b 100644 --- a/Mage.Sets/src/mage/cards/e/Earthcraft.java +++ b/Mage.Sets/src/mage/cards/e/Earthcraft.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; @@ -35,6 +34,7 @@ import mage.abilities.effects.common.UntapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledPermanent; @@ -45,6 +45,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ @@ -56,7 +58,7 @@ public class Earthcraft extends CardImpl { static { filterCreature.add(Predicates.not(new TappedPredicate())); filterLand.add(new CardTypePredicate(CardType.LAND)); - filterLand.add(new SupertypePredicate("Basic")); + filterLand.add(new SupertypePredicate(SuperType.BASIC)); } public Earthcraft(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/e/EarthenArms.java b/Mage.Sets/src/mage/cards/e/EarthenArms.java index a148175f57c..eff0dc51e07 100644 --- a/Mage.Sets/src/mage/cards/e/EarthenArms.java +++ b/Mage.Sets/src/mage/cards/e/EarthenArms.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.abilities.keyword.AwakenAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.counters.CounterType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Earthquake.java b/Mage.Sets/src/mage/cards/e/Earthquake.java index eac8135c8e5..faa1900456d 100644 --- a/Mage.Sets/src/mage/cards/e/Earthquake.java +++ b/Mage.Sets/src/mage/cards/e/Earthquake.java @@ -28,7 +28,6 @@ package mage.cards.e; -import java.util.UUID; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DamageEverythingEffect; import mage.abilities.keyword.FlyingAbility; @@ -39,6 +38,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/e/Earthshaker.java b/Mage.Sets/src/mage/cards/e/Earthshaker.java index e180447dd04..b27479facd0 100644 --- a/Mage.Sets/src/mage/cards/e/Earthshaker.java +++ b/Mage.Sets/src/mage/cards/e/Earthshaker.java @@ -28,9 +28,6 @@ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.dynamicvalue.common.StaticValue; @@ -38,11 +35,14 @@ import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterSpiritOrArcaneCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/e/EarwigSquad.java b/Mage.Sets/src/mage/cards/e/EarwigSquad.java index 9eee178d314..e0bca80d757 100644 --- a/Mage.Sets/src/mage/cards/e/EarwigSquad.java +++ b/Mage.Sets/src/mage/cards/e/EarwigSquad.java @@ -27,8 +27,6 @@ */ package mage.cards.e; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -48,6 +46,9 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetOpponent; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EasternPaladin.java b/Mage.Sets/src/mage/cards/e/EasternPaladin.java index 83e846ee5d3..703f4dfa27e 100644 --- a/Mage.Sets/src/mage/cards/e/EasternPaladin.java +++ b/Mage.Sets/src/mage/cards/e/EasternPaladin.java @@ -29,9 +29,6 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -41,10 +38,14 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/e/EaterOfDays.java b/Mage.Sets/src/mage/cards/e/EaterOfDays.java index 209e959ae6d..959f5f5eed9 100644 --- a/Mage.Sets/src/mage/cards/e/EaterOfDays.java +++ b/Mage.Sets/src/mage/cards/e/EaterOfDays.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.turn.SkipNextTurnSourceEffect; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EaterOfHope.java b/Mage.Sets/src/mage/cards/e/EaterOfHope.java index 0ffda527554..542c8595d02 100644 --- a/Mage.Sets/src/mage/cards/e/EaterOfHope.java +++ b/Mage.Sets/src/mage/cards/e/EaterOfHope.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/e/EaterOfTheDead.java b/Mage.Sets/src/mage/cards/e/EaterOfTheDead.java index 16be4c40756..a19b90647f6 100644 --- a/Mage.Sets/src/mage/cards/e/EaterOfTheDead.java +++ b/Mage.Sets/src/mage/cards/e/EaterOfTheDead.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EbonDragon.java b/Mage.Sets/src/mage/cards/e/EbonDragon.java index fe0a05c4b55..acfa918805b 100644 --- a/Mage.Sets/src/mage/cards/e/EbonDragon.java +++ b/Mage.Sets/src/mage/cards/e/EbonDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EbonDrake.java b/Mage.Sets/src/mage/cards/e/EbonDrake.java index 8005852b4a3..82c1dc1787a 100644 --- a/Mage.Sets/src/mage/cards/e/EbonDrake.java +++ b/Mage.Sets/src/mage/cards/e/EbonDrake.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EbonPraetor.java b/Mage.Sets/src/mage/cards/e/EbonPraetor.java index 380093fd8a3..ddf43a9bab0 100644 --- a/Mage.Sets/src/mage/cards/e/EbonPraetor.java +++ b/Mage.Sets/src/mage/cards/e/EbonPraetor.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -42,17 +41,15 @@ import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.PhaseStep; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EbonStronghold.java b/Mage.Sets/src/mage/cards/e/EbonStronghold.java index a4cf39efea2..397143ad280 100644 --- a/Mage.Sets/src/mage/cards/e/EbonStronghold.java +++ b/Mage.Sets/src/mage/cards/e/EbonStronghold.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/e/EbonbladeReaper.java b/Mage.Sets/src/mage/cards/e/EbonbladeReaper.java index 73e52f21dbd..a875806cf95 100644 --- a/Mage.Sets/src/mage/cards/e/EbonbladeReaper.java +++ b/Mage.Sets/src/mage/cards/e/EbonbladeReaper.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author BijanT diff --git a/Mage.Sets/src/mage/cards/e/EbonyCharm.java b/Mage.Sets/src/mage/cards/e/EbonyCharm.java index 53a4318d601..aab766aacea 100644 --- a/Mage.Sets/src/mage/cards/e/EbonyCharm.java +++ b/Mage.Sets/src/mage/cards/e/EbonyCharm.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.OneShotEffect; @@ -46,6 +45,8 @@ import mage.target.common.TargetCardInASingleGraveyard; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EbonyHorse.java b/Mage.Sets/src/mage/cards/e/EbonyHorse.java index 054d6b33839..3ec2929ca99 100644 --- a/Mage.Sets/src/mage/cards/e/EbonyHorse.java +++ b/Mage.Sets/src/mage/cards/e/EbonyHorse.java @@ -27,8 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -48,6 +46,8 @@ import mage.filter.predicate.permanent.AttackingPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/e/EbonyOwlNetsuke.java b/Mage.Sets/src/mage/cards/e/EbonyOwlNetsuke.java index 73b1c83dde8..ad640af50e5 100644 --- a/Mage.Sets/src/mage/cards/e/EbonyOwlNetsuke.java +++ b/Mage.Sets/src/mage/cards/e/EbonyOwlNetsuke.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -41,6 +40,8 @@ import mage.game.events.GameEvent.EventType; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/e/EbonyRhino.java b/Mage.Sets/src/mage/cards/e/EbonyRhino.java index 3c75b65dd82..6ef793d7775 100644 --- a/Mage.Sets/src/mage/cards/e/EbonyRhino.java +++ b/Mage.Sets/src/mage/cards/e/EbonyRhino.java @@ -27,12 +27,13 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/EbonyTreefolk.java b/Mage.Sets/src/mage/cards/e/EbonyTreefolk.java index 5028eddb620..1936f610948 100644 --- a/Mage.Sets/src/mage/cards/e/EbonyTreefolk.java +++ b/Mage.Sets/src/mage/cards/e/EbonyTreefolk.java @@ -27,18 +27,18 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EchoBaseCommando.java b/Mage.Sets/src/mage/cards/e/EchoBaseCommando.java index 835979e482e..7864d006718 100644 --- a/Mage.Sets/src/mage/cards/e/EchoBaseCommando.java +++ b/Mage.Sets/src/mage/cards/e/EchoBaseCommando.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.ActivatedAbility; @@ -36,13 +35,7 @@ import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AbilityType; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; @@ -52,6 +45,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/e/EchoCirclet.java b/Mage.Sets/src/mage/cards/e/EchoCirclet.java index f8dada29e11..5f9f43ababd 100644 --- a/Mage.Sets/src/mage/cards/e/EchoCirclet.java +++ b/Mage.Sets/src/mage/cards/e/EchoCirclet.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -37,9 +34,12 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * @author nantuko diff --git a/Mage.Sets/src/mage/cards/e/EchoTracer.java b/Mage.Sets/src/mage/cards/e/EchoTracer.java index ae79af8cfb6..a73a7a13793 100644 --- a/Mage.Sets/src/mage/cards/e/EchoTracer.java +++ b/Mage.Sets/src/mage/cards/e/EchoTracer.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EchoesOfTheKinTree.java b/Mage.Sets/src/mage/cards/e/EchoesOfTheKinTree.java index c0673833a64..c1dc6f4ae1c 100644 --- a/Mage.Sets/src/mage/cards/e/EchoesOfTheKinTree.java +++ b/Mage.Sets/src/mage/cards/e/EchoesOfTheKinTree.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.keyword.BolsterEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EchoingCalm.java b/Mage.Sets/src/mage/cards/e/EchoingCalm.java index 4463e071ce2..201aded9f77 100644 --- a/Mage.Sets/src/mage/cards/e/EchoingCalm.java +++ b/Mage.Sets/src/mage/cards/e/EchoingCalm.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/e/EchoingCourage.java b/Mage.Sets/src/mage/cards/e/EchoingCourage.java index 923132d7e7d..4311840be3e 100644 --- a/Mage.Sets/src/mage/cards/e/EchoingCourage.java +++ b/Mage.Sets/src/mage/cards/e/EchoingCourage.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EchoingDecay.java b/Mage.Sets/src/mage/cards/e/EchoingDecay.java index 87b1a5f60e6..38786a6c5a8 100644 --- a/Mage.Sets/src/mage/cards/e/EchoingDecay.java +++ b/Mage.Sets/src/mage/cards/e/EchoingDecay.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EchoingRuin.java b/Mage.Sets/src/mage/cards/e/EchoingRuin.java index dbcefee6bb5..977992b0b88 100644 --- a/Mage.Sets/src/mage/cards/e/EchoingRuin.java +++ b/Mage.Sets/src/mage/cards/e/EchoingRuin.java @@ -27,13 +27,12 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; -import mage.constants.Outcome; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; @@ -41,6 +40,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EchoingTruth.java b/Mage.Sets/src/mage/cards/e/EchoingTruth.java index 46659bc02ab..db7bc37d973 100644 --- a/Mage.Sets/src/mage/cards/e/EchoingTruth.java +++ b/Mage.Sets/src/mage/cards/e/EchoingTruth.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.OneShotEffect; @@ -47,6 +46,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetNonlandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EddytrailHawk.java b/Mage.Sets/src/mage/cards/e/EddytrailHawk.java index 633b6a47fe7..769b6c8cb50 100644 --- a/Mage.Sets/src/mage/cards/e/EddytrailHawk.java +++ b/Mage.Sets/src/mage/cards/e/EddytrailHawk.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -45,6 +44,8 @@ import mage.filter.common.FilterAttackingCreature; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EdgeOfAutumn.java b/Mage.Sets/src/mage/cards/e/EdgeOfAutumn.java index 9545a6fbd4c..d10673d6da0 100644 --- a/Mage.Sets/src/mage/cards/e/EdgeOfAutumn.java +++ b/Mage.Sets/src/mage/cards/e/EdgeOfAutumn.java @@ -27,9 +27,7 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -44,6 +42,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author FenrisulfrX @@ -57,7 +57,7 @@ public class EdgeOfAutumn extends CardImpl { // If you control four or fewer lands, search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(new FilterBasicLandCard()), true), - new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 5), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 5), "If you control four or fewer lands, search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.")); // Cycling-Sacrifice a land. diff --git a/Mage.Sets/src/mage/cards/e/EdgeOfTheDivinity.java b/Mage.Sets/src/mage/cards/e/EdgeOfTheDivinity.java index 70648ddc75e..7660be222b5 100644 --- a/Mage.Sets/src/mage/cards/e/EdgeOfTheDivinity.java +++ b/Mage.Sets/src/mage/cards/e/EdgeOfTheDivinity.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -36,14 +35,16 @@ import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; -import mage.constants.CardType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/Edgewalker.java b/Mage.Sets/src/mage/cards/e/Edgewalker.java index a38562e0de3..6f75f9300d8 100644 --- a/Mage.Sets/src/mage/cards/e/Edgewalker.java +++ b/Mage.Sets/src/mage/cards/e/Edgewalker.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EdificeOfAuthority.java b/Mage.Sets/src/mage/cards/e/EdificeOfAuthority.java new file mode 100644 index 00000000000..4d95815c71c --- /dev/null +++ b/Mage.Sets/src/mage/cards/e/EdificeOfAuthority.java @@ -0,0 +1,188 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.e; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.SourceHasCounterCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.decorator.ConditionalActivatedAbility; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.RestrictionEffect; +import mage.abilities.effects.common.combat.CantAttackTargetEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.PhaseStep; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.game.turn.Step; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author jeffwadsworth + */ +public class EdificeOfAuthority extends CardImpl { + + private static final String rule = "{1}, {T}: Until your next turn, target creature can't attack or block and its activated abilities can't be activated. Activate this ability only if there are three or more brick counter on {this}."; + + public EdificeOfAuthority(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); + + // {1}, {T}: Target creature can't attack this turn. Put a brick counter on Edifice of Authority. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantAttackTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{1}")); + ability.addCost(new TapSourceCost()); + ability.addEffect(new AddCountersSourceEffect(CounterType.BRICK.createInstance())); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + + // {1}, {T}: Until your next turn, target creature can't attack or block and its activated abilities can't be activated. Activate this ability only if there are three or more brick counter on Edifice of Authority. + Condition condition = new SourceHasCounterCondition(CounterType.BRICK, 3, Integer.MAX_VALUE); + Ability ability2 = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new EdificeOfAuthorityEffect(), new ManaCostsImpl("{1}"), condition, rule); + ability2.addCost(new TapSourceCost()); + ability2.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability2); + + } + + public EdificeOfAuthority(final EdificeOfAuthority card) { + super(card); + } + + @Override + public EdificeOfAuthority copy() { + return new EdificeOfAuthority(this); + } +} + +class EdificeOfAuthorityEffect extends OneShotEffect { + + public EdificeOfAuthorityEffect() { + super(Outcome.LoseAbility); + } + + public EdificeOfAuthorityEffect(String ruleText) { + super(Outcome.LoseAbility); + staticText = ruleText; + } + + public EdificeOfAuthorityEffect(final EdificeOfAuthorityEffect effect) { + super(effect); + } + + @Override + public EdificeOfAuthorityEffect copy() { + return new EdificeOfAuthorityEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + EdificeOfAuthorityRestrictionEffect effect = new EdificeOfAuthorityRestrictionEffect(); + game.addEffect(effect, source); + return true; + } +} + +class EdificeOfAuthorityRestrictionEffect extends RestrictionEffect { + + public EdificeOfAuthorityRestrictionEffect() { + super(Duration.Custom); + staticText = ""; + } + + public EdificeOfAuthorityRestrictionEffect(final EdificeOfAuthorityRestrictionEffect effect) { + super(effect); + } + + @Override + public void init(Ability source, Game game) { + super.init(source, game); + for (UUID targetId : this.getTargetPointer().getTargets(game, source)) { + Permanent permanent = game.getPermanent(targetId); + if (permanent != null) { + permanent.addInfo("Can't attack or block and its activated abilities can't be activated." + getId(), "", game); + } + } + } + + @Override + public boolean isInactive(Ability source, Game game) { + if (game.getPhase().getStep().getType() == PhaseStep.UNTAP + && game.getStep().getStepPart() == Step.StepPart.PRE) { + if (game.getActivePlayerId().equals(source.getControllerId()) + || game.getPlayer(source.getControllerId()).hasReachedNextTurnAfterLeaving()) { + for (UUID targetId : this.getTargetPointer().getTargets(game, source)) { + Permanent permanent = game.getPermanent(targetId); + if (permanent != null) { + permanent.addInfo("Can't attack or block and its activated abilities can't be activated." + getId(), "", game); + } + } + return true; + } + } + return false; + } + + @Override + public boolean applies(Permanent permanent, Ability source, Game game) { + if (this.targetPointer.getTargets(game, source).contains(permanent.getId())) { + return true; + } + return false; + } + + @Override + public boolean canAttack(Game game) { + return false; + } + + @Override + public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game) { + return false; + } + + @Override + public boolean canUseActivatedAbilities(Permanent permanent, Ability source, Game game) { + return false; + } + + @Override + public EdificeOfAuthorityRestrictionEffect copy() { + return new EdificeOfAuthorityRestrictionEffect(this); + } + +} diff --git a/Mage.Sets/src/mage/cards/e/EdricSpymasterOfTrest.java b/Mage.Sets/src/mage/cards/e/EdricSpymasterOfTrest.java index f90123eeca9..72d5e522165 100644 --- a/Mage.Sets/src/mage/cards/e/EdricSpymasterOfTrest.java +++ b/Mage.Sets/src/mage/cards/e/EdricSpymasterOfTrest.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -35,6 +34,7 @@ import mage.abilities.effects.common.DrawCardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.DamagedPlayerEvent; @@ -42,6 +42,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * @author mluds */ @@ -49,7 +51,7 @@ public class EdricSpymasterOfTrest extends CardImpl { public EdricSpymasterOfTrest(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Rogue"); diff --git a/Mage.Sets/src/mage/cards/e/EelUmbra.java b/Mage.Sets/src/mage/cards/e/EelUmbra.java index 2e9ae865d09..62985123b26 100644 --- a/Mage.Sets/src/mage/cards/e/EelUmbra.java +++ b/Mage.Sets/src/mage/cards/e/EelUmbra.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -39,9 +36,15 @@ import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.TotemArmorAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EerieInterlude.java b/Mage.Sets/src/mage/cards/e/EerieInterlude.java index 2d5c954b8ac..d2038b76bd3 100644 --- a/Mage.Sets/src/mage/cards/e/EerieInterlude.java +++ b/Mage.Sets/src/mage/cards/e/EerieInterlude.java @@ -27,21 +27,13 @@ */ package mage.cards.e; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ReturnToBattlefieldUnderOwnerControlTargetEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.cards.CardSetInfo; -import mage.cards.MeldCard; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.common.FilterControlledCreaturePermanent; @@ -54,6 +46,10 @@ import mage.target.common.TargetControlledCreaturePermanent; import mage.target.targetpointer.FixedTargets; import mage.util.CardUtil; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EerieProcession.java b/Mage.Sets/src/mage/cards/e/EerieProcession.java index 112c58fb1ea..3bfe1a00d9e 100644 --- a/Mage.Sets/src/mage/cards/e/EerieProcession.java +++ b/Mage.Sets/src/mage/cards/e/EerieProcession.java @@ -28,16 +28,16 @@ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/e/EfficientConstruction.java b/Mage.Sets/src/mage/cards/e/EfficientConstruction.java index fd2e6addb8f..878870fffa5 100644 --- a/Mage.Sets/src/mage/cards/e/EfficientConstruction.java +++ b/Mage.Sets/src/mage/cards/e/EfficientConstruction.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterArtifactSpell; import mage.game.permanent.token.ThopterColorlessToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EfreetWeaponmaster.java b/Mage.Sets/src/mage/cards/e/EfreetWeaponmaster.java index 3a70cbf7aaf..248c772ed38 100644 --- a/Mage.Sets/src/mage/cards/e/EfreetWeaponmaster.java +++ b/Mage.Sets/src/mage/cards/e/EfreetWeaponmaster.java @@ -27,12 +27,11 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.MorphAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -47,6 +46,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EgoErasure.java b/Mage.Sets/src/mage/cards/e/EgoErasure.java index 0d204ba173b..65870c0fc12 100644 --- a/Mage.Sets/src/mage/cards/e/EgoErasure.java +++ b/Mage.Sets/src/mage/cards/e/EgoErasure.java @@ -28,9 +28,6 @@ package mage.cards.e; -import java.util.Iterator; -import java.util.List; -import java.util.UUID; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffectImpl; @@ -38,16 +35,16 @@ import mage.abilities.keyword.ChangelingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.repository.CardRepository; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPlayer; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/e/EidolonOfBlossoms.java b/Mage.Sets/src/mage/cards/e/EidolonOfBlossoms.java index 02909b58557..21aae5d88b8 100644 --- a/Mage.Sets/src/mage/cards/e/EidolonOfBlossoms.java +++ b/Mage.Sets/src/mage/cards/e/EidolonOfBlossoms.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.abilityword.ConstellationAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EidolonOfCountlessBattles.java b/Mage.Sets/src/mage/cards/e/EidolonOfCountlessBattles.java index b64b3d10d63..a4364612f0f 100644 --- a/Mage.Sets/src/mage/cards/e/EidolonOfCountlessBattles.java +++ b/Mage.Sets/src/mage/cards/e/EidolonOfCountlessBattles.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -46,6 +45,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EidolonOfRhetoric.java b/Mage.Sets/src/mage/cards/e/EidolonOfRhetoric.java index 1feb781aeca..f9f475a6664 100644 --- a/Mage.Sets/src/mage/cards/e/EidolonOfRhetoric.java +++ b/Mage.Sets/src/mage/cards/e/EidolonOfRhetoric.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.CantCastMoreThanOneSpellEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EidolonOfTheGreatRevel.java b/Mage.Sets/src/mage/cards/e/EidolonOfTheGreatRevel.java index ebaa4404a82..37b0413a01c 100644 --- a/Mage.Sets/src/mage/cards/e/EidolonOfTheGreatRevel.java +++ b/Mage.Sets/src/mage/cards/e/EidolonOfTheGreatRevel.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -42,6 +41,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.stack.Spell; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EiganjoCastle.java b/Mage.Sets/src/mage/cards/e/EiganjoCastle.java index d48ef704de7..1164c4c2532 100644 --- a/Mage.Sets/src/mage/cards/e/EiganjoCastle.java +++ b/Mage.Sets/src/mage/cards/e/EiganjoCastle.java @@ -28,9 +28,6 @@ package mage.cards.e; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,10 +36,13 @@ import mage.abilities.effects.common.PreventDamageToTargetEffect; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author Loki */ @@ -51,12 +51,12 @@ public class EiganjoCastle extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("legendary creature"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public EiganjoCastle(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.addAbility(new WhiteManaAbility()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn, 2), new ColoredManaCost(ColoredManaSymbol.W)); ability.addCost(new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/e/EiganjoFreeRiders.java b/Mage.Sets/src/mage/cards/e/EiganjoFreeRiders.java index 99d5ca49012..d6b98182f6e 100644 --- a/Mage.Sets/src/mage/cards/e/EiganjoFreeRiders.java +++ b/Mage.Sets/src/mage/cards/e/EiganjoFreeRiders.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -40,6 +39,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/e/EightAndAHalfTails.java b/Mage.Sets/src/mage/cards/e/EightAndAHalfTails.java index 1806dba5188..5061fcac694 100644 --- a/Mage.Sets/src/mage/cards/e/EightAndAHalfTails.java +++ b/Mage.Sets/src/mage/cards/e/EightAndAHalfTails.java @@ -27,24 +27,26 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.Target; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetSpellOrPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +55,7 @@ public class EightAndAHalfTails extends CardImpl { public EightAndAHalfTails(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Fox"); this.subtype.add("Cleric"); diff --git a/Mage.Sets/src/mage/cards/e/EkunduGriffin.java b/Mage.Sets/src/mage/cards/e/EkunduGriffin.java index 681fe4da32f..d07390d7a60 100644 --- a/Mage.Sets/src/mage/cards/e/EkunduGriffin.java +++ b/Mage.Sets/src/mage/cards/e/EkunduGriffin.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/ElHajjaj.java b/Mage.Sets/src/mage/cards/e/ElHajjaj.java index 6e7a394179a..b8c30414481 100644 --- a/Mage.Sets/src/mage/cards/e/ElHajjaj.java +++ b/Mage.Sets/src/mage/cards/e/ElHajjaj.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsDamageGainLifeSourceTriggeredAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EladamriLordOfLeaves.java b/Mage.Sets/src/mage/cards/e/EladamriLordOfLeaves.java index a9168df1cd1..feeb309a190 100644 --- a/Mage.Sets/src/mage/cards/e/EladamriLordOfLeaves.java +++ b/Mage.Sets/src/mage/cards/e/EladamriLordOfLeaves.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -37,12 +34,16 @@ import mage.abilities.keyword.ForestwalkAbility; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Loki @@ -59,7 +60,7 @@ public class EladamriLordOfLeaves extends CardImpl { public EladamriLordOfLeaves(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/e/EladamrisCall.java b/Mage.Sets/src/mage/cards/e/EladamrisCall.java index 99be6ab6d26..a8d16a5f059 100644 --- a/Mage.Sets/src/mage/cards/e/EladamrisCall.java +++ b/Mage.Sets/src/mage/cards/e/EladamrisCall.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EladamrisVineyard.java b/Mage.Sets/src/mage/cards/e/EladamrisVineyard.java index eed8be1e3c4..ce87d3a4dec 100644 --- a/Mage.Sets/src/mage/cards/e/EladamrisVineyard.java +++ b/Mage.Sets/src/mage/cards/e/EladamrisVineyard.java @@ -27,8 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - import mage.Mana; import mage.abilities.common.BeginningOfPreCombatMainTriggeredAbility; import mage.abilities.effects.common.AddManaToManaPoolTargetControllerEffect; @@ -38,6 +36,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/ElandUmbra.java b/Mage.Sets/src/mage/cards/e/ElandUmbra.java index eb149953254..f819d535c44 100644 --- a/Mage.Sets/src/mage/cards/e/ElandUmbra.java +++ b/Mage.Sets/src/mage/cards/e/ElandUmbra.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -38,9 +35,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TotemArmorAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/ElbrusTheBindingBlade.java b/Mage.Sets/src/mage/cards/e/ElbrusTheBindingBlade.java index 34d5f2efd95..e18fac014ff 100644 --- a/Mage.Sets/src/mage/cards/e/ElbrusTheBindingBlade.java +++ b/Mage.Sets/src/mage/cards/e/ElbrusTheBindingBlade.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToAPlayerAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -38,14 +35,18 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.TransformAbility; -import mage.cards.w.WithengarUnbound; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.w.WithengarUnbound; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author BetaSteward @@ -54,7 +55,7 @@ public class ElbrusTheBindingBlade extends CardImpl { public ElbrusTheBindingBlade(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{7}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Equipment"); this.transformable = true; diff --git a/Mage.Sets/src/mage/cards/e/ElderCathar.java b/Mage.Sets/src/mage/cards/e/ElderCathar.java index 65045ba6936..497a8165b70 100644 --- a/Mage.Sets/src/mage/cards/e/ElderCathar.java +++ b/Mage.Sets/src/mage/cards/e/ElderCathar.java @@ -27,13 +27,13 @@ */ package mage.cards.e; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.counters.Counter; import mage.counters.CounterType; diff --git a/Mage.Sets/src/mage/cards/e/ElderDeepFiend.java b/Mage.Sets/src/mage/cards/e/ElderDeepFiend.java index 0bdd0b562a2..7000297ee41 100644 --- a/Mage.Sets/src/mage/cards/e/ElderDeepFiend.java +++ b/Mage.Sets/src/mage/cards/e/ElderDeepFiend.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/e/ElderDruid.java b/Mage.Sets/src/mage/cards/e/ElderDruid.java index 8704e3c8c61..7725aa4b21e 100644 --- a/Mage.Sets/src/mage/cards/e/ElderDruid.java +++ b/Mage.Sets/src/mage/cards/e/ElderDruid.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/e/ElderMastery.java b/Mage.Sets/src/mage/cards/e/ElderMastery.java index 5b5e8bb664f..06baad0349d 100644 --- a/Mage.Sets/src/mage/cards/e/ElderMastery.java +++ b/Mage.Sets/src/mage/cards/e/ElderMastery.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToAPlayerAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/ElderOfLaurels.java b/Mage.Sets/src/mage/cards/e/ElderOfLaurels.java index 9c5a57bfd66..d1b1c71ebac 100644 --- a/Mage.Sets/src/mage/cards/e/ElderOfLaurels.java +++ b/Mage.Sets/src/mage/cards/e/ElderOfLaurels.java @@ -27,10 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,9 +34,14 @@ import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/ElderPineOfJukai.java b/Mage.Sets/src/mage/cards/e/ElderPineOfJukai.java index e3876ccfad5..dfe2d34a164 100644 --- a/Mage.Sets/src/mage/cards/e/ElderPineOfJukai.java +++ b/Mage.Sets/src/mage/cards/e/ElderPineOfJukai.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.RevealLibraryPutIntoHandEffect; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.common.FilterLandCard; import mage.filter.common.FilterSpiritOrArcaneCard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/ElderscaleWurm.java b/Mage.Sets/src/mage/cards/e/ElderscaleWurm.java index e1e4d4eb6d5..361437d284b 100644 --- a/Mage.Sets/src/mage/cards/e/ElderscaleWurm.java +++ b/Mage.Sets/src/mage/cards/e/ElderscaleWurm.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,6 +36,10 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; diff --git a/Mage.Sets/src/mage/cards/e/ElderwoodScion.java b/Mage.Sets/src/mage/cards/e/ElderwoodScion.java index 7dd1bd42317..30a348f510e 100644 --- a/Mage.Sets/src/mage/cards/e/ElderwoodScion.java +++ b/Mage.Sets/src/mage/cards/e/ElderwoodScion.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -39,15 +38,13 @@ import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.target.Target; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EldraziAggressor.java b/Mage.Sets/src/mage/cards/e/EldraziAggressor.java index 7c4edd78a9f..0c27e3c931b 100644 --- a/Mage.Sets/src/mage/cards/e/EldraziAggressor.java +++ b/Mage.Sets/src/mage/cards/e/EldraziAggressor.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -44,6 +43,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorlessPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EldraziConscription.java b/Mage.Sets/src/mage/cards/e/EldraziConscription.java index b2d0b2a02dd..3425b9a67f0 100644 --- a/Mage.Sets/src/mage/cards/e/EldraziConscription.java +++ b/Mage.Sets/src/mage/cards/e/EldraziConscription.java @@ -28,11 +28,6 @@ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -44,11 +39,12 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.Outcome; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EldraziDevastator.java b/Mage.Sets/src/mage/cards/e/EldraziDevastator.java index a1f6ed53ffa..45e6daa6f2b 100644 --- a/Mage.Sets/src/mage/cards/e/EldraziDevastator.java +++ b/Mage.Sets/src/mage/cards/e/EldraziDevastator.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EldraziDisplacer.java b/Mage.Sets/src/mage/cards/e/EldraziDisplacer.java index 4bc25802a48..8b5c51b9b8f 100644 --- a/Mage.Sets/src/mage/cards/e/EldraziDisplacer.java +++ b/Mage.Sets/src/mage/cards/e/EldraziDisplacer.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EldraziMimic.java b/Mage.Sets/src/mage/cards/e/EldraziMimic.java index 19d9f8cb4c0..7350e4c609d 100644 --- a/Mage.Sets/src/mage/cards/e/EldraziMimic.java +++ b/Mage.Sets/src/mage/cards/e/EldraziMimic.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; @@ -36,11 +35,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorlessPredicate; import mage.filter.predicate.permanent.AnotherPredicate; @@ -49,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EldraziMonument.java b/Mage.Sets/src/mage/cards/e/EldraziMonument.java index 50c3b423ea2..60868c105a8 100644 --- a/Mage.Sets/src/mage/cards/e/EldraziMonument.java +++ b/Mage.Sets/src/mage/cards/e/EldraziMonument.java @@ -28,11 +28,6 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.OnEventTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +40,10 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -54,6 +53,8 @@ import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/e/EldraziObligator.java b/Mage.Sets/src/mage/cards/e/EldraziObligator.java index 973efb0c107..db693a772ee 100644 --- a/Mage.Sets/src/mage/cards/e/EldraziObligator.java +++ b/Mage.Sets/src/mage/cards/e/EldraziObligator.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; @@ -47,6 +46,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EldraziSkyspawner.java b/Mage.Sets/src/mage/cards/e/EldraziSkyspawner.java index cd63ed45807..5df6806cb00 100644 --- a/Mage.Sets/src/mage/cards/e/EldraziSkyspawner.java +++ b/Mage.Sets/src/mage/cards/e/EldraziSkyspawner.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.Effect; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.EldraziScionToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EldraziTemple.java b/Mage.Sets/src/mage/cards/e/EldraziTemple.java index 338358dddcd..e004631e49e 100644 --- a/Mage.Sets/src/mage/cards/e/EldraziTemple.java +++ b/Mage.Sets/src/mage/cards/e/EldraziTemple.java @@ -27,10 +27,7 @@ */ package mage.cards.e; -import java.util.UUID; - import mage.ConditionalMana; -import mage.constants.CardType; import mage.MageObject; import mage.Mana; import mage.abilities.Ability; @@ -41,8 +38,11 @@ import mage.abilities.mana.ConditionalColorlessManaAbility; import mage.abilities.mana.builder.ConditionalManaBuilder; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.Game; +import java.util.UUID; + /** * * @author Loki, nantuko diff --git a/Mage.Sets/src/mage/cards/e/EldritchEvolution.java b/Mage.Sets/src/mage/cards/e/EldritchEvolution.java index b78f3cda7f4..65f57486a03 100644 --- a/Mage.Sets/src/mage/cards/e/EldritchEvolution.java +++ b/Mage.Sets/src/mage/cards/e/EldritchEvolution.java @@ -27,8 +27,8 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.costs.Cost; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.OneShotEffect; @@ -39,7 +39,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -50,6 +49,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -106,7 +107,7 @@ class EldritchEvolutionEffect extends OneShotEffect { if (sacrificedPermanent != null && controller != null) { int newConvertedCost = sacrificedPermanent.getConvertedManaCost() + 2; FilterCard filter = new FilterCard("creature card with converted mana cost " + newConvertedCost + " or less"); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, newConvertedCost+1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, newConvertedCost+1)); filter.add(new CardTypePredicate(CardType.CREATURE)); TargetCardInLibrary target = new TargetCardInLibrary(filter); if (controller.searchLibrary(target, game)) { diff --git a/Mage.Sets/src/mage/cards/e/ElectricEel.java b/Mage.Sets/src/mage/cards/e/ElectricEel.java index 0e87a4e875c..4e2ddd2ff88 100644 --- a/Mage.Sets/src/mage/cards/e/ElectricEel.java +++ b/Mage.Sets/src/mage/cards/e/ElectricEel.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/Electrickery.java b/Mage.Sets/src/mage/cards/e/Electrickery.java index 344b31a8c62..cba3a26c1db 100644 --- a/Mage.Sets/src/mage/cards/e/Electrickery.java +++ b/Mage.Sets/src/mage/cards/e/Electrickery.java @@ -27,20 +27,20 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.OverloadAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Electrify.java b/Mage.Sets/src/mage/cards/e/Electrify.java new file mode 100644 index 00000000000..1dd37270533 --- /dev/null +++ b/Mage.Sets/src/mage/cards/e/Electrify.java @@ -0,0 +1,59 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.e; + +import java.util.UUID; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class Electrify extends CardImpl { + + public Electrify(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{R}"); + + // Electrify deals 4 damage to target creature. + getSpellAbility().addEffect(new DamageTargetEffect(4)); + getSpellAbility().addTarget(new TargetCreaturePermanent()); + } + + public Electrify(final Electrify card) { + super(card); + } + + @Override + public Electrify copy() { + return new Electrify(this); + } +} diff --git a/Mage.Sets/src/mage/cards/e/Electrolyze.java b/Mage.Sets/src/mage/cards/e/Electrolyze.java index 8aaf29be936..8b92785ee4d 100644 --- a/Mage.Sets/src/mage/cards/e/Electrolyze.java +++ b/Mage.Sets/src/mage/cards/e/Electrolyze.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageMultiEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayerAmount; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/e/Electropotence.java b/Mage.Sets/src/mage/cards/e/Electropotence.java index e18c15f9169..e560e4b6215 100644 --- a/Mage.Sets/src/mage/cards/e/Electropotence.java +++ b/Mage.Sets/src/mage/cards/e/Electropotence.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.ManaCosts; @@ -45,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/ElectrostaticBolt.java b/Mage.Sets/src/mage/cards/e/ElectrostaticBolt.java index b5fa7d4a36f..afffdb0277d 100644 --- a/Mage.Sets/src/mage/cards/e/ElectrostaticBolt.java +++ b/Mage.Sets/src/mage/cards/e/ElectrostaticBolt.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/ElectrostaticPummeler.java b/Mage.Sets/src/mage/cards/e/ElectrostaticPummeler.java index 7e2d861bc7c..b000630c836 100644 --- a/Mage.Sets/src/mage/cards/e/ElectrostaticPummeler.java +++ b/Mage.Sets/src/mage/cards/e/ElectrostaticPummeler.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/e/ElegantEdgecrafters.java b/Mage.Sets/src/mage/cards/e/ElegantEdgecrafters.java index 9d5a47c09b8..2250c761ffa 100644 --- a/Mage.Sets/src/mage/cards/e/ElegantEdgecrafters.java +++ b/Mage.Sets/src/mage/cards/e/ElegantEdgecrafters.java @@ -27,8 +27,8 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; import mage.abilities.keyword.FabricateAbility; @@ -36,10 +36,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -49,7 +50,7 @@ public class ElegantEdgecrafters extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public ElegantEdgecrafters(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/e/ElementalAppeal.java b/Mage.Sets/src/mage/cards/e/ElementalAppeal.java index 3313e9e046b..5fe76f43ad1 100644 --- a/Mage.Sets/src/mage/cards/e/ElementalAppeal.java +++ b/Mage.Sets/src/mage/cards/e/ElementalAppeal.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.condition.LockedInCondition; @@ -47,6 +46,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/ElementalAugury.java b/Mage.Sets/src/mage/cards/e/ElementalAugury.java index 4ada3537c12..d5f72f21695 100644 --- a/Mage.Sets/src/mage/cards/e/ElementalAugury.java +++ b/Mage.Sets/src/mage/cards/e/ElementalAugury.java @@ -27,16 +27,11 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -44,6 +39,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ElementalBond.java b/Mage.Sets/src/mage/cards/e/ElementalBond.java index c16756181a7..ce4f6c616de 100644 --- a/Mage.Sets/src/mage/cards/e/ElementalBond.java +++ b/Mage.Sets/src/mage/cards/e/ElementalBond.java @@ -27,17 +27,18 @@ */ package mage.cards.e; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author emerald000 @@ -47,7 +48,7 @@ public class ElementalBond extends CardImpl { private static final FilterPermanent filter = new FilterControlledCreaturePermanent("a creature with power 3 or greater"); static { - filter.add(new PowerPredicate(ComparisonType.GreaterThan, 2)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); } public ElementalBond(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/e/ElementalMastery.java b/Mage.Sets/src/mage/cards/e/ElementalMastery.java index 914b39854e1..c10e74f8bbc 100644 --- a/Mage.Sets/src/mage/cards/e/ElementalMastery.java +++ b/Mage.Sets/src/mage/cards/e/ElementalMastery.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -51,6 +50,8 @@ import mage.game.permanent.token.Token; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/ElementalUprising.java b/Mage.Sets/src/mage/cards/e/ElementalUprising.java index 926f8ac93e6..6af935f2c98 100644 --- a/Mage.Sets/src/mage/cards/e/ElementalUprising.java +++ b/Mage.Sets/src/mage/cards/e/ElementalUprising.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.Effect; import mage.abilities.effects.common.combat.MustBeBlockedByAtLeastOneTargetEffect; @@ -41,6 +40,8 @@ import mage.filter.common.FilterControlledLandPermanent; import mage.game.permanent.token.Token; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/ElephantAmbush.java b/Mage.Sets/src/mage/cards/e/ElephantAmbush.java index 9f9eaad7d41..7921766b763 100644 --- a/Mage.Sets/src/mage/cards/e/ElephantAmbush.java +++ b/Mage.Sets/src/mage/cards/e/ElephantAmbush.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlashbackAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.TimingRule; import mage.game.permanent.token.ElephantToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/ElephantGrass.java b/Mage.Sets/src/mage/cards/e/ElephantGrass.java index 2f57f5b75f9..a91a123d297 100644 --- a/Mage.Sets/src/mage/cards/e/ElephantGrass.java +++ b/Mage.Sets/src/mage/cards/e/ElephantGrass.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -43,6 +42,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ElephantGraveyard.java b/Mage.Sets/src/mage/cards/e/ElephantGraveyard.java index d3d24c71317..c7f4add9b33 100644 --- a/Mage.Sets/src/mage/cards/e/ElephantGraveyard.java +++ b/Mage.Sets/src/mage/cards/e/ElephantGraveyard.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/e/ElephantGuide.java b/Mage.Sets/src/mage/cards/e/ElephantGuide.java index 13c09d0df0c..e33f82008ca 100644 --- a/Mage.Sets/src/mage/cards/e/ElephantGuide.java +++ b/Mage.Sets/src/mage/cards/e/ElephantGuide.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.game.permanent.token.ElephantToken; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EleshNornGrandCenobite.java b/Mage.Sets/src/mage/cards/e/EleshNornGrandCenobite.java index 470abe02176..d007b3c7f53 100644 --- a/Mage.Sets/src/mage/cards/e/EleshNornGrandCenobite.java +++ b/Mage.Sets/src/mage/cards/e/EleshNornGrandCenobite.java @@ -28,9 +28,6 @@ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -38,9 +35,13 @@ import mage.abilities.effects.common.continuous.BoostOpponentsEffect; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki @@ -49,7 +50,7 @@ public class EleshNornGrandCenobite extends CardImpl { public EleshNornGrandCenobite (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Praetor"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/e/ElfReplica.java b/Mage.Sets/src/mage/cards/e/ElfReplica.java index 87a8ae9c70e..f4368512198 100644 --- a/Mage.Sets/src/mage/cards/e/ElfReplica.java +++ b/Mage.Sets/src/mage/cards/e/ElfReplica.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,12 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/ElfhamePalace.java b/Mage.Sets/src/mage/cards/e/ElfhamePalace.java index 545b20fd456..e2242e1a8d2 100644 --- a/Mage.Sets/src/mage/cards/e/ElfhamePalace.java +++ b/Mage.Sets/src/mage/cards/e/ElfhamePalace.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.GreenManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/ElfhameSanctuary.java b/Mage.Sets/src/mage/cards/e/ElfhameSanctuary.java index 5759660efc9..e94751e215f 100644 --- a/Mage.Sets/src/mage/cards/e/ElfhameSanctuary.java +++ b/Mage.Sets/src/mage/cards/e/ElfhameSanctuary.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.ReplacementEffectImpl; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Markedagain diff --git a/Mage.Sets/src/mage/cards/e/ElgaudInquisitor.java b/Mage.Sets/src/mage/cards/e/ElgaudInquisitor.java index 531ff5d6ebd..2ee35b05640 100644 --- a/Mage.Sets/src/mage/cards/e/ElgaudInquisitor.java +++ b/Mage.Sets/src/mage/cards/e/ElgaudInquisitor.java @@ -27,16 +27,17 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.SpiritWhiteToken; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/ElgaudShieldmate.java b/Mage.Sets/src/mage/cards/e/ElgaudShieldmate.java index b7ab4757a16..9adc1b83a44 100644 --- a/Mage.Sets/src/mage/cards/e/ElgaudShieldmate.java +++ b/Mage.Sets/src/mage/cards/e/ElgaudShieldmate.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityPairedEffect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/e/EliminateTheCompetition.java b/Mage.Sets/src/mage/cards/e/EliminateTheCompetition.java index 03bee79302c..63cbb0e93f6 100644 --- a/Mage.Sets/src/mage/cards/e/EliminateTheCompetition.java +++ b/Mage.Sets/src/mage/cards/e/EliminateTheCompetition.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.common.SacrificeXTargetCost; import mage.abilities.dynamicvalue.common.GetXValue; @@ -41,6 +40,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EliteArcanist.java b/Mage.Sets/src/mage/cards/e/EliteArcanist.java index c3f3d5816e6..4220623d9e7 100644 --- a/Mage.Sets/src/mage/cards/e/EliteArcanist.java +++ b/Mage.Sets/src/mage/cards/e/EliteArcanist.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -49,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EliteArchers.java b/Mage.Sets/src/mage/cards/e/EliteArchers.java index 50f4931f837..c810bead9a5 100644 --- a/Mage.Sets/src/mage/cards/e/EliteArchers.java +++ b/Mage.Sets/src/mage/cards/e/EliteArchers.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +34,12 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EliteCatWarrior.java b/Mage.Sets/src/mage/cards/e/EliteCatWarrior.java index c373c2051de..1bd14f65168 100644 --- a/Mage.Sets/src/mage/cards/e/EliteCatWarrior.java +++ b/Mage.Sets/src/mage/cards/e/EliteCatWarrior.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.ForestwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EliteInquisitor.java b/Mage.Sets/src/mage/cards/e/EliteInquisitor.java index 79faf7a26ee..1af223c28a4 100644 --- a/Mage.Sets/src/mage/cards/e/EliteInquisitor.java +++ b/Mage.Sets/src/mage/cards/e/EliteInquisitor.java @@ -27,19 +27,19 @@ */ package mage.cards.e; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.ProtectionAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import java.util.UUID; -import mage.filter.predicate.Predicates; /** * @author nantuko diff --git a/Mage.Sets/src/mage/cards/e/EliteJavelineer.java b/Mage.Sets/src/mage/cards/e/EliteJavelineer.java index 39f7e8d208d..479c0fb4fde 100644 --- a/Mage.Sets/src/mage/cards/e/EliteJavelineer.java +++ b/Mage.Sets/src/mage/cards/e/EliteJavelineer.java @@ -27,17 +27,18 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BlocksTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterAttackingCreature; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EliteScaleguard.java b/Mage.Sets/src/mage/cards/e/EliteScaleguard.java index 4f267b0967a..19d66bc4b7e 100644 --- a/Mage.Sets/src/mage/cards/e/EliteScaleguard.java +++ b/Mage.Sets/src/mage/cards/e/EliteScaleguard.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksCreatureYouControlTriggeredAbility; @@ -47,6 +46,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/e/EliteSkirmisher.java b/Mage.Sets/src/mage/cards/e/EliteSkirmisher.java index 82f7322b738..57a468a509e 100644 --- a/Mage.Sets/src/mage/cards/e/EliteSkirmisher.java +++ b/Mage.Sets/src/mage/cards/e/EliteSkirmisher.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.TapTargetEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EliteVanguard.java b/Mage.Sets/src/mage/cards/e/EliteVanguard.java index 9c16d051137..a1fafd46d0c 100644 --- a/Mage.Sets/src/mage/cards/e/EliteVanguard.java +++ b/Mage.Sets/src/mage/cards/e/EliteVanguard.java @@ -28,11 +28,12 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/ElixirOfImmortality.java b/Mage.Sets/src/mage/cards/e/ElixirOfImmortality.java index c34d0d7432c..c7a8e9c8f83 100644 --- a/Mage.Sets/src/mage/cards/e/ElixirOfImmortality.java +++ b/Mage.Sets/src/mage/cards/e/ElixirOfImmortality.java @@ -28,10 +28,6 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,10 +36,15 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/e/ElixirOfVitality.java b/Mage.Sets/src/mage/cards/e/ElixirOfVitality.java index 92e4f294c12..3a358becc32 100644 --- a/Mage.Sets/src/mage/cards/e/ElixirOfVitality.java +++ b/Mage.Sets/src/mage/cards/e/ElixirOfVitality.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Derpthemeus diff --git a/Mage.Sets/src/mage/cards/e/ElsewhereFlask.java b/Mage.Sets/src/mage/cards/e/ElsewhereFlask.java index ee4638f8cdb..55151ce5838 100644 --- a/Mage.Sets/src/mage/cards/e/ElsewhereFlask.java +++ b/Mage.Sets/src/mage/cards/e/ElsewhereFlask.java @@ -27,8 +27,6 @@ */ package mage.cards.e; -import java.util.Iterator; -import java.util.UUID; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,27 +35,21 @@ import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.mana.BlackManaAbility; -import mage.abilities.mana.BlueManaAbility; -import mage.abilities.mana.GreenManaAbility; -import mage.abilities.mana.RedManaAbility; -import mage.abilities.mana.WhiteManaAbility; +import mage.abilities.mana.*; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.choices.Choice; import mage.choices.ChoiceBasicLandType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.Iterator; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/ElspethKnightErrant.java b/Mage.Sets/src/mage/cards/e/ElspethKnightErrant.java index 2fc1cf28108..60485658da2 100644 --- a/Mage.Sets/src/mage/cards/e/ElspethKnightErrant.java +++ b/Mage.Sets/src/mage/cards/e/ElspethKnightErrant.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; import mage.abilities.common.SimpleStaticAbility; @@ -53,6 +52,8 @@ import mage.game.permanent.token.SoldierToken; import mage.game.permanent.token.Token; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/e/ElspethSunsChampion.java b/Mage.Sets/src/mage/cards/e/ElspethSunsChampion.java index b6c4e56f8d0..9a0f1f8d4a7 100644 --- a/Mage.Sets/src/mage/cards/e/ElspethSunsChampion.java +++ b/Mage.Sets/src/mage/cards/e/ElspethSunsChampion.java @@ -27,8 +27,8 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,12 +43,13 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.command.Emblem; import mage.game.permanent.token.SoldierToken; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,7 +59,7 @@ public class ElspethSunsChampion extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 4 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public ElspethSunsChampion(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/e/ElspethTirel.java b/Mage.Sets/src/mage/cards/e/ElspethTirel.java index 1afc3ed89a5..64ab4d54b6e 100644 --- a/Mage.Sets/src/mage/cards/e/ElspethTirel.java +++ b/Mage.Sets/src/mage/cards/e/ElspethTirel.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -44,6 +43,8 @@ import mage.game.permanent.PermanentToken; import mage.game.permanent.token.SoldierToken; import mage.players.Player; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/ElusiveKrasis.java b/Mage.Sets/src/mage/cards/e/ElusiveKrasis.java index b803be33268..6ec978f41cc 100644 --- a/Mage.Sets/src/mage/cards/e/ElusiveKrasis.java +++ b/Mage.Sets/src/mage/cards/e/ElusiveKrasis.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; -import mage.abilities.keyword.EvolveAbility; import mage.abilities.keyword.CantBeBlockedSourceAbility; +import mage.abilities.keyword.EvolveAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/ElusiveSpellfist.java b/Mage.Sets/src/mage/cards/e/ElusiveSpellfist.java index 37e811382c4..a43211edf07 100644 --- a/Mage.Sets/src/mage/cards/e/ElusiveSpellfist.java +++ b/Mage.Sets/src/mage/cards/e/ElusiveSpellfist.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/ElusiveTormentor.java b/Mage.Sets/src/mage/cards/e/ElusiveTormentor.java index 48941660329..58573bd5cfc 100644 --- a/Mage.Sets/src/mage/cards/e/ElusiveTormentor.java +++ b/Mage.Sets/src/mage/cards/e/ElusiveTormentor.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -35,12 +34,14 @@ import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.TransformAbility; -import mage.cards.i.InsidiousMist; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.i.InsidiousMist; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/ElvenCache.java b/Mage.Sets/src/mage/cards/e/ElvenCache.java index 5733359f6d5..f983524c216 100644 --- a/Mage.Sets/src/mage/cards/e/ElvenCache.java +++ b/Mage.Sets/src/mage/cards/e/ElvenCache.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/e/ElvenFortress.java b/Mage.Sets/src/mage/cards/e/ElvenFortress.java index 5ced9c4c3cb..dbe25ae7afc 100644 --- a/Mage.Sets/src/mage/cards/e/ElvenFortress.java +++ b/Mage.Sets/src/mage/cards/e/ElvenFortress.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterBlockingCreature; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/ElvenLyre.java b/Mage.Sets/src/mage/cards/e/ElvenLyre.java index b4aa6189f36..235ae92b0b5 100644 --- a/Mage.Sets/src/mage/cards/e/ElvenLyre.java +++ b/Mage.Sets/src/mage/cards/e/ElvenLyre.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/ElvenRiders.java b/Mage.Sets/src/mage/cards/e/ElvenRiders.java index 6d50e51c15d..05a87e62ffd 100644 --- a/Mage.Sets/src/mage/cards/e/ElvenRiders.java +++ b/Mage.Sets/src/mage/cards/e/ElvenRiders.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; @@ -41,6 +40,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/e/ElvenRite.java b/Mage.Sets/src/mage/cards/e/ElvenRite.java index de5b3f16300..16376a83faa 100644 --- a/Mage.Sets/src/mage/cards/e/ElvenRite.java +++ b/Mage.Sets/src/mage/cards/e/ElvenRite.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.counter.DistributeCountersEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanentAmount; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/ElvenWarhounds.java b/Mage.Sets/src/mage/cards/e/ElvenWarhounds.java index 681c20b6870..f8d94d9c502 100644 --- a/Mage.Sets/src/mage/cards/e/ElvenWarhounds.java +++ b/Mage.Sets/src/mage/cards/e/ElvenWarhounds.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesBlockedByCreatureTriggeredAbility; import mage.abilities.effects.Effect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ElvesOfDeepShadow.java b/Mage.Sets/src/mage/cards/e/ElvesOfDeepShadow.java index b88e9c371d9..a20c08039af 100644 --- a/Mage.Sets/src/mage/cards/e/ElvesOfDeepShadow.java +++ b/Mage.Sets/src/mage/cards/e/ElvesOfDeepShadow.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -38,8 +35,11 @@ import mage.abilities.effects.common.DamageControllerEffect; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/ElvishAberration.java b/Mage.Sets/src/mage/cards/e/ElvishAberration.java index 145852f98ff..74672be12c1 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishAberration.java +++ b/Mage.Sets/src/mage/cards/e/ElvishAberration.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.Mana; import mage.abilities.costs.common.TapSourceCost; @@ -38,8 +35,11 @@ import mage.abilities.keyword.ForestcyclingAbility; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ElvishArchdruid.java b/Mage.Sets/src/mage/cards/e/ElvishArchdruid.java index adf06b6a360..4dc8557ce1f 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishArchdruid.java +++ b/Mage.Sets/src/mage/cards/e/ElvishArchdruid.java @@ -28,10 +28,6 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.Mana; import mage.abilities.common.SimpleStaticAbility; @@ -40,10 +36,15 @@ import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.mana.DynamicManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com, North diff --git a/Mage.Sets/src/mage/cards/e/ElvishArchers.java b/Mage.Sets/src/mage/cards/e/ElvishArchers.java index 261ac4ada3f..2b6e3b0107c 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishArchers.java +++ b/Mage.Sets/src/mage/cards/e/ElvishArchers.java @@ -27,12 +27,13 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/ElvishBard.java b/Mage.Sets/src/mage/cards/e/ElvishBard.java index a50fa4c52b6..bf572799bed 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishBard.java +++ b/Mage.Sets/src/mage/cards/e/ElvishBard.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.MustBeBlockedByAllSourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ElvishBerserker.java b/Mage.Sets/src/mage/cards/e/ElvishBerserker.java index 6e62ec3d4f4..4453971b69a 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishBerserker.java +++ b/Mage.Sets/src/mage/cards/e/ElvishBerserker.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesBlockedTriggeredAbility; import mage.abilities.dynamicvalue.common.BlockedCreatureCount; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/e/ElvishBranchbender.java b/Mage.Sets/src/mage/cards/e/ElvishBranchbender.java index 917b6a009de..7399baac165 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishBranchbender.java +++ b/Mage.Sets/src/mage/cards/e/ElvishBranchbender.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -49,6 +48,8 @@ import mage.game.Game; import mage.game.permanent.token.Token; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/e/ElvishChampion.java b/Mage.Sets/src/mage/cards/e/ElvishChampion.java index 1508dc6324c..a35f9069c0a 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishChampion.java +++ b/Mage.Sets/src/mage/cards/e/ElvishChampion.java @@ -27,10 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; @@ -38,9 +34,14 @@ import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.ForestwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/ElvishEulogist.java b/Mage.Sets/src/mage/cards/e/ElvishEulogist.java index 9089626d2ea..6a9bdbaa63c 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishEulogist.java +++ b/Mage.Sets/src/mage/cards/e/ElvishEulogist.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -35,6 +34,7 @@ import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; diff --git a/Mage.Sets/src/mage/cards/e/ElvishFarmer.java b/Mage.Sets/src/mage/cards/e/ElvishFarmer.java index d18ee4fe538..aa0f24877e9 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishFarmer.java +++ b/Mage.Sets/src/mage/cards/e/ElvishFarmer.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.SaprolingToken; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/ElvishFury.java b/Mage.Sets/src/mage/cards/e/ElvishFury.java index 82f834718fa..b2e39a48982 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishFury.java +++ b/Mage.Sets/src/mage/cards/e/ElvishFury.java @@ -27,15 +27,16 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.BuybackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/ElvishGuidance.java b/Mage.Sets/src/mage/cards/e/ElvishGuidance.java index 9fbbbd13a4a..847686aa3cf 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishGuidance.java +++ b/Mage.Sets/src/mage/cards/e/ElvishGuidance.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -47,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Eirkei diff --git a/Mage.Sets/src/mage/cards/e/ElvishHandservant.java b/Mage.Sets/src/mage/cards/e/ElvishHandservant.java index 091520dbc68..a133d37a1d5 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishHandservant.java +++ b/Mage.Sets/src/mage/cards/e/ElvishHandservant.java @@ -27,17 +27,18 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/ElvishHarbinger.java b/Mage.Sets/src/mage/cards/e/ElvishHarbinger.java index 8e51089f0d4..c3115e1e605 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishHarbinger.java +++ b/Mage.Sets/src/mage/cards/e/ElvishHarbinger.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,6 +39,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ElvishHerder.java b/Mage.Sets/src/mage/cards/e/ElvishHerder.java index d1fb05a22e1..cc5294ee160 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishHerder.java +++ b/Mage.Sets/src/mage/cards/e/ElvishHerder.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/ElvishHexhunter.java b/Mage.Sets/src/mage/cards/e/ElvishHexhunter.java index afbc477f629..1a78676f33c 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishHexhunter.java +++ b/Mage.Sets/src/mage/cards/e/ElvishHexhunter.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,8 +36,12 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/ElvishHunter.java b/Mage.Sets/src/mage/cards/e/ElvishHunter.java index 1aa71466f22..b2e371c2534 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishHunter.java +++ b/Mage.Sets/src/mage/cards/e/ElvishHunter.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/ElvishLookout.java b/Mage.Sets/src/mage/cards/e/ElvishLookout.java index 7de4feeba97..87b93272814 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishLookout.java +++ b/Mage.Sets/src/mage/cards/e/ElvishLookout.java @@ -27,12 +27,13 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/ElvishLyrist.java b/Mage.Sets/src/mage/cards/e/ElvishLyrist.java index 803c073d637..76563014d75 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishLyrist.java +++ b/Mage.Sets/src/mage/cards/e/ElvishLyrist.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,9 +36,12 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ElvishMystic.java b/Mage.Sets/src/mage/cards/e/ElvishMystic.java index 80af0000642..f4d288b0803 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishMystic.java +++ b/Mage.Sets/src/mage/cards/e/ElvishMystic.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/ElvishPathcutter.java b/Mage.Sets/src/mage/cards/e/ElvishPathcutter.java index 686ecb2ffe4..fa320f44395 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishPathcutter.java +++ b/Mage.Sets/src/mage/cards/e/ElvishPathcutter.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/ElvishPioneer.java b/Mage.Sets/src/mage/cards/e/ElvishPioneer.java index 77adf19b9af..9d854f410cd 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishPioneer.java +++ b/Mage.Sets/src/mage/cards/e/ElvishPioneer.java @@ -27,16 +27,16 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.abilities.effects.common.PutLandFromHandOntoBattlefieldEffect; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.PutLandFromHandOntoBattlefieldEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterLandCard; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ElvishPiper.java b/Mage.Sets/src/mage/cards/e/ElvishPiper.java index ec9c43522c5..841f8c3186f 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishPiper.java +++ b/Mage.Sets/src/mage/cards/e/ElvishPiper.java @@ -28,7 +28,6 @@ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/ElvishPromenade.java b/Mage.Sets/src/mage/cards/e/ElvishPromenade.java index 4dcea0abf04..c11c8f82f2e 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishPromenade.java +++ b/Mage.Sets/src/mage/cards/e/ElvishPromenade.java @@ -27,11 +27,11 @@ */ package mage.cards.e; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.ElfToken; diff --git a/Mage.Sets/src/mage/cards/e/ElvishRanger.java b/Mage.Sets/src/mage/cards/e/ElvishRanger.java index ee0f8ebd3b2..484f496def7 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishRanger.java +++ b/Mage.Sets/src/mage/cards/e/ElvishRanger.java @@ -27,12 +27,13 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ElvishScout.java b/Mage.Sets/src/mage/cards/e/ElvishScout.java index f8246760953..b1435d6daf8 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishScout.java +++ b/Mage.Sets/src/mage/cards/e/ElvishScout.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AttackingPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/ElvishScrapper.java b/Mage.Sets/src/mage/cards/e/ElvishScrapper.java index 9e88fe3dbf8..b443f0b747d 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishScrapper.java +++ b/Mage.Sets/src/mage/cards/e/ElvishScrapper.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,9 +36,12 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ElvishSkysweeper.java b/Mage.Sets/src/mage/cards/e/ElvishSkysweeper.java index a2efb5fe010..27fc953ebc8 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishSkysweeper.java +++ b/Mage.Sets/src/mage/cards/e/ElvishSkysweeper.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,12 +36,15 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/ElvishSoultiller.java b/Mage.Sets/src/mage/cards/e/ElvishSoultiller.java index 52240e5f4e9..e27498add3f 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishSoultiller.java +++ b/Mage.Sets/src/mage/cards/e/ElvishSoultiller.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/ElvishSpiritGuide.java b/Mage.Sets/src/mage/cards/e/ElvishSpiritGuide.java index 2ebf9893193..11c555b9e41 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishSpiritGuide.java +++ b/Mage.Sets/src/mage/cards/e/ElvishSpiritGuide.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ElvishVanguard.java b/Mage.Sets/src/mage/cards/e/ElvishVanguard.java index 9fb82ec10cc..00487f2bf85 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishVanguard.java +++ b/Mage.Sets/src/mage/cards/e/ElvishVanguard.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -39,6 +38,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/ElvishVisionary.java b/Mage.Sets/src/mage/cards/e/ElvishVisionary.java index db34d6e6842..9c5c8c3ae58 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishVisionary.java +++ b/Mage.Sets/src/mage/cards/e/ElvishVisionary.java @@ -28,13 +28,14 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/ElvishWarrior.java b/Mage.Sets/src/mage/cards/e/ElvishWarrior.java index 3f89de215a3..95afb7c57a8 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishWarrior.java +++ b/Mage.Sets/src/mage/cards/e/ElvishWarrior.java @@ -27,11 +27,12 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/EmancipationAngel.java b/Mage.Sets/src/mage/cards/e/EmancipationAngel.java index c73a3738c5e..5027758d493 100644 --- a/Mage.Sets/src/mage/cards/e/EmancipationAngel.java +++ b/Mage.Sets/src/mage/cards/e/EmancipationAngel.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.ReturnToHandChosenControlledPermanentEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterControlledPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EmbalmedBrawler.java b/Mage.Sets/src/mage/cards/e/EmbalmedBrawler.java index b4c0e2a79f9..e495d73e397 100644 --- a/Mage.Sets/src/mage/cards/e/EmbalmedBrawler.java +++ b/Mage.Sets/src/mage/cards/e/EmbalmedBrawler.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; import mage.abilities.dynamicvalue.common.CountersSourceCount; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/EmbalmersTools.java b/Mage.Sets/src/mage/cards/e/EmbalmersTools.java new file mode 100644 index 00000000000..389fe73f9d5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/e/EmbalmersTools.java @@ -0,0 +1,144 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.e; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.ActivatedAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.TapTargetCost; +import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; +import mage.abilities.effects.common.cost.CostModificationEffectImpl; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AbilityType; +import mage.constants.CardType; +import mage.constants.CostModificationType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.common.FilterCreatureCard; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.other.OwnerPredicate; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.game.Game; +import mage.players.Player; +import mage.target.TargetPlayer; +import mage.target.common.TargetControlledPermanent; +import mage.util.CardUtil; + +/** + * + * @author fireshoes + */ +public class EmbalmersTools extends CardImpl { + + private static final FilterControlledPermanent filter = new FilterControlledPermanent("untapped Zombie you control"); + + static { + filter.add(Predicates.not(new TappedPredicate())); + filter.add(new SubtypePredicate("Zombie")); + } + + public EmbalmersTools(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); + + // Activated abilities of creature cards in your graveyard cost {1} less to activate. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new EmbalmersToolsEffect())); + + // Tap an untapped Zombie you control: Target player puts the top card of his or her library into his or her graveyard. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutLibraryIntoGraveTargetEffect(1), new TapTargetCost(new TargetControlledPermanent(filter))); + ability.addTarget(new TargetPlayer()); + this.addAbility(ability); + } + + public EmbalmersTools(final EmbalmersTools card) { + super(card); + } + + @Override + public EmbalmersTools copy() { + return new EmbalmersTools(this); + } +} + +class EmbalmersToolsEffect extends CostModificationEffectImpl { + + private static final String effectText = "Activated abilities of creature cards in your graveyard cost {1} less to activate"; + private static final FilterCreatureCard filter = new FilterCreatureCard(); + + static { + filter.add(new OwnerPredicate(TargetController.YOU)); + } + + public EmbalmersToolsEffect() { + super(Duration.Custom, Outcome.Benefit, CostModificationType.REDUCE_COST); + staticText = effectText; + } + + public EmbalmersToolsEffect(final EmbalmersToolsEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source, Ability abilityToModify) { + Player controller = game.getPlayer(abilityToModify.getControllerId()); + if (controller != null) { + Mana mana = abilityToModify.getManaCostsToPay().getMana(); + if (mana.count() > 1 && mana.getGeneric() > 0) { + CardUtil.reduceCost(abilityToModify, 1); + } + return true; + } + return false; + } + + @Override + public boolean applies(Ability abilityToModify, Ability source, Game game) { + if (abilityToModify.getAbilityType() == AbilityType.ACTIVATED + || (abilityToModify.getAbilityType() == AbilityType.MANA && (abilityToModify instanceof ActivatedAbility))) { + // Activated abilities of creatures + Card card = game.getCard(abilityToModify.getSourceId()); + if (card != null && filter.match(card, source.getSourceId(), source.getControllerId(), game) && game.getState().getZone(card.getId()) == Zone.GRAVEYARD) { + return true; + } + } + return false; + } + + @Override + public EmbalmersToolsEffect copy() { + return new EmbalmersToolsEffect(this); + } +} diff --git a/Mage.Sets/src/mage/cards/e/Embargo.java b/Mage.Sets/src/mage/cards/e/Embargo.java index 1393baba798..9101ce61780 100644 --- a/Mage.Sets/src/mage/cards/e/Embargo.java +++ b/Mage.Sets/src/mage/cards/e/Embargo.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterNonlandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EmberBeast.java b/Mage.Sets/src/mage/cards/e/EmberBeast.java index 2c715082c8e..bec943915be 100644 --- a/Mage.Sets/src/mage/cards/e/EmberBeast.java +++ b/Mage.Sets/src/mage/cards/e/EmberBeast.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.CantAttackAloneAbility; import mage.abilities.keyword.CantBlockAloneAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EmberEyeWolf.java b/Mage.Sets/src/mage/cards/e/EmberEyeWolf.java index e2d78156ad6..41a6e2db86e 100644 --- a/Mage.Sets/src/mage/cards/e/EmberEyeWolf.java +++ b/Mage.Sets/src/mage/cards/e/EmberEyeWolf.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EmberFistZubera.java b/Mage.Sets/src/mage/cards/e/EmberFistZubera.java index 9b1a23be86c..55e5e13c48c 100644 --- a/Mage.Sets/src/mage/cards/e/EmberFistZubera.java +++ b/Mage.Sets/src/mage/cards/e/EmberFistZubera.java @@ -28,19 +28,19 @@ package mage.cards.e; -import java.util.UUID; - -import mage.abilities.dynamicvalue.common.ZuberasDiedDynamicValue; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.dynamicvalue.common.ZuberasDiedDynamicValue; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; import mage.watchers.common.ZuberasDiedWatcher; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EmberGale.java b/Mage.Sets/src/mage/cards/e/EmberGale.java index 37137f45c6f..f03dafd3e9b 100644 --- a/Mage.Sets/src/mage/cards/e/EmberGale.java +++ b/Mage.Sets/src/mage/cards/e/EmberGale.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -49,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/EmberHauler.java b/Mage.Sets/src/mage/cards/e/EmberHauler.java index 8140b0a6bb2..b35e05c9618 100644 --- a/Mage.Sets/src/mage/cards/e/EmberHauler.java +++ b/Mage.Sets/src/mage/cards/e/EmberHauler.java @@ -28,9 +28,6 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,8 +36,12 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/e/EmberShot.java b/Mage.Sets/src/mage/cards/e/EmberShot.java index d9b77045fed..349c1466564 100644 --- a/Mage.Sets/src/mage/cards/e/EmberShot.java +++ b/Mage.Sets/src/mage/cards/e/EmberShot.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/EmberSwallower.java b/Mage.Sets/src/mage/cards/e/EmberSwallower.java index d745e468e75..84d822c3e04 100644 --- a/Mage.Sets/src/mage/cards/e/EmberSwallower.java +++ b/Mage.Sets/src/mage/cards/e/EmberSwallower.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesMonstrousSourceTriggeredAbility; import mage.abilities.effects.common.SacrificeAllEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterControlledLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EmberWeaver.java b/Mage.Sets/src/mage/cards/e/EmberWeaver.java index 6fb78a2ab03..a9f10e55a7b 100644 --- a/Mage.Sets/src/mage/cards/e/EmberWeaver.java +++ b/Mage.Sets/src/mage/cards/e/EmberWeaver.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -41,11 +38,14 @@ import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/e/EmberhornMinotaur.java b/Mage.Sets/src/mage/cards/e/EmberhornMinotaur.java new file mode 100644 index 00000000000..2a16f49984f --- /dev/null +++ b/Mage.Sets/src/mage/cards/e/EmberhornMinotaur.java @@ -0,0 +1,75 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.e; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.ExertAbility; +import mage.abilities.keyword.MenaceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author Styxo + */ +public class EmberhornMinotaur extends CardImpl { + + public EmberhornMinotaur(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); + + this.subtype.add("Minotaur"); + this.subtype.add("Warrior"); + this.power = new MageInt(4); + this.toughness = new MageInt(3); + + // You may exert Emberhorn Minotaur as it attacks. When you do, it gets +1/+1 and gains menace until end of turn. + Effect effect = new BoostSourceEffect(1, 1, Duration.EndOfTurn); + effect.setText("it gets +1/+1"); + BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(effect); + effect = new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn); + effect.setText("and gains menace until end of turn"); + ability.addEffect(effect); + this.addAbility(new ExertAbility(ability)); + } + + public EmberhornMinotaur(final EmberhornMinotaur card) { + super(card); + } + + @Override + public EmberhornMinotaur copy() { + return new EmberhornMinotaur(this); + } +} diff --git a/Mage.Sets/src/mage/cards/e/EmbermageGoblin.java b/Mage.Sets/src/mage/cards/e/EmbermageGoblin.java index 9033b71b938..fcac60d8bf7 100644 --- a/Mage.Sets/src/mage/cards/e/EmbermageGoblin.java +++ b/Mage.Sets/src/mage/cards/e/EmbermageGoblin.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.NamePredicate; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EmbermawHellion.java b/Mage.Sets/src/mage/cards/e/EmbermawHellion.java index beba51603f8..8c0700ca45f 100644 --- a/Mage.Sets/src/mage/cards/e/EmbermawHellion.java +++ b/Mage.Sets/src/mage/cards/e/EmbermawHellion.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/Embersmith.java b/Mage.Sets/src/mage/cards/e/Embersmith.java index 3a95d0e350d..8fa8ed628e3 100644 --- a/Mage.Sets/src/mage/cards/e/Embersmith.java +++ b/Mage.Sets/src/mage/cards/e/Embersmith.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -38,6 +35,7 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.common.FilterArtifactSpell; import mage.game.Game; @@ -45,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * @author Loki, North */ diff --git a/Mage.Sets/src/mage/cards/e/EmberstrikeDuo.java b/Mage.Sets/src/mage/cards/e/EmberstrikeDuo.java index 7c191a714ef..a80d9714745 100644 --- a/Mage.Sets/src/mage/cards/e/EmberstrikeDuo.java +++ b/Mage.Sets/src/mage/cards/e/EmberstrikeDuo.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -38,9 +35,13 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/EmberwildeAugur.java b/Mage.Sets/src/mage/cards/e/EmberwildeAugur.java index d8bb666f773..ebd8276bd1e 100644 --- a/Mage.Sets/src/mage/cards/e/EmberwildeAugur.java +++ b/Mage.Sets/src/mage/cards/e/EmberwildeAugur.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.PhaseStep; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EmblemOfTheWarmind.java b/Mage.Sets/src/mage/cards/e/EmblemOfTheWarmind.java index 81a4e37104b..43d5c522cc7 100644 --- a/Mage.Sets/src/mage/cards/e/EmblemOfTheWarmind.java +++ b/Mage.Sets/src/mage/cards/e/EmblemOfTheWarmind.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EmbodimentOfFury.java b/Mage.Sets/src/mage/cards/e/EmbodimentOfFury.java index 37ad396db97..756597d1d6b 100644 --- a/Mage.Sets/src/mage/cards/e/EmbodimentOfFury.java +++ b/Mage.Sets/src/mage/cards/e/EmbodimentOfFury.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LandfallAbility; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.permanent.token.Token; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EmbodimentOfInsight.java b/Mage.Sets/src/mage/cards/e/EmbodimentOfInsight.java index 245b29e16dd..2be6c701dca 100644 --- a/Mage.Sets/src/mage/cards/e/EmbodimentOfInsight.java +++ b/Mage.Sets/src/mage/cards/e/EmbodimentOfInsight.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LandfallAbility; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.permanent.token.Token; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EmbodimentOfSpring.java b/Mage.Sets/src/mage/cards/e/EmbodimentOfSpring.java index 9c086cc8faf..776a78d92c7 100644 --- a/Mage.Sets/src/mage/cards/e/EmbodimentOfSpring.java +++ b/Mage.Sets/src/mage/cards/e/EmbodimentOfSpring.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EmbraalBruiser.java b/Mage.Sets/src/mage/cards/e/EmbraalBruiser.java index 701fb7872b4..194cbe01f15 100644 --- a/Mage.Sets/src/mage/cards/e/EmbraalBruiser.java +++ b/Mage.Sets/src/mage/cards/e/EmbraalBruiser.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EmbraalGearSmasher.java b/Mage.Sets/src/mage/cards/e/EmbraalGearSmasher.java index 69eec96752c..953df36a0c6 100644 --- a/Mage.Sets/src/mage/cards/e/EmbraalGearSmasher.java +++ b/Mage.Sets/src/mage/cards/e/EmbraalGearSmasher.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledArtifactPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EmeraldCharm.java b/Mage.Sets/src/mage/cards/e/EmeraldCharm.java index ab599180171..ef29973e0f9 100644 --- a/Mage.Sets/src/mage/cards/e/EmeraldCharm.java +++ b/Mage.Sets/src/mage/cards/e/EmeraldCharm.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.UntapTargetEffect; @@ -44,6 +43,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EmeraldDragonfly.java b/Mage.Sets/src/mage/cards/e/EmeraldDragonfly.java index 0d7d603380a..fdeb54bce73 100644 --- a/Mage.Sets/src/mage/cards/e/EmeraldDragonfly.java +++ b/Mage.Sets/src/mage/cards/e/EmeraldDragonfly.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/e/EmeraldMedallion.java b/Mage.Sets/src/mage/cards/e/EmeraldMedallion.java index 4e0f1b41771..e0574f54629 100644 --- a/Mage.Sets/src/mage/cards/e/EmeraldMedallion.java +++ b/Mage.Sets/src/mage/cards/e/EmeraldMedallion.java @@ -27,17 +27,18 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/e/EmeraldOryx.java b/Mage.Sets/src/mage/cards/e/EmeraldOryx.java index b9c897d7e2c..88692d20788 100644 --- a/Mage.Sets/src/mage/cards/e/EmeraldOryx.java +++ b/Mage.Sets/src/mage/cards/e/EmeraldOryx.java @@ -28,12 +28,13 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ForestwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/EmergeUnscathed.java b/Mage.Sets/src/mage/cards/e/EmergeUnscathed.java index b070e54379f..19fe0b5e97e 100644 --- a/Mage.Sets/src/mage/cards/e/EmergeUnscathed.java +++ b/Mage.Sets/src/mage/cards/e/EmergeUnscathed.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.continuous.GainProtectionFromColorTargetEffect; import mage.abilities.keyword.ReboundAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/EmeriaAngel.java b/Mage.Sets/src/mage/cards/e/EmeriaAngel.java index ec3003fa754..c385264d705 100644 --- a/Mage.Sets/src/mage/cards/e/EmeriaAngel.java +++ b/Mage.Sets/src/mage/cards/e/EmeriaAngel.java @@ -28,16 +28,17 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.LandfallAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.BirdToken; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/e/EmeriaShepherd.java b/Mage.Sets/src/mage/cards/e/EmeriaShepherd.java index c4d7d2c6e27..c8b7215eb96 100644 --- a/Mage.Sets/src/mage/cards/e/EmeriaShepherd.java +++ b/Mage.Sets/src/mage/cards/e/EmeriaShepherd.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LandfallAbility; @@ -47,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EmeriaTheSkyRuin.java b/Mage.Sets/src/mage/cards/e/EmeriaTheSkyRuin.java index a9ba051f73a..66a60f58ad3 100644 --- a/Mage.Sets/src/mage/cards/e/EmeriaTheSkyRuin.java +++ b/Mage.Sets/src/mage/cards/e/EmeriaTheSkyRuin.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; @@ -44,6 +43,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/EmissaryOfDespair.java b/Mage.Sets/src/mage/cards/e/EmissaryOfDespair.java index 4e1d015ba2d..49fb0ebd13c 100644 --- a/Mage.Sets/src/mage/cards/e/EmissaryOfDespair.java +++ b/Mage.Sets/src/mage/cards/e/EmissaryOfDespair.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; +import java.util.UUID; + /** * * @author wetterlicht diff --git a/Mage.Sets/src/mage/cards/e/EmissaryOfHope.java b/Mage.Sets/src/mage/cards/e/EmissaryOfHope.java index 96169a99185..51a2a1da945 100644 --- a/Mage.Sets/src/mage/cards/e/EmissaryOfHope.java +++ b/Mage.Sets/src/mage/cards/e/EmissaryOfHope.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -37,6 +34,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; import mage.filter.FilterPermanent; @@ -45,6 +43,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EmissaryOfTheSleepless.java b/Mage.Sets/src/mage/cards/e/EmissaryOfTheSleepless.java index 9a59d2b726c..ad654bc267e 100644 --- a/Mage.Sets/src/mage/cards/e/EmissaryOfTheSleepless.java +++ b/Mage.Sets/src/mage/cards/e/EmissaryOfTheSleepless.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.SpiritWhiteToken; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/e/EmmaraTandris.java b/Mage.Sets/src/mage/cards/e/EmmaraTandris.java index 6d43c5c3793..c794f6b95d8 100644 --- a/Mage.Sets/src/mage/cards/e/EmmaraTandris.java +++ b/Mage.Sets/src/mage/cards/e/EmmaraTandris.java @@ -27,21 +27,19 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.PreventAllDamageToAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.common.FilterCreatureOrPlayer; import mage.filter.predicate.other.PlayerIdPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.TokenPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +55,7 @@ public class EmmaraTandris extends CardImpl { public EmmaraTandris(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/e/EmmessiTome.java b/Mage.Sets/src/mage/cards/e/EmmessiTome.java index 758f513b11a..3a435e85014 100644 --- a/Mage.Sets/src/mage/cards/e/EmmessiTome.java +++ b/Mage.Sets/src/mage/cards/e/EmmessiTome.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EmperorCrocodile.java b/Mage.Sets/src/mage/cards/e/EmperorCrocodile.java index ea8ccec5f0c..3eb634e85b6 100644 --- a/Mage.Sets/src/mage/cards/e/EmperorCrocodile.java +++ b/Mage.Sets/src/mage/cards/e/EmperorCrocodile.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.StateTriggeredAbility; import mage.abilities.effects.common.SacrificeSourceEffect; @@ -39,6 +38,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/e/EmpressGalina.java b/Mage.Sets/src/mage/cards/e/EmpressGalina.java index 9f8e4d3b662..c41b705e3e2 100644 --- a/Mage.Sets/src/mage/cards/e/EmpressGalina.java +++ b/Mage.Sets/src/mage/cards/e/EmpressGalina.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,11 +37,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -52,12 +54,12 @@ public class EmpressGalina extends CardImpl { private static final FilterPermanent filter = new FilterPermanent("legendary permanent"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public EmpressGalina(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Merfolk"); this.power = new MageInt(1); this.toughness = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/e/EmptyCityRuse.java b/Mage.Sets/src/mage/cards/e/EmptyCityRuse.java index efdcb8f1f72..f939f3175e9 100644 --- a/Mage.Sets/src/mage/cards/e/EmptyCityRuse.java +++ b/Mage.Sets/src/mage/cards/e/EmptyCityRuse.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.SkipNextCombatEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/e/EmptyTheCatacombs.java b/Mage.Sets/src/mage/cards/e/EmptyTheCatacombs.java index ce2b9944de8..a7c4fef5f72 100644 --- a/Mage.Sets/src/mage/cards/e/EmptyTheCatacombs.java +++ b/Mage.Sets/src/mage/cards/e/EmptyTheCatacombs.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -40,6 +39,8 @@ import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/e/EmptyThePits.java b/Mage.Sets/src/mage/cards/e/EmptyThePits.java index 0b5e1484e1f..7dc4182898b 100644 --- a/Mage.Sets/src/mage/cards/e/EmptyThePits.java +++ b/Mage.Sets/src/mage/cards/e/EmptyThePits.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.DelveAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.ZombieToken; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/e/EmptyTheWarrens.java b/Mage.Sets/src/mage/cards/e/EmptyTheWarrens.java index d3a75df5c75..a94927d1e46 100644 --- a/Mage.Sets/src/mage/cards/e/EmptyTheWarrens.java +++ b/Mage.Sets/src/mage/cards/e/EmptyTheWarrens.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.StormAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.GoblinToken; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EmpyrealVoyager.java b/Mage.Sets/src/mage/cards/e/EmpyrealVoyager.java index 57b32d97e41..fcb2b16e3e7 100644 --- a/Mage.Sets/src/mage/cards/e/EmpyrealVoyager.java +++ b/Mage.Sets/src/mage/cards/e/EmpyrealVoyager.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/e/EmpyrialArchangel.java b/Mage.Sets/src/mage/cards/e/EmpyrialArchangel.java index d11031a8be2..62dfc9dffda 100644 --- a/Mage.Sets/src/mage/cards/e/EmpyrialArchangel.java +++ b/Mage.Sets/src/mage/cards/e/EmpyrialArchangel.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -38,11 +35,17 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.DamagePlayerEvent; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EmpyrialArmor.java b/Mage.Sets/src/mage/cards/e/EmpyrialArmor.java index 779d73330f7..340b7505a06 100644 --- a/Mage.Sets/src/mage/cards/e/EmpyrialArmor.java +++ b/Mage.Sets/src/mage/cards/e/EmpyrialArmor.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EmpyrialPlate.java b/Mage.Sets/src/mage/cards/e/EmpyrialPlate.java index ac2490ea330..c7dd429ae2b 100644 --- a/Mage.Sets/src/mage/cards/e/EmpyrialPlate.java +++ b/Mage.Sets/src/mage/cards/e/EmpyrialPlate.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.dynamicvalue.common.CardsInControllerHandCount; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; +import java.util.UUID; + /** * * @author michael.napoleon@gmail.com diff --git a/Mage.Sets/src/mage/cards/e/EmrakulTheAeonsTorn.java b/Mage.Sets/src/mage/cards/e/EmrakulTheAeonsTorn.java index 60e7dfbf1b9..1f5fbbf7286 100644 --- a/Mage.Sets/src/mage/cards/e/EmrakulTheAeonsTorn.java +++ b/Mage.Sets/src/mage/cards/e/EmrakulTheAeonsTorn.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CantBeCounteredAbility; import mage.abilities.common.PutIntoGraveFromAnywhereSourceTriggeredAbility; @@ -40,10 +39,13 @@ import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorlessPredicate; +import java.util.UUID; + /** * @author Loki */ @@ -57,7 +59,7 @@ public class EmrakulTheAeonsTorn extends CardImpl { public EmrakulTheAeonsTorn(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{15}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Eldrazi"); this.power = new MageInt(15); this.toughness = new MageInt(15); diff --git a/Mage.Sets/src/mage/cards/e/EmrakulThePromisedEnd.java b/Mage.Sets/src/mage/cards/e/EmrakulThePromisedEnd.java index 90dd9e87f49..83f9f49b57b 100644 --- a/Mage.Sets/src/mage/cards/e/EmrakulThePromisedEnd.java +++ b/Mage.Sets/src/mage/cards/e/EmrakulThePromisedEnd.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.SpellAbility; @@ -43,11 +40,7 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; @@ -56,6 +49,10 @@ import mage.players.Player; import mage.target.common.TargetOpponent; import mage.util.CardUtil; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author emerald000 @@ -70,7 +67,7 @@ public class EmrakulThePromisedEnd extends CardImpl { public EmrakulThePromisedEnd(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{13}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Eldrazi"); this.power = new MageInt(13); this.toughness = new MageInt(13); diff --git a/Mage.Sets/src/mage/cards/e/EmrakulsEvangel.java b/Mage.Sets/src/mage/cards/e/EmrakulsEvangel.java index faa9c1ec9a8..ae82b51f2ac 100644 --- a/Mage.Sets/src/mage/cards/e/EmrakulsEvangel.java +++ b/Mage.Sets/src/mage/cards/e/EmrakulsEvangel.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -51,6 +50,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/e/EmrakulsHatcher.java b/Mage.Sets/src/mage/cards/e/EmrakulsHatcher.java index 8fc2924b4ef..d75066dc7fc 100644 --- a/Mage.Sets/src/mage/cards/e/EmrakulsHatcher.java +++ b/Mage.Sets/src/mage/cards/e/EmrakulsHatcher.java @@ -28,15 +28,16 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.EldraziSpawnToken; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/e/EmrakulsInfluence.java b/Mage.Sets/src/mage/cards/e/EmrakulsInfluence.java index 8cd4459c16f..9fefeb18e51 100644 --- a/Mage.Sets/src/mage/cards/e/EmrakulsInfluence.java +++ b/Mage.Sets/src/mage/cards/e/EmrakulsInfluence.java @@ -27,17 +27,18 @@ */ package mage.cards.e; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -48,7 +49,7 @@ public class EmrakulsInfluence extends CardImpl { static { filterSpell.add(new SubtypePredicate("Eldrazi")); - filterSpell.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 6)); + filterSpell.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 6)); } public EmrakulsInfluence(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/e/EnatuGolem.java b/Mage.Sets/src/mage/cards/e/EnatuGolem.java index ec44955bcd4..63c2d82fca2 100644 --- a/Mage.Sets/src/mage/cards/e/EnatuGolem.java +++ b/Mage.Sets/src/mage/cards/e/EnatuGolem.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/EncaseInIce.java b/Mage.Sets/src/mage/cards/e/EncaseInIce.java index 1cad5e1a46f..9f1e6485c28 100644 --- a/Mage.Sets/src/mage/cards/e/EncaseInIce.java +++ b/Mage.Sets/src/mage/cards/e/EncaseInIce.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EnchantedEvening.java b/Mage.Sets/src/mage/cards/e/EnchantedEvening.java index 8b523b3c264..f5d8165de5a 100644 --- a/Mage.Sets/src/mage/cards/e/EnchantedEvening.java +++ b/Mage.Sets/src/mage/cards/e/EnchantedEvening.java @@ -27,24 +27,19 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.Effect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.DependencyType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -93,7 +88,7 @@ public class EnchantedEvening extends CardImpl { public boolean apply(Game game, Ability source) { for (Permanent permanent : game.getBattlefield().getAllActivePermanents(filter, game)) { if (permanent != null && !permanent.getCardType().contains(addedCardType)) { - permanent.getCardType().add(addedCardType); + permanent.addCardType(addedCardType); } } return true; diff --git a/Mage.Sets/src/mage/cards/e/EnchantresssPresence.java b/Mage.Sets/src/mage/cards/e/EnchantresssPresence.java index 66c050e03e1..5e4564ffd89 100644 --- a/Mage.Sets/src/mage/cards/e/EnchantresssPresence.java +++ b/Mage.Sets/src/mage/cards/e/EnchantresssPresence.java @@ -27,15 +27,16 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EncirclingFissure.java b/Mage.Sets/src/mage/cards/e/EncirclingFissure.java index 0ee475fbd93..26cf1eaa6d7 100644 --- a/Mage.Sets/src/mage/cards/e/EncirclingFissure.java +++ b/Mage.Sets/src/mage/cards/e/EncirclingFissure.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.PreventionEffectImpl; import mage.abilities.keyword.AwakenAbility; @@ -41,6 +40,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EnclaveElite.java b/Mage.Sets/src/mage/cards/e/EnclaveElite.java index 27844d3b346..f576701c27e 100644 --- a/Mage.Sets/src/mage/cards/e/EnclaveElite.java +++ b/Mage.Sets/src/mage/cards/e/EnclaveElite.java @@ -27,8 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.dynamicvalue.common.MultikickerCount; @@ -37,8 +35,11 @@ import mage.abilities.keyword.IslandwalkAbility; import mage.abilities.keyword.MultikickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/Encroach.java b/Mage.Sets/src/mage/cards/e/Encroach.java index 69335e08676..bac58da3652 100644 --- a/Mage.Sets/src/mage/cards/e/Encroach.java +++ b/Mage.Sets/src/mage/cards/e/Encroach.java @@ -27,17 +27,19 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.discard.DiscardCardYouChooseTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LoneFox @@ -47,7 +49,7 @@ public class Encroach extends CardImpl { private static final FilterCard filter = new FilterCard("a nonbasic land card"); static { - filter.add(Predicates.not(new SupertypePredicate("Basic"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); filter.add(new CardTypePredicate(CardType.LAND)); } diff --git a/Mage.Sets/src/mage/cards/e/EncroachingWastes.java b/Mage.Sets/src/mage/cards/e/EncroachingWastes.java index a1247245b3c..56b79a322df 100644 --- a/Mage.Sets/src/mage/cards/e/EncroachingWastes.java +++ b/Mage.Sets/src/mage/cards/e/EncroachingWastes.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetNonBasicLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Encrust.java b/Mage.Sets/src/mage/cards/e/Encrust.java index 0f722bfb97e..c9b4d6bb60c 100644 --- a/Mage.Sets/src/mage/cards/e/Encrust.java +++ b/Mage.Sets/src/mage/cards/e/Encrust.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -45,6 +44,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/EndHostilities.java b/Mage.Sets/src/mage/cards/e/EndHostilities.java index 2f21308aca2..f8616cfae5d 100644 --- a/Mage.Sets/src/mage/cards/e/EndHostilities.java +++ b/Mage.Sets/src/mage/cards/e/EndHostilities.java @@ -27,8 +27,6 @@ */ package mage.cards.e; -import java.util.ArrayList; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -39,6 +37,9 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.ArrayList; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EndangeredArmodon.java b/Mage.Sets/src/mage/cards/e/EndangeredArmodon.java index 523c4c7d084..ade6c81b6ba 100644 --- a/Mage.Sets/src/mage/cards/e/EndangeredArmodon.java +++ b/Mage.Sets/src/mage/cards/e/EndangeredArmodon.java @@ -27,17 +27,18 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; +import java.util.UUID; + /** * * @author emerald000 @@ -47,7 +48,7 @@ public class EndangeredArmodon extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with toughness 2 or less"); static { - filter.add(new ToughnessPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new ToughnessPredicate(ComparisonType.FEWER_THAN, 3)); } public EndangeredArmodon(UUID ownerId, CardSetInfo setInfo) { @@ -58,7 +59,7 @@ public class EndangeredArmodon extends CardImpl { // When you control a creature with toughness 2 or less, sacrifice Endangered Armodon. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - filter, Filter.ComparisonType.GreaterThan, 0, + filter, ComparisonType.MORE_THAN, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/e/Endbringer.java b/Mage.Sets/src/mage/cards/e/Endbringer.java index c4290c2f7b8..c00c7b6bc70 100644 --- a/Mage.Sets/src/mage/cards/e/Endbringer.java +++ b/Mage.Sets/src/mage/cards/e/Endbringer.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EndlessCockroaches.java b/Mage.Sets/src/mage/cards/e/EndlessCockroaches.java index 6a77591b3df..8a9741d463e 100644 --- a/Mage.Sets/src/mage/cards/e/EndlessCockroaches.java +++ b/Mage.Sets/src/mage/cards/e/EndlessCockroaches.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.ReturnToHandSourceEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EndlessHorizons.java b/Mage.Sets/src/mage/cards/e/EndlessHorizons.java index 7e10d7e92ea..02cb8b4b952 100644 --- a/Mage.Sets/src/mage/cards/e/EndlessHorizons.java +++ b/Mage.Sets/src/mage/cards/e/EndlessHorizons.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -50,6 +49,8 @@ import mage.target.TargetCard; import mage.target.common.TargetCardInLibrary; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/EndlessObedience.java b/Mage.Sets/src/mage/cards/e/EndlessObedience.java index 5845f23a802..8968957adde 100644 --- a/Mage.Sets/src/mage/cards/e/EndlessObedience.java +++ b/Mage.Sets/src/mage/cards/e/EndlessObedience.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.keyword.ConvokeAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/e/EndlessOne.java b/Mage.Sets/src/mage/cards/e/EndlessOne.java index 08f642c8ecd..353be84711e 100644 --- a/Mage.Sets/src/mage/cards/e/EndlessOne.java +++ b/Mage.Sets/src/mage/cards/e/EndlessOne.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.effects.common.EntersBattlefieldWithXCountersEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EndlessRanksOfTheDead.java b/Mage.Sets/src/mage/cards/e/EndlessRanksOfTheDead.java index f8f82c882a2..4faf8f1143b 100644 --- a/Mage.Sets/src/mage/cards/e/EndlessRanksOfTheDead.java +++ b/Mage.Sets/src/mage/cards/e/EndlessRanksOfTheDead.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.OnEventTriggeredAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.events.GameEvent.EventType; import mage.game.permanent.token.ZombieToken; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/e/EndlessScream.java b/Mage.Sets/src/mage/cards/e/EndlessScream.java index 0ed3b15c10f..a78e3d1016a 100644 --- a/Mage.Sets/src/mage/cards/e/EndlessScream.java +++ b/Mage.Sets/src/mage/cards/e/EndlessScream.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleStaticAbility; @@ -47,6 +46,8 @@ import mage.counters.CounterType; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/EndlessSwarm.java b/Mage.Sets/src/mage/cards/e/EndlessSwarm.java index 3ba6c8748e8..5eccd6258ea 100644 --- a/Mage.Sets/src/mage/cards/e/EndlessSwarm.java +++ b/Mage.Sets/src/mage/cards/e/EndlessSwarm.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.dynamicvalue.common.CardsInControllerHandCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.EpicEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.SnakeToken; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/EndlessWhispers.java b/Mage.Sets/src/mage/cards/e/EndlessWhispers.java index 36e78b8071d..0bbc0df053c 100644 --- a/Mage.Sets/src/mage/cards/e/EndlessWhispers.java +++ b/Mage.Sets/src/mage/cards/e/EndlessWhispers.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.DiesTriggeredAbility; @@ -49,6 +48,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/Endoskeleton.java b/Mage.Sets/src/mage/cards/e/Endoskeleton.java index 53a52af8ebd..ccc5ae946e2 100644 --- a/Mage.Sets/src/mage/cards/e/Endoskeleton.java +++ b/Mage.Sets/src/mage/cards/e/Endoskeleton.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SkipUntapOptionalAbility; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/EndrekSahrMasterBreeder.java b/Mage.Sets/src/mage/cards/e/EndrekSahrMasterBreeder.java index 220b63e656e..6f5f9957b78 100644 --- a/Mage.Sets/src/mage/cards/e/EndrekSahrMasterBreeder.java +++ b/Mage.Sets/src/mage/cards/e/EndrekSahrMasterBreeder.java @@ -27,9 +27,9 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -39,8 +39,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.StaticFilters; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -48,15 +48,16 @@ import mage.game.permanent.token.ThrullToken; import mage.game.stack.Spell; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** - * * @author LevelX2 */ public class EndrekSahrMasterBreeder extends CardImpl { public EndrekSahrMasterBreeder(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); @@ -67,7 +68,7 @@ public class EndrekSahrMasterBreeder extends CardImpl { this.addAbility(new SpellCastControllerTriggeredAbility(new EndrekSahrMasterBreederEffect(), StaticFilters.FILTER_SPELL_A_CREATURE, false, true)); // When you control seven or more Thrulls, sacrifice Endrek Sahr, Master Breeder. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterCreaturePermanent("Thrull", "seven or more Thrulls"), Filter.ComparisonType.GreaterThan, 6, + new FilterCreaturePermanent("Thrull", "seven or more Thrulls"), ComparisonType.MORE_THAN, 6, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/e/Endure.java b/Mage.Sets/src/mage/cards/e/Endure.java index a8f8585d4e5..fc71356f4bb 100644 --- a/Mage.Sets/src/mage/cards/e/Endure.java +++ b/Mage.Sets/src/mage/cards/e/Endure.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.PreventAllDamageToAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -38,6 +37,8 @@ import mage.filter.common.FilterPermanentOrPlayer; import mage.filter.predicate.other.PlayerPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/EnduringIdeal.java b/Mage.Sets/src/mage/cards/e/EnduringIdeal.java index 90d0f6cf58e..f8f725501ac 100644 --- a/Mage.Sets/src/mage/cards/e/EnduringIdeal.java +++ b/Mage.Sets/src/mage/cards/e/EnduringIdeal.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.EpicEffect; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/EnduringRenewal.java b/Mage.Sets/src/mage/cards/e/EnduringRenewal.java index 3f0c2bc2c32..468676bd4e4 100644 --- a/Mage.Sets/src/mage/cards/e/EnduringRenewal.java +++ b/Mage.Sets/src/mage/cards/e/EnduringRenewal.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility; @@ -37,17 +36,8 @@ import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.cards.*; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -55,6 +45,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/e/EnduringScalelord.java b/Mage.Sets/src/mage/cards/e/EnduringScalelord.java index 5657a55a735..0e1e7adff0b 100644 --- a/Mage.Sets/src/mage/cards/e/EnduringScalelord.java +++ b/Mage.Sets/src/mage/cards/e/EnduringScalelord.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/EnduringVictory.java b/Mage.Sets/src/mage/cards/e/EnduringVictory.java index c5f33a6fb95..74554389824 100644 --- a/Mage.Sets/src/mage/cards/e/EnduringVictory.java +++ b/Mage.Sets/src/mage/cards/e/EnduringVictory.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.keyword.BolsterEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterAttackingOrBlockingCreature; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EnemyOfTheGuildpact.java b/Mage.Sets/src/mage/cards/e/EnemyOfTheGuildpact.java index b75a31424a2..5b5d61a4d1a 100644 --- a/Mage.Sets/src/mage/cards/e/EnemyOfTheGuildpact.java +++ b/Mage.Sets/src/mage/cards/e/EnemyOfTheGuildpact.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.FilterObject; import mage.filter.predicate.mageobject.MulticoloredPredicate; +import java.util.UUID; + /** * * @author Wehk diff --git a/Mage.Sets/src/mage/cards/e/Energizer.java b/Mage.Sets/src/mage/cards/e/Energizer.java index 254e5671114..c94e9377633 100644 --- a/Mage.Sets/src/mage/cards/e/Energizer.java +++ b/Mage.Sets/src/mage/cards/e/Energizer.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,12 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EnergyChamber.java b/Mage.Sets/src/mage/cards/e/EnergyChamber.java index 7982cff689a..c0cac3b6e37 100644 --- a/Mage.Sets/src/mage/cards/e/EnergyChamber.java +++ b/Mage.Sets/src/mage/cards/e/EnergyChamber.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EnergyField.java b/Mage.Sets/src/mage/cards/e/EnergyField.java index 251373adc48..5c4c902f421 100644 --- a/Mage.Sets/src/mage/cards/e/EnergyField.java +++ b/Mage.Sets/src/mage/cards/e/EnergyField.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.Objects; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.PutCardIntoGraveFromAnywhereAllTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +41,9 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.Objects; +import java.util.UUID; + /** * @author Plopman */ diff --git a/Mage.Sets/src/mage/cards/e/EnergyFlux.java b/Mage.Sets/src/mage/cards/e/EnergyFlux.java index a944cb5e1ac..4e019b2baa0 100644 --- a/Mage.Sets/src/mage/cards/e/EnergyFlux.java +++ b/Mage.Sets/src/mage/cards/e/EnergyFlux.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -41,6 +40,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterArtifactPermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/e/EnergyTap.java b/Mage.Sets/src/mage/cards/e/EnergyTap.java index 2eab4647597..d944cc383e3 100644 --- a/Mage.Sets/src/mage/cards/e/EnergyTap.java +++ b/Mage.Sets/src/mage/cards/e/EnergyTap.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -43,6 +42,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/e/Enervate.java b/Mage.Sets/src/mage/cards/e/Enervate.java index 0ffda70145b..037554c5437 100644 --- a/Mage.Sets/src/mage/cards/e/Enervate.java +++ b/Mage.Sets/src/mage/cards/e/Enervate.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -40,6 +39,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/Enfeeblement.java b/Mage.Sets/src/mage/cards/e/Enfeeblement.java index 055f6cf9633..f1d1f3a8f7f 100644 --- a/Mage.Sets/src/mage/cards/e/Enfeeblement.java +++ b/Mage.Sets/src/mage/cards/e/Enfeeblement.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -37,9 +34,15 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/e/EngineeredExplosives.java b/Mage.Sets/src/mage/cards/e/EngineeredExplosives.java index a8259400c5b..079ada9e71c 100644 --- a/Mage.Sets/src/mage/cards/e/EngineeredExplosives.java +++ b/Mage.Sets/src/mage/cards/e/EngineeredExplosives.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +36,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.SunburstAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.counters.CounterType; @@ -46,6 +44,8 @@ import mage.filter.common.FilterNonlandPermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EngineeredMight.java b/Mage.Sets/src/mage/cards/e/EngineeredMight.java index 26635ae446a..9e2514efcac 100644 --- a/Mage.Sets/src/mage/cards/e/EngineeredMight.java +++ b/Mage.Sets/src/mage/cards/e/EngineeredMight.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EngineeredPlague.java b/Mage.Sets/src/mage/cards/e/EngineeredPlague.java index e222c05f2af..0ac1a627c0b 100644 --- a/Mage.Sets/src/mage/cards/e/EngineeredPlague.java +++ b/Mage.Sets/src/mage/cards/e/EngineeredPlague.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.ChooseCreatureTypeEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EngulfTheShore.java b/Mage.Sets/src/mage/cards/e/EngulfTheShore.java index 3a4cdbeb600..a48270372ca 100644 --- a/Mage.Sets/src/mage/cards/e/EngulfTheShore.java +++ b/Mage.Sets/src/mage/cards/e/EngulfTheShore.java @@ -27,10 +27,8 @@ */ package mage.cards.e; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; @@ -38,7 +36,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterCreaturePermanent; @@ -48,6 +45,10 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author fireshoes @@ -99,7 +100,7 @@ class EngulfTheShoreEffect extends OneShotEffect { if (controller != null) { int islands = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); FilterPermanent creatureFilter = new FilterCreaturePermanent(); - creatureFilter.add(new ToughnessPredicate(Filter.ComparisonType.LessThan, islands + 1)); + creatureFilter.add(new ToughnessPredicate(ComparisonType.FEWER_THAN, islands + 1)); Set cardsToHand = new HashSet<>(); for (Permanent permanent : game.getBattlefield().getActivePermanents(creatureFilter, source.getControllerId(), source.getSourceId(), game)) { cardsToHand.add(permanent); diff --git a/Mage.Sets/src/mage/cards/e/EngulfingFlames.java b/Mage.Sets/src/mage/cards/e/EngulfingFlames.java index 39820d828d8..1084b49cd6a 100644 --- a/Mage.Sets/src/mage/cards/e/EngulfingFlames.java +++ b/Mage.Sets/src/mage/cards/e/EngulfingFlames.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.ruleModifying.CantRegenerateTargetEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.TimingRule; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author cbt33, North diff --git a/Mage.Sets/src/mage/cards/e/EngulfingSlagwurm.java b/Mage.Sets/src/mage/cards/e/EngulfingSlagwurm.java index 2b030ae2ab6..95de3da963c 100644 --- a/Mage.Sets/src/mage/cards/e/EngulfingSlagwurm.java +++ b/Mage.Sets/src/mage/cards/e/EngulfingSlagwurm.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EnhancedAwareness.java b/Mage.Sets/src/mage/cards/e/EnhancedAwareness.java index b830f289389..5ea0b07ad64 100644 --- a/Mage.Sets/src/mage/cards/e/EnhancedAwareness.java +++ b/Mage.Sets/src/mage/cards/e/EnhancedAwareness.java @@ -27,12 +27,13 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.DrawDiscardControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EnigmaDrake.java b/Mage.Sets/src/mage/cards/e/EnigmaDrake.java new file mode 100644 index 00000000000..c7e403ef48e --- /dev/null +++ b/Mage.Sets/src/mage/cards/e/EnigmaDrake.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.e; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; +import mage.abilities.effects.common.continuous.SetPowerSourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.filter.common.FilterInstantOrSorceryCard; + +/** + * + * @author Darkside- + */ +public class EnigmaDrake extends CardImpl { + + public EnigmaDrake(UUID ownerId, CardSetInfo setInfo) { + super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{R}"); + this.subtype.add("Drake"); + + this.power = new MageInt(0); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Enigma Drakes's power is equal to the number of instant and sorcery cards in your graveyard. + this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerSourceEffect( + new CardsInControllerGraveyardCount(new FilterInstantOrSorceryCard("instant and sorcery cards")), Duration.EndOfGame))); + } + + public EnigmaDrake(final EnigmaDrake card) { + super(card); + } + + @Override + public EnigmaDrake copy() { + return new EnigmaDrake(this); + } +} diff --git a/Mage.Sets/src/mage/cards/e/EnigmaEidolon.java b/Mage.Sets/src/mage/cards/e/EnigmaEidolon.java index 5d0b14f2e1b..d3c42ae8db0 100644 --- a/Mage.Sets/src/mage/cards/e/EnigmaEidolon.java +++ b/Mage.Sets/src/mage/cards/e/EnigmaEidolon.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.MulticoloredPredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/EnigmaSphinx.java b/Mage.Sets/src/mage/cards/e/EnigmaSphinx.java index 01e15692616..b456971b2d4 100644 --- a/Mage.Sets/src/mage/cards/e/EnigmaSphinx.java +++ b/Mage.Sets/src/mage/cards/e/EnigmaSphinx.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -49,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.players.Library; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Enlarge.java b/Mage.Sets/src/mage/cards/e/Enlarge.java index 6f8455481ef..6059c42fc09 100644 --- a/Mage.Sets/src/mage/cards/e/Enlarge.java +++ b/Mage.Sets/src/mage/cards/e/Enlarge.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.combat.MustBeBlockedByAtLeastOneTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EnlightenedAscetic.java b/Mage.Sets/src/mage/cards/e/EnlightenedAscetic.java index 482932feecc..a935752a4e0 100644 --- a/Mage.Sets/src/mage/cards/e/EnlightenedAscetic.java +++ b/Mage.Sets/src/mage/cards/e/EnlightenedAscetic.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author Wehk diff --git a/Mage.Sets/src/mage/cards/e/EnlightenedManiac.java b/Mage.Sets/src/mage/cards/e/EnlightenedManiac.java index 6b3db45e71d..3881c120dd0 100644 --- a/Mage.Sets/src/mage/cards/e/EnlightenedManiac.java +++ b/Mage.Sets/src/mage/cards/e/EnlightenedManiac.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.EldraziHorrorToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EnlightenedTutor.java b/Mage.Sets/src/mage/cards/e/EnlightenedTutor.java index 7500a0f6b02..057f14181db 100644 --- a/Mage.Sets/src/mage/cards/e/EnlightenedTutor.java +++ b/Mage.Sets/src/mage/cards/e/EnlightenedTutor.java @@ -27,16 +27,17 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.search.SearchLibraryPutOnLibraryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EnlistedWurm.java b/Mage.Sets/src/mage/cards/e/EnlistedWurm.java index 107552e08f7..59eca43755e 100644 --- a/Mage.Sets/src/mage/cards/e/EnlistedWurm.java +++ b/Mage.Sets/src/mage/cards/e/EnlistedWurm.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.CascadeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/EnlistmentOfficer.java b/Mage.Sets/src/mage/cards/e/EnlistmentOfficer.java index 4f28dd9b923..d14ed147552 100644 --- a/Mage.Sets/src/mage/cards/e/EnlistmentOfficer.java +++ b/Mage.Sets/src/mage/cards/e/EnlistmentOfficer.java @@ -27,18 +27,19 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.RevealLibraryPutIntoHandEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.effects.common.RevealLibraryPutIntoHandEffect; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EnormousBaloth.java b/Mage.Sets/src/mage/cards/e/EnormousBaloth.java index 2c94387ce38..877f63a1939 100644 --- a/Mage.Sets/src/mage/cards/e/EnormousBaloth.java +++ b/Mage.Sets/src/mage/cards/e/EnormousBaloth.java @@ -27,11 +27,12 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/Enrage.java b/Mage.Sets/src/mage/cards/e/Enrage.java index 6c575331cc4..91376358800 100644 --- a/Mage.Sets/src/mage/cards/e/Enrage.java +++ b/Mage.Sets/src/mage/cards/e/Enrage.java @@ -27,17 +27,17 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EnragedGiant.java b/Mage.Sets/src/mage/cards/e/EnragedGiant.java index 59a22434c52..e6a6508429e 100644 --- a/Mage.Sets/src/mage/cards/e/EnragedGiant.java +++ b/Mage.Sets/src/mage/cards/e/EnragedGiant.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.ImproviseAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/e/EnragedRevolutionary.java b/Mage.Sets/src/mage/cards/e/EnragedRevolutionary.java index 09509bca2bf..7e081724f21 100644 --- a/Mage.Sets/src/mage/cards/e/EnragedRevolutionary.java +++ b/Mage.Sets/src/mage/cards/e/EnragedRevolutionary.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.DethroneAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EnragingLicid.java b/Mage.Sets/src/mage/cards/e/EnragingLicid.java index 34122ded590..311c02fc862 100644 --- a/Mage.Sets/src/mage/cards/e/EnragingLicid.java +++ b/Mage.Sets/src/mage/cards/e/EnragingLicid.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LicidAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/e/EnshrinedMemories.java b/Mage.Sets/src/mage/cards/e/EnshrinedMemories.java index e031c4c19b0..a9cb2d6cf9c 100644 --- a/Mage.Sets/src/mage/cards/e/EnshrinedMemories.java +++ b/Mage.Sets/src/mage/cards/e/EnshrinedMemories.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.RevealLibraryPutIntoHandEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EnshroudingMist.java b/Mage.Sets/src/mage/cards/e/EnshroudingMist.java index da743f65a67..5def8193e91 100644 --- a/Mage.Sets/src/mage/cards/e/EnshroudingMist.java +++ b/Mage.Sets/src/mage/cards/e/EnshroudingMist.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.condition.common.RenownedTargetCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.Effect; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +58,7 @@ public class EnshroudingMist extends CardImpl { this.getSpellAbility().addEffect(effect); OneShotEffect effect2 = new UntapTargetEffect(); effect2.setText("untap it"); - this.getSpellAbility().addEffect(new ConditionalOneShotEffect(effect2, RenownedTargetCondition.getInstance())); + this.getSpellAbility().addEffect(new ConditionalOneShotEffect(effect2, RenownedTargetCondition.instance)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/cards/e/Enslave.java b/Mage.Sets/src/mage/cards/e/Enslave.java index f16a66a34db..28140cd9d8f 100644 --- a/Mage.Sets/src/mage/cards/e/Enslave.java +++ b/Mage.Sets/src/mage/cards/e/Enslave.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -47,6 +46,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EnslavedDwarf.java b/Mage.Sets/src/mage/cards/e/EnslavedDwarf.java index 8a7ade4c883..1a15fd7ca8f 100644 --- a/Mage.Sets/src/mage/cards/e/EnslavedDwarf.java +++ b/Mage.Sets/src/mage/cards/e/EnslavedDwarf.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -47,6 +46,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author tomd1990 diff --git a/Mage.Sets/src/mage/cards/e/EnslavedScout.java b/Mage.Sets/src/mage/cards/e/EnslavedScout.java index b82bcf07cb4..2b472b4a9c9 100644 --- a/Mage.Sets/src/mage/cards/e/EnslavedScout.java +++ b/Mage.Sets/src/mage/cards/e/EnslavedScout.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/Ensnare.java b/Mage.Sets/src/mage/cards/e/Ensnare.java index 1d3d12301b3..b57fd095b63 100644 --- a/Mage.Sets/src/mage/cards/e/Ensnare.java +++ b/Mage.Sets/src/mage/cards/e/Ensnare.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; import mage.abilities.effects.common.TapAllEffect; @@ -39,6 +38,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EnsnaringBridge.java b/Mage.Sets/src/mage/cards/e/EnsnaringBridge.java index ba74af82a29..376dd47cd3a 100644 --- a/Mage.Sets/src/mage/cards/e/EnsnaringBridge.java +++ b/Mage.Sets/src/mage/cards/e/EnsnaringBridge.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.RestrictionEffect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EnsoulArtifact.java b/Mage.Sets/src/mage/cards/e/EnsoulArtifact.java index fecaabd681a..377d58518da 100644 --- a/Mage.Sets/src/mage/cards/e/EnsoulArtifact.java +++ b/Mage.Sets/src/mage/cards/e/EnsoulArtifact.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.game.permanent.token.Token; import mage.target.TargetPermanent; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EnsouledScimitar.java b/Mage.Sets/src/mage/cards/e/EnsouledScimitar.java index 53c4bd68176..62c72a45e97 100644 --- a/Mage.Sets/src/mage/cards/e/EnsouledScimitar.java +++ b/Mage.Sets/src/mage/cards/e/EnsouledScimitar.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EntanglingTrap.java b/Mage.Sets/src/mage/cards/e/EntanglingTrap.java index 982b22d52ac..00614404500 100644 --- a/Mage.Sets/src/mage/cards/e/EntanglingTrap.java +++ b/Mage.Sets/src/mage/cards/e/EntanglingTrap.java @@ -27,11 +27,9 @@ */ package mage.cards.e; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; @@ -43,10 +41,13 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; import mage.game.events.GameEvent; -import mage.abilities.effects.Effect; import mage.game.events.GameEvent.EventType; import mage.target.common.TargetCreaturePermanent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EntanglingVines.java b/Mage.Sets/src/mage/cards/e/EntanglingVines.java index 6f2edea989e..b4975c565f3 100644 --- a/Mage.Sets/src/mage/cards/e/EntanglingVines.java +++ b/Mage.Sets/src/mage/cards/e/EntanglingVines.java @@ -27,21 +27,22 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/EnterTheInfinite.java b/Mage.Sets/src/mage/cards/e/EnterTheInfinite.java index d916a13ad6c..7b1fe640e39 100644 --- a/Mage.Sets/src/mage/cards/e/EnterTheInfinite.java +++ b/Mage.Sets/src/mage/cards/e/EnterTheInfinite.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; @@ -47,6 +46,8 @@ import mage.game.turn.Step; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EnthrallingVictor.java b/Mage.Sets/src/mage/cards/e/EnthrallingVictor.java index d95f81a35db..0012fc759c8 100644 --- a/Mage.Sets/src/mage/cards/e/EnthrallingVictor.java +++ b/Mage.Sets/src/mage/cards/e/EnthrallingVictor.java @@ -27,9 +27,9 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.UntapTargetEffect; @@ -41,12 +41,13 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @@ -57,7 +58,7 @@ public class EnthrallingVictor extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); filter.add(new ControllerPredicate(TargetController.OPPONENT)); } diff --git a/Mage.Sets/src/mage/cards/e/Entomb.java b/Mage.Sets/src/mage/cards/e/Entomb.java index aef7cac2436..3dee0cea17c 100644 --- a/Mage.Sets/src/mage/cards/e/Entomb.java +++ b/Mage.Sets/src/mage/cards/e/Entomb.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.SearchEffect; import mage.cards.CardImpl; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EntomberExarch.java b/Mage.Sets/src/mage/cards/e/EntomberExarch.java index b7f5b2af5d5..487ea11383f 100644 --- a/Mage.Sets/src/mage/cards/e/EntomberExarch.java +++ b/Mage.Sets/src/mage/cards/e/EntomberExarch.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -50,6 +49,8 @@ import mage.target.TargetCard; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EntourageOfTrest.java b/Mage.Sets/src/mage/cards/e/EntourageOfTrest.java index 1cb3fd9c70d..a6c3969b993 100644 --- a/Mage.Sets/src/mage/cards/e/EntourageOfTrest.java +++ b/Mage.Sets/src/mage/cards/e/EntourageOfTrest.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +60,7 @@ public class EntourageOfTrest extends CardImpl { // Entourage of Trest can block an additional creature each combat as long as you're the monarch. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new CanBlockAdditionalCreatureEffect(1), MonarchIsSourceControllerCondition.getInstance(), + new CanBlockAdditionalCreatureEffect(1), MonarchIsSourceControllerCondition.instance, "{this} can block an additional creature each combat as long as you're the monarch"))); } diff --git a/Mage.Sets/src/mage/cards/e/EntrapmentManeuver.java b/Mage.Sets/src/mage/cards/e/EntrapmentManeuver.java index 999f1be6fd7..5b682d4a472 100644 --- a/Mage.Sets/src/mage/cards/e/EntrapmentManeuver.java +++ b/Mage.Sets/src/mage/cards/e/EntrapmentManeuver.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; @@ -45,6 +44,8 @@ import mage.target.Target; import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EntreatTheAngels.java b/Mage.Sets/src/mage/cards/e/EntreatTheAngels.java index 9196a39dd5c..b8c6e5c6b17 100644 --- a/Mage.Sets/src/mage/cards/e/EntreatTheAngels.java +++ b/Mage.Sets/src/mage/cards/e/EntreatTheAngels.java @@ -27,13 +27,13 @@ */ package mage.cards.e; -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.MiracleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.AngelToken; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/e/EntropicEidolon.java b/Mage.Sets/src/mage/cards/e/EntropicEidolon.java index 4a62d593506..718d74b4518 100644 --- a/Mage.Sets/src/mage/cards/e/EntropicEidolon.java +++ b/Mage.Sets/src/mage/cards/e/EntropicEidolon.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.MulticoloredPredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/EntropicSpecter.java b/Mage.Sets/src/mage/cards/e/EntropicSpecter.java index 00ac5ea15bb..1c71d6f4ae6 100644 --- a/Mage.Sets/src/mage/cards/e/EntropicSpecter.java +++ b/Mage.Sets/src/mage/cards/e/EntropicSpecter.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AsEntersBattlefieldAbility; @@ -41,14 +40,12 @@ import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/Envelop.java b/Mage.Sets/src/mage/cards/e/Envelop.java index be2a62914ef..f114e3bf184 100644 --- a/Mage.Sets/src/mage/cards/e/Envelop.java +++ b/Mage.Sets/src/mage/cards/e/Envelop.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EonHub.java b/Mage.Sets/src/mage/cards/e/EonHub.java index 9c2ae64a89a..b4d230d482a 100644 --- a/Mage.Sets/src/mage/cards/e/EonHub.java +++ b/Mage.Sets/src/mage/cards/e/EonHub.java @@ -5,18 +5,22 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; -import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.players.Player; +import java.util.UUID; + /** * * @author nick.myers diff --git a/Mage.Sets/src/mage/cards/e/EpharaGodOfThePolis.java b/Mage.Sets/src/mage/cards/e/EpharaGodOfThePolis.java index 8dc079c67cc..8b899807066 100644 --- a/Mage.Sets/src/mage/cards/e/EpharaGodOfThePolis.java +++ b/Mage.Sets/src/mage/cards/e/EpharaGodOfThePolis.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -41,14 +40,13 @@ import mage.abilities.effects.common.continuous.LoseCreatureTypeSourceEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.watchers.common.PermanentsEnteredBattlefieldWatcher; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +55,7 @@ public class EpharaGodOfThePolis extends CardImpl { public EpharaGodOfThePolis(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{2}{W}{U}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/e/EpharasEnlightenment.java b/Mage.Sets/src/mage/cards/e/EpharasEnlightenment.java index 419eee9a19a..fdee056371b 100644 --- a/Mage.Sets/src/mage/cards/e/EpharasEnlightenment.java +++ b/Mage.Sets/src/mage/cards/e/EpharasEnlightenment.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -49,6 +48,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EpharasRadiance.java b/Mage.Sets/src/mage/cards/e/EpharasRadiance.java index cc378248297..228e8c9a6b3 100644 --- a/Mage.Sets/src/mage/cards/e/EpharasRadiance.java +++ b/Mage.Sets/src/mage/cards/e/EpharasRadiance.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,14 +38,12 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EpharasWarden.java b/Mage.Sets/src/mage/cards/e/EpharasWarden.java index 8b1e40825e2..fac914a3907 100644 --- a/Mage.Sets/src/mage/cards/e/EpharasWarden.java +++ b/Mage.Sets/src/mage/cards/e/EpharasWarden.java @@ -27,9 +27,9 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.TapTargetEffect; @@ -37,12 +37,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -51,7 +52,7 @@ public class EpharasWarden extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 3 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 4)); } public EpharasWarden(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/e/EphemeralShields.java b/Mage.Sets/src/mage/cards/e/EphemeralShields.java index 9baea4488c5..ea098996979 100644 --- a/Mage.Sets/src/mage/cards/e/EphemeralShields.java +++ b/Mage.Sets/src/mage/cards/e/EphemeralShields.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.ConvokeAbility; import mage.abilities.keyword.IndestructibleAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Ephemeron.java b/Mage.Sets/src/mage/cards/e/Ephemeron.java index dd66dd573cf..13f30b81707 100644 --- a/Mage.Sets/src/mage/cards/e/Ephemeron.java +++ b/Mage.Sets/src/mage/cards/e/Ephemeron.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardTargetCost; @@ -37,9 +34,12 @@ import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/EpicConfrontation.java b/Mage.Sets/src/mage/cards/e/EpicConfrontation.java index 30f6f9e8842..1100aa07885 100644 --- a/Mage.Sets/src/mage/cards/e/EpicConfrontation.java +++ b/Mage.Sets/src/mage/cards/e/EpicConfrontation.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.FightTargetsEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -42,6 +41,8 @@ import mage.target.Target; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EpicExperiment.java b/Mage.Sets/src/mage/cards/e/EpicExperiment.java index a2e8d0670ac..8abf7274fca 100644 --- a/Mage.Sets/src/mage/cards/e/EpicExperiment.java +++ b/Mage.Sets/src/mage/cards/e/EpicExperiment.java @@ -27,19 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.common.FilterInstantOrSorceryCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -48,6 +43,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author LevelX2 @@ -94,7 +91,7 @@ class EpicExperimentEffect extends OneShotEffect { // cast the possible cards without paying the mana ExileZone epicExperimentExileZone = game.getExile().getExileZone(source.getSourceId()); FilterCard filter = new FilterInstantOrSorceryCard(); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, source.getManaCostsToPay().getX() + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, source.getManaCostsToPay().getX() + 1)); filter.setMessage("instant and sorcery cards with converted mana cost " + source.getManaCostsToPay().getX() + " or less"); Cards cardsToCast = new CardsImpl(); if (epicExperimentExileZone == null) { diff --git a/Mage.Sets/src/mage/cards/e/EpicProportions.java b/Mage.Sets/src/mage/cards/e/EpicProportions.java index d25e89d9191..ff1468d835d 100644 --- a/Mage.Sets/src/mage/cards/e/EpicProportions.java +++ b/Mage.Sets/src/mage/cards/e/EpicProportions.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -38,6 +37,7 @@ import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/e/EpicStruggle.java b/Mage.Sets/src/mage/cards/e/EpicStruggle.java index 89c152ace2e..1d8ad26f5b9 100644 --- a/Mage.Sets/src/mage/cards/e/EpicStruggle.java +++ b/Mage.Sets/src/mage/cards/e/EpicStruggle.java @@ -27,9 +27,7 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -40,6 +38,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -54,7 +54,7 @@ public class EpicStruggle extends CardImpl { // At the beginning of your upkeep, if you control twenty or more creatures, you win the game. this.addAbility(new ConditionalTriggeredAbility( new BeginningOfUpkeepTriggeredAbility(new WinGameSourceControllerEffect(), TargetController.YOU, false), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 19), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 19), "At the beginning of your upkeep, if you control twenty or more creatures, you win the game.")); } diff --git a/Mage.Sets/src/mage/cards/e/EpiphanyAtTheDrownyard.java b/Mage.Sets/src/mage/cards/e/EpiphanyAtTheDrownyard.java index 41ff18625ba..a128dd0d5a3 100644 --- a/Mage.Sets/src/mage/cards/e/EpiphanyAtTheDrownyard.java +++ b/Mage.Sets/src/mage/cards/e/EpiphanyAtTheDrownyard.java @@ -27,18 +27,10 @@ */ package mage.cards.e; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -50,6 +42,11 @@ import mage.target.TargetCard; import mage.target.common.TargetOpponent; import mage.util.GameLog; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EpiphanyStorm.java b/Mage.Sets/src/mage/cards/e/EpiphanyStorm.java index f5a360a32c2..b457225382a 100644 --- a/Mage.Sets/src/mage/cards/e/EpiphanyStorm.java +++ b/Mage.Sets/src/mage/cards/e/EpiphanyStorm.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -47,6 +46,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/e/EpitaphGolem.java b/Mage.Sets/src/mage/cards/e/EpitaphGolem.java index c670e6d4eea..210d71a25c5 100644 --- a/Mage.Sets/src/mage/cards/e/EpitaphGolem.java +++ b/Mage.Sets/src/mage/cards/e/EpitaphGolem.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/Epochrasite.java b/Mage.Sets/src/mage/cards/e/Epochrasite.java index eb59197334e..bec30331401 100644 --- a/Mage.Sets/src/mage/cards/e/Epochrasite.java +++ b/Mage.Sets/src/mage/cards/e/Epochrasite.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; @@ -50,6 +49,8 @@ import mage.game.Game; import mage.players.Player; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * * @author LevelX2 @@ -66,7 +67,7 @@ public class Epochrasite extends CardImpl { // Epochrasite enters the battlefield with three +1/+1 counters on it if you didn't cast it from your hand. this.addAbility(new EntersBattlefieldAbility( new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)), - new InvertCondition(new CastFromHandSourceCondition()), + new InvertCondition(CastFromHandSourceCondition.instance), "{this} enters the battlefield with three +1/+1 counters on it if you didn't cast it from your hand",""), new CastFromHandWatcher()); diff --git a/Mage.Sets/src/mage/cards/e/EquestrianSkill.java b/Mage.Sets/src/mage/cards/e/EquestrianSkill.java index 93d412c9ab2..0fb3fd20ce6 100644 --- a/Mage.Sets/src/mage/cards/e/EquestrianSkill.java +++ b/Mage.Sets/src/mage/cards/e/EquestrianSkill.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.EnchantedCreatureSubtypeCondition; @@ -39,14 +38,12 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Equilibrium.java b/Mage.Sets/src/mage/cards/e/Equilibrium.java index 191fe0ffe5b..137edd3b710 100644 --- a/Mage.Sets/src/mage/cards/e/Equilibrium.java +++ b/Mage.Sets/src/mage/cards/e/Equilibrium.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.filter.StaticFilters; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/Equipoise.java b/Mage.Sets/src/mage/cards/e/Equipoise.java index 7f3f5268041..4613d1cad44 100644 --- a/Mage.Sets/src/mage/cards/e/Equipoise.java +++ b/Mage.Sets/src/mage/cards/e/Equipoise.java @@ -27,8 +27,6 @@ */ package mage.cards.e; -import java.util.Objects; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -48,6 +46,9 @@ import mage.target.Target; import mage.target.TargetPermanent; import mage.target.TargetPlayer; +import java.util.Objects; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EraOfInnovation.java b/Mage.Sets/src/mage/cards/e/EraOfInnovation.java index 53ed0f97d80..03c06a99e67 100644 --- a/Mage.Sets/src/mage/cards/e/EraOfInnovation.java +++ b/Mage.Sets/src/mage/cards/e/EraOfInnovation.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -47,6 +46,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/Eradicate.java b/Mage.Sets/src/mage/cards/e/Eradicate.java index 63cc29b2964..30562fbf9c5 100644 --- a/Mage.Sets/src/mage/cards/e/Eradicate.java +++ b/Mage.Sets/src/mage/cards/e/Eradicate.java @@ -27,17 +27,18 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.effects.common.ExileTargetAndSearchGraveyardHandLibraryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Erase.java b/Mage.Sets/src/mage/cards/e/Erase.java index ed905a06fc7..d51506d1cb9 100644 --- a/Mage.Sets/src/mage/cards/e/Erase.java +++ b/Mage.Sets/src/mage/cards/e/Erase.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/ErayoSoratamiAscendant.java b/Mage.Sets/src/mage/cards/e/ErayoSoratamiAscendant.java index 8e56e5ba93a..4403c060d6d 100644 --- a/Mage.Sets/src/mage/cards/e/ErayoSoratamiAscendant.java +++ b/Mage.Sets/src/mage/cards/e/ErayoSoratamiAscendant.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -37,6 +36,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -45,6 +45,8 @@ import mage.game.permanent.token.Token; import mage.target.targetpointer.FixedTarget; import mage.watchers.common.CastSpellLastTurnWatcher; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +55,7 @@ public class ErayoSoratamiAscendant extends CardImpl { public ErayoSoratamiAscendant(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Moonfolk"); this.subtype.add("Monk"); this.power = new MageInt(1); @@ -121,7 +123,7 @@ class ErayosEssence extends Token { ErayosEssence() { super("Erayo's Essence", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.ENCHANTMENT); color.setBlue(true); diff --git a/Mage.Sets/src/mage/cards/e/ErdwalIlluminator.java b/Mage.Sets/src/mage/cards/e/ErdwalIlluminator.java index 399844735b2..33d845dce87 100644 --- a/Mage.Sets/src/mage/cards/e/ErdwalIlluminator.java +++ b/Mage.Sets/src/mage/cards/e/ErdwalIlluminator.java @@ -27,8 +27,6 @@ */ package mage.cards.e; -import java.util.HashMap; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.keyword.InvestigateEffect; @@ -43,6 +41,9 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.watchers.Watcher; +import java.util.HashMap; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/ErdwalRipper.java b/Mage.Sets/src/mage/cards/e/ErdwalRipper.java index bd7564c6fdf..3e14e87bdb4 100644 --- a/Mage.Sets/src/mage/cards/e/ErdwalRipper.java +++ b/Mage.Sets/src/mage/cards/e/ErdwalRipper.java @@ -27,16 +27,17 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/ErebosGodOfTheDead.java b/Mage.Sets/src/mage/cards/e/ErebosGodOfTheDead.java index 1c2de149b4f..1e3ea582770 100644 --- a/Mage.Sets/src/mage/cards/e/ErebosGodOfTheDead.java +++ b/Mage.Sets/src/mage/cards/e/ErebosGodOfTheDead.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,16 +41,12 @@ import mage.abilities.effects.common.continuous.LoseCreatureTypeSourceEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +55,7 @@ public class ErebosGodOfTheDead extends CardImpl { public ErebosGodOfTheDead(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.CREATURE},"{3}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/e/ErebossTitan.java b/Mage.Sets/src/mage/cards/e/ErebossTitan.java index 80c1f0d88a9..d92d6976006 100644 --- a/Mage.Sets/src/mage/cards/e/ErebossTitan.java +++ b/Mage.Sets/src/mage/cards/e/ErebossTitan.java @@ -27,9 +27,8 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -53,6 +52,8 @@ import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -74,7 +75,7 @@ public class ErebossTitan extends CardImpl { // Erebos's Titan has indestructible as long as no opponent controls a creature. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield), - new PermanentsOnTheBattlefieldCondition(filter, CountType.EQUAL_TO, 0, false), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.EQUAL_TO, 0, false), "As long as your opponents control no creatures, {this} has indestructible"))); // Whenever a creature leaves an opponent's graveyard, you may discard a card. If you do, return Erebos's Titan from your graveyard to your hand. diff --git a/Mage.Sets/src/mage/cards/e/ErgRaiders.java b/Mage.Sets/src/mage/cards/e/ErgRaiders.java index 47422c7a89d..0b1f9564aa4 100644 --- a/Mage.Sets/src/mage/cards/e/ErgRaiders.java +++ b/Mage.Sets/src/mage/cards/e/ErgRaiders.java @@ -29,6 +29,7 @@ package mage.cards.e; import java.util.UUID; import mage.MageInt; +import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -46,12 +47,12 @@ import mage.watchers.common.AttackedThisTurnWatcher; /** * * @author LoneFox - + * */ public class ErgRaiders extends CardImpl { public ErgRaiders(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}"); this.subtype.add("Human"); this.subtype.add("Warrior"); this.power = new MageInt(2); @@ -59,7 +60,7 @@ public class ErgRaiders extends CardImpl { // At the beginning of your end step, if Erg Raiders didn't attack this turn, Erg Raiders deals 2 damage to you unless it came under your control this turn. TriggeredAbility ability = new ConditionalTriggeredAbility(new BeginningOfEndStepTriggeredAbility(new DamageControllerEffect(2), TargetController.YOU, false), - new ErgRaidersCondition(), "At the beginning of your end step, if {this} didn't attack this turn, {this} deals 2 damage to you unless it came under your control this turn."); + new ErgRaidersCondition(), "At the beginning of your end step, if {this} didn't attack this turn, {this} deals 2 damage to you unless it came under your control this turn."); ability.addWatcher(new AttackedThisTurnWatcher()); this.addAbility(ability); } @@ -79,8 +80,8 @@ class ErgRaidersCondition implements Condition { @Override public boolean apply(Game game, Ability source) { Permanent raiders = game.getPermanentOrLKIBattlefield(source.getSourceId()); - AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get("AttackedThisTurn"); + AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get(AttackedThisTurnWatcher.class.getName()); // wasControlledFromStartOfControllerTurn should be checked during resolution I guess, but shouldn't be relevant - return raiders.wasControlledFromStartOfControllerTurn() && !watcher.getAttackedThisTurnCreatures().contains(raiders.getId()); + return raiders.wasControlledFromStartOfControllerTurn() && !watcher.getAttackedThisTurnCreatures().contains(new MageObjectReference(raiders, game)); } } diff --git a/Mage.Sets/src/mage/cards/e/ErhnamDjinn.java b/Mage.Sets/src/mage/cards/e/ErhnamDjinn.java index 5024aed3a2e..1e15e2f3275 100644 --- a/Mage.Sets/src/mage/cards/e/ErhnamDjinn.java +++ b/Mage.Sets/src/mage/cards/e/ErhnamDjinn.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EronTheRelentless.java b/Mage.Sets/src/mage/cards/e/EronTheRelentless.java index 770d07cb93d..47a8791ff1d 100644 --- a/Mage.Sets/src/mage/cards/e/EronTheRelentless.java +++ b/Mage.Sets/src/mage/cards/e/EronTheRelentless.java @@ -27,18 +27,20 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.abilities.Ability; import mage.MageInt; +import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author shieldal @@ -47,7 +49,7 @@ public class EronTheRelentless extends CardImpl { public EronTheRelentless(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rogue"); diff --git a/Mage.Sets/src/mage/cards/e/ErrantDoomsayers.java b/Mage.Sets/src/mage/cards/e/ErrantDoomsayers.java index fac6774d266..7414a00ec6d 100644 --- a/Mage.Sets/src/mage/cards/e/ErrantDoomsayers.java +++ b/Mage.Sets/src/mage/cards/e/ErrantDoomsayers.java @@ -27,9 +27,9 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.TapTargetEffect; @@ -37,12 +37,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -51,7 +52,7 @@ public class ErrantDoomsayers extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with toughness 2 or less"); static { - filter.add(new ToughnessPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new ToughnessPredicate(ComparisonType.FEWER_THAN, 3)); } public ErrantDoomsayers(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/e/ErrantEphemeron.java b/Mage.Sets/src/mage/cards/e/ErrantEphemeron.java index 114c7f50ca6..e694554aabe 100644 --- a/Mage.Sets/src/mage/cards/e/ErrantEphemeron.java +++ b/Mage.Sets/src/mage/cards/e/ErrantEphemeron.java @@ -27,14 +27,15 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.SuspendAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/Errantry.java b/Mage.Sets/src/mage/cards/e/Errantry.java index cfbdf440980..d5b4c0ef7ca 100644 --- a/Mage.Sets/src/mage/cards/e/Errantry.java +++ b/Mage.Sets/src/mage/cards/e/Errantry.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/ErraticExplosion.java b/Mage.Sets/src/mage/cards/e/ErraticExplosion.java index c626519798d..c2c76981b67 100644 --- a/Mage.Sets/src/mage/cards/e/ErraticExplosion.java +++ b/Mage.Sets/src/mage/cards/e/ErraticExplosion.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -42,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/e/ErraticMutation.java b/Mage.Sets/src/mage/cards/e/ErraticMutation.java index 1789167d019..e17d6bd881e 100644 --- a/Mage.Sets/src/mage/cards/e/ErraticMutation.java +++ b/Mage.Sets/src/mage/cards/e/ErraticMutation.java @@ -27,12 +27,7 @@ */ package mage.cards.e; -import java.util.UUID; - import mage.MageObject; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -41,11 +36,16 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.CardsImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/ErraticPortal.java b/Mage.Sets/src/mage/cards/e/ErraticPortal.java index c0e18d98e70..80181820b36 100644 --- a/Mage.Sets/src/mage/cards/e/ErraticPortal.java +++ b/Mage.Sets/src/mage/cards/e/ErraticPortal.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.Cost; @@ -39,6 +36,7 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; @@ -46,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/ErsatzGnomes.java b/Mage.Sets/src/mage/cards/e/ErsatzGnomes.java index 59bedb0ea96..eb19e986e19 100644 --- a/Mage.Sets/src/mage/cards/e/ErsatzGnomes.java +++ b/Mage.Sets/src/mage/cards/e/ErsatzGnomes.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/ErtaiTheCorrupted.java b/Mage.Sets/src/mage/cards/e/ErtaiTheCorrupted.java index 33e0bcf7d89..900aec83601 100644 --- a/Mage.Sets/src/mage/cards/e/ErtaiTheCorrupted.java +++ b/Mage.Sets/src/mage/cards/e/ErtaiTheCorrupted.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +37,7 @@ import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; @@ -45,6 +45,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetSpell; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -59,7 +61,7 @@ public class ErtaiTheCorrupted extends CardImpl { public ErtaiTheCorrupted(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/e/ErtaiWizardAdept.java b/Mage.Sets/src/mage/cards/e/ErtaiWizardAdept.java index ac69322ddb6..be720ed298c 100644 --- a/Mage.Sets/src/mage/cards/e/ErtaiWizardAdept.java +++ b/Mage.Sets/src/mage/cards/e/ErtaiWizardAdept.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,13 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -49,7 +50,7 @@ public class ErtaiWizardAdept extends CardImpl { public ErtaiWizardAdept(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/e/ErtaisTrickery.java b/Mage.Sets/src/mage/cards/e/ErtaisTrickery.java index ea0b655c622..569cb7b46ef 100644 --- a/Mage.Sets/src/mage/cards/e/ErtaisTrickery.java +++ b/Mage.Sets/src/mage/cards/e/ErtaisTrickery.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.KickedCondition; import mage.abilities.effects.common.CounterTargetEffect; @@ -38,6 +37,8 @@ import mage.game.Game; import mage.game.stack.Spell; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/EruptingDreadwolf.java b/Mage.Sets/src/mage/cards/e/EruptingDreadwolf.java index 2e6bd05ce78..47d62f33055 100644 --- a/Mage.Sets/src/mage/cards/e/EruptingDreadwolf.java +++ b/Mage.Sets/src/mage/cards/e/EruptingDreadwolf.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EscapeArtist.java b/Mage.Sets/src/mage/cards/e/EscapeArtist.java index 6709bed0e90..06edf9cf3fc 100644 --- a/Mage.Sets/src/mage/cards/e/EscapeArtist.java +++ b/Mage.Sets/src/mage/cards/e/EscapeArtist.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/e/EscapePod.java b/Mage.Sets/src/mage/cards/e/EscapePod.java index f6c92473200..9b396313b41 100644 --- a/Mage.Sets/src/mage/cards/e/EscapePod.java +++ b/Mage.Sets/src/mage/cards/e/EscapePod.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -43,6 +42,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/e/EscapeRoutes.java b/Mage.Sets/src/mage/cards/e/EscapeRoutes.java index 6dd4b40e038..5ca5b398636 100644 --- a/Mage.Sets/src/mage/cards/e/EscapeRoutes.java +++ b/Mage.Sets/src/mage/cards/e/EscapeRoutes.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/EscapedNull.java b/Mage.Sets/src/mage/cards/e/EscapedNull.java index b58bdba2817..db7230c4fa1 100644 --- a/Mage.Sets/src/mage/cards/e/EscapedNull.java +++ b/Mage.Sets/src/mage/cards/e/EscapedNull.java @@ -27,15 +27,16 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/EsperBattlemage.java b/Mage.Sets/src/mage/cards/e/EsperBattlemage.java index 6314f092094..d0387e23561 100644 --- a/Mage.Sets/src/mage/cards/e/EsperBattlemage.java +++ b/Mage.Sets/src/mage/cards/e/EsperBattlemage.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/EsperCharm.java b/Mage.Sets/src/mage/cards/e/EsperCharm.java index 3d043ffb540..f49af4ba288 100644 --- a/Mage.Sets/src/mage/cards/e/EsperCharm.java +++ b/Mage.Sets/src/mage/cards/e/EsperCharm.java @@ -27,17 +27,18 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; -import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPlayer; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/EsperCormorants.java b/Mage.Sets/src/mage/cards/e/EsperCormorants.java index 575bd698675..40a3e89a610 100644 --- a/Mage.Sets/src/mage/cards/e/EsperCormorants.java +++ b/Mage.Sets/src/mage/cards/e/EsperCormorants.java @@ -28,12 +28,13 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/EsperPanorama.java b/Mage.Sets/src/mage/cards/e/EsperPanorama.java index daea98ce29a..85d542b29ed 100644 --- a/Mage.Sets/src/mage/cards/e/EsperPanorama.java +++ b/Mage.Sets/src/mage/cards/e/EsperPanorama.java @@ -27,10 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -40,6 +36,10 @@ import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -47,6 +47,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author North @@ -57,7 +59,7 @@ public class EsperPanorama extends CardImpl { static { filter.add(new CardTypePredicate(CardType.LAND)); - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); filter.add(Predicates.or( new SubtypePredicate("Plains"), new SubtypePredicate("Island"), diff --git a/Mage.Sets/src/mage/cards/e/EsperSojourners.java b/Mage.Sets/src/mage/cards/e/EsperSojourners.java index 131aef14b5d..5abacd6b02f 100644 --- a/Mage.Sets/src/mage/cards/e/EsperSojourners.java +++ b/Mage.Sets/src/mage/cards/e/EsperSojourners.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CycleTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/EsperStormblade.java b/Mage.Sets/src/mage/cards/e/EsperStormblade.java index f9f1218b1ba..13cf920eb5b 100644 --- a/Mage.Sets/src/mage/cards/e/EsperStormblade.java +++ b/Mage.Sets/src/mage/cards/e/EsperStormblade.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.MulticoloredPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/Esperzoa.java b/Mage.Sets/src/mage/cards/e/Esperzoa.java index 7fb421a5381..deb7151cdaa 100644 --- a/Mage.Sets/src/mage/cards/e/Esperzoa.java +++ b/Mage.Sets/src/mage/cards/e/Esperzoa.java @@ -28,7 +28,6 @@ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.ReturnToHandChosenControlledPermanentEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.common.FilterControlledArtifactPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EssenceBacklash.java b/Mage.Sets/src/mage/cards/e/EssenceBacklash.java index 8d6a5d17838..b80368a974c 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceBacklash.java +++ b/Mage.Sets/src/mage/cards/e/EssenceBacklash.java @@ -27,13 +27,11 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -42,6 +40,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EssenceBottle.java b/Mage.Sets/src/mage/cards/e/EssenceBottle.java index 456063e14ea..05b00b8497a 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceBottle.java +++ b/Mage.Sets/src/mage/cards/e/EssenceBottle.java @@ -27,10 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.Cost; @@ -41,11 +37,16 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/EssenceDepleter.java b/Mage.Sets/src/mage/cards/e/EssenceDepleter.java index 94465ff0536..302c291e9b4 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceDepleter.java +++ b/Mage.Sets/src/mage/cards/e/EssenceDepleter.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EssenceDrain.java b/Mage.Sets/src/mage/cards/e/EssenceDrain.java index 4b30b83214a..1651d5e5a84 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceDrain.java +++ b/Mage.Sets/src/mage/cards/e/EssenceDrain.java @@ -28,14 +28,15 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EssenceExtraction.java b/Mage.Sets/src/mage/cards/e/EssenceExtraction.java index 85f37a72152..2f892c454ce 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceExtraction.java +++ b/Mage.Sets/src/mage/cards/e/EssenceExtraction.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.GainLifeEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EssenceFeed.java b/Mage.Sets/src/mage/cards/e/EssenceFeed.java index 4e01867598f..a8caec60767 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceFeed.java +++ b/Mage.Sets/src/mage/cards/e/EssenceFeed.java @@ -28,16 +28,17 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.EldraziSpawnToken; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EssenceFlux.java b/Mage.Sets/src/mage/cards/e/EssenceFlux.java index 2b226db8572..38dac44b053 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceFlux.java +++ b/Mage.Sets/src/mage/cards/e/EssenceFlux.java @@ -27,18 +27,12 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ExileTargetForSourceEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.cards.CardSetInfo; -import mage.cards.MeldCard; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -51,6 +45,8 @@ import mage.target.common.TargetControlledCreaturePermanent; import mage.target.targetpointer.FixedTarget; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EssenceFracture.java b/Mage.Sets/src/mage/cards/e/EssenceFracture.java index 6574bd871ac..b55c184ae4c 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceFracture.java +++ b/Mage.Sets/src/mage/cards/e/EssenceFracture.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.ReturnToHandTargetEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EssenceHarvest.java b/Mage.Sets/src/mage/cards/e/EssenceHarvest.java index 6170dc32aee..c62848a1deb 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceHarvest.java +++ b/Mage.Sets/src/mage/cards/e/EssenceHarvest.java @@ -27,20 +27,21 @@ */ package mage.cards.e; -import java.util.List; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.List; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/EssenceOfTheWild.java b/Mage.Sets/src/mage/cards/e/EssenceOfTheWild.java index 14eb71058c1..3294e93fc8f 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceOfTheWild.java +++ b/Mage.Sets/src/mage/cards/e/EssenceOfTheWild.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/e/EssenceScatter.java b/Mage.Sets/src/mage/cards/e/EssenceScatter.java index 9a93b6bca91..8e15cfc7fe4 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceScatter.java +++ b/Mage.Sets/src/mage/cards/e/EssenceScatter.java @@ -27,32 +27,25 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.FilterSpell; -import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; +import mage.filter.common.FilterCreatureSpell; + /** * * @author North */ public class EssenceScatter extends CardImpl { - private static final FilterSpell filter = new FilterSpell("creature spell"); - - static { - filter.add(new CardTypePredicate(CardType.CREATURE)); - } - public EssenceScatter(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}"); - - this.getSpellAbility().addTarget(new TargetSpell(filter)); + this.getSpellAbility().addTarget(new TargetSpell(new FilterCreatureSpell())); this.getSpellAbility().addEffect(new CounterTargetEffect()); } diff --git a/Mage.Sets/src/mage/cards/e/EssenceSliver.java b/Mage.Sets/src/mage/cards/e/EssenceSliver.java index e8ae0f55586..e8099040c00 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceSliver.java +++ b/Mage.Sets/src/mage/cards/e/EssenceSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -44,6 +43,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/e/EssenceWarden.java b/Mage.Sets/src/mage/cards/e/EssenceWarden.java index 5cd18d9d9e1..595c76140bc 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceWarden.java +++ b/Mage.Sets/src/mage/cards/e/EssenceWarden.java @@ -27,17 +27,18 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EtchedChampion.java b/Mage.Sets/src/mage/cards/e/EtchedChampion.java index 65cb1edbb72..290125c692c 100644 --- a/Mage.Sets/src/mage/cards/e/EtchedChampion.java +++ b/Mage.Sets/src/mage/cards/e/EtchedChampion.java @@ -27,10 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -41,10 +37,15 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/EtchedMonstrosity.java b/Mage.Sets/src/mage/cards/e/EtchedMonstrosity.java index 3e77550d292..7ff85756379 100644 --- a/Mage.Sets/src/mage/cards/e/EtchedMonstrosity.java +++ b/Mage.Sets/src/mage/cards/e/EtchedMonstrosity.java @@ -28,9 +28,6 @@ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -41,10 +38,13 @@ import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EtchedOracle.java b/Mage.Sets/src/mage/cards/e/EtchedOracle.java index 55715d033f7..6c51b1e7f17 100644 --- a/Mage.Sets/src/mage/cards/e/EtchedOracle.java +++ b/Mage.Sets/src/mage/cards/e/EtchedOracle.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,10 +36,13 @@ import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.keyword.SunburstAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EternalDominion.java b/Mage.Sets/src/mage/cards/e/EternalDominion.java index 9ae0fd09d98..22290a5d1a3 100644 --- a/Mage.Sets/src/mage/cards/e/EternalDominion.java +++ b/Mage.Sets/src/mage/cards/e/EternalDominion.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.EpicEffect; @@ -45,6 +44,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/EternalDragon.java b/Mage.Sets/src/mage/cards/e/EternalDragon.java index b38595340be..18f2a244e1a 100644 --- a/Mage.Sets/src/mage/cards/e/EternalDragon.java +++ b/Mage.Sets/src/mage/cards/e/EternalDragon.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.condition.common.IsStepCondition; @@ -40,9 +37,12 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.PlainscyclingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.PhaseStep; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EternalScourge.java b/Mage.Sets/src/mage/cards/e/EternalScourge.java index 85e7fb3a751..7ba4b41714f 100644 --- a/Mage.Sets/src/mage/cards/e/EternalScourge.java +++ b/Mage.Sets/src/mage/cards/e/EternalScourge.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -37,15 +36,13 @@ import mage.abilities.effects.common.ExileSourceEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EternalThirst.java b/Mage.Sets/src/mage/cards/e/EternalThirst.java index dd7d502051e..7d82a0690d0 100644 --- a/Mage.Sets/src/mage/cards/e/EternalThirst.java +++ b/Mage.Sets/src/mage/cards/e/EternalThirst.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,17 +38,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/e/EternalWarrior.java b/Mage.Sets/src/mage/cards/e/EternalWarrior.java index 5cdae666d70..06762b4bfc9 100644 --- a/Mage.Sets/src/mage/cards/e/EternalWarrior.java +++ b/Mage.Sets/src/mage/cards/e/EternalWarrior.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author icetc diff --git a/Mage.Sets/src/mage/cards/e/EternalWitness.java b/Mage.Sets/src/mage/cards/e/EternalWitness.java index 35b04461f37..8761652717e 100644 --- a/Mage.Sets/src/mage/cards/e/EternalWitness.java +++ b/Mage.Sets/src/mage/cards/e/EternalWitness.java @@ -27,16 +27,17 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/e/EternitySnare.java b/Mage.Sets/src/mage/cards/e/EternitySnare.java index f8e12a42bc8..0ccf287c688 100644 --- a/Mage.Sets/src/mage/cards/e/EternitySnare.java +++ b/Mage.Sets/src/mage/cards/e/EternitySnare.java @@ -27,13 +27,12 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/e/EternityVessel.java b/Mage.Sets/src/mage/cards/e/EternityVessel.java index 17a29203802..23f694053dd 100644 --- a/Mage.Sets/src/mage/cards/e/EternityVessel.java +++ b/Mage.Sets/src/mage/cards/e/EternityVessel.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.LandfallAbility; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/EthercasteKnight.java b/Mage.Sets/src/mage/cards/e/EthercasteKnight.java index cdba67264e6..6fcb65b1bc5 100644 --- a/Mage.Sets/src/mage/cards/e/EthercasteKnight.java +++ b/Mage.Sets/src/mage/cards/e/EthercasteKnight.java @@ -28,12 +28,13 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ExaltedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/EtherealAmbush.java b/Mage.Sets/src/mage/cards/e/EtherealAmbush.java index 37066cbb9bc..3264298eeb5 100644 --- a/Mage.Sets/src/mage/cards/e/EtherealAmbush.java +++ b/Mage.Sets/src/mage/cards/e/EtherealAmbush.java @@ -27,12 +27,13 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.keyword.ManifestEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EtherealArmor.java b/Mage.Sets/src/mage/cards/e/EtherealArmor.java index 6a7a4c7aa1b..4598b796f62 100644 --- a/Mage.Sets/src/mage/cards/e/EtherealArmor.java +++ b/Mage.Sets/src/mage/cards/e/EtherealArmor.java @@ -28,13 +28,6 @@ package mage.cards.e; -import java.util.UUID; - -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -45,12 +38,14 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.TargetController; +import mage.constants.*; import mage.filter.common.FilterEnchantmentPermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EtherealChampion.java b/Mage.Sets/src/mage/cards/e/EtherealChampion.java index 592865f1a5a..11676d98a63 100644 --- a/Mage.Sets/src/mage/cards/e/EtherealChampion.java +++ b/Mage.Sets/src/mage/cards/e/EtherealChampion.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.PayLifeCost; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/e/EtherealGuidance.java b/Mage.Sets/src/mage/cards/e/EtherealGuidance.java index 0c395d1abbf..5705c174ef6 100644 --- a/Mage.Sets/src/mage/cards/e/EtherealGuidance.java +++ b/Mage.Sets/src/mage/cards/e/EtherealGuidance.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EtherealHaze.java b/Mage.Sets/src/mage/cards/e/EtherealHaze.java index cb6c1761ac3..d98ec25ca27 100644 --- a/Mage.Sets/src/mage/cards/e/EtherealHaze.java +++ b/Mage.Sets/src/mage/cards/e/EtherealHaze.java @@ -28,14 +28,15 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/e/EtherealUsher.java b/Mage.Sets/src/mage/cards/e/EtherealUsher.java index a7ab9565e0e..8f4fbac06a8 100644 --- a/Mage.Sets/src/mage/cards/e/EtherealUsher.java +++ b/Mage.Sets/src/mage/cards/e/EtherealUsher.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,8 +36,12 @@ import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; import mage.abilities.keyword.TransmuteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/e/EtherealWhiskergill.java b/Mage.Sets/src/mage/cards/e/EtherealWhiskergill.java index 618efa5ebe6..fdbe8508c89 100644 --- a/Mage.Sets/src/mage/cards/e/EtherealWhiskergill.java +++ b/Mage.Sets/src/mage/cards/e/EtherealWhiskergill.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantAttackUnlessDefenderControllsPermanent; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EtheriumAbomination.java b/Mage.Sets/src/mage/cards/e/EtheriumAbomination.java index 830c4d15b02..cb010e96569 100644 --- a/Mage.Sets/src/mage/cards/e/EtheriumAbomination.java +++ b/Mage.Sets/src/mage/cards/e/EtheriumAbomination.java @@ -28,14 +28,14 @@ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.UnearthAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/EtheriumAstrolabe.java b/Mage.Sets/src/mage/cards/e/EtheriumAstrolabe.java index ff003e62db9..39546d96c44 100644 --- a/Mage.Sets/src/mage/cards/e/EtheriumAstrolabe.java +++ b/Mage.Sets/src/mage/cards/e/EtheriumAstrolabe.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -39,11 +36,14 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EtheriumHornSorcerer.java b/Mage.Sets/src/mage/cards/e/EtheriumHornSorcerer.java index 96f10e45d76..07b45e9ebd4 100644 --- a/Mage.Sets/src/mage/cards/e/EtheriumHornSorcerer.java +++ b/Mage.Sets/src/mage/cards/e/EtheriumHornSorcerer.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +34,10 @@ import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.abilities.keyword.CascadeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/EtheriumSculptor.java b/Mage.Sets/src/mage/cards/e/EtheriumSculptor.java index 09d88814e44..73018b575f3 100644 --- a/Mage.Sets/src/mage/cards/e/EtheriumSculptor.java +++ b/Mage.Sets/src/mage/cards/e/EtheriumSculptor.java @@ -27,17 +27,18 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/EtherswornAdjudicator.java b/Mage.Sets/src/mage/cards/e/EtherswornAdjudicator.java index de06b3923d0..bf83f587d7e 100644 --- a/Mage.Sets/src/mage/cards/e/EtherswornAdjudicator.java +++ b/Mage.Sets/src/mage/cards/e/EtherswornAdjudicator.java @@ -28,9 +28,6 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,12 +38,16 @@ import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EtherswornCanonist.java b/Mage.Sets/src/mage/cards/e/EtherswornCanonist.java index 0e51e7d765d..b382fe7608e 100644 --- a/Mage.Sets/src/mage/cards/e/EtherswornCanonist.java +++ b/Mage.Sets/src/mage/cards/e/EtherswornCanonist.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -38,16 +35,16 @@ import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.stack.Spell; import mage.watchers.Watcher; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EtherswornShieldmage.java b/Mage.Sets/src/mage/cards/e/EtherswornShieldmage.java index 4e7a0fab876..83e561e2f6f 100644 --- a/Mage.Sets/src/mage/cards/e/EtherswornShieldmage.java +++ b/Mage.Sets/src/mage/cards/e/EtherswornShieldmage.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.PreventAllDamageToAllEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/EtherwroughtPage.java b/Mage.Sets/src/mage/cards/e/EtherwroughtPage.java index 89e97b4a084..4fcddef07b1 100644 --- a/Mage.Sets/src/mage/cards/e/EtherwroughtPage.java +++ b/Mage.Sets/src/mage/cards/e/EtherwroughtPage.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/Eureka.java b/Mage.Sets/src/mage/cards/e/Eureka.java index 1eff8b4cc44..e3f986c79f9 100644 --- a/Mage.Sets/src/mage/cards/e/Eureka.java +++ b/Mage.Sets/src/mage/cards/e/Eureka.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -43,6 +42,8 @@ import mage.players.PlayerList; import mage.target.Target; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Evacuation.java b/Mage.Sets/src/mage/cards/e/Evacuation.java index b6eed7398d2..aa105b72223 100644 --- a/Mage.Sets/src/mage/cards/e/Evacuation.java +++ b/Mage.Sets/src/mage/cards/e/Evacuation.java @@ -27,14 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; - import mage.abilities.effects.common.ReturnToHandFromBattlefieldAllEffect; -import mage.constants.CardType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EvanescentIntellect.java b/Mage.Sets/src/mage/cards/e/EvanescentIntellect.java index 16b9a442b2d..0e7865d8a9d 100644 --- a/Mage.Sets/src/mage/cards/e/EvanescentIntellect.java +++ b/Mage.Sets/src/mage/cards/e/EvanescentIntellect.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,15 +38,13 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EvangelOfHeliod.java b/Mage.Sets/src/mage/cards/e/EvangelOfHeliod.java index 792863e31d2..a8dfb0c0144 100644 --- a/Mage.Sets/src/mage/cards/e/EvangelOfHeliod.java +++ b/Mage.Sets/src/mage/cards/e/EvangelOfHeliod.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.dynamicvalue.common.DevotionCount; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.game.permanent.token.SoldierToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Evangelize.java b/Mage.Sets/src/mage/cards/e/Evangelize.java index 74ad62887d9..e2f5a795acc 100644 --- a/Mage.Sets/src/mage/cards/e/Evangelize.java +++ b/Mage.Sets/src/mage/cards/e/Evangelize.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.abilities.keyword.BuybackAbility; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.constants.Duration; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetOpponentsChoicePermanent; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/e/Evaporate.java b/Mage.Sets/src/mage/cards/e/Evaporate.java index d4550efe57f..d61bfeb2be2 100644 --- a/Mage.Sets/src/mage/cards/e/Evaporate.java +++ b/Mage.Sets/src/mage/cards/e/Evaporate.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.DamageAllEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EvasiveAction.java b/Mage.Sets/src/mage/cards/e/EvasiveAction.java index f271c86d6d0..4f6ea54a71b 100644 --- a/Mage.Sets/src/mage/cards/e/EvasiveAction.java +++ b/Mage.Sets/src/mage/cards/e/EvasiveAction.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.dynamicvalue.common.DomainValue; import mage.abilities.effects.common.CounterUnlessPaysEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author FenrisulfrX diff --git a/Mage.Sets/src/mage/cards/e/EverAfter.java b/Mage.Sets/src/mage/cards/e/EverAfter.java index 6e47955a8e1..26fd62127c0 100644 --- a/Mage.Sets/src/mage/cards/e/EverAfter.java +++ b/Mage.Sets/src/mage/cards/e/EverAfter.java @@ -27,24 +27,23 @@ */ package mage.cards.e; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffectImpl; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.effects.common.ReturnToLibrarySpellEffect; +import mage.abilities.effects.common.continuous.BecomesBlackZombieAdditionEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.target.common.TargetCardInYourGraveyard; +import java.util.List; +import java.util.UUID; + /** * * @author fireshoes @@ -58,7 +57,9 @@ public class EverAfter extends CardImpl { // to its other colors and types. Put Ever After on the bottom of its owner's library. this.getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect()); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 2, new FilterCreatureCard("creature cards from your graveyard"))); - this.getSpellAbility().addEffect(new EverAfterEffect()); + Effect effect = new BecomesBlackZombieAdditionEffect(); + effect.setText("Each of those creatures is a black Zombie in addition to its other colors and types"); + this.getSpellAbility().addEffect(effect); this.getSpellAbility().addEffect(new ReturnToLibrarySpellEffect(false)); } @@ -71,56 +72,3 @@ public class EverAfter extends CardImpl { return new EverAfter(this); } } - -class EverAfterEffect extends ContinuousEffectImpl { - - public EverAfterEffect() { - super(Duration.Custom, Outcome.Neutral); - staticText = "Each of those creatures is a black Zombie in addition to its other colors and types"; - } - - public EverAfterEffect(final EverAfterEffect effect) { - super(effect); - } - - @Override - public EverAfterEffect copy() { - return new EverAfterEffect(this); - } - - @Override - public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { - List targets = source.getTargets().get(0).getTargets(); - for (UUID targetId : targets) { - Card card = game.getCard(targetId); - if (card != null) { - switch (layer) { - case TypeChangingEffects_4: - if (sublayer == SubLayer.NA) { - card.getSubtype(game).add("Zombie"); - } - break; - case ColorChangingEffects_5: - if (sublayer == SubLayer.NA) { - card.getColor(game).setBlack(true); - } - break; - } - } else { - this.used = true; - } - } - return false; - } - - @Override - public boolean apply(Game game, Ability source) { - return false; - } - - @Override - public boolean hasLayer(Layer layer) { - return layer == Layer.ColorChangingEffects_5 || layer == Layer.TypeChangingEffects_4; - } - -} diff --git a/Mage.Sets/src/mage/cards/e/EverbarkShaman.java b/Mage.Sets/src/mage/cards/e/EverbarkShaman.java index 1fb518b3136..f13e85f2e4d 100644 --- a/Mage.Sets/src/mage/cards/e/EverbarkShaman.java +++ b/Mage.Sets/src/mage/cards/e/EverbarkShaman.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +35,7 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.FilterCard; @@ -45,6 +43,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EverflameEidolon.java b/Mage.Sets/src/mage/cards/e/EverflameEidolon.java index ff3783bb656..63e4ec403ec 100644 --- a/Mage.Sets/src/mage/cards/e/EverflameEidolon.java +++ b/Mage.Sets/src/mage/cards/e/EverflameEidolon.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/e/EverflowingChalice.java b/Mage.Sets/src/mage/cards/e/EverflowingChalice.java index 50b1686ab9b..5ea74c7386d 100644 --- a/Mage.Sets/src/mage/cards/e/EverflowingChalice.java +++ b/Mage.Sets/src/mage/cards/e/EverflowingChalice.java @@ -28,8 +28,6 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.Mana; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.dynamicvalue.common.CountersSourceCount; @@ -39,8 +37,11 @@ import mage.abilities.keyword.MultikickerAbility; import mage.abilities.mana.DynamicManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** diff --git a/Mage.Sets/src/mage/cards/e/Everglades.java b/Mage.Sets/src/mage/cards/e/Everglades.java index cfe8244c2aa..229d740d689 100644 --- a/Mage.Sets/src/mage/cards/e/Everglades.java +++ b/Mage.Sets/src/mage/cards/e/Everglades.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.Mana; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EvergloveCourier.java b/Mage.Sets/src/mage/cards/e/EvergloveCourier.java index b7fb7a09815..e9b82a00d4d 100644 --- a/Mage.Sets/src/mage/cards/e/EvergloveCourier.java +++ b/Mage.Sets/src/mage/cards/e/EvergloveCourier.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/EverlastingTorment.java b/Mage.Sets/src/mage/cards/e/EverlastingTorment.java index 322dffbe1a9..257c8402388 100644 --- a/Mage.Sets/src/mage/cards/e/EverlastingTorment.java +++ b/Mage.Sets/src/mage/cards/e/EverlastingTorment.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; @@ -46,6 +45,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/Evermind.java b/Mage.Sets/src/mage/cards/e/Evermind.java index 3db9e4015bf..cc7f2b073c4 100644 --- a/Mage.Sets/src/mage/cards/e/Evermind.java +++ b/Mage.Sets/src/mage/cards/e/Evermind.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EvernightShade.java b/Mage.Sets/src/mage/cards/e/EvernightShade.java index aecc2f0ba15..2a3e464b391 100644 --- a/Mage.Sets/src/mage/cards/e/EvernightShade.java +++ b/Mage.Sets/src/mage/cards/e/EvernightShade.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -35,6 +34,7 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.UndyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; diff --git a/Mage.Sets/src/mage/cards/e/Evershrike.java b/Mage.Sets/src/mage/cards/e/Evershrike.java index 7ad4b32d736..37db61cb5fc 100644 --- a/Mage.Sets/src/mage/cards/e/Evershrike.java +++ b/Mage.Sets/src/mage/cards/e/Evershrike.java @@ -27,9 +27,9 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -44,7 +44,6 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -55,15 +54,15 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** - * * @author jeffwadsworth - * */ public class Evershrike extends CardImpl { public Evershrike(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W/B}{W/B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W/B}{W/B}"); this.subtype.add("Elemental"); this.subtype.add("Spirit"); @@ -119,7 +118,7 @@ class EvershrikeEffect extends OneShotEffect { filterAuraCard.add(new CardTypePredicate(CardType.ENCHANTMENT)); filterAuraCard.add(new SubtypePredicate("Aura")); filterAuraCard.add(new AuraCardCanAttachToPermanentId(evershrikePermanent.getId())); - filterAuraCard.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, xAmount)); + filterAuraCard.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, xAmount)); int count = controller.getHand().count(filterAuraCard, game); while (controller.canRespond() && count > 0 && controller.chooseUse(Outcome.Benefit, "Do you wish to put an Aura card from your hand onto Evershrike", source, game)) { TargetCard targetAura = new TargetCard(Zone.HAND, filterAuraCard); diff --git a/Mage.Sets/src/mage/cards/e/EvilEyeOfOrmsByGore.java b/Mage.Sets/src/mage/cards/e/EvilEyeOfOrmsByGore.java index 23f0672c13f..42725c22764 100644 --- a/Mage.Sets/src/mage/cards/e/EvilEyeOfOrmsByGore.java +++ b/Mage.Sets/src/mage/cards/e/EvilEyeOfOrmsByGore.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/e/EvilEyeOfUrborg.java b/Mage.Sets/src/mage/cards/e/EvilEyeOfUrborg.java index 178b7788b2b..6a5b5d31e86 100644 --- a/Mage.Sets/src/mage/cards/e/EvilEyeOfUrborg.java +++ b/Mage.Sets/src/mage/cards/e/EvilEyeOfUrborg.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesBlockedByCreatureTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EvilPresence.java b/Mage.Sets/src/mage/cards/e/EvilPresence.java index a300f438aff..b37a3370101 100644 --- a/Mage.Sets/src/mage/cards/e/EvilPresence.java +++ b/Mage.Sets/src/mage/cards/e/EvilPresence.java @@ -27,19 +27,20 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.continuous.BecomesBasicLandEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/EvilTwin.java b/Mage.Sets/src/mage/cards/e/EvilTwin.java index 7e9508873ae..22bbcd574a9 100644 --- a/Mage.Sets/src/mage/cards/e/EvilTwin.java +++ b/Mage.Sets/src/mage/cards/e/EvilTwin.java @@ -57,7 +57,7 @@ import mage.util.functions.ApplyToPermanent; public class EvilTwin extends CardImpl { public EvilTwin(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}{B}"); this.subtype.add("Shapeshifter"); this.power = new MageInt(0); @@ -89,7 +89,7 @@ class EvilTwinApplyToPermanent extends ApplyToPermanent { } @Override - public boolean apply(Game game, Permanent permanent) { + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{U}{B}")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent(filter)); @@ -98,7 +98,7 @@ class EvilTwinApplyToPermanent extends ApplyToPermanent { } @Override - public boolean apply(Game game, MageObject mageObject) { + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{U}{B}")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent(filter)); diff --git a/Mage.Sets/src/mage/cards/e/EvincarsJustice.java b/Mage.Sets/src/mage/cards/e/EvincarsJustice.java index 8074f7cf7b9..c8caaed0000 100644 --- a/Mage.Sets/src/mage/cards/e/EvincarsJustice.java +++ b/Mage.Sets/src/mage/cards/e/EvincarsJustice.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.DamageEverythingEffect; import mage.abilities.keyword.BuybackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/Eviscerator.java b/Mage.Sets/src/mage/cards/e/Eviscerator.java index ed0b86733f6..c6344a1d8ea 100644 --- a/Mage.Sets/src/mage/cards/e/Eviscerator.java +++ b/Mage.Sets/src/mage/cards/e/Eviscerator.java @@ -27,8 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -36,6 +34,9 @@ import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/EvolutionCharm.java b/Mage.Sets/src/mage/cards/e/EvolutionCharm.java index 9f825e71cbf..d1017cdc413 100644 --- a/Mage.Sets/src/mage/cards/e/EvolutionCharm.java +++ b/Mage.Sets/src/mage/cards/e/EvolutionCharm.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -43,6 +42,8 @@ import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EvolutionVat.java b/Mage.Sets/src/mage/cards/e/EvolutionVat.java index b865855e423..18efbf2da87 100644 --- a/Mage.Sets/src/mage/cards/e/EvolutionVat.java +++ b/Mage.Sets/src/mage/cards/e/EvolutionVat.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -46,6 +45,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/EvolutionaryEscalation.java b/Mage.Sets/src/mage/cards/e/EvolutionaryEscalation.java index d20c9560633..324d6ee0f99 100644 --- a/Mage.Sets/src/mage/cards/e/EvolutionaryEscalation.java +++ b/Mage.Sets/src/mage/cards/e/EvolutionaryEscalation.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -46,6 +45,8 @@ import mage.target.Target; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/e/EvolutionaryLeap.java b/Mage.Sets/src/mage/cards/e/EvolutionaryLeap.java index 47cdd018f97..52f2a951ca6 100644 --- a/Mage.Sets/src/mage/cards/e/EvolutionaryLeap.java +++ b/Mage.Sets/src/mage/cards/e/EvolutionaryLeap.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -41,6 +40,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EvolvingWilds.java b/Mage.Sets/src/mage/cards/e/EvolvingWilds.java index c729ad3533a..de549700b3d 100644 --- a/Mage.Sets/src/mage/cards/e/EvolvingWilds.java +++ b/Mage.Sets/src/mage/cards/e/EvolvingWilds.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.ActivatedAbilityImpl; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.TapSourceCost; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/e/EwokAmbush.java b/Mage.Sets/src/mage/cards/e/EwokAmbush.java index 4834f143b78..55e94ae3a43 100644 --- a/Mage.Sets/src/mage/cards/e/EwokAmbush.java +++ b/Mage.Sets/src/mage/cards/e/EwokAmbush.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -45,6 +44,8 @@ import mage.game.permanent.token.EwokToken; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/e/EwokFiredancers.java b/Mage.Sets/src/mage/cards/e/EwokFiredancers.java index e930c67b1d7..51956c6da5a 100644 --- a/Mage.Sets/src/mage/cards/e/EwokFiredancers.java +++ b/Mage.Sets/src/mage/cards/e/EwokFiredancers.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/e/EwokVillage.java b/Mage.Sets/src/mage/cards/e/EwokVillage.java index 9b2c54729f3..feb9b61aff4 100644 --- a/Mage.Sets/src/mage/cards/e/EwokVillage.java +++ b/Mage.Sets/src/mage/cards/e/EwokVillage.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.Mana; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/e/ExaltedAngel.java b/Mage.Sets/src/mage/cards/e/ExaltedAngel.java index dba3fb7a9ab..47fc7f0c317 100644 --- a/Mage.Sets/src/mage/cards/e/ExaltedAngel.java +++ b/Mage.Sets/src/mage/cards/e/ExaltedAngel.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsDamageGainLifeSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/ExaltedDragon.java b/Mage.Sets/src/mage/cards/e/ExaltedDragon.java index d0029ddaad9..061c83ebb32 100644 --- a/Mage.Sets/src/mage/cards/e/ExaltedDragon.java +++ b/Mage.Sets/src/mage/cards/e/ExaltedDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/ExavaRakdosBloodWitch.java b/Mage.Sets/src/mage/cards/e/ExavaRakdosBloodWitch.java index 7fd1e7cb37b..9cb8fedfcc3 100644 --- a/Mage.Sets/src/mage/cards/e/ExavaRakdosBloodWitch.java +++ b/Mage.Sets/src/mage/cards/e/ExavaRakdosBloodWitch.java @@ -27,11 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -40,7 +35,7 @@ import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.UnleashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.TargetController; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -48,6 +43,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.CounterPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -65,7 +62,7 @@ public class ExavaRakdosBloodWitch extends CardImpl { static final String rule = "Each other creature you control with a +1/+1 counter on it has haste"; public ExavaRakdosBloodWitch(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); diff --git a/Mage.Sets/src/mage/cards/e/Excavation.java b/Mage.Sets/src/mage/cards/e/Excavation.java index 64548bb255a..0407a4e2453 100644 --- a/Mage.Sets/src/mage/cards/e/Excavation.java +++ b/Mage.Sets/src/mage/cards/e/Excavation.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.ActivatedAbilityImpl; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/Excavator.java b/Mage.Sets/src/mage/cards/e/Excavator.java index 818f42ebc6c..1ebe3370173 100644 --- a/Mage.Sets/src/mage/cards/e/Excavator.java +++ b/Mage.Sets/src/mage/cards/e/Excavator.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Abilities; import mage.abilities.AbilitiesImpl; import mage.abilities.Ability; @@ -37,19 +36,10 @@ import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.continuous.SourceEffect; -import mage.abilities.keyword.ForestwalkAbility; -import mage.abilities.keyword.IslandwalkAbility; -import mage.abilities.keyword.MountainwalkAbility; -import mage.abilities.keyword.PlainswalkAbility; -import mage.abilities.keyword.SwampwalkAbility; +import mage.abilities.keyword.*; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.game.Game; @@ -57,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman @@ -66,7 +58,7 @@ public class Excavator extends CardImpl { private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("basic land"); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public Excavator(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/e/Exclude.java b/Mage.Sets/src/mage/cards/e/Exclude.java index 67fc3dd8ec8..ef6b610d070 100644 --- a/Mage.Sets/src/mage/cards/e/Exclude.java +++ b/Mage.Sets/src/mage/cards/e/Exclude.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreatureSpell; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/ExclusionRitual.java b/Mage.Sets/src/mage/cards/e/ExclusionRitual.java index ba5b6c58346..78ebf829ee4 100644 --- a/Mage.Sets/src/mage/cards/e/ExclusionRitual.java +++ b/Mage.Sets/src/mage/cards/e/ExclusionRitual.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -36,7 +35,10 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -46,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/e/Excommunicate.java b/Mage.Sets/src/mage/cards/e/Excommunicate.java index 161d7cf9aaa..5edd202f4d1 100644 --- a/Mage.Sets/src/mage/cards/e/Excommunicate.java +++ b/Mage.Sets/src/mage/cards/e/Excommunicate.java @@ -28,13 +28,14 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/e/Excoriate.java b/Mage.Sets/src/mage/cards/e/Excoriate.java index 18fca88b2eb..ef128eb18e5 100644 --- a/Mage.Sets/src/mage/cards/e/Excoriate.java +++ b/Mage.Sets/src/mage/cards/e/Excoriate.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Execute.java b/Mage.Sets/src/mage/cards/e/Execute.java index 946c1385346..3d911ef78d2 100644 --- a/Mage.Sets/src/mage/cards/e/Execute.java +++ b/Mage.Sets/src/mage/cards/e/Execute.java @@ -27,17 +27,18 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ExecutionersCapsule.java b/Mage.Sets/src/mage/cards/e/ExecutionersCapsule.java index 5c9aa9de8a9..59c92ad19c6 100644 --- a/Mage.Sets/src/mage/cards/e/ExecutionersCapsule.java +++ b/Mage.Sets/src/mage/cards/e/ExecutionersCapsule.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -38,11 +35,15 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/ExecutionersHood.java b/Mage.Sets/src/mage/cards/e/ExecutionersHood.java index 5702875a918..dfd60957fa9 100644 --- a/Mage.Sets/src/mage/cards/e/ExecutionersHood.java +++ b/Mage.Sets/src/mage/cards/e/ExecutionersHood.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; @@ -37,6 +34,12 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.IntimidateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/ExemplarOfStrength.java b/Mage.Sets/src/mage/cards/e/ExemplarOfStrength.java new file mode 100644 index 00000000000..2b151896775 --- /dev/null +++ b/Mage.Sets/src/mage/cards/e/ExemplarOfStrength.java @@ -0,0 +1,76 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.e; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.common.RemoveCountersSourceCost; +import mage.abilities.effects.common.DoIfCostPaid; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.counters.CounterType; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class ExemplarOfStrength extends CardImpl { + + public ExemplarOfStrength(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}"); + + this.subtype.add("Human"); + this.subtype.add("Warrior"); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // When Exemplar of Strength enters the battlefield, put three -1/-1 counters on target creature you control. + Ability ability = new EntersBattlefieldTriggeredAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance(3))); + ability.addTarget(new TargetControlledCreaturePermanent()); + this.addAbility(ability); + + // Whenever Exemplar of Strength attacks, remove a -1/-1 counter from it. If you do, you gain 1 life. + this.addAbility(new AttacksTriggeredAbility(new DoIfCostPaid(new GainLifeEffect(1), new RemoveCountersSourceCost(CounterType.M1M1.createInstance())), false)); + } + + public ExemplarOfStrength(final ExemplarOfStrength card) { + super(card); + } + + @Override + public ExemplarOfStrength copy() { + return new ExemplarOfStrength(this); + } +} diff --git a/Mage.Sets/src/mage/cards/e/ExertInfluence.java b/Mage.Sets/src/mage/cards/e/ExertInfluence.java index 7ce80344625..21813390f71 100644 --- a/Mage.Sets/src/mage/cards/e/ExertInfluence.java +++ b/Mage.Sets/src/mage/cards/e/ExertInfluence.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.dynamicvalue.common.ColorsOfManaSpentToCastCount; @@ -44,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Exhaustion.java b/Mage.Sets/src/mage/cards/e/Exhaustion.java index b28930afe66..99e55f8677f 100644 --- a/Mage.Sets/src/mage/cards/e/Exhaustion.java +++ b/Mage.Sets/src/mage/cards/e/Exhaustion.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -44,6 +43,8 @@ import mage.players.Player; import mage.target.common.TargetOpponent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/e/Exhume.java b/Mage.Sets/src/mage/cards/e/Exhume.java index 678d17dddcb..29541c810e9 100644 --- a/Mage.Sets/src/mage/cards/e/Exhume.java +++ b/Mage.Sets/src/mage/cards/e/Exhume.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ExhumerThrull.java b/Mage.Sets/src/mage/cards/e/ExhumerThrull.java index 2f0a23a25e4..67e8c10fe4b 100644 --- a/Mage.Sets/src/mage/cards/e/ExhumerThrull.java +++ b/Mage.Sets/src/mage/cards/e/ExhumerThrull.java @@ -27,17 +27,18 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.HauntAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Exile.java b/Mage.Sets/src/mage/cards/e/Exile.java index 1c6a4a72c06..bcfb17d3709 100644 --- a/Mage.Sets/src/mage/cards/e/Exile.java +++ b/Mage.Sets/src/mage/cards/e/Exile.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/e/ExileIntoDarkness.java b/Mage.Sets/src/mage/cards/e/ExileIntoDarkness.java index bda58c84b60..45199bf1370 100644 --- a/Mage.Sets/src/mage/cards/e/ExileIntoDarkness.java +++ b/Mage.Sets/src/mage/cards/e/ExileIntoDarkness.java @@ -27,8 +27,8 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.MoreCardsInHandThanOpponentsCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -39,11 +39,12 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +54,7 @@ public class ExileIntoDarkness extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with converted mana cost 3 or less"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public ExileIntoDarkness(UUID ownerId, CardSetInfo setInfo) { @@ -70,7 +71,7 @@ public class ExileIntoDarkness extends CardImpl { new BeginningOfUpkeepTriggeredAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToHandEffect(), TargetController.YOU, true), - new MoreCardsInHandThanOpponentsCondition(), + MoreCardsInHandThanOpponentsCondition.instance, "At the beginning of your upkeep, if you have more cards in hand than each opponent, you may return {this} from your graveyard to your hand."); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/e/ExiledBoggart.java b/Mage.Sets/src/mage/cards/e/ExiledBoggart.java index 1f8d6705615..0cad849ad56 100644 --- a/Mage.Sets/src/mage/cards/e/ExiledBoggart.java +++ b/Mage.Sets/src/mage/cards/e/ExiledBoggart.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.discard.DiscardControllerEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Wehk diff --git a/Mage.Sets/src/mage/cards/e/Exogorth.java b/Mage.Sets/src/mage/cards/e/Exogorth.java index e03effdb47b..7bd320408c8 100644 --- a/Mage.Sets/src/mage/cards/e/Exogorth.java +++ b/Mage.Sets/src/mage/cards/e/Exogorth.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/e/Exorcist.java b/Mage.Sets/src/mage/cards/e/Exorcist.java index 0d4e38424e9..d7c9180eb4b 100644 --- a/Mage.Sets/src/mage/cards/e/Exorcist.java +++ b/Mage.Sets/src/mage/cards/e/Exorcist.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -43,6 +42,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/e/ExoskeletalArmor.java b/Mage.Sets/src/mage/cards/e/ExoskeletalArmor.java index 2b1032f5adb..3f743e36e5e 100644 --- a/Mage.Sets/src/mage/cards/e/ExoskeletalArmor.java +++ b/Mage.Sets/src/mage/cards/e/ExoskeletalArmor.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.CardsInAllGraveyardsCount; @@ -45,6 +44,8 @@ import mage.filter.common.FilterCreatureCard; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/ExoticCurse.java b/Mage.Sets/src/mage/cards/e/ExoticCurse.java index 542e03dc67d..83005d3b3b4 100644 --- a/Mage.Sets/src/mage/cards/e/ExoticCurse.java +++ b/Mage.Sets/src/mage/cards/e/ExoticCurse.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.DomainValue; @@ -43,6 +42,8 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author FenrisulfrX diff --git a/Mage.Sets/src/mage/cards/e/ExoticDisease.java b/Mage.Sets/src/mage/cards/e/ExoticDisease.java index 9831ff5fc28..2691ef23fc4 100644 --- a/Mage.Sets/src/mage/cards/e/ExoticDisease.java +++ b/Mage.Sets/src/mage/cards/e/ExoticDisease.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.dynamicvalue.common.DomainValue; import mage.abilities.effects.Effect; import mage.abilities.effects.common.GainLifeEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/ExoticOrchard.java b/Mage.Sets/src/mage/cards/e/ExoticOrchard.java index cb42745e190..b9c62ee97be 100644 --- a/Mage.Sets/src/mage/cards/e/ExoticOrchard.java +++ b/Mage.Sets/src/mage/cards/e/ExoticOrchard.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.mana.AnyColorLandsProduceManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Expedite.java b/Mage.Sets/src/mage/cards/e/Expedite.java index b86123ea5da..7c5dfcc3da3 100644 --- a/Mage.Sets/src/mage/cards/e/Expedite.java +++ b/Mage.Sets/src/mage/cards/e/Expedite.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.HasteAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/ExpeditionEnvoy.java b/Mage.Sets/src/mage/cards/e/ExpeditionEnvoy.java index 3528bb86df8..d2c98b2e920 100644 --- a/Mage.Sets/src/mage/cards/e/ExpeditionEnvoy.java +++ b/Mage.Sets/src/mage/cards/e/ExpeditionEnvoy.java @@ -27,12 +27,13 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/ExpeditionMap.java b/Mage.Sets/src/mage/cards/e/ExpeditionMap.java index 2b853b68779..32bd908dea8 100644 --- a/Mage.Sets/src/mage/cards/e/ExpeditionMap.java +++ b/Mage.Sets/src/mage/cards/e/ExpeditionMap.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.TapSourceCost; @@ -37,9 +34,13 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/ExpeditionRaptor.java b/Mage.Sets/src/mage/cards/e/ExpeditionRaptor.java index 57815ca96da..a7207ba15fe 100644 --- a/Mage.Sets/src/mage/cards/e/ExpeditionRaptor.java +++ b/Mage.Sets/src/mage/cards/e/ExpeditionRaptor.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.SupportAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/ExpendableTroops.java b/Mage.Sets/src/mage/cards/e/ExpendableTroops.java index 4f089cda877..a54b6f565f6 100644 --- a/Mage.Sets/src/mage/cards/e/ExpendableTroops.java +++ b/Mage.Sets/src/mage/cards/e/ExpendableTroops.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,10 +35,13 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterAttackingOrBlockingCreature; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ExperimentKraj.java b/Mage.Sets/src/mage/cards/e/ExperimentKraj.java index 812470fa774..1e9bdcc6502 100644 --- a/Mage.Sets/src/mage/cards/e/ExperimentKraj.java +++ b/Mage.Sets/src/mage/cards/e/ExperimentKraj.java @@ -27,13 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.ActivatedAbility; @@ -44,6 +37,7 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; @@ -52,6 +46,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +56,7 @@ public class ExperimentKraj extends CardImpl { public ExperimentKraj(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Ooze"); this.subtype.add("Mutant"); diff --git a/Mage.Sets/src/mage/cards/e/ExperimentOne.java b/Mage.Sets/src/mage/cards/e/ExperimentOne.java index 97a8052eed8..2a77c9ee671 100644 --- a/Mage.Sets/src/mage/cards/e/ExperimentOne.java +++ b/Mage.Sets/src/mage/cards/e/ExperimentOne.java @@ -28,9 +28,6 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; @@ -38,9 +35,12 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.keyword.EvolveAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/ExperimentalAviator.java b/Mage.Sets/src/mage/cards/e/ExperimentalAviator.java index 8efd48544bf..c87f4d28d32 100644 --- a/Mage.Sets/src/mage/cards/e/ExperimentalAviator.java +++ b/Mage.Sets/src/mage/cards/e/ExperimentalAviator.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.ThopterColorlessToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/ExplodingBorders.java b/Mage.Sets/src/mage/cards/e/ExplodingBorders.java index 95413437f7f..6453e2b0c52 100644 --- a/Mage.Sets/src/mage/cards/e/ExplodingBorders.java +++ b/Mage.Sets/src/mage/cards/e/ExplodingBorders.java @@ -27,17 +27,18 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.DomainValue; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterBasicLandCard; import mage.target.TargetPlayer; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/Exploration.java b/Mage.Sets/src/mage/cards/e/Exploration.java index 024109007fd..2cad0c507f2 100644 --- a/Mage.Sets/src/mage/cards/e/Exploration.java +++ b/Mage.Sets/src/mage/cards/e/Exploration.java @@ -27,14 +27,15 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.PlayAdditionalLandsControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/Explore.java b/Mage.Sets/src/mage/cards/e/Explore.java index 2400a95ee60..8c6e8639c57 100644 --- a/Mage.Sets/src/mage/cards/e/Explore.java +++ b/Mage.Sets/src/mage/cards/e/Explore.java @@ -28,14 +28,14 @@ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.PlayAdditionalLandsControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/ExplorersScope.java b/Mage.Sets/src/mage/cards/e/ExplorersScope.java index 58c79d9f4c6..1c492cd64a7 100644 --- a/Mage.Sets/src/mage/cards/e/ExplorersScope.java +++ b/Mage.Sets/src/mage/cards/e/ExplorersScope.java @@ -27,24 +27,21 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.AttacksAttachedTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.EquipAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/ExplosiveApparatus.java b/Mage.Sets/src/mage/cards/e/ExplosiveApparatus.java index dfe7e31cbc6..0913ae75e17 100644 --- a/Mage.Sets/src/mage/cards/e/ExplosiveApparatus.java +++ b/Mage.Sets/src/mage/cards/e/ExplosiveApparatus.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/ExplosiveGrowth.java b/Mage.Sets/src/mage/cards/e/ExplosiveGrowth.java index 747905ea166..a69e93407c5 100644 --- a/Mage.Sets/src/mage/cards/e/ExplosiveGrowth.java +++ b/Mage.Sets/src/mage/cards/e/ExplosiveGrowth.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalContinuousEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author michael.napoleon@gmail.com diff --git a/Mage.Sets/src/mage/cards/e/ExplosiveImpact.java b/Mage.Sets/src/mage/cards/e/ExplosiveImpact.java index 806c7e4e0ec..93a42f7bdfe 100644 --- a/Mage.Sets/src/mage/cards/e/ExplosiveImpact.java +++ b/Mage.Sets/src/mage/cards/e/ExplosiveImpact.java @@ -28,13 +28,14 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/ExplosiveRevelation.java b/Mage.Sets/src/mage/cards/e/ExplosiveRevelation.java index 3bbb3fceae9..f91d9378f84 100644 --- a/Mage.Sets/src/mage/cards/e/ExplosiveRevelation.java +++ b/Mage.Sets/src/mage/cards/e/ExplosiveRevelation.java @@ -27,15 +27,13 @@ */ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.CardsImpl; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; @@ -44,6 +42,8 @@ import mage.players.Library; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/ExplosiveVegetation.java b/Mage.Sets/src/mage/cards/e/ExplosiveVegetation.java index 96d9fcb4807..34bf4ee97f7 100644 --- a/Mage.Sets/src/mage/cards/e/ExplosiveVegetation.java +++ b/Mage.Sets/src/mage/cards/e/ExplosiveVegetation.java @@ -27,14 +27,15 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/ExposeEvil.java b/Mage.Sets/src/mage/cards/e/ExposeEvil.java index 4f91e406953..76f5be6edbf 100644 --- a/Mage.Sets/src/mage/cards/e/ExposeEvil.java +++ b/Mage.Sets/src/mage/cards/e/ExposeEvil.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.effects.keyword.InvestigateEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/Expunge.java b/Mage.Sets/src/mage/cards/e/Expunge.java index 5952d8e7274..70bc63588e7 100644 --- a/Mage.Sets/src/mage/cards/e/Expunge.java +++ b/Mage.Sets/src/mage/cards/e/Expunge.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; @@ -41,6 +40,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/e/ExquisiteArchangel.java b/Mage.Sets/src/mage/cards/e/ExquisiteArchangel.java index 1316ae4d069..3c99ef208b8 100644 --- a/Mage.Sets/src/mage/cards/e/ExquisiteArchangel.java +++ b/Mage.Sets/src/mage/cards/e/ExquisiteArchangel.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/e/ExquisiteBlood.java b/Mage.Sets/src/mage/cards/e/ExquisiteBlood.java index 0b730f72d35..8ded2c85115 100644 --- a/Mage.Sets/src/mage/cards/e/ExquisiteBlood.java +++ b/Mage.Sets/src/mage/cards/e/ExquisiteBlood.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/e/ExquisiteFirecraft.java b/Mage.Sets/src/mage/cards/e/ExquisiteFirecraft.java index 4bff2b57bbb..14b6e849488 100644 --- a/Mage.Sets/src/mage/cards/e/ExquisiteFirecraft.java +++ b/Mage.Sets/src/mage/cards/e/ExquisiteFirecraft.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.SpellMasteryCondition; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/Exsanguinate.java b/Mage.Sets/src/mage/cards/e/Exsanguinate.java index 0e46a912109..13e98616ef0 100644 --- a/Mage.Sets/src/mage/cards/e/Exsanguinate.java +++ b/Mage.Sets/src/mage/cards/e/Exsanguinate.java @@ -28,16 +28,16 @@ package mage.cards.e; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/Extinction.java b/Mage.Sets/src/mage/cards/e/Extinction.java index 182fada44da..4d0739cbc10 100644 --- a/Mage.Sets/src/mage/cards/e/Extinction.java +++ b/Mage.Sets/src/mage/cards/e/Extinction.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/Extinguish.java b/Mage.Sets/src/mage/cards/e/Extinguish.java index 5f414ece10d..bd02263e26e 100644 --- a/Mage.Sets/src/mage/cards/e/Extinguish.java +++ b/Mage.Sets/src/mage/cards/e/Extinguish.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/ExtinguishAllHope.java b/Mage.Sets/src/mage/cards/e/ExtinguishAllHope.java index 74dd6ae02d9..0ee89633881 100644 --- a/Mage.Sets/src/mage/cards/e/ExtinguishAllHope.java +++ b/Mage.Sets/src/mage/cards/e/ExtinguishAllHope.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Extirpate.java b/Mage.Sets/src/mage/cards/e/Extirpate.java index a92c632b493..5386139aff0 100644 --- a/Mage.Sets/src/mage/cards/e/Extirpate.java +++ b/Mage.Sets/src/mage/cards/e/Extirpate.java @@ -27,8 +27,6 @@ */ package mage.cards.e; -import java.util.List; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -38,6 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; @@ -50,6 +49,9 @@ import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCardInLibrary; +import java.util.List; +import java.util.UUID; + /** * * @author jonubuu @@ -59,7 +61,7 @@ public class Extirpate extends CardImpl { private static final FilterCard filter = new FilterCard("card in a graveyard other than a basic land card"); static { - filter.add(Predicates.not(Predicates.and(new CardTypePredicate(CardType.LAND), new SupertypePredicate("Basic")))); + filter.add(Predicates.not(Predicates.and(new CardTypePredicate(CardType.LAND), new SupertypePredicate(SuperType.BASIC)))); } public Extirpate(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/e/ExtraArms.java b/Mage.Sets/src/mage/cards/e/ExtraArms.java index 86c03053ee6..82ab2776806 100644 --- a/Mage.Sets/src/mage/cards/e/ExtraArms.java +++ b/Mage.Sets/src/mage/cards/e/ExtraArms.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.AttacksAttachedTriggeredAbility; import mage.abilities.effects.common.AttachEffect; @@ -42,6 +41,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/Extract.java b/Mage.Sets/src/mage/cards/e/Extract.java index e479aa82daf..713e4a128c8 100644 --- a/Mage.Sets/src/mage/cards/e/Extract.java +++ b/Mage.Sets/src/mage/cards/e/Extract.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -42,6 +41,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author cbt33, jeffwadsworth (Supreme Inquisitor) diff --git a/Mage.Sets/src/mage/cards/e/ExtractFromDarkness.java b/Mage.Sets/src/mage/cards/e/ExtractFromDarkness.java index 25c170efa4a..c3cf7d2ef11 100644 --- a/Mage.Sets/src/mage/cards/e/ExtractFromDarkness.java +++ b/Mage.Sets/src/mage/cards/e/ExtractFromDarkness.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -41,6 +40,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/ExtractorDemon.java b/Mage.Sets/src/mage/cards/e/ExtractorDemon.java index c86208519dc..a87f06cef1c 100644 --- a/Mage.Sets/src/mage/cards/e/ExtractorDemon.java +++ b/Mage.Sets/src/mage/cards/e/ExtractorDemon.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LeavesBattlefieldAllTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/ExtraplanarLens.java b/Mage.Sets/src/mage/cards/e/ExtraplanarLens.java index 734e4736ed2..b54ede58f81 100644 --- a/Mage.Sets/src/mage/cards/e/ExtraplanarLens.java +++ b/Mage.Sets/src/mage/cards/e/ExtraplanarLens.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.Effect; @@ -50,6 +49,8 @@ import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/e/ExtricatorOfFlesh.java b/Mage.Sets/src/mage/cards/e/ExtricatorOfFlesh.java index bc573a9c0dc..5c8ce724d8a 100644 --- a/Mage.Sets/src/mage/cards/e/ExtricatorOfFlesh.java +++ b/Mage.Sets/src/mage/cards/e/ExtricatorOfFlesh.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -49,6 +48,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.EldraziHorrorToken; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/ExtricatorOfSin.java b/Mage.Sets/src/mage/cards/e/ExtricatorOfSin.java index ee80a4ba15c..0324c9abe8e 100644 --- a/Mage.Sets/src/mage/cards/e/ExtricatorOfSin.java +++ b/Mage.Sets/src/mage/cards/e/ExtricatorOfSin.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -48,6 +47,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.permanent.token.EldraziHorrorToken; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/Extruder.java b/Mage.Sets/src/mage/cards/e/Extruder.java index 77c6b5de260..099d773e3be 100644 --- a/Mage.Sets/src/mage/cards/e/Extruder.java +++ b/Mage.Sets/src/mage/cards/e/Extruder.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,12 +35,16 @@ import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.abilities.keyword.EchoAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/e/ExuberantFirestoker.java b/Mage.Sets/src/mage/cards/e/ExuberantFirestoker.java index e9f69a49416..98fa02c1599 100644 --- a/Mage.Sets/src/mage/cards/e/ExuberantFirestoker.java +++ b/Mage.Sets/src/mage/cards/e/ExuberantFirestoker.java @@ -27,8 +27,8 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.mana.ColorlessManaAbility; @@ -36,7 +36,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; @@ -44,14 +43,15 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.TargetPlayer; +import java.util.UUID; + /** - * * @author North */ public class ExuberantFirestoker extends CardImpl { public ExuberantFirestoker(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); this.subtype.add("Human"); this.subtype.add("Druid"); this.subtype.add("Shaman"); @@ -80,7 +80,7 @@ class ExuberantFirestokerTriggeredAbility extends TriggeredAbilityImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public ExuberantFirestokerTriggeredAbility() { diff --git a/Mage.Sets/src/mage/cards/e/ExultantCultist.java b/Mage.Sets/src/mage/cards/e/ExultantCultist.java index 674b96b02c2..5750c9204cf 100644 --- a/Mage.Sets/src/mage/cards/e/ExultantCultist.java +++ b/Mage.Sets/src/mage/cards/e/ExultantCultist.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EyeForAnEye.java b/Mage.Sets/src/mage/cards/e/EyeForAnEye.java index 08245b25ab3..ab8fe3a43dd 100644 --- a/Mage.Sets/src/mage/cards/e/EyeForAnEye.java +++ b/Mage.Sets/src/mage/cards/e/EyeForAnEye.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -43,6 +42,8 @@ import mage.game.events.GameEvent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/e/EyeGouge.java b/Mage.Sets/src/mage/cards/e/EyeGouge.java index 06b45b2d729..ed6746ec023 100644 --- a/Mage.Sets/src/mage/cards/e/EyeGouge.java +++ b/Mage.Sets/src/mage/cards/e/EyeGouge.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.condition.common.TargetHasSubtypeCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.Effect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EyeOfDoom.java b/Mage.Sets/src/mage/cards/e/EyeOfDoom.java index 6a665a99c2e..e904668256e 100644 --- a/Mage.Sets/src/mage/cards/e/EyeOfDoom.java +++ b/Mage.Sets/src/mage/cards/e/EyeOfDoom.java @@ -27,9 +27,6 @@ */ package mage.cards.e; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -53,6 +50,10 @@ import mage.players.PlayerList; import mage.target.Target; import mage.target.common.TargetNonlandPermanent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EyeOfNowhere.java b/Mage.Sets/src/mage/cards/e/EyeOfNowhere.java index f598186bc3a..60973439537 100644 --- a/Mage.Sets/src/mage/cards/e/EyeOfNowhere.java +++ b/Mage.Sets/src/mage/cards/e/EyeOfNowhere.java @@ -28,13 +28,14 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/e/EyeOfRamos.java b/Mage.Sets/src/mage/cards/e/EyeOfRamos.java index 0cf2f5554c0..88c81742a99 100644 --- a/Mage.Sets/src/mage/cards/e/EyeOfRamos.java +++ b/Mage.Sets/src/mage/cards/e/EyeOfRamos.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.Mana; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.mana.BlueManaAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Jgod diff --git a/Mage.Sets/src/mage/cards/e/EyeOfSingularity.java b/Mage.Sets/src/mage/cards/e/EyeOfSingularity.java index d48d4a71b5c..f8608705ba3 100644 --- a/Mage.Sets/src/mage/cards/e/EyeOfSingularity.java +++ b/Mage.Sets/src/mage/cards/e/EyeOfSingularity.java @@ -35,6 +35,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; @@ -58,7 +59,7 @@ public class EyeOfSingularity extends CardImpl { public EyeOfSingularity(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{W}"); - this.supertype.add("World"); + this.addSuperType(SuperType.WORLD); // When Eye of Singularity enters the battlefield, destroy each permanent with the same name as another permanent, except for basic lands. They can't be regenerated. this.addAbility(new EntersBattlefieldTriggeredAbility(new EyeOfSingularityETBEffect())); @@ -82,7 +83,7 @@ class EyeOfSingularityETBEffect extends OneShotEffect { private static final FilterPermanent filter = new FilterPermanent(); static { - filter.add(Predicates.not(new SupertypePredicate("Basic"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); } EyeOfSingularityETBEffect() { @@ -152,7 +153,7 @@ class EyeOfSingularityTriggeredAbility extends TriggeredAbilityImpl { return false; } - if (permanent != null && !permanent.getSupertype().contains("Basic")) { + if (permanent != null && !permanent.isBasic()) { getEffects().get(0).setTargetPointer(new FixedTarget(event.getTargetId())); return true; } @@ -170,7 +171,7 @@ class EyeOfSingularityTriggeredEffect extends OneShotEffect { private static final FilterPermanent filter = new FilterPermanent(); static { - filter.add(Predicates.not(new SupertypePredicate("Basic"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); } EyeOfSingularityTriggeredEffect() { diff --git a/Mage.Sets/src/mage/cards/e/EyeOfTheStorm.java b/Mage.Sets/src/mage/cards/e/EyeOfTheStorm.java index 0d194be04b5..ffdd8f80651 100644 --- a/Mage.Sets/src/mage/cards/e/EyeOfTheStorm.java +++ b/Mage.Sets/src/mage/cards/e/EyeOfTheStorm.java @@ -27,16 +27,11 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.CardsImpl; -import mage.cards.SplitCard; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -55,6 +50,8 @@ import mage.target.TargetCard; import mage.target.targetpointer.FixedTarget; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/e/EyeOfUgin.java b/Mage.Sets/src/mage/cards/e/EyeOfUgin.java index f89a3f8e604..850ac9e1ee5 100644 --- a/Mage.Sets/src/mage/cards/e/EyeOfUgin.java +++ b/Mage.Sets/src/mage/cards/e/EyeOfUgin.java @@ -28,9 +28,6 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,14 +37,18 @@ import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ColorlessPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** - * * @author maurer.it_at_gmail.com */ public class EyeOfUgin extends CardImpl { @@ -61,9 +62,9 @@ public class EyeOfUgin extends CardImpl { filterSpells.add(new SubtypePredicate("Eldrazi")); } - public EyeOfUgin (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - this.supertype.add("Legendary"); + public EyeOfUgin(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, null); + addSuperType(SuperType.LEGENDARY); // Colorless Eldrazi spells you cast cost {2} less to cast. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(filterSpells, 2))); @@ -75,7 +76,7 @@ public class EyeOfUgin extends CardImpl { this.addAbility(searchAbility); } - public EyeOfUgin (final EyeOfUgin card) { + public EyeOfUgin(final EyeOfUgin card) { super(card); } diff --git a/Mage.Sets/src/mage/cards/e/EyeSpy.java b/Mage.Sets/src/mage/cards/e/EyeSpy.java index eaafe553cb8..3c0f21602bf 100644 --- a/Mage.Sets/src/mage/cards/e/EyeSpy.java +++ b/Mage.Sets/src/mage/cards/e/EyeSpy.java @@ -27,13 +27,14 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.LookLibraryTopCardTargetPlayerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EyeblightAssassin.java b/Mage.Sets/src/mage/cards/e/EyeblightAssassin.java index 63f78f0f4f4..86fd64e0968 100644 --- a/Mage.Sets/src/mage/cards/e/EyeblightAssassin.java +++ b/Mage.Sets/src/mage/cards/e/EyeblightAssassin.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/e/EyeblightMassacre.java b/Mage.Sets/src/mage/cards/e/EyeblightMassacre.java index 5d985d6a7e0..5ab768fb84a 100644 --- a/Mage.Sets/src/mage/cards/e/EyeblightMassacre.java +++ b/Mage.Sets/src/mage/cards/e/EyeblightMassacre.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -37,6 +36,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/e/EyeblightsEnding.java b/Mage.Sets/src/mage/cards/e/EyeblightsEnding.java index 7bde5b5cd23..024efef4ed7 100644 --- a/Mage.Sets/src/mage/cards/e/EyeblightsEnding.java +++ b/Mage.Sets/src/mage/cards/e/EyeblightsEnding.java @@ -27,10 +27,10 @@ */ package mage.cards.e; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; diff --git a/Mage.Sets/src/mage/cards/e/EyelessWatcher.java b/Mage.Sets/src/mage/cards/e/EyelessWatcher.java index d7f1ea1d626..235a8265144 100644 --- a/Mage.Sets/src/mage/cards/e/EyelessWatcher.java +++ b/Mage.Sets/src/mage/cards/e/EyelessWatcher.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.Effect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.EldraziScionToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EyesInTheSkies.java b/Mage.Sets/src/mage/cards/e/EyesInTheSkies.java index 9911a3f6bec..b53df83e213 100644 --- a/Mage.Sets/src/mage/cards/e/EyesInTheSkies.java +++ b/Mage.Sets/src/mage/cards/e/EyesInTheSkies.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.PopulateEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.BirdToken; +import java.util.UUID; + /** * * @author LevleX2 diff --git a/Mage.Sets/src/mage/cards/e/EyesOfTheWatcher.java b/Mage.Sets/src/mage/cards/e/EyesOfTheWatcher.java index c613bf46c45..5e7f2f151a5 100644 --- a/Mage.Sets/src/mage/cards/e/EyesOfTheWatcher.java +++ b/Mage.Sets/src/mage/cards/e/EyesOfTheWatcher.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DoIfCostPaid; @@ -39,6 +38,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/e/EyesOfTheWisent.java b/Mage.Sets/src/mage/cards/e/EyesOfTheWisent.java index 2dcebd98b02..dc8d4c446a0 100644 --- a/Mage.Sets/src/mage/cards/e/EyesOfTheWisent.java +++ b/Mage.Sets/src/mage/cards/e/EyesOfTheWisent.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SpellCastOpponentTriggeredAbility; @@ -41,6 +40,8 @@ import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/e/EzuriClawOfProgress.java b/Mage.Sets/src/mage/cards/e/EzuriClawOfProgress.java index 1aee5113fc1..36839e59629 100644 --- a/Mage.Sets/src/mage/cards/e/EzuriClawOfProgress.java +++ b/Mage.Sets/src/mage/cards/e/EzuriClawOfProgress.java @@ -27,21 +27,17 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.counter.AddCountersControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.permanent.AnotherPredicate; @@ -50,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -60,7 +58,7 @@ public class EzuriClawOfProgress extends CardImpl { final private static FilterControlledCreaturePermanent filter2 = new FilterControlledCreaturePermanent(); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); filter2.add(new AnotherPredicate()); } @@ -68,7 +66,7 @@ public class EzuriClawOfProgress extends CardImpl { public EzuriClawOfProgress(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Warrior"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/e/EzuriRenegadeLeader.java b/Mage.Sets/src/mage/cards/e/EzuriRenegadeLeader.java index 87d81aa5d0d..cfb039a5588 100644 --- a/Mage.Sets/src/mage/cards/e/EzuriRenegadeLeader.java +++ b/Mage.Sets/src/mage/cards/e/EzuriRenegadeLeader.java @@ -27,10 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +37,10 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -48,6 +48,8 @@ import mage.filter.predicate.mageobject.NamePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author maurer.it_at_gmail.com @@ -66,7 +68,7 @@ public class EzuriRenegadeLeader extends CardImpl { public EzuriRenegadeLeader(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/e/EzurisArchers.java b/Mage.Sets/src/mage/cards/e/EzurisArchers.java index 8c7daa9573c..caf38e0e1e2 100644 --- a/Mage.Sets/src/mage/cards/e/EzurisArchers.java +++ b/Mage.Sets/src/mage/cards/e/EzurisArchers.java @@ -27,7 +27,6 @@ */ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/e/EzurisBrigade.java b/Mage.Sets/src/mage/cards/e/EzurisBrigade.java index 4a964c74594..c53bf121aad 100644 --- a/Mage.Sets/src/mage/cards/e/EzurisBrigade.java +++ b/Mage.Sets/src/mage/cards/e/EzurisBrigade.java @@ -28,10 +28,6 @@ package mage.cards.e; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +39,11 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/e/EzurisPredation.java b/Mage.Sets/src/mage/cards/e/EzurisPredation.java index 511a65d27e2..b92bfed0553 100644 --- a/Mage.Sets/src/mage/cards/e/EzurisPredation.java +++ b/Mage.Sets/src/mage/cards/e/EzurisPredation.java @@ -27,8 +27,6 @@ */ package mage.cards.e; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; @@ -44,6 +42,9 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.BeastToken2; import mage.players.Player; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FaadiyahSeer.java b/Mage.Sets/src/mage/cards/f/FaadiyahSeer.java index 6cbe2cda0e2..383f6f5631b 100644 --- a/Mage.Sets/src/mage/cards/f/FaadiyahSeer.java +++ b/Mage.Sets/src/mage/cards/f/FaadiyahSeer.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.filter.common.FilterLandCard; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FableOfWolfAndOwl.java b/Mage.Sets/src/mage/cards/f/FableOfWolfAndOwl.java index ee4c4184e0b..f041edfb2f6 100644 --- a/Mage.Sets/src/mage/cards/f/FableOfWolfAndOwl.java +++ b/Mage.Sets/src/mage/cards/f/FableOfWolfAndOwl.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -36,11 +34,14 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.permanent.token.Token; import mage.game.permanent.token.WolfToken; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/f/FabledHero.java b/Mage.Sets/src/mage/cards/f/FabledHero.java index 811f78c9d1e..cd7b461f8c8 100644 --- a/Mage.Sets/src/mage/cards/f/FabledHero.java +++ b/Mage.Sets/src/mage/cards/f/FabledHero.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.DoubleStrikeAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Fabricate.java b/Mage.Sets/src/mage/cards/f/Fabricate.java index 2fa9cdaedcd..473601679a3 100644 --- a/Mage.Sets/src/mage/cards/f/Fabricate.java +++ b/Mage.Sets/src/mage/cards/f/Fabricate.java @@ -27,15 +27,16 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FabricationModule.java b/Mage.Sets/src/mage/cards/f/FabricationModule.java index b19ee5d8313..b2c3d911def 100644 --- a/Mage.Sets/src/mage/cards/f/FabricationModule.java +++ b/Mage.Sets/src/mage/cards/f/FabricationModule.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.Objects; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +43,9 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.Objects; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/FaceOfFear.java b/Mage.Sets/src/mage/cards/f/FaceOfFear.java index abda3cf9477..002bb740490 100644 --- a/Mage.Sets/src/mage/cards/f/FaceOfFear.java +++ b/Mage.Sets/src/mage/cards/f/FaceOfFear.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/f/FacelessButcher.java b/Mage.Sets/src/mage/cards/f/FacelessButcher.java index ce77fdb1428..f9d2c51fbfb 100644 --- a/Mage.Sets/src/mage/cards/f/FacelessButcher.java +++ b/Mage.Sets/src/mage/cards/f/FacelessButcher.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/f/FacelessDevourer.java b/Mage.Sets/src/mage/cards/f/FacelessDevourer.java index a6d28d271b9..6f3212e14d9 100644 --- a/Mage.Sets/src/mage/cards/f/FacelessDevourer.java +++ b/Mage.Sets/src/mage/cards/f/FacelessDevourer.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -46,6 +45,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/Facevaulter.java b/Mage.Sets/src/mage/cards/f/Facevaulter.java index 0d57abb36bf..7ddfd2a35cb 100644 --- a/Mage.Sets/src/mage/cards/f/Facevaulter.java +++ b/Mage.Sets/src/mage/cards/f/Facevaulter.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -36,6 +35,10 @@ import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; diff --git a/Mage.Sets/src/mage/cards/f/FactOrFiction.java b/Mage.Sets/src/mage/cards/f/FactOrFiction.java index da45ca20222..44a464980a3 100644 --- a/Mage.Sets/src/mage/cards/f/FactOrFiction.java +++ b/Mage.Sets/src/mage/cards/f/FactOrFiction.java @@ -27,27 +27,23 @@ */ package mage.cards.f; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import java.util.UUID; - import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.abilities.Ability; -import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; import mage.filter.FilterCard; import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.UUID; + /** * @author North */ diff --git a/Mage.Sets/src/mage/cards/f/FadeAway.java b/Mage.Sets/src/mage/cards/f/FadeAway.java index db13d528c86..ea5249919ec 100644 --- a/Mage.Sets/src/mage/cards/f/FadeAway.java +++ b/Mage.Sets/src/mage/cards/f/FadeAway.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -44,6 +42,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/FadeFromMemory.java b/Mage.Sets/src/mage/cards/f/FadeFromMemory.java index a77aad3766d..98d862a2617 100644 --- a/Mage.Sets/src/mage/cards/f/FadeFromMemory.java +++ b/Mage.Sets/src/mage/cards/f/FadeFromMemory.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.keyword.CyclingAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author Wehk diff --git a/Mage.Sets/src/mage/cards/f/FadeIntoAntiquity.java b/Mage.Sets/src/mage/cards/f/FadeIntoAntiquity.java index 8675238f6b5..eafd548d039 100644 --- a/Mage.Sets/src/mage/cards/f/FadeIntoAntiquity.java +++ b/Mage.Sets/src/mage/cards/f/FadeIntoAntiquity.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FaerieArtisans.java b/Mage.Sets/src/mage/cards/f/FaerieArtisans.java index 80a433d0fbe..8537f3fd544 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieArtisans.java +++ b/Mage.Sets/src/mage/cards/f/FaerieArtisans.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.StringTokenizer; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; @@ -39,11 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.Cards; import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.ControllerPredicate; @@ -53,6 +47,9 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.StringTokenizer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FaerieConclave.java b/Mage.Sets/src/mage/cards/f/FaerieConclave.java index 8fabff81a51..68d7281839b 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieConclave.java +++ b/Mage.Sets/src/mage/cards/f/FaerieConclave.java @@ -27,10 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -40,9 +36,13 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FaerieHarbinger.java b/Mage.Sets/src/mage/cards/f/FaerieHarbinger.java index 6267dc11eee..1b0be4f318e 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieHarbinger.java +++ b/Mage.Sets/src/mage/cards/f/FaerieHarbinger.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutOnLibraryEffect; @@ -40,6 +39,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FaerieImpostor.java b/Mage.Sets/src/mage/cards/f/FaerieImpostor.java index 8a13e52649f..f918b79883e 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieImpostor.java +++ b/Mage.Sets/src/mage/cards/f/FaerieImpostor.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FaerieInvaders.java b/Mage.Sets/src/mage/cards/f/FaerieInvaders.java index f571cdfefa8..94548838d88 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieInvaders.java +++ b/Mage.Sets/src/mage/cards/f/FaerieInvaders.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FaerieMacabre.java b/Mage.Sets/src/mage/cards/f/FaerieMacabre.java index 5017cb5e365..340d5e5e73a 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieMacabre.java +++ b/Mage.Sets/src/mage/cards/f/FaerieMacabre.java @@ -27,25 +27,21 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.Mode; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardSourceCost; -import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; -import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.Outcome; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterCard; -import mage.game.Game; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; +import mage.abilities.effects.common.ExileTargetEffect; + /** * * @author Plopman @@ -53,7 +49,7 @@ import mage.target.common.TargetCardInGraveyard; public class FaerieMacabre extends CardImpl { public FaerieMacabre(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}{B}"); this.subtype.add("Faerie"); this.subtype.add("Rogue"); @@ -63,7 +59,7 @@ public class FaerieMacabre extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); // Discard Faerie Macabre: Exile up to two target cards from graveyards. - Ability ability = new SimpleActivatedAbility(Zone.HAND, new FaerieMacabreExileTargetEffect(), new DiscardSourceCost()); + Ability ability = new SimpleActivatedAbility(Zone.HAND, new ExileTargetEffect(), new DiscardSourceCost()); ability.addTarget(new TargetCardInGraveyard(0, 2, new FilterCard("cards from graveyards"))); this.addAbility(ability); } @@ -77,35 +73,3 @@ public class FaerieMacabre extends CardImpl { return new FaerieMacabre(this); } } - -class FaerieMacabreExileTargetEffect extends OneShotEffect { - - public FaerieMacabreExileTargetEffect() { - super(Outcome.Exile); - } - - public FaerieMacabreExileTargetEffect(final FaerieMacabreExileTargetEffect effect) { - super(effect); - } - - @Override - public FaerieMacabreExileTargetEffect copy() { - return new FaerieMacabreExileTargetEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - for(UUID uuid : source.getTargets().get(0).getTargets()){ - Card card = game.getCard(uuid); - if (card != null) { - card.moveToExile(null, "Faerie Macabre", source.getSourceId(), game); - } - } - return true; - } - - @Override - public String getText(Mode mode) { - return "Exile up to two target cards from graveyards"; - } -} diff --git a/Mage.Sets/src/mage/cards/f/FaerieMechanist.java b/Mage.Sets/src/mage/cards/f/FaerieMechanist.java index f84a02c16bc..a07e1e726f4 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieMechanist.java +++ b/Mage.Sets/src/mage/cards/f/FaerieMechanist.java @@ -28,8 +28,6 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.dynamicvalue.common.StaticValue; @@ -37,9 +35,12 @@ import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/f/FaerieMiscreant.java b/Mage.Sets/src/mage/cards/f/FaerieMiscreant.java index 49d8adcbcae..035b51291cd 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieMiscreant.java +++ b/Mage.Sets/src/mage/cards/f/FaerieMiscreant.java @@ -27,10 +27,9 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.NamePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -72,7 +73,7 @@ public class FaerieMiscreant extends CardImpl { // When Faerie Miscreant enters the battlefield, if you control another creature named Faerie Miscreant, draw a card. Ability ability = new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1), false), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0), "When Faerie Miscreant enters the battlefield, if you control another creature named Faerie Miscreant, draw a card"); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/f/FaerieNoble.java b/Mage.Sets/src/mage/cards/f/FaerieNoble.java index b20f02fe0ce..31be97e7cd0 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieNoble.java +++ b/Mage.Sets/src/mage/cards/f/FaerieNoble.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/f/FaerieSquadron.java b/Mage.Sets/src/mage/cards/f/FaerieSquadron.java index 4a4310fc09f..98f8c35da8d 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieSquadron.java +++ b/Mage.Sets/src/mage/cards/f/FaerieSquadron.java @@ -28,7 +28,6 @@ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FaerieSwarm.java b/Mage.Sets/src/mage/cards/f/FaerieSwarm.java index 241eac2d456..82f314cb97c 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieSwarm.java +++ b/Mage.Sets/src/mage/cards/f/FaerieSwarm.java @@ -27,10 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -39,9 +35,14 @@ import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FaerieTauntings.java b/Mage.Sets/src/mage/cards/f/FaerieTauntings.java index 96d8db2c69a..790e95eedb6 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieTauntings.java +++ b/Mage.Sets/src/mage/cards/f/FaerieTauntings.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.condition.common.OnOpponentsTurnCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/FaerieTrickery.java b/Mage.Sets/src/mage/cards/f/FaerieTrickery.java index a930c53f9de..e548746e979 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieTrickery.java +++ b/Mage.Sets/src/mage/cards/f/FaerieTrickery.java @@ -27,17 +27,18 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.effects.common.CounterTargetWithReplacementEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FailedInspection.java b/Mage.Sets/src/mage/cards/f/FailedInspection.java index c623d48a459..def2cbd2332 100644 --- a/Mage.Sets/src/mage/cards/f/FailedInspection.java +++ b/Mage.Sets/src/mage/cards/f/FailedInspection.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.DrawDiscardControllerEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FailureComply.java b/Mage.Sets/src/mage/cards/f/FailureComply.java new file mode 100644 index 00000000000..8ed7542bf46 --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/FailureComply.java @@ -0,0 +1,125 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.f; + +import java.util.UUID; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.NameACardEffect; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.abilities.keyword.AftermathAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.SpellAbilityType; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.target.TargetSpell; + +/** + * @author spjspj + */ +public class FailureComply extends SplitCard { + + public FailureComply(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{1}{U}", "{W}", SpellAbilityType.SPLIT_AFTERMATH); + + // Failure + // Return target spell to it's owner's hand + getLeftHalfCard().getSpellAbility().addTarget(new TargetSpell()); + getLeftHalfCard().getSpellAbility().addEffect(new ReturnToHandTargetEffect()); + + // to + // Comply + // Choose a card name. Until your next turn, your opponents can't cast spells with the chosen name + ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); + Effect effect = new NameACardEffect(NameACardEffect.TypeOfName.ALL); + effect.setText("Choose a card name"); + getRightHalfCard().getSpellAbility().addEffect(effect); + getRightHalfCard().getSpellAbility().addEffect(new ComplyCantCastEffect()); + } + + public FailureComply(final FailureComply card) { + super(card); + } + + @Override + public FailureComply copy() { + return new FailureComply(this); + } +} + +class ComplyCantCastEffect extends ContinuousRuleModifyingEffectImpl { + + public ComplyCantCastEffect() { + super(Duration.UntilYourNextTurn, Outcome.Benefit); + staticText = "Until your next turn, your opponents can't cast spells with the chosen name"; + } + + public ComplyCantCastEffect(final ComplyCantCastEffect effect) { + super(effect); + } + + @Override + public ComplyCantCastEffect copy() { + return new ComplyCantCastEffect(this); + } + + @Override + public String getInfoMessage(Ability source, GameEvent event, Game game) { + MageObject mageObject = game.getObject(source.getSourceId()); + if (mageObject != null) { + String cardName = (String) game.getState().getValue(source.getSourceId().toString() + NameACardEffect.INFO_KEY); + return "You may not cast a card named " + cardName + " (" + mageObject.getIdName() + ")."; + } + return null; + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == EventType.CAST_SPELL_LATE; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + String cardName = (String) game.getState().getValue(source.getSourceId().toString() + NameACardEffect.INFO_KEY); + if (game.getOpponents(source.getControllerId()).contains(event.getPlayerId())) { + MageObject object = game.getObject(event.getSourceId()); + if (object != null && object.getName().equals(cardName)) { + return true; + } + } + return false; + } +} diff --git a/Mage.Sets/src/mage/cards/f/FairgroundsTrumpeter.java b/Mage.Sets/src/mage/cards/f/FairgroundsTrumpeter.java index e0fcb44c3da..803f7400867 100644 --- a/Mage.Sets/src/mage/cards/f/FairgroundsTrumpeter.java +++ b/Mage.Sets/src/mage/cards/f/FairgroundsTrumpeter.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -47,6 +44,10 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.watchers.Watcher; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/f/FairgroundsWarden.java b/Mage.Sets/src/mage/cards/f/FairgroundsWarden.java index 1d8cc995296..27b62974c28 100644 --- a/Mage.Sets/src/mage/cards/f/FairgroundsWarden.java +++ b/Mage.Sets/src/mage/cards/f/FairgroundsWarden.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -47,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FaithHealer.java b/Mage.Sets/src/mage/cards/f/FaithHealer.java index 4e9f8318083..f14c47d21aa 100644 --- a/Mage.Sets/src/mage/cards/f/FaithHealer.java +++ b/Mage.Sets/src/mage/cards/f/FaithHealer.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledEnchantmentPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FaithOfTheDevoted.java b/Mage.Sets/src/mage/cards/f/FaithOfTheDevoted.java new file mode 100644 index 00000000000..dd4b8816c85 --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/FaithOfTheDevoted.java @@ -0,0 +1,70 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.f; + +import java.util.UUID; +import mage.abilities.common.CycleOrDiscardControllerTriggeredAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DoIfCostPaid; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.LoseLifeOpponentsEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author Styxo + */ +public class FaithOfTheDevoted extends CardImpl { + + public FaithOfTheDevoted(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}"); + + // Whenever you cycle or discard a card, you may pay {1}. If you do, each opponent loses 2 life and you gain 2 life. + Effect subEffect = new GainLifeEffect(2); + subEffect.setText("and you gain 2 life"); + + DoIfCostPaid effect = new DoIfCostPaid( + new LoseLifeOpponentsEffect(2), + new GenericManaCost(1)); + effect.addEffect(subEffect); + + this.addAbility(new CycleOrDiscardControllerTriggeredAbility(effect)); + } + + public FaithOfTheDevoted(final FaithOfTheDevoted card) { + super(card); + } + + @Override + public FaithOfTheDevoted copy() { + return new FaithOfTheDevoted(this); + } +} diff --git a/Mage.Sets/src/mage/cards/f/FaithUnbroken.java b/Mage.Sets/src/mage/cards/f/FaithUnbroken.java index ab3642a8b40..a18f3273f73 100644 --- a/Mage.Sets/src/mage/cards/f/FaithUnbroken.java +++ b/Mage.Sets/src/mage/cards/f/FaithUnbroken.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,11 +39,7 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; @@ -54,6 +49,8 @@ import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FaithbearerPaladin.java b/Mage.Sets/src/mage/cards/f/FaithbearerPaladin.java index 8514f662f0f..9717cdff5c8 100644 --- a/Mage.Sets/src/mage/cards/f/FaithbearerPaladin.java +++ b/Mage.Sets/src/mage/cards/f/FaithbearerPaladin.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FaithfulSquire.java b/Mage.Sets/src/mage/cards/f/FaithfulSquire.java index 989a3ad6745..81a9861f59f 100644 --- a/Mage.Sets/src/mage/cards/f/FaithfulSquire.java +++ b/Mage.Sets/src/mage/cards/f/FaithfulSquire.java @@ -29,7 +29,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.OnEventTriggeredAbility; @@ -46,6 +45,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterSpiritOrArcaneCard; @@ -53,6 +53,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.token.Token; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author LevelX2 */ @@ -95,7 +97,7 @@ class KaisoMemoryOfLoyalty extends Token { KaisoMemoryOfLoyalty() { super("Kaiso, Memory of Loyalty", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setWhite(true); subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/f/FaithlessLooting.java b/Mage.Sets/src/mage/cards/f/FaithlessLooting.java index 97d422e5117..8d2ee98b29e 100644 --- a/Mage.Sets/src/mage/cards/f/FaithlessLooting.java +++ b/Mage.Sets/src/mage/cards/f/FaithlessLooting.java @@ -27,16 +27,16 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DrawDiscardControllerEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TimingRule; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FaithsFetters.java b/Mage.Sets/src/mage/cards/f/FaithsFetters.java index 60c7a1618cc..0dda3904ce7 100644 --- a/Mage.Sets/src/mage/cards/f/FaithsFetters.java +++ b/Mage.Sets/src/mage/cards/f/FaithsFetters.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,25 +38,22 @@ import mage.abilities.effects.common.combat.CantAttackBlockAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AbilityType; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.Optional; +import java.util.UUID; + /** - * * @author LevelX2 */ public class FaithsFetters extends CardImpl { public FaithsFetters(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{W}"); this.subtype.add("Aura"); // Enchant permanent @@ -118,12 +114,11 @@ class FaithsFettersEffect extends ContinuousRuleModifyingEffectImpl { public boolean applies(GameEvent event, Ability source, Game game) { Permanent enchantment = game.getPermanent(source.getSourceId()); if (enchantment != null && enchantment.getAttachedTo().equals(event.getSourceId())) { - Ability ability = game.getAbility(event.getTargetId(), event.getSourceId()); - if (ability != null) { - if (ability.getAbilityType() != AbilityType.MANA) { - return true; - } + Optional ability = game.getAbility(event.getTargetId(), event.getSourceId()); + if (ability.isPresent() && ability.get().getAbilityType() != AbilityType.MANA) { + return true; } + } return false; } diff --git a/Mage.Sets/src/mage/cards/f/FaithsShield.java b/Mage.Sets/src/mage/cards/f/FaithsShield.java index 1d290833c48..d4098199fab 100644 --- a/Mage.Sets/src/mage/cards/f/FaithsShield.java +++ b/Mage.Sets/src/mage/cards/f/FaithsShield.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.FatefulHourCondition; import mage.abilities.effects.OneShotEffect; @@ -47,6 +46,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/f/FalkenrathAristocrat.java b/Mage.Sets/src/mage/cards/f/FalkenrathAristocrat.java index cda6109e116..89cc8def475 100644 --- a/Mage.Sets/src/mage/cards/f/FalkenrathAristocrat.java +++ b/Mage.Sets/src/mage/cards/f/FalkenrathAristocrat.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -49,6 +48,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FalkenrathExterminator.java b/Mage.Sets/src/mage/cards/f/FalkenrathExterminator.java index 24e3ea4f0a0..44679af85b2 100644 --- a/Mage.Sets/src/mage/cards/f/FalkenrathExterminator.java +++ b/Mage.Sets/src/mage/cards/f/FalkenrathExterminator.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -40,10 +37,13 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FalkenrathGorger.java b/Mage.Sets/src/mage/cards/f/FalkenrathGorger.java index 0e97f7dd144..b7b6afabd21 100644 --- a/Mage.Sets/src/mage/cards/f/FalkenrathGorger.java +++ b/Mage.Sets/src/mage/cards/f/FalkenrathGorger.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.HashMap; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -37,17 +35,15 @@ import mage.abilities.keyword.MadnessAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.players.Player; +import java.util.HashMap; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FalkenrathMarauders.java b/Mage.Sets/src/mage/cards/f/FalkenrathMarauders.java index fdc85accd1e..30c9a96f6c0 100644 --- a/Mage.Sets/src/mage/cards/f/FalkenrathMarauders.java +++ b/Mage.Sets/src/mage/cards/f/FalkenrathMarauders.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -36,8 +34,11 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/f/FalkenrathNoble.java b/Mage.Sets/src/mage/cards/f/FalkenrathNoble.java index 7cd9b755b0f..0641df43edc 100644 --- a/Mage.Sets/src/mage/cards/f/FalkenrathNoble.java +++ b/Mage.Sets/src/mage/cards/f/FalkenrathNoble.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.GainLifeEffect; @@ -44,6 +43,8 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FalkenrathReaver.java b/Mage.Sets/src/mage/cards/f/FalkenrathReaver.java index a9821d247ed..705da8feca1 100644 --- a/Mage.Sets/src/mage/cards/f/FalkenrathReaver.java +++ b/Mage.Sets/src/mage/cards/f/FalkenrathReaver.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FalkenrathTorturer.java b/Mage.Sets/src/mage/cards/f/FalkenrathTorturer.java index c8df4157620..a28f7f9fa77 100644 --- a/Mage.Sets/src/mage/cards/f/FalkenrathTorturer.java +++ b/Mage.Sets/src/mage/cards/f/FalkenrathTorturer.java @@ -27,11 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,11 +37,17 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FallOfTheGavel.java b/Mage.Sets/src/mage/cards/f/FallOfTheGavel.java index 11b1c12b325..df7483242c9 100644 --- a/Mage.Sets/src/mage/cards/f/FallOfTheGavel.java +++ b/Mage.Sets/src/mage/cards/f/FallOfTheGavel.java @@ -27,14 +27,15 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FallOfTheHammer.java b/Mage.Sets/src/mage/cards/f/FallOfTheHammer.java index bd2f90e43f7..4240732ae73 100644 --- a/Mage.Sets/src/mage/cards/f/FallOfTheHammer.java +++ b/Mage.Sets/src/mage/cards/f/FallOfTheHammer.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -42,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * diff --git a/Mage.Sets/src/mage/cards/f/FallOfTheTitans.java b/Mage.Sets/src/mage/cards/f/FallOfTheTitans.java index 8c0f86eb84e..3070c654329 100644 --- a/Mage.Sets/src/mage/cards/f/FallOfTheTitans.java +++ b/Mage.Sets/src/mage/cards/f/FallOfTheTitans.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.SurgeAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FallenAngel.java b/Mage.Sets/src/mage/cards/f/FallenAngel.java index 5d2694bc269..c7c00f397d6 100644 --- a/Mage.Sets/src/mage/cards/f/FallenAngel.java +++ b/Mage.Sets/src/mage/cards/f/FallenAngel.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -37,10 +34,13 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FallenAskari.java b/Mage.Sets/src/mage/cards/f/FallenAskari.java index 31b6c7c39d7..3e7a72afa13 100644 --- a/Mage.Sets/src/mage/cards/f/FallenAskari.java +++ b/Mage.Sets/src/mage/cards/f/FallenAskari.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CantBlockAbility; import mage.abilities.keyword.FlankingAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FallenCleric.java b/Mage.Sets/src/mage/cards/f/FallenCleric.java index 963405cd71d..63ac31911cf 100644 --- a/Mage.Sets/src/mage/cards/f/FallenCleric.java +++ b/Mage.Sets/src/mage/cards/f/FallenCleric.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.MorphAbility; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FallenFerromancer.java b/Mage.Sets/src/mage/cards/f/FallenFerromancer.java index 0bd01c54ea8..baa025c48a6 100644 --- a/Mage.Sets/src/mage/cards/f/FallenFerromancer.java +++ b/Mage.Sets/src/mage/cards/f/FallenFerromancer.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,8 +35,12 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FallenIdeal.java b/Mage.Sets/src/mage/cards/f/FallenIdeal.java index 4c5a8a2ac85..527668adb22 100644 --- a/Mage.Sets/src/mage/cards/f/FallenIdeal.java +++ b/Mage.Sets/src/mage/cards/f/FallenIdeal.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -42,16 +41,14 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FallingTimber.java b/Mage.Sets/src/mage/cards/f/FallingTimber.java index 50d05432568..4c1e26e6a5c 100644 --- a/Mage.Sets/src/mage/cards/f/FallingTimber.java +++ b/Mage.Sets/src/mage/cards/f/FallingTimber.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.KickedCondition; import mage.abilities.costs.common.SacrificeTargetCost; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FallowEarth.java b/Mage.Sets/src/mage/cards/f/FallowEarth.java index fbaa381e6d8..645fa737cad 100644 --- a/Mage.Sets/src/mage/cards/f/FallowEarth.java +++ b/Mage.Sets/src/mage/cards/f/FallowEarth.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/FallowWurm.java b/Mage.Sets/src/mage/cards/f/FallowWurm.java index ab41258f767..d4ef0dba8d5 100644 --- a/Mage.Sets/src/mage/cards/f/FallowWurm.java +++ b/Mage.Sets/src/mage/cards/f/FallowWurm.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.common.DiscardCardCost; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterLandCard; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/Fallowsage.java b/Mage.Sets/src/mage/cards/f/Fallowsage.java index 6796b392073..f1fab43aa1a 100644 --- a/Mage.Sets/src/mage/cards/f/Fallowsage.java +++ b/Mage.Sets/src/mage/cards/f/Fallowsage.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.BecomesTappedSourceTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FalseCure.java b/Mage.Sets/src/mage/cards/f/FalseCure.java index 90bac32aab2..959c0acdb43 100644 --- a/Mage.Sets/src/mage/cards/f/FalseCure.java +++ b/Mage.Sets/src/mage/cards/f/FalseCure.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; @@ -41,6 +40,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/FalseDefeat.java b/Mage.Sets/src/mage/cards/f/FalseDefeat.java index ab2810f667b..498111054dd 100644 --- a/Mage.Sets/src/mage/cards/f/FalseDefeat.java +++ b/Mage.Sets/src/mage/cards/f/FalseDefeat.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/f/FalseDemise.java b/Mage.Sets/src/mage/cards/f/FalseDemise.java index be315893f24..410c9499542 100644 --- a/Mage.Sets/src/mage/cards/f/FalseDemise.java +++ b/Mage.Sets/src/mage/cards/f/FalseDemise.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.effects.common.AttachEffect; @@ -40,6 +39,8 @@ import mage.constants.Outcome; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FalseMourning.java b/Mage.Sets/src/mage/cards/f/FalseMourning.java index 5b3ab15f946..03a31bb960c 100644 --- a/Mage.Sets/src/mage/cards/f/FalseMourning.java +++ b/Mage.Sets/src/mage/cards/f/FalseMourning.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FalsePeace.java b/Mage.Sets/src/mage/cards/f/FalsePeace.java index fd64288912f..aaba1fcb4c8 100644 --- a/Mage.Sets/src/mage/cards/f/FalsePeace.java +++ b/Mage.Sets/src/mage/cards/f/FalsePeace.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.SkipNextCombatEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/f/FalseProphet.java b/Mage.Sets/src/mage/cards/f/FalseProphet.java index 5a2de6bea87..5aa28f18951 100644 --- a/Mage.Sets/src/mage/cards/f/FalseProphet.java +++ b/Mage.Sets/src/mage/cards/f/FalseProphet.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.ExileAllEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FalseSummoning.java b/Mage.Sets/src/mage/cards/f/FalseSummoning.java index de8e2ec9d6c..4fb6b3dd64d 100644 --- a/Mage.Sets/src/mage/cards/f/FalseSummoning.java +++ b/Mage.Sets/src/mage/cards/f/FalseSummoning.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetEffect; -import mage.filter.common.FilterCreatureSpell; -import mage.target.TargetSpell; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.filter.common.FilterCreatureSpell; +import mage.target.TargetSpell; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/Falter.java b/Mage.Sets/src/mage/cards/f/Falter.java index 28b78eb3b00..2d393f47f39 100644 --- a/Mage.Sets/src/mage/cards/f/Falter.java +++ b/Mage.Sets/src/mage/cards/f/Falter.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.combat.CantBlockAllEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FamiliarGround.java b/Mage.Sets/src/mage/cards/f/FamiliarGround.java index 067575975e5..15562aa2c10 100644 --- a/Mage.Sets/src/mage/cards/f/FamiliarGround.java +++ b/Mage.Sets/src/mage/cards/f/FamiliarGround.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantBeBlockedByMoreThanOneAllEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/FamiliarsRuse.java b/Mage.Sets/src/mage/cards/f/FamiliarsRuse.java index 1251e162f91..69798a07e6d 100644 --- a/Mage.Sets/src/mage/cards/f/FamiliarsRuse.java +++ b/Mage.Sets/src/mage/cards/f/FamiliarsRuse.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.TargetSpell; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/Famine.java b/Mage.Sets/src/mage/cards/f/Famine.java index fb18ad6a284..0797d3fd32f 100644 --- a/Mage.Sets/src/mage/cards/f/Famine.java +++ b/Mage.Sets/src/mage/cards/f/Famine.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DamageEverythingEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FamishedGhoul.java b/Mage.Sets/src/mage/cards/f/FamishedGhoul.java index 5ac873b85e8..193aaeb313d 100644 --- a/Mage.Sets/src/mage/cards/f/FamishedGhoul.java +++ b/Mage.Sets/src/mage/cards/f/FamishedGhoul.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.target.common.TargetCardInASingleGraveyard; +import java.util.UUID; + /** * * @author cbt33 @@ -55,9 +56,9 @@ public class FamishedGhoul extends CardImpl { this.toughness = new MageInt(2); // {1}{B}, Sacrifice Famished Ghoul: Exile up to two target cards from a single graveyard. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect("Exile up to two target cards from a single graveyard"), new ManaCostsImpl("{1}{B}")); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{1}{B}")); ability.addCost(new SacrificeSourceCost()); - ability.addTarget(new TargetCardInASingleGraveyard(0, 2, new FilterCard())); + ability.addTarget(new TargetCardInASingleGraveyard(0, 2, new FilterCard("cards from a single graveyard"))); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/f/FanBearer.java b/Mage.Sets/src/mage/cards/f/FanBearer.java new file mode 100644 index 00000000000..e7f0b2d17f2 --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/FanBearer.java @@ -0,0 +1,71 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.f; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.TapTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class FanBearer extends CardImpl { + + public FanBearer(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}"); + + this.subtype.add("Zombie"); + this.power = new MageInt(1); + this.toughness = new MageInt(2); + + // {2}, {T}: Tap target creature. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new GenericManaCost(2)); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public FanBearer(final FanBearer card) { + super(card); + } + + @Override + public FanBearer copy() { + return new FanBearer(this); + } +} diff --git a/Mage.Sets/src/mage/cards/f/FanaticOfMogis.java b/Mage.Sets/src/mage/cards/f/FanaticOfMogis.java index 2e12ffb7beb..16155a1809c 100644 --- a/Mage.Sets/src/mage/cards/f/FanaticOfMogis.java +++ b/Mage.Sets/src/mage/cards/f/FanaticOfMogis.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.dynamicvalue.common.DevotionCount; @@ -40,6 +39,8 @@ import mage.constants.ColoredManaSymbol; import mage.constants.Outcome; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FanaticOfXenagos.java b/Mage.Sets/src/mage/cards/f/FanaticOfXenagos.java index 7883b85642e..466aafb6d85 100644 --- a/Mage.Sets/src/mage/cards/f/FanaticOfXenagos.java +++ b/Mage.Sets/src/mage/cards/f/FanaticOfXenagos.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -43,6 +42,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FanaticalDevotion.java b/Mage.Sets/src/mage/cards/f/FanaticalDevotion.java index 3874fcdb5a3..41e23645457 100644 --- a/Mage.Sets/src/mage/cards/f/FanaticalDevotion.java +++ b/Mage.Sets/src/mage/cards/f/FanaticalDevotion.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -40,6 +39,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FanaticalFever.java b/Mage.Sets/src/mage/cards/f/FanaticalFever.java index b2bb54a67de..2d7af99a89f 100644 --- a/Mage.Sets/src/mage/cards/f/FanaticalFever.java +++ b/Mage.Sets/src/mage/cards/f/FanaticalFever.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author hanasu diff --git a/Mage.Sets/src/mage/cards/f/FangOfThePack.java b/Mage.Sets/src/mage/cards/f/FangOfThePack.java index 83ac7a025d5..17eefa860fa 100644 --- a/Mage.Sets/src/mage/cards/f/FangOfThePack.java +++ b/Mage.Sets/src/mage/cards/f/FangOfThePack.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/FangSkulkin.java b/Mage.Sets/src/mage/cards/f/FangSkulkin.java index 85ee7953854..13a37fa8adc 100644 --- a/Mage.Sets/src/mage/cards/f/FangSkulkin.java +++ b/Mage.Sets/src/mage/cards/f/FangSkulkin.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -39,12 +36,15 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.WitherAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/f/FangrenFirstborn.java b/Mage.Sets/src/mage/cards/f/FangrenFirstborn.java index ae12d4c0eda..d7b5f3cc4e5 100644 --- a/Mage.Sets/src/mage/cards/f/FangrenFirstborn.java +++ b/Mage.Sets/src/mage/cards/f/FangrenFirstborn.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersAllEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.counters.CounterType; import mage.filter.common.FilterAttackingCreature; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/FangrenHunter.java b/Mage.Sets/src/mage/cards/f/FangrenHunter.java index d10cedf3234..6149ec2356e 100644 --- a/Mage.Sets/src/mage/cards/f/FangrenHunter.java +++ b/Mage.Sets/src/mage/cards/f/FangrenHunter.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FangrenMarauder.java b/Mage.Sets/src/mage/cards/f/FangrenMarauder.java index c7ab546a6e6..fa809f6d2ae 100644 --- a/Mage.Sets/src/mage/cards/f/FangrenMarauder.java +++ b/Mage.Sets/src/mage/cards/f/FangrenMarauder.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.ZoneChangeAllTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterArtifactPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FangrenPathcutter.java b/Mage.Sets/src/mage/cards/f/FangrenPathcutter.java index ec03e642f6c..17abfc8828d 100644 --- a/Mage.Sets/src/mage/cards/f/FangrenPathcutter.java +++ b/Mage.Sets/src/mage/cards/f/FangrenPathcutter.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterAttackingCreature; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FanningTheFlames.java b/Mage.Sets/src/mage/cards/f/FanningTheFlames.java index 9061a611f8e..a4f81677d8a 100644 --- a/Mage.Sets/src/mage/cards/f/FanningTheFlames.java +++ b/Mage.Sets/src/mage/cards/f/FanningTheFlames.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.BuybackAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FarAway.java b/Mage.Sets/src/mage/cards/f/FarAway.java index ebefc5d2d8a..a37a00b7d5f 100644 --- a/Mage.Sets/src/mage/cards/f/FarAway.java +++ b/Mage.Sets/src/mage/cards/f/FarAway.java @@ -25,29 +25,23 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.f; import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.effects.common.SacrificeEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.SpellAbilityType; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; -/** - * - * @author LevelX2 - */ - - public class FarAway extends SplitCard { public FarAway(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{U}","{2}{B}",true); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}", "{2}{B}", SpellAbilityType.SPLIT_FUSED); // Far // Return target creature to its owner's hand. diff --git a/Mage.Sets/src/mage/cards/f/FarWanderings.java b/Mage.Sets/src/mage/cards/f/FarWanderings.java index 8689db28f1e..37621525a6e 100644 --- a/Mage.Sets/src/mage/cards/f/FarWanderings.java +++ b/Mage.Sets/src/mage/cards/f/FarWanderings.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.condition.common.CardsInControllerGraveCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.Effect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FarbogBoneflinger.java b/Mage.Sets/src/mage/cards/f/FarbogBoneflinger.java index 3b71e929b34..e958c7ff881 100644 --- a/Mage.Sets/src/mage/cards/f/FarbogBoneflinger.java +++ b/Mage.Sets/src/mage/cards/f/FarbogBoneflinger.java @@ -27,18 +27,18 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FarbogExplorer.java b/Mage.Sets/src/mage/cards/f/FarbogExplorer.java index 5bebe241e39..0478d79eb05 100644 --- a/Mage.Sets/src/mage/cards/f/FarbogExplorer.java +++ b/Mage.Sets/src/mage/cards/f/FarbogExplorer.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.SwampwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FarbogRevenant.java b/Mage.Sets/src/mage/cards/f/FarbogRevenant.java index f33ad1ca332..ef760d22cc1 100644 --- a/Mage.Sets/src/mage/cards/f/FarbogRevenant.java +++ b/Mage.Sets/src/mage/cards/f/FarbogRevenant.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.SkulkAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FarhavenElf.java b/Mage.Sets/src/mage/cards/f/FarhavenElf.java index 2254c0b8e08..e69d81ea341 100644 --- a/Mage.Sets/src/mage/cards/f/FarhavenElf.java +++ b/Mage.Sets/src/mage/cards/f/FarhavenElf.java @@ -27,16 +27,17 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/Farmstead.java b/Mage.Sets/src/mage/cards/f/Farmstead.java index b4df71e1d28..095013e1493 100644 --- a/Mage.Sets/src/mage/cards/f/Farmstead.java +++ b/Mage.Sets/src/mage/cards/f/Farmstead.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,14 +39,12 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FarrelitePriest.java b/Mage.Sets/src/mage/cards/f/FarrelitePriest.java index 1c66774555e..bbd1248d319 100644 --- a/Mage.Sets/src/mage/cards/f/FarrelitePriest.java +++ b/Mage.Sets/src/mage/cards/f/FarrelitePriest.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -45,6 +44,8 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/f/FarrelsMantle.java b/Mage.Sets/src/mage/cards/f/FarrelsMantle.java index 62a0d8b2264..7343527b637 100644 --- a/Mage.Sets/src/mage/cards/f/FarrelsMantle.java +++ b/Mage.Sets/src/mage/cards/f/FarrelsMantle.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,19 +38,17 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicate; import mage.filter.predicate.Predicates; import mage.game.Game; +import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; -import mage.game.permanent.Permanent; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FarrelsZealot.java b/Mage.Sets/src/mage/cards/f/FarrelsZealot.java index c9ff54606b9..b2dcae660a9 100644 --- a/Mage.Sets/src/mage/cards/f/FarrelsZealot.java +++ b/Mage.Sets/src/mage/cards/f/FarrelsZealot.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/Farseek.java b/Mage.Sets/src/mage/cards/f/Farseek.java index dc19a3e2f5b..660389d2cd2 100644 --- a/Mage.Sets/src/mage/cards/f/Farseek.java +++ b/Mage.Sets/src/mage/cards/f/Farseek.java @@ -27,18 +27,18 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FarsightMask.java b/Mage.Sets/src/mage/cards/f/FarsightMask.java index b395b3a8b47..5a03e19dfb3 100644 --- a/Mage.Sets/src/mage/cards/f/FarsightMask.java +++ b/Mage.Sets/src/mage/cards/f/FarsightMask.java @@ -27,18 +27,18 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * @author North */ diff --git a/Mage.Sets/src/mage/cards/f/Fascination.java b/Mage.Sets/src/mage/cards/f/Fascination.java index 918d07660a1..8579faee023 100644 --- a/Mage.Sets/src/mage/cards/f/Fascination.java +++ b/Mage.Sets/src/mage/cards/f/Fascination.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DrawCardAllEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/Fastbond.java b/Mage.Sets/src/mage/cards/f/Fastbond.java index 6f5eb254a0c..4792077740e 100644 --- a/Mage.Sets/src/mage/cards/f/Fastbond.java +++ b/Mage.Sets/src/mage/cards/f/Fastbond.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.DamageControllerEffect; @@ -42,6 +41,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.players.Player; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FatalBlow.java b/Mage.Sets/src/mage/cards/f/FatalBlow.java index 7e51b2bc52d..3aada1c320c 100644 --- a/Mage.Sets/src/mage/cards/f/FatalBlow.java +++ b/Mage.Sets/src/mage/cards/f/FatalBlow.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/FatalFrenzy.java b/Mage.Sets/src/mage/cards/f/FatalFrenzy.java index 08ab764a29b..a67d39c7adc 100644 --- a/Mage.Sets/src/mage/cards/f/FatalFrenzy.java +++ b/Mage.Sets/src/mage/cards/f/FatalFrenzy.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -48,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FatalFumes.java b/Mage.Sets/src/mage/cards/f/FatalFumes.java index ccbd28e5dc3..dac8e3ae8a4 100644 --- a/Mage.Sets/src/mage/cards/f/FatalFumes.java +++ b/Mage.Sets/src/mage/cards/f/FatalFumes.java @@ -28,14 +28,15 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FatalMutation.java b/Mage.Sets/src/mage/cards/f/FatalMutation.java index b49813e1bdd..c1a83891ae5 100644 --- a/Mage.Sets/src/mage/cards/f/FatalMutation.java +++ b/Mage.Sets/src/mage/cards/f/FatalMutation.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -45,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FatalPush.java b/Mage.Sets/src/mage/cards/f/FatalPush.java index 7d6678a0621..2c9a40ee2ee 100644 --- a/Mage.Sets/src/mage/cards/f/FatalPush.java +++ b/Mage.Sets/src/mage/cards/f/FatalPush.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.RevoltCondition; import mage.abilities.effects.OneShotEffect; @@ -41,6 +40,8 @@ import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.watchers.common.RevoltWatcher; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/FateForetold.java b/Mage.Sets/src/mage/cards/f/FateForetold.java index fc39dc975bf..7f3283eeb01 100644 --- a/Mage.Sets/src/mage/cards/f/FateForetold.java +++ b/Mage.Sets/src/mage/cards/f/FateForetold.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.Outcome; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FateForgotten.java b/Mage.Sets/src/mage/cards/f/FateForgotten.java index 88fec4d8c57..1b206f54c0e 100644 --- a/Mage.Sets/src/mage/cards/f/FateForgotten.java +++ b/Mage.Sets/src/mage/cards/f/FateForgotten.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FateTransfer.java b/Mage.Sets/src/mage/cards/f/FateTransfer.java index 523ac5aa641..49b1d384d08 100644 --- a/Mage.Sets/src/mage/cards/f/FateTransfer.java +++ b/Mage.Sets/src/mage/cards/f/FateTransfer.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/FateUnraveler.java b/Mage.Sets/src/mage/cards/f/FateUnraveler.java index 80f0d2c0f5d..81b9848dd97 100644 --- a/Mage.Sets/src/mage/cards/f/FateUnraveler.java +++ b/Mage.Sets/src/mage/cards/f/FateUnraveler.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DrawCardOpponentTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/FatedConflagration.java b/Mage.Sets/src/mage/cards/f/FatedConflagration.java index 5c16d58bd1b..d9f53e7dbb5 100644 --- a/Mage.Sets/src/mage/cards/f/FatedConflagration.java +++ b/Mage.Sets/src/mage/cards/f/FatedConflagration.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DamageTargetEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlaneswalker; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FatedInfatuation.java b/Mage.Sets/src/mage/cards/f/FatedInfatuation.java index db36763b331..11c8c70a43d 100644 --- a/Mage.Sets/src/mage/cards/f/FatedInfatuation.java +++ b/Mage.Sets/src/mage/cards/f/FatedInfatuation.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.PutTokenOntoBattlefieldCopyTargetEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FatedIntervention.java b/Mage.Sets/src/mage/cards/f/FatedIntervention.java index 3acd2b4cfe5..3fde9f32cb9 100644 --- a/Mage.Sets/src/mage/cards/f/FatedIntervention.java +++ b/Mage.Sets/src/mage/cards/f/FatedIntervention.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.CentaurEnchantmentCreatureToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FatedRetribution.java b/Mage.Sets/src/mage/cards/f/FatedRetribution.java index ab01ef0a903..3936ce7fef8 100644 --- a/Mage.Sets/src/mage/cards/f/FatedRetribution.java +++ b/Mage.Sets/src/mage/cards/f/FatedRetribution.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DestroyAllEffect; @@ -39,6 +38,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FatedReturn.java b/Mage.Sets/src/mage/cards/f/FatedReturn.java index 269b35e0d52..dc15b2739a3 100644 --- a/Mage.Sets/src/mage/cards/f/FatedReturn.java +++ b/Mage.Sets/src/mage/cards/f/FatedReturn.java @@ -27,12 +27,11 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; -import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FatefulShowdown.java b/Mage.Sets/src/mage/cards/f/FatefulShowdown.java index dd5f8cab3b9..873e14390a0 100644 --- a/Mage.Sets/src/mage/cards/f/FatefulShowdown.java +++ b/Mage.Sets/src/mage/cards/f/FatefulShowdown.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.dynamicvalue.common.CardsInControllerHandCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Fatespinner.java b/Mage.Sets/src/mage/cards/f/Fatespinner.java index 6078d1eb96e..a078d679b13 100644 --- a/Mage.Sets/src/mage/cards/f/Fatespinner.java +++ b/Mage.Sets/src/mage/cards/f/Fatespinner.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.HashSet; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -38,16 +36,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.choices.Choice; import mage.choices.ChoiceImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.players.Player; +import java.util.HashSet; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/Fatestitcher.java b/Mage.Sets/src/mage/cards/f/Fatestitcher.java index 99296edaf4a..175eee4d589 100644 --- a/Mage.Sets/src/mage/cards/f/Fatestitcher.java +++ b/Mage.Sets/src/mage/cards/f/Fatestitcher.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,11 +36,14 @@ import mage.abilities.effects.common.MayTapOrUntapTargetEffect; import mage.abilities.keyword.UnearthAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FathomFeeder.java b/Mage.Sets/src/mage/cards/f/FathomFeeder.java index 9feb4b51c00..a58b4bac3ad 100644 --- a/Mage.Sets/src/mage/cards/f/FathomFeeder.java +++ b/Mage.Sets/src/mage/cards/f/FathomFeeder.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -47,6 +46,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FathomMage.java b/Mage.Sets/src/mage/cards/f/FathomMage.java index e898a535230..70891917e8a 100644 --- a/Mage.Sets/src/mage/cards/f/FathomMage.java +++ b/Mage.Sets/src/mage/cards/f/FathomMage.java @@ -28,7 +28,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FathomSeer.java b/Mage.Sets/src/mage/cards/f/FathomSeer.java index 5d3c07c1344..e2eb4e81e5a 100644 --- a/Mage.Sets/src/mage/cards/f/FathomSeer.java +++ b/Mage.Sets/src/mage/cards/f/FathomSeer.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; @@ -40,6 +39,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FathomTrawl.java b/Mage.Sets/src/mage/cards/f/FathomTrawl.java index e28f39edcf7..0e67b1ad933 100644 --- a/Mage.Sets/src/mage/cards/f/FathomTrawl.java +++ b/Mage.Sets/src/mage/cards/f/FathomTrawl.java @@ -27,21 +27,18 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author Derpthemeus diff --git a/Mage.Sets/src/mage/cards/f/FaultLine.java b/Mage.Sets/src/mage/cards/f/FaultLine.java index 1d2099ba988..c299a746a6f 100644 --- a/Mage.Sets/src/mage/cards/f/FaultLine.java +++ b/Mage.Sets/src/mage/cards/f/FaultLine.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FaultRiders.java b/Mage.Sets/src/mage/cards/f/FaultRiders.java index 982df06cfff..a493d0f001b 100644 --- a/Mage.Sets/src/mage/cards/f/FaultRiders.java +++ b/Mage.Sets/src/mage/cards/f/FaultRiders.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/Faultgrinder.java b/Mage.Sets/src/mage/cards/f/Faultgrinder.java index 237aa0e2e52..2af64c9014a 100644 --- a/Mage.Sets/src/mage/cards/f/Faultgrinder.java +++ b/Mage.Sets/src/mage/cards/f/Faultgrinder.java @@ -27,19 +27,20 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DestroyTargetEffect; -import mage.abilities.keyword.TrampleAbility; import mage.abilities.keyword.EvokeAbility; +import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.Target; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FaunaShaman.java b/Mage.Sets/src/mage/cards/f/FaunaShaman.java index 60d6b8a69a6..a1d7e5b0c68 100644 --- a/Mage.Sets/src/mage/cards/f/FaunaShaman.java +++ b/Mage.Sets/src/mage/cards/f/FaunaShaman.java @@ -28,10 +28,6 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,10 +37,15 @@ import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/f/FavorOfTheMighty.java b/Mage.Sets/src/mage/cards/f/FavorOfTheMighty.java index 151fad22acf..254a318a074 100644 --- a/Mage.Sets/src/mage/cards/f/FavorOfTheMighty.java +++ b/Mage.Sets/src/mage/cards/f/FavorOfTheMighty.java @@ -27,21 +27,15 @@ */ package mage.cards.f; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; @@ -51,6 +45,8 @@ import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author emerald000 @@ -112,7 +108,7 @@ class FavorOfTheMightyEffect extends ContinuousEffectImpl { } } FilterPermanent filterMaxCMC = new FilterCreaturePermanent(); - filterMaxCMC.add(new ConvertedManaCostPredicate(ComparisonType.Equal, maxCMC)); + filterMaxCMC.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, maxCMC)); for (Permanent permanent : game.getBattlefield().getActivePermanents(filterMaxCMC, source.getControllerId(), game)) { if (permanent != null) { permanent.addAbility(new ProtectionAbility(filter), source.getSourceId(), game); diff --git a/Mage.Sets/src/mage/cards/f/FavorOfTheOverbeing.java b/Mage.Sets/src/mage/cards/f/FavorOfTheOverbeing.java index f1be9fd367b..173a31f6b81 100644 --- a/Mage.Sets/src/mage/cards/f/FavorOfTheOverbeing.java +++ b/Mage.Sets/src/mage/cards/f/FavorOfTheOverbeing.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -39,15 +38,17 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; -import mage.constants.CardType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AttachmentType; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FavorOfTheWoods.java b/Mage.Sets/src/mage/cards/f/FavorOfTheWoods.java index 3ea2048202b..8b46dd0a644 100644 --- a/Mage.Sets/src/mage/cards/f/FavorOfTheWoods.java +++ b/Mage.Sets/src/mage/cards/f/FavorOfTheWoods.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.BlocksAttachedTriggeredAbility; import mage.abilities.effects.common.AttachEffect; @@ -37,10 +34,13 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author intimidatingant diff --git a/Mage.Sets/src/mage/cards/f/FavorableWinds.java b/Mage.Sets/src/mage/cards/f/FavorableWinds.java index 9ecae5998d6..25e5d974d4b 100644 --- a/Mage.Sets/src/mage/cards/f/FavorableWinds.java +++ b/Mage.Sets/src/mage/cards/f/FavorableWinds.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.keyword.FlyingAbility; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author noxx diff --git a/Mage.Sets/src/mage/cards/f/FavoredHoplite.java b/Mage.Sets/src/mage/cards/f/FavoredHoplite.java index 97f772fc196..cb68892b212 100644 --- a/Mage.Sets/src/mage/cards/f/FavoredHoplite.java +++ b/Mage.Sets/src/mage/cards/f/FavoredHoplite.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.PreventAllDamageToSourceEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Fear.java b/Mage.Sets/src/mage/cards/f/Fear.java index cb6fcfab800..7eebf6aa841 100644 --- a/Mage.Sets/src/mage/cards/f/Fear.java +++ b/Mage.Sets/src/mage/cards/f/Fear.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -38,9 +35,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FearsomeAwakening.java b/Mage.Sets/src/mage/cards/f/FearsomeAwakening.java index 656b8a555da..c5e31654fdb 100644 --- a/Mage.Sets/src/mage/cards/f/FearsomeAwakening.java +++ b/Mage.Sets/src/mage/cards/f/FearsomeAwakening.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FearsomeTemper.java b/Mage.Sets/src/mage/cards/f/FearsomeTemper.java index 4d705fb1cee..79182e2ff6b 100644 --- a/Mage.Sets/src/mage/cards/f/FearsomeTemper.java +++ b/Mage.Sets/src/mage/cards/f/FearsomeTemper.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,14 +39,12 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FeastOfBlood.java b/Mage.Sets/src/mage/cards/f/FeastOfBlood.java index d035327656b..64ef68626c8 100644 --- a/Mage.Sets/src/mage/cards/f/FeastOfBlood.java +++ b/Mage.Sets/src/mage/cards/f/FeastOfBlood.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.CostImpl; @@ -36,11 +34,14 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FeastOfDreams.java b/Mage.Sets/src/mage/cards/f/FeastOfDreams.java index fa093df99ac..d1ecdc431f1 100644 --- a/Mage.Sets/src/mage/cards/f/FeastOfDreams.java +++ b/Mage.Sets/src/mage/cards/f/FeastOfDreams.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -38,6 +37,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.EnchantedPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FeastOfTheUnicorn.java b/Mage.Sets/src/mage/cards/f/FeastOfTheUnicorn.java index 908b771dcfd..28660f16178 100644 --- a/Mage.Sets/src/mage/cards/f/FeastOfTheUnicorn.java +++ b/Mage.Sets/src/mage/cards/f/FeastOfTheUnicorn.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/FeastOfWorms.java b/Mage.Sets/src/mage/cards/f/FeastOfWorms.java index 21b13ad845b..113dd8ba42c 100644 --- a/Mage.Sets/src/mage/cards/f/FeastOfWorms.java +++ b/Mage.Sets/src/mage/cards/f/FeastOfWorms.java @@ -28,14 +28,13 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.permanent.ControllerIdPredicate; @@ -45,6 +44,8 @@ import mage.players.Player; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX @@ -96,7 +97,7 @@ class FeastOfWormsEffect extends OneShotEffect { if (permanent != null) { targetPlayer = game.getPlayer(permanent.getControllerId()); } - if (targetPlayer != null && permanent != null && (permanent.getSupertype().get(0).equals("Legendary"))) { + if (targetPlayer != null && permanent != null && (permanent.isLegendary())) { FilterControlledPermanent filter = new FilterControlledLandPermanent("land to sacrifice"); filter.add(new ControllerIdPredicate(targetPlayer.getId())); TargetControlledPermanent target = new TargetControlledPermanent(1, 1, filter, false); diff --git a/Mage.Sets/src/mage/cards/f/FeastOnTheFallen.java b/Mage.Sets/src/mage/cards/f/FeastOnTheFallen.java index d43c0cc093b..045209bd6bd 100644 --- a/Mage.Sets/src/mage/cards/f/FeastOnTheFallen.java +++ b/Mage.Sets/src/mage/cards/f/FeastOnTheFallen.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.Condition; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.target.common.TargetControlledCreaturePermanent; import mage.watchers.common.PlayerLostLifeWatcher; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/FeastOrFamine.java b/Mage.Sets/src/mage/cards/f/FeastOrFamine.java index 5996d2b59f7..24e77ee0fc7 100644 --- a/Mage.Sets/src/mage/cards/f/FeastOrFamine.java +++ b/Mage.Sets/src/mage/cards/f/FeastOrFamine.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Mode; import mage.abilities.effects.common.CreateTokenEffect; @@ -42,6 +41,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.permanent.token.ZombieToken; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FeatOfResistance.java b/Mage.Sets/src/mage/cards/f/FeatOfResistance.java index 2fd619d5d35..22da8267cb7 100644 --- a/Mage.Sets/src/mage/cards/f/FeatOfResistance.java +++ b/Mage.Sets/src/mage/cards/f/FeatOfResistance.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.GainProtectionFromColorTargetEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.Duration; import mage.counters.CounterType; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/Fecundity.java b/Mage.Sets/src/mage/cards/f/Fecundity.java index daa5ae176b8..c9935812cd8 100644 --- a/Mage.Sets/src/mage/cards/f/Fecundity.java +++ b/Mage.Sets/src/mage/cards/f/Fecundity.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Feebleness.java b/Mage.Sets/src/mage/cards/f/Feebleness.java index 2818f54028f..9ca3a05f2ab 100644 --- a/Mage.Sets/src/mage/cards/f/Feebleness.java +++ b/Mage.Sets/src/mage/cards/f/Feebleness.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -44,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/f/FeedTheClan.java b/Mage.Sets/src/mage/cards/f/FeedTheClan.java index e8c1f7368a2..6a99d626eaf 100644 --- a/Mage.Sets/src/mage/cards/f/FeedTheClan.java +++ b/Mage.Sets/src/mage/cards/f/FeedTheClan.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.condition.common.FerociousCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.GainLifeEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FeedThePack.java b/Mage.Sets/src/mage/cards/f/FeedThePack.java index 2706fed5d43..2a0395d4abd 100644 --- a/Mage.Sets/src/mage/cards/f/FeedThePack.java +++ b/Mage.Sets/src/mage/cards/f/FeedThePack.java @@ -27,15 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.TokenPredicate; @@ -46,6 +44,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/f/Feedback.java b/Mage.Sets/src/mage/cards/f/Feedback.java index 27f7892f25d..9b0cc938009 100644 --- a/Mage.Sets/src/mage/cards/f/Feedback.java +++ b/Mage.Sets/src/mage/cards/f/Feedback.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FeedbackBolt.java b/Mage.Sets/src/mage/cards/f/FeedbackBolt.java index 76d917a3ade..c44e8812aea 100644 --- a/Mage.Sets/src/mage/cards/f/FeedbackBolt.java +++ b/Mage.Sets/src/mage/cards/f/FeedbackBolt.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.common.FilterControlledArtifactPermanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FeedingFrenzy.java b/Mage.Sets/src/mage/cards/f/FeedingFrenzy.java index c23ed072755..00834c43c94 100644 --- a/Mage.Sets/src/mage/cards/f/FeedingFrenzy.java +++ b/Mage.Sets/src/mage/cards/f/FeedingFrenzy.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.Effect; @@ -40,6 +39,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author openSrcCoder diff --git a/Mage.Sets/src/mage/cards/f/FeelingOfDread.java b/Mage.Sets/src/mage/cards/f/FeelingOfDread.java index c94247b1bdb..ae0befc4c8a 100644 --- a/Mage.Sets/src/mage/cards/f/FeelingOfDread.java +++ b/Mage.Sets/src/mage/cards/f/FeelingOfDread.java @@ -27,17 +27,17 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TimingRule; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/f/FeldonOfTheThirdPath.java b/Mage.Sets/src/mage/cards/f/FeldonOfTheThirdPath.java index f3a6896a3b4..e71ca124be3 100644 --- a/Mage.Sets/src/mage/cards/f/FeldonOfTheThirdPath.java +++ b/Mage.Sets/src/mage/cards/f/FeldonOfTheThirdPath.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -43,6 +42,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.game.Game; @@ -50,6 +50,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,7 +60,7 @@ public class FeldonOfTheThirdPath extends CardImpl { public FeldonOfTheThirdPath(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Artificer"); diff --git a/Mage.Sets/src/mage/cards/f/FeldonsCane.java b/Mage.Sets/src/mage/cards/f/FeldonsCane.java index 3d04bd9ef37..5bb979b5bf7 100644 --- a/Mage.Sets/src/mage/cards/f/FeldonsCane.java +++ b/Mage.Sets/src/mage/cards/f/FeldonsCane.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.ExileSourceCost; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FelhideBrawler.java b/Mage.Sets/src/mage/cards/f/FelhideBrawler.java index e37d2111146..a8b97ba311a 100644 --- a/Mage.Sets/src/mage/cards/f/FelhideBrawler.java +++ b/Mage.Sets/src/mage/cards/f/FelhideBrawler.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FelhideMinotaur.java b/Mage.Sets/src/mage/cards/f/FelhideMinotaur.java index 6b67c5177b3..c455558988e 100644 --- a/Mage.Sets/src/mage/cards/f/FelhideMinotaur.java +++ b/Mage.Sets/src/mage/cards/f/FelhideMinotaur.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FelhidePetrifier.java b/Mage.Sets/src/mage/cards/f/FelhidePetrifier.java index 31ce541e296..a9452c97c1f 100644 --- a/Mage.Sets/src/mage/cards/f/FelhidePetrifier.java +++ b/Mage.Sets/src/mage/cards/f/FelhidePetrifier.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FelhideSpiritbinder.java b/Mage.Sets/src/mage/cards/f/FelhideSpiritbinder.java index 8da4e58b751..d7a81fd1806 100644 --- a/Mage.Sets/src/mage/cards/f/FelhideSpiritbinder.java +++ b/Mage.Sets/src/mage/cards/f/FelhideSpiritbinder.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -49,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/FelidarCub.java b/Mage.Sets/src/mage/cards/f/FelidarCub.java index 978842c67cd..58f06019329 100644 --- a/Mage.Sets/src/mage/cards/f/FelidarCub.java +++ b/Mage.Sets/src/mage/cards/f/FelidarCub.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FelidarGuardian.java b/Mage.Sets/src/mage/cards/f/FelidarGuardian.java index 2cb2214b319..8349d96ac54 100644 --- a/Mage.Sets/src/mage/cards/f/FelidarGuardian.java +++ b/Mage.Sets/src/mage/cards/f/FelidarGuardian.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/FelidarSovereign.java b/Mage.Sets/src/mage/cards/f/FelidarSovereign.java index 1ff72345937..58e94ef6b21 100644 --- a/Mage.Sets/src/mage/cards/f/FelidarSovereign.java +++ b/Mage.Sets/src/mage/cards/f/FelidarSovereign.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TargetController; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbility; @@ -41,8 +38,12 @@ import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; import mage.game.Game; +import java.util.UUID; + /** * * @author Rafbill diff --git a/Mage.Sets/src/mage/cards/f/FelidarUmbra.java b/Mage.Sets/src/mage/cards/f/FelidarUmbra.java index 2e216046dad..e56f2e5aaea 100644 --- a/Mage.Sets/src/mage/cards/f/FelidarUmbra.java +++ b/Mage.Sets/src/mage/cards/f/FelidarUmbra.java @@ -27,11 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,10 +38,16 @@ import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.TotemArmorAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FellTheMighty.java b/Mage.Sets/src/mage/cards/f/FellTheMighty.java index 9676dfa4cb6..c03c261f52e 100644 --- a/Mage.Sets/src/mage/cards/f/FellTheMighty.java +++ b/Mage.Sets/src/mage/cards/f/FellTheMighty.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -40,6 +39,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FellwarStone.java b/Mage.Sets/src/mage/cards/f/FellwarStone.java index 57861384d23..ef86ae97475 100644 --- a/Mage.Sets/src/mage/cards/f/FellwarStone.java +++ b/Mage.Sets/src/mage/cards/f/FellwarStone.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.mana.AnyColorLandsProduceManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FemerefArchers.java b/Mage.Sets/src/mage/cards/f/FemerefArchers.java index c7e19a1ec61..d5ed739f100 100644 --- a/Mage.Sets/src/mage/cards/f/FemerefArchers.java +++ b/Mage.Sets/src/mage/cards/f/FemerefArchers.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,11 +35,14 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterAttackingCreature; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FemerefEnchantress.java b/Mage.Sets/src/mage/cards/f/FemerefEnchantress.java index 8ce9e8ae839..cbd55950fe7 100644 --- a/Mage.Sets/src/mage/cards/f/FemerefEnchantress.java +++ b/Mage.Sets/src/mage/cards/f/FemerefEnchantress.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.ZoneChangeAllTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterEnchantmentPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FemerefHealer.java b/Mage.Sets/src/mage/cards/f/FemerefHealer.java index 5347c92f030..10e7ecc4f62 100644 --- a/Mage.Sets/src/mage/cards/f/FemerefHealer.java +++ b/Mage.Sets/src/mage/cards/f/FemerefHealer.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FemerefKnight.java b/Mage.Sets/src/mage/cards/f/FemerefKnight.java index 3cdf00368b4..ad4ef216634 100644 --- a/Mage.Sets/src/mage/cards/f/FemerefKnight.java +++ b/Mage.Sets/src/mage/cards/f/FemerefKnight.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,9 +35,12 @@ import mage.abilities.keyword.FlankingAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FemerefScouts.java b/Mage.Sets/src/mage/cards/f/FemerefScouts.java index fdeaf38407c..55afedba86f 100644 --- a/Mage.Sets/src/mage/cards/f/FemerefScouts.java +++ b/Mage.Sets/src/mage/cards/f/FemerefScouts.java @@ -27,11 +27,12 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FenHauler.java b/Mage.Sets/src/mage/cards/f/FenHauler.java index 302982662c4..9716e7a9633 100644 --- a/Mage.Sets/src/mage/cards/f/FenHauler.java +++ b/Mage.Sets/src/mage/cards/f/FenHauler.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FenStalker.java b/Mage.Sets/src/mage/cards/f/FenStalker.java index 9279bf4aca7..2313147242b 100644 --- a/Mage.Sets/src/mage/cards/f/FenStalker.java +++ b/Mage.Sets/src/mage/cards/f/FenStalker.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.InvertCondition; @@ -44,6 +43,8 @@ import mage.filter.common.FilterControlledLandPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.TappedPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FencerClique.java b/Mage.Sets/src/mage/cards/f/FencerClique.java index 0bad67a90da..579c4e20f35 100644 --- a/Mage.Sets/src/mage/cards/f/FencerClique.java +++ b/Mage.Sets/src/mage/cards/f/FencerClique.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FencersMagemark.java b/Mage.Sets/src/mage/cards/f/FencersMagemark.java index 76d442d3b5b..b8e6beb3767 100644 --- a/Mage.Sets/src/mage/cards/f/FencersMagemark.java +++ b/Mage.Sets/src/mage/cards/f/FencersMagemark.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -38,17 +37,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.EnchantedPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Markedagain diff --git a/Mage.Sets/src/mage/cards/f/FencingAce.java b/Mage.Sets/src/mage/cards/f/FencingAce.java index c08009c6916..f36777ecbe5 100644 --- a/Mage.Sets/src/mage/cards/f/FencingAce.java +++ b/Mage.Sets/src/mage/cards/f/FencingAce.java @@ -27,11 +27,11 @@ */ package mage.cards.f; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DoubleStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/f/FendeepSummoner.java b/Mage.Sets/src/mage/cards/f/FendeepSummoner.java index eee40fc5357..c77aaa7e372 100644 --- a/Mage.Sets/src/mage/cards/f/FendeepSummoner.java +++ b/Mage.Sets/src/mage/cards/f/FendeepSummoner.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,6 +34,7 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; @@ -44,6 +42,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.Token; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * @author anonymous */ diff --git a/Mage.Sets/src/mage/cards/f/FeralAnimist.java b/Mage.Sets/src/mage/cards/f/FeralAnimist.java index bd356f1013e..33de11ea808 100644 --- a/Mage.Sets/src/mage/cards/f/FeralAnimist.java +++ b/Mage.Sets/src/mage/cards/f/FeralAnimist.java @@ -27,10 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -39,6 +35,11 @@ import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FeralContest.java b/Mage.Sets/src/mage/cards/f/FeralContest.java index fe7bf27895b..1e906016384 100644 --- a/Mage.Sets/src/mage/cards/f/FeralContest.java +++ b/Mage.Sets/src/mage/cards/f/FeralContest.java @@ -27,14 +27,12 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.RequirementEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; @@ -44,6 +42,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/FeralDeceiver.java b/Mage.Sets/src/mage/cards/f/FeralDeceiver.java index b62fe0fa351..86fc18f5cee 100644 --- a/Mage.Sets/src/mage/cards/f/FeralDeceiver.java +++ b/Mage.Sets/src/mage/cards/f/FeralDeceiver.java @@ -27,14 +27,9 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.abilities.common.FeralDeceiverAbility; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.abilities.common.FeralDeceiverAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -44,6 +39,11 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FeralHydra.java b/Mage.Sets/src/mage/cards/f/FeralHydra.java index acd1babf5d9..7d3549153ef 100644 --- a/Mage.Sets/src/mage/cards/f/FeralHydra.java +++ b/Mage.Sets/src/mage/cards/f/FeralHydra.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FeralIncarnation.java b/Mage.Sets/src/mage/cards/f/FeralIncarnation.java index a9eccdb7d6d..9417a96eb8a 100644 --- a/Mage.Sets/src/mage/cards/f/FeralIncarnation.java +++ b/Mage.Sets/src/mage/cards/f/FeralIncarnation.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.ConvokeAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.BeastToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FeralInstinct.java b/Mage.Sets/src/mage/cards/f/FeralInstinct.java index 690361189ff..cbbb8f69345 100644 --- a/Mage.Sets/src/mage/cards/f/FeralInstinct.java +++ b/Mage.Sets/src/mage/cards/f/FeralInstinct.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FeralInvocation.java b/Mage.Sets/src/mage/cards/f/FeralInvocation.java index 90f5ddef6d0..7bd0f861d8c 100644 --- a/Mage.Sets/src/mage/cards/f/FeralInvocation.java +++ b/Mage.Sets/src/mage/cards/f/FeralInvocation.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FeralKrushok.java b/Mage.Sets/src/mage/cards/f/FeralKrushok.java index 778618b1057..ad8b596fa54 100644 --- a/Mage.Sets/src/mage/cards/f/FeralKrushok.java +++ b/Mage.Sets/src/mage/cards/f/FeralKrushok.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FeralLightning.java b/Mage.Sets/src/mage/cards/f/FeralLightning.java index 2d159954f5e..88d312b03bf 100644 --- a/Mage.Sets/src/mage/cards/f/FeralLightning.java +++ b/Mage.Sets/src/mage/cards/f/FeralLightning.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; @@ -39,6 +38,8 @@ import mage.game.Game; import mage.game.permanent.token.ElementalToken; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FeralRidgewolf.java b/Mage.Sets/src/mage/cards/f/FeralRidgewolf.java index f15c627d8d5..8fc03e4f3ce 100644 --- a/Mage.Sets/src/mage/cards/f/FeralRidgewolf.java +++ b/Mage.Sets/src/mage/cards/f/FeralRidgewolf.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,9 +34,12 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/f/FeralShadow.java b/Mage.Sets/src/mage/cards/f/FeralShadow.java index ba08235dfb4..d20cb7b015b 100644 --- a/Mage.Sets/src/mage/cards/f/FeralShadow.java +++ b/Mage.Sets/src/mage/cards/f/FeralShadow.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FeralThallid.java b/Mage.Sets/src/mage/cards/f/FeralThallid.java index a9febd9bd64..9be4009d387 100644 --- a/Mage.Sets/src/mage/cards/f/FeralThallid.java +++ b/Mage.Sets/src/mage/cards/f/FeralThallid.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FeralThrowback.java b/Mage.Sets/src/mage/cards/f/FeralThrowback.java index 510b0f5df57..1ce4881748f 100644 --- a/Mage.Sets/src/mage/cards/f/FeralThrowback.java +++ b/Mage.Sets/src/mage/cards/f/FeralThrowback.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.AmplifyEffect; import mage.abilities.keyword.AmplifyAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FerociousCharge.java b/Mage.Sets/src/mage/cards/f/FerociousCharge.java index cb5be500079..31571b6339d 100644 --- a/Mage.Sets/src/mage/cards/f/FerociousCharge.java +++ b/Mage.Sets/src/mage/cards/f/FerociousCharge.java @@ -27,15 +27,16 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FerocityOfTheUnderworld.java b/Mage.Sets/src/mage/cards/f/FerocityOfTheUnderworld.java index 4826688db2f..c24504a8618 100644 --- a/Mage.Sets/src/mage/cards/f/FerocityOfTheUnderworld.java +++ b/Mage.Sets/src/mage/cards/f/FerocityOfTheUnderworld.java @@ -27,7 +27,7 @@ */ package mage.cards.f; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.effects.common.CopyTargetSpellEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -35,7 +35,6 @@ import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.FilterSpell; import mage.filter.common.FilterNonlandPermanent; import mage.filter.predicate.Predicates; @@ -45,6 +44,8 @@ import mage.target.TargetSpell; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetNonlandPermanent; +import java.util.UUID; + /** * * @author Styxo @@ -55,7 +56,7 @@ public class FerocityOfTheUnderworld extends CardImpl { private static final FilterSpell filterMode2 = new FilterSpell("instant or sorcery spell"); static { - filterMode1.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filterMode1.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); filterMode2.add(Predicates.or(new CardTypePredicate(CardType.INSTANT), new CardTypePredicate(CardType.SORCERY))); } diff --git a/Mage.Sets/src/mage/cards/f/FerozsBan.java b/Mage.Sets/src/mage/cards/f/FerozsBan.java index 4662626fc42..629a3c7aa26 100644 --- a/Mage.Sets/src/mage/cards/f/FerozsBan.java +++ b/Mage.Sets/src/mage/cards/f/FerozsBan.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.cost.SpellsCostIncreasementAllEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/Ferropede.java b/Mage.Sets/src/mage/cards/f/Ferropede.java index d51fdc01be4..eb7117b12c1 100644 --- a/Mage.Sets/src/mage/cards/f/Ferropede.java +++ b/Mage.Sets/src/mage/cards/f/Ferropede.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/Ferrovore.java b/Mage.Sets/src/mage/cards/f/Ferrovore.java index a01026afd1c..0ef0a5bf196 100644 --- a/Mage.Sets/src/mage/cards/f/Ferrovore.java +++ b/Mage.Sets/src/mage/cards/f/Ferrovore.java @@ -28,10 +28,6 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,10 +36,15 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FertileGround.java b/Mage.Sets/src/mage/cards/f/FertileGround.java index 6dc49e8bc25..67fa7b2204f 100644 --- a/Mage.Sets/src/mage/cards/f/FertileGround.java +++ b/Mage.Sets/src/mage/cards/f/FertileGround.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.common.AddManaAnyColorAttachedControllerEffect; import mage.abilities.effects.common.AttachEffect; @@ -46,6 +45,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FertileThicket.java b/Mage.Sets/src/mage/cards/f/FertileThicket.java index dbd373c4be4..653c9a3c272 100644 --- a/Mage.Sets/src/mage/cards/f/FertileThicket.java +++ b/Mage.Sets/src/mage/cards/f/FertileThicket.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Fertilid.java b/Mage.Sets/src/mage/cards/f/Fertilid.java index c75de9ace93..f5da87c7084 100644 --- a/Mage.Sets/src/mage/cards/f/Fertilid.java +++ b/Mage.Sets/src/mage/cards/f/Fertilid.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -45,6 +44,8 @@ import mage.filter.common.FilterBasicLandCard; import mage.target.TargetPlayer; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/f/FerventCathar.java b/Mage.Sets/src/mage/cards/f/FerventCathar.java index da6c015e544..1e92afb33d3 100644 --- a/Mage.Sets/src/mage/cards/f/FerventCathar.java +++ b/Mage.Sets/src/mage/cards/f/FerventCathar.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/f/FerventCharge.java b/Mage.Sets/src/mage/cards/f/FerventCharge.java index 61cd7e415ed..7550e1548a3 100644 --- a/Mage.Sets/src/mage/cards/f/FerventCharge.java +++ b/Mage.Sets/src/mage/cards/f/FerventCharge.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.AttacksCreatureYouControlTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FerventDenial.java b/Mage.Sets/src/mage/cards/f/FerventDenial.java index 8074f0876c5..18ad51c3d39 100644 --- a/Mage.Sets/src/mage/cards/f/FerventDenial.java +++ b/Mage.Sets/src/mage/cards/f/FerventDenial.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.keyword.FlashbackAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.TimingRule; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/f/Fervor.java b/Mage.Sets/src/mage/cards/f/Fervor.java index bfa4b38af58..e13f38eb07c 100644 --- a/Mage.Sets/src/mage/cards/f/Fervor.java +++ b/Mage.Sets/src/mage/cards/f/Fervor.java @@ -27,17 +27,18 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/Festercreep.java b/Mage.Sets/src/mage/cards/f/Festercreep.java index b5c541f7949..72aab3475b3 100644 --- a/Mage.Sets/src/mage/cards/f/Festercreep.java +++ b/Mage.Sets/src/mage/cards/f/Festercreep.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FesterhideBoar.java b/Mage.Sets/src/mage/cards/f/FesterhideBoar.java index 9ab90e01075..d294d750852 100644 --- a/Mage.Sets/src/mage/cards/f/FesterhideBoar.java +++ b/Mage.Sets/src/mage/cards/f/FesterhideBoar.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.MorbidCondition; @@ -37,8 +35,11 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FesteringEvil.java b/Mage.Sets/src/mage/cards/f/FesteringEvil.java index 713341a8264..05cd983dff6 100644 --- a/Mage.Sets/src/mage/cards/f/FesteringEvil.java +++ b/Mage.Sets/src/mage/cards/f/FesteringEvil.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FesteringGoblin.java b/Mage.Sets/src/mage/cards/f/FesteringGoblin.java index b6dcbad68f1..a77eb20278c 100644 --- a/Mage.Sets/src/mage/cards/f/FesteringGoblin.java +++ b/Mage.Sets/src/mage/cards/f/FesteringGoblin.java @@ -27,18 +27,18 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FesteringMarch.java b/Mage.Sets/src/mage/cards/f/FesteringMarch.java index 59aa0f77dbc..e74fa98a870 100644 --- a/Mage.Sets/src/mage/cards/f/FesteringMarch.java +++ b/Mage.Sets/src/mage/cards/f/FesteringMarch.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.Effect; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FesteringMummy.java b/Mage.Sets/src/mage/cards/f/FesteringMummy.java new file mode 100644 index 00000000000..4e929b8dd4c --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/FesteringMummy.java @@ -0,0 +1,68 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.f; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.counters.CounterType; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author Styxo + */ +public class FesteringMummy extends CardImpl { + + public FesteringMummy(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}"); + + this.subtype.add("Zombie"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // When Festering Mummy dies, you may put a -1/-1 counter on target creature. + Ability ability = new DiesTriggeredAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance()), true); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public FesteringMummy(final FesteringMummy card) { + super(card); + } + + @Override + public FesteringMummy copy() { + return new FesteringMummy(this); + } +} diff --git a/Mage.Sets/src/mage/cards/f/FesteringNewt.java b/Mage.Sets/src/mage/cards/f/FesteringNewt.java index 1efc5054934..5f9f6f80860 100644 --- a/Mage.Sets/src/mage/cards/f/FesteringNewt.java +++ b/Mage.Sets/src/mage/cards/f/FesteringNewt.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -46,6 +45,8 @@ import mage.filter.predicate.mageobject.NamePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Festival.java b/Mage.Sets/src/mage/cards/f/Festival.java index 51550430174..d86d3161cc1 100644 --- a/Mage.Sets/src/mage/cards/f/Festival.java +++ b/Mage.Sets/src/mage/cards/f/Festival.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.CastOnlyDuringPhaseStepSourceAbility; import mage.abilities.condition.common.OnOpponentsTurnCondition; import mage.abilities.effects.common.combat.CantAttackAnyPlayerAllEffect; @@ -38,6 +37,8 @@ import mage.constants.Duration; import mage.constants.PhaseStep; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/f/FestivalOfTheGuildpact.java b/Mage.Sets/src/mage/cards/f/FestivalOfTheGuildpact.java index 04bc51ce390..2b5890b7066 100644 --- a/Mage.Sets/src/mage/cards/f/FestivalOfTheGuildpact.java +++ b/Mage.Sets/src/mage/cards/f/FestivalOfTheGuildpact.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.PreventDamageToControllerEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FestivalOfTrokin.java b/Mage.Sets/src/mage/cards/f/FestivalOfTrokin.java index 83bc0a8ea5e..4788b8f5b78 100644 --- a/Mage.Sets/src/mage/cards/f/FestivalOfTrokin.java +++ b/Mage.Sets/src/mage/cards/f/FestivalOfTrokin.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.GainLifeEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FetidHeath.java b/Mage.Sets/src/mage/cards/f/FetidHeath.java index 3bcb3b27957..1c9028ae98a 100644 --- a/Mage.Sets/src/mage/cards/f/FetidHeath.java +++ b/Mage.Sets/src/mage/cards/f/FetidHeath.java @@ -28,8 +28,6 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.Mana; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,8 +35,11 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FetidHorror.java b/Mage.Sets/src/mage/cards/f/FetidHorror.java index 053a66bba09..3d4fecb2765 100644 --- a/Mage.Sets/src/mage/cards/f/FetidHorror.java +++ b/Mage.Sets/src/mage/cards/f/FetidHorror.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; @@ -39,6 +38,8 @@ import mage.constants.ColoredManaSymbol; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author djbrez diff --git a/Mage.Sets/src/mage/cards/f/FetidImp.java b/Mage.Sets/src/mage/cards/f/FetidImp.java index be9ce03d5d8..1d06138a219 100644 --- a/Mage.Sets/src/mage/cards/f/FetidImp.java +++ b/Mage.Sets/src/mage/cards/f/FetidImp.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FetidPools.java b/Mage.Sets/src/mage/cards/f/FetidPools.java new file mode 100644 index 00000000000..6e8a7a2a552 --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/FetidPools.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.f; + +import java.util.UUID; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.CyclingAbility; +import mage.abilities.mana.BlackManaAbility; +import mage.abilities.mana.BlueManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class FetidPools extends CardImpl { + + public FetidPools(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + this.subtype.add("Island"); + this.subtype.add("Swamp"); + + // ({T}: Add {U} or {B} to your mana pool.) + this.addAbility(new BlueManaAbility()); + this.addAbility(new BlackManaAbility()); + + // Fetid Pools enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + + } + + public FetidPools(final FetidPools card) { + super(card); + } + + @Override + public FetidPools copy() { + return new FetidPools(this); + } +} diff --git a/Mage.Sets/src/mage/cards/f/Fettergeist.java b/Mage.Sets/src/mage/cards/f/Fettergeist.java index 3a1571264ab..70f2aad0f64 100644 --- a/Mage.Sets/src/mage/cards/f/Fettergeist.java +++ b/Mage.Sets/src/mage/cards/f/Fettergeist.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -37,6 +36,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; import mage.filter.common.FilterControlledCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/f/FeudkillersVerdict.java b/Mage.Sets/src/mage/cards/f/FeudkillersVerdict.java index 71d6a9269ae..14f3b69439b 100644 --- a/Mage.Sets/src/mage/cards/f/FeudkillersVerdict.java +++ b/Mage.Sets/src/mage/cards/f/FeudkillersVerdict.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FeverCharm.java b/Mage.Sets/src/mage/cards/f/FeverCharm.java index 2988d7321b3..ccf23f0ae65 100644 --- a/Mage.Sets/src/mage/cards/f/FeverCharm.java +++ b/Mage.Sets/src/mage/cards/f/FeverCharm.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FeveredConvulsions.java b/Mage.Sets/src/mage/cards/f/FeveredConvulsions.java index 18690f8a92b..e3545c2efd4 100644 --- a/Mage.Sets/src/mage/cards/f/FeveredConvulsions.java +++ b/Mage.Sets/src/mage/cards/f/FeveredConvulsions.java @@ -27,19 +27,19 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FeveredStrength.java b/Mage.Sets/src/mage/cards/f/FeveredStrength.java index 1fc93fabcfd..74e4aa16d41 100644 --- a/Mage.Sets/src/mage/cards/f/FeveredStrength.java +++ b/Mage.Sets/src/mage/cards/f/FeveredStrength.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FeveredVisions.java b/Mage.Sets/src/mage/cards/f/FeveredVisions.java index 68df6d43e92..a8fa4647389 100644 --- a/Mage.Sets/src/mage/cards/f/FeveredVisions.java +++ b/Mage.Sets/src/mage/cards/f/FeveredVisions.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -40,6 +38,9 @@ import mage.constants.TargetController; import mage.game.Game; import mage.players.Player; +import java.util.Set; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FibrousEntangler.java b/Mage.Sets/src/mage/cards/f/FibrousEntangler.java index efd7bd7d4ad..3b5bd1ae31f 100644 --- a/Mage.Sets/src/mage/cards/f/FibrousEntangler.java +++ b/Mage.Sets/src/mage/cards/f/FibrousEntangler.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CanBlockAdditionalCreatureEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FiddleheadKami.java b/Mage.Sets/src/mage/cards/f/FiddleheadKami.java index 202d30c299c..510cf6e3571 100644 --- a/Mage.Sets/src/mage/cards/f/FiddleheadKami.java +++ b/Mage.Sets/src/mage/cards/f/FiddleheadKami.java @@ -27,15 +27,16 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.RegenerateSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterSpiritOrArcaneCard; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FieldCreeper.java b/Mage.Sets/src/mage/cards/f/FieldCreeper.java index ac4f4922bc0..c5bb7c77676 100644 --- a/Mage.Sets/src/mage/cards/f/FieldCreeper.java +++ b/Mage.Sets/src/mage/cards/f/FieldCreeper.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/f/FieldMarshal.java b/Mage.Sets/src/mage/cards/f/FieldMarshal.java index a204bf37268..a592803062c 100644 --- a/Mage.Sets/src/mage/cards/f/FieldMarshal.java +++ b/Mage.Sets/src/mage/cards/f/FieldMarshal.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; @@ -37,11 +34,14 @@ import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * @author anonymous */ diff --git a/Mage.Sets/src/mage/cards/f/FieldOfDreams.java b/Mage.Sets/src/mage/cards/f/FieldOfDreams.java index 452632f77cf..969f93b59ea 100644 --- a/Mage.Sets/src/mage/cards/f/FieldOfDreams.java +++ b/Mage.Sets/src/mage/cards/f/FieldOfDreams.java @@ -27,14 +27,16 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.PlayWithTheTopCardRevealedEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox @@ -43,7 +45,7 @@ public class FieldOfDreams extends CardImpl { public FieldOfDreams(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{U}"); - this.supertype.add("World"); + addSuperType(SuperType.WORLD); // Players play with the top card of their libraries revealed. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new PlayWithTheTopCardRevealedEffect(true))); diff --git a/Mage.Sets/src/mage/cards/f/FieldOfReality.java b/Mage.Sets/src/mage/cards/f/FieldOfReality.java index cb0ea8f996c..e2a6c49c5cf 100644 --- a/Mage.Sets/src/mage/cards/f/FieldOfReality.java +++ b/Mage.Sets/src/mage/cards/f/FieldOfReality.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,15 +36,13 @@ import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesAttachedEffe import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author LevelX */ diff --git a/Mage.Sets/src/mage/cards/f/FieldOfSouls.java b/Mage.Sets/src/mage/cards/f/FieldOfSouls.java index bb47ef9e0d1..0fd0fa306bf 100644 --- a/Mage.Sets/src/mage/cards/f/FieldOfSouls.java +++ b/Mage.Sets/src/mage/cards/f/FieldOfSouls.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; @@ -40,6 +39,8 @@ import mage.filter.predicate.other.OwnerPredicate; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.permanent.token.SpiritWhiteToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FieldSurgeon.java b/Mage.Sets/src/mage/cards/f/FieldSurgeon.java index 9ae2f533287..31377557b54 100644 --- a/Mage.Sets/src/mage/cards/f/FieldSurgeon.java +++ b/Mage.Sets/src/mage/cards/f/FieldSurgeon.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FieldmistBorderpost.java b/Mage.Sets/src/mage/cards/f/FieldmistBorderpost.java index 3c63c095dd8..e49d804f581 100644 --- a/Mage.Sets/src/mage/cards/f/FieldmistBorderpost.java +++ b/Mage.Sets/src/mage/cards/f/FieldmistBorderpost.java @@ -28,9 +28,7 @@ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; @@ -39,11 +37,15 @@ import mage.abilities.mana.BlueManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki @@ -53,7 +55,7 @@ public class FieldmistBorderpost extends CardImpl { private static final FilterControlledPermanent filter = new FilterControlledLandPermanent("a basic land"); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public FieldmistBorderpost (UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/f/FiendBinder.java b/Mage.Sets/src/mage/cards/f/FiendBinder.java index 8a8f74b0425..91cff5f2815 100644 --- a/Mage.Sets/src/mage/cards/f/FiendBinder.java +++ b/Mage.Sets/src/mage/cards/f/FiendBinder.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -40,6 +39,8 @@ import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FiendHunter.java b/Mage.Sets/src/mage/cards/f/FiendHunter.java index 464ab58be7c..1fd2442f24c 100644 --- a/Mage.Sets/src/mage/cards/f/FiendHunter.java +++ b/Mage.Sets/src/mage/cards/f/FiendHunter.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,12 +35,15 @@ import mage.abilities.effects.common.ExileTargetForSourceEffect; import mage.abilities.effects.common.ReturnFromExileForSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/f/FiendOfTheShadows.java b/Mage.Sets/src/mage/cards/f/FiendOfTheShadows.java index 4ea662db956..de213d45214 100644 --- a/Mage.Sets/src/mage/cards/f/FiendOfTheShadows.java +++ b/Mage.Sets/src/mage/cards/f/FiendOfTheShadows.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -48,6 +47,8 @@ import mage.game.ExileZone; import mage.game.Game; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/f/FiendslayerPaladin.java b/Mage.Sets/src/mage/cards/f/FiendslayerPaladin.java index 567bf435177..1b8a61a9184 100644 --- a/Mage.Sets/src/mage/cards/f/FiendslayerPaladin.java +++ b/Mage.Sets/src/mage/cards/f/FiendslayerPaladin.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -46,6 +45,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.game.stack.StackObject; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/FierceEmpath.java b/Mage.Sets/src/mage/cards/f/FierceEmpath.java index 4a476ee0182..3465547d763 100644 --- a/Mage.Sets/src/mage/cards/f/FierceEmpath.java +++ b/Mage.Sets/src/mage/cards/f/FierceEmpath.java @@ -27,18 +27,19 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -47,7 +48,7 @@ public class FierceEmpath extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("a creature card with converted mana cost 6 or greater"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 5)); } public FierceEmpath(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); diff --git a/Mage.Sets/src/mage/cards/f/FierceInvocation.java b/Mage.Sets/src/mage/cards/f/FierceInvocation.java index f44abaa3d4d..86854301fb6 100644 --- a/Mage.Sets/src/mage/cards/f/FierceInvocation.java +++ b/Mage.Sets/src/mage/cards/f/FierceInvocation.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; @@ -44,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FieryBombardment.java b/Mage.Sets/src/mage/cards/f/FieryBombardment.java index a7c51fa2b13..38b1df72f04 100644 --- a/Mage.Sets/src/mage/cards/f/FieryBombardment.java +++ b/Mage.Sets/src/mage/cards/f/FieryBombardment.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.Cost; @@ -46,6 +45,8 @@ import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/FieryConclusion.java b/Mage.Sets/src/mage/cards/f/FieryConclusion.java index d087cd0b956..dc4916faa8d 100644 --- a/Mage.Sets/src/mage/cards/f/FieryConclusion.java +++ b/Mage.Sets/src/mage/cards/f/FieryConclusion.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FieryConfluence.java b/Mage.Sets/src/mage/cards/f/FieryConfluence.java index c9bb9517a8a..e0823a57a98 100644 --- a/Mage.Sets/src/mage/cards/f/FieryConfluence.java +++ b/Mage.Sets/src/mage/cards/f/FieryConfluence.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.effects.common.DamagePlayersEffect; @@ -39,6 +38,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FieryFall.java b/Mage.Sets/src/mage/cards/f/FieryFall.java index b7e4be55f44..06ada76b9ee 100644 --- a/Mage.Sets/src/mage/cards/f/FieryFall.java +++ b/Mage.Sets/src/mage/cards/f/FieryFall.java @@ -28,15 +28,16 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.BasicLandcyclingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FieryGambit.java b/Mage.Sets/src/mage/cards/f/FieryGambit.java index ec7858b2d34..7bbd3dcc3ee 100644 --- a/Mage.Sets/src/mage/cards/f/FieryGambit.java +++ b/Mage.Sets/src/mage/cards/f/FieryGambit.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -43,6 +42,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FieryHellhound.java b/Mage.Sets/src/mage/cards/f/FieryHellhound.java index e1882798ae2..f9b984e50b8 100644 --- a/Mage.Sets/src/mage/cards/f/FieryHellhound.java +++ b/Mage.Sets/src/mage/cards/f/FieryHellhound.java @@ -28,16 +28,17 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FieryImpulse.java b/Mage.Sets/src/mage/cards/f/FieryImpulse.java index e848725aa15..c0eff83ebd9 100644 --- a/Mage.Sets/src/mage/cards/f/FieryImpulse.java +++ b/Mage.Sets/src/mage/cards/f/FieryImpulse.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.condition.common.SpellMasteryCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DamageTargetEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FieryJustice.java b/Mage.Sets/src/mage/cards/f/FieryJustice.java index 18b279736a2..1e6a822d2fa 100644 --- a/Mage.Sets/src/mage/cards/f/FieryJustice.java +++ b/Mage.Sets/src/mage/cards/f/FieryJustice.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageMultiEffect; import mage.abilities.effects.common.GainLifeTargetEffect; @@ -38,6 +37,8 @@ import mage.target.common.TargetCreatureOrPlayerAmount; import mage.target.common.TargetOpponent; import mage.target.targetpointer.SecondTargetPointer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FieryMantle.java b/Mage.Sets/src/mage/cards/f/FieryMantle.java index 161fcf3fdf6..c664b1c0d6f 100644 --- a/Mage.Sets/src/mage/cards/f/FieryMantle.java +++ b/Mage.Sets/src/mage/cards/f/FieryMantle.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -38,14 +37,12 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FieryTemper.java b/Mage.Sets/src/mage/cards/f/FieryTemper.java index 8f7401b8436..83efceef299 100644 --- a/Mage.Sets/src/mage/cards/f/FieryTemper.java +++ b/Mage.Sets/src/mage/cards/f/FieryTemper.java @@ -27,12 +27,12 @@ */ package mage.cards.f; -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.MadnessAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/f/FightToTheDeath.java b/Mage.Sets/src/mage/cards/f/FightToTheDeath.java index be38a63b2bd..5cdb22ffaad 100644 --- a/Mage.Sets/src/mage/cards/f/FightToTheDeath.java +++ b/Mage.Sets/src/mage/cards/f/FightToTheDeath.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -37,6 +36,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.BlockedPredicate; import mage.filter.predicate.permanent.BlockingPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/FightingDrake.java b/Mage.Sets/src/mage/cards/f/FightingDrake.java index 1cd664393bd..c4ac924d429 100644 --- a/Mage.Sets/src/mage/cards/f/FightingDrake.java +++ b/Mage.Sets/src/mage/cards/f/FightingDrake.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FigureOfDestiny.java b/Mage.Sets/src/mage/cards/f/FigureOfDestiny.java index cbae20c4e5f..1a7b5e05182 100644 --- a/Mage.Sets/src/mage/cards/f/FigureOfDestiny.java +++ b/Mage.Sets/src/mage/cards/f/FigureOfDestiny.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.condition.LockedInCondition; @@ -46,6 +45,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FiligreeAngel.java b/Mage.Sets/src/mage/cards/f/FiligreeAngel.java index b230783c704..8cdddedd393 100644 --- a/Mage.Sets/src/mage/cards/f/FiligreeAngel.java +++ b/Mage.Sets/src/mage/cards/f/FiligreeAngel.java @@ -28,9 +28,6 @@ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +35,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledPermanent; @@ -45,6 +43,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FiligreeCrawler.java b/Mage.Sets/src/mage/cards/f/FiligreeCrawler.java index d80d478497d..c2dc259cccd 100644 --- a/Mage.Sets/src/mage/cards/f/FiligreeCrawler.java +++ b/Mage.Sets/src/mage/cards/f/FiligreeCrawler.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.ThopterColorlessToken; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/FiligreeFamiliar.java b/Mage.Sets/src/mage/cards/f/FiligreeFamiliar.java index 9f346ab8aa7..4e142f69811 100644 --- a/Mage.Sets/src/mage/cards/f/FiligreeFamiliar.java +++ b/Mage.Sets/src/mage/cards/f/FiligreeFamiliar.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FiligreeFracture.java b/Mage.Sets/src/mage/cards/f/FiligreeFracture.java index b56c100d113..0ca22a469f5 100644 --- a/Mage.Sets/src/mage/cards/f/FiligreeFracture.java +++ b/Mage.Sets/src/mage/cards/f/FiligreeFracture.java @@ -27,21 +27,22 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FiligreeSages.java b/Mage.Sets/src/mage/cards/f/FiligreeSages.java index aa8023959fb..c0cc77616d7 100644 --- a/Mage.Sets/src/mage/cards/f/FiligreeSages.java +++ b/Mage.Sets/src/mage/cards/f/FiligreeSages.java @@ -28,9 +28,6 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,10 +35,14 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.UntapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FillWithFright.java b/Mage.Sets/src/mage/cards/f/FillWithFright.java index 72e6fa33e21..622b8439e9b 100644 --- a/Mage.Sets/src/mage/cards/f/FillWithFright.java +++ b/Mage.Sets/src/mage/cards/f/FillWithFright.java @@ -27,14 +27,15 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.effects.common.discard.DiscardTargetEffect; +import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/Filth.java b/Mage.Sets/src/mage/cards/f/Filth.java index a7406de7066..575f65a13c0 100644 --- a/Mage.Sets/src/mage/cards/f/Filth.java +++ b/Mage.Sets/src/mage/cards/f/Filth.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -38,6 +36,7 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.SwampwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; @@ -45,6 +44,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/f/FilthyCur.java b/Mage.Sets/src/mage/cards/f/FilthyCur.java index 6b4be753d04..1fb134af14d 100644 --- a/Mage.Sets/src/mage/cards/f/FilthyCur.java +++ b/Mage.Sets/src/mage/cards/f/FilthyCur.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/f/FinalFortune.java b/Mage.Sets/src/mage/cards/f/FinalFortune.java index efca6727105..930e389999c 100644 --- a/Mage.Sets/src/mage/cards/f/FinalFortune.java +++ b/Mage.Sets/src/mage/cards/f/FinalFortune.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.turn.AddExtraTurnControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/FinalIteration.java b/Mage.Sets/src/mage/cards/f/FinalIteration.java index d151a1d28ff..47404474c2a 100644 --- a/Mage.Sets/src/mage/cards/f/FinalIteration.java +++ b/Mage.Sets/src/mage/cards/f/FinalIteration.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -51,6 +50,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.permanent.token.HumanWizardToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FinalJudgment.java b/Mage.Sets/src/mage/cards/f/FinalJudgment.java index 32764221f9e..331ef845263 100644 --- a/Mage.Sets/src/mage/cards/f/FinalJudgment.java +++ b/Mage.Sets/src/mage/cards/f/FinalJudgment.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.ExileAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FinalPunishment.java b/Mage.Sets/src/mage/cards/f/FinalPunishment.java index 33f9643b669..add38726130 100644 --- a/Mage.Sets/src/mage/cards/f/FinalPunishment.java +++ b/Mage.Sets/src/mage/cards/f/FinalPunishment.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; @@ -39,6 +38,8 @@ import mage.game.Game; import mage.target.TargetPlayer; import mage.watchers.common.AmountOfDamageAPlayerReceivedThisTurnWatcher; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FinalRevels.java b/Mage.Sets/src/mage/cards/f/FinalRevels.java index fad298c5d05..4866a014007 100644 --- a/Mage.Sets/src/mage/cards/f/FinalRevels.java +++ b/Mage.Sets/src/mage/cards/f/FinalRevels.java @@ -27,11 +27,11 @@ */ package mage.cards.f; -import mage.constants.CardType; import mage.abilities.Mode; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/f/FinalReward.java b/Mage.Sets/src/mage/cards/f/FinalReward.java new file mode 100644 index 00000000000..5344a98e3ec --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/FinalReward.java @@ -0,0 +1,59 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.f; + +import java.util.UUID; +import mage.abilities.effects.common.ExileTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class FinalReward extends CardImpl { + + public FinalReward(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{4}{B}"); + + // Exile target creature. + getSpellAbility().addEffect(new ExileTargetEffect()); + getSpellAbility().addTarget(new TargetCreaturePermanent()); + } + + public FinalReward(final FinalReward card) { + super(card); + } + + @Override + public FinalReward copy() { + return new FinalReward(this); + } +} diff --git a/Mage.Sets/src/mage/cards/f/FinalStingFaerie.java b/Mage.Sets/src/mage/cards/f/FinalStingFaerie.java index c9e63f14745..7467028140b 100644 --- a/Mage.Sets/src/mage/cards/f/FinalStingFaerie.java +++ b/Mage.Sets/src/mage/cards/f/FinalStingFaerie.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,6 +39,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FinalStrike.java b/Mage.Sets/src/mage/cards/f/FinalStrike.java index 3a1fdbe7b28..068c3adf73c 100644 --- a/Mage.Sets/src/mage/cards/f/FinalStrike.java +++ b/Mage.Sets/src/mage/cards/f/FinalStrike.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.dynamicvalue.common.SacrificeCostCreaturesPower; import mage.abilities.effects.Effect; @@ -39,6 +38,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FinestHour.java b/Mage.Sets/src/mage/cards/f/FinestHour.java index a1efbcbeb76..b5f9b0be6cb 100644 --- a/Mage.Sets/src/mage/cards/f/FinestHour.java +++ b/Mage.Sets/src/mage/cards/f/FinestHour.java @@ -28,7 +28,6 @@ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -47,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.game.turn.TurnMod; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/f/FireAmbush.java b/Mage.Sets/src/mage/cards/f/FireAmbush.java index e5f6abd191e..8311b297204 100644 --- a/Mage.Sets/src/mage/cards/f/FireAmbush.java +++ b/Mage.Sets/src/mage/cards/f/FireAmbush.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FireAnts.java b/Mage.Sets/src/mage/cards/f/FireAnts.java index 7a89f681fb7..720a404bb51 100644 --- a/Mage.Sets/src/mage/cards/f/FireAnts.java +++ b/Mage.Sets/src/mage/cards/f/FireAnts.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -42,6 +41,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FireAtWill.java b/Mage.Sets/src/mage/cards/f/FireAtWill.java index 91856964581..b87603cb27b 100644 --- a/Mage.Sets/src/mage/cards/f/FireAtWill.java +++ b/Mage.Sets/src/mage/cards/f/FireAtWill.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DamageMultiEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -38,6 +37,8 @@ import mage.filter.predicate.permanent.AttackingPredicate; import mage.filter.predicate.permanent.BlockingPredicate; import mage.target.common.TargetCreaturePermanentAmount; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/FireBellyChangeling.java b/Mage.Sets/src/mage/cards/f/FireBellyChangeling.java index 08844565a83..444b8a37b21 100644 --- a/Mage.Sets/src/mage/cards/f/FireBellyChangeling.java +++ b/Mage.Sets/src/mage/cards/f/FireBellyChangeling.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author FenrisulfrX diff --git a/Mage.Sets/src/mage/cards/f/FireBowman.java b/Mage.Sets/src/mage/cards/f/FireBowman.java index 124ceb3768d..726dcf7d648 100644 --- a/Mage.Sets/src/mage/cards/f/FireBowman.java +++ b/Mage.Sets/src/mage/cards/f/FireBowman.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes @@ -56,7 +57,7 @@ public class FireBowman extends CardImpl { // Sacrifice Fire Bowman: Fire Bowman deals 1 damage to target creature or player. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new DamageTargetEffect(1), new SacrificeSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new DamageTargetEffect(1), new SacrificeSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCreatureOrPlayer()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/f/FireDiamond.java b/Mage.Sets/src/mage/cards/f/FireDiamond.java index 03257218452..2c3bb3d9a9a 100644 --- a/Mage.Sets/src/mage/cards/f/FireDiamond.java +++ b/Mage.Sets/src/mage/cards/f/FireDiamond.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/FireDragon.java b/Mage.Sets/src/mage/cards/f/FireDragon.java index 5c442824f95..a12edf7cd41 100644 --- a/Mage.Sets/src/mage/cards/f/FireDragon.java +++ b/Mage.Sets/src/mage/cards/f/FireDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FireDrake.java b/Mage.Sets/src/mage/cards/f/FireDrake.java index 83bad1e7308..83cdda52f7b 100644 --- a/Mage.Sets/src/mage/cards/f/FireDrake.java +++ b/Mage.Sets/src/mage/cards/f/FireDrake.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/FireElemental.java b/Mage.Sets/src/mage/cards/f/FireElemental.java index b3289844def..dcf6832e15d 100644 --- a/Mage.Sets/src/mage/cards/f/FireElemental.java +++ b/Mage.Sets/src/mage/cards/f/FireElemental.java @@ -27,11 +27,12 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FireFieldOgre.java b/Mage.Sets/src/mage/cards/f/FireFieldOgre.java index 4cd5655e106..5e304097e4b 100644 --- a/Mage.Sets/src/mage/cards/f/FireFieldOgre.java +++ b/Mage.Sets/src/mage/cards/f/FireFieldOgre.java @@ -27,14 +27,15 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; -import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.UnearthAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FireIce.java b/Mage.Sets/src/mage/cards/f/FireIce.java index 4f30e41ebc1..a704fa2cfc3 100644 --- a/Mage.Sets/src/mage/cards/f/FireIce.java +++ b/Mage.Sets/src/mage/cards/f/FireIce.java @@ -25,30 +25,24 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.f; import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageMultiEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.SpellAbilityType; import mage.target.TargetPermanent; import mage.target.common.TargetCreatureOrPlayerAmount; -/** - * - * @author LevelX2 - */ - - public class FireIce extends SplitCard { public FireIce(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{R}","{1}{U}",false); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{R}", "{1}{U}", SpellAbilityType.SPLIT); // Fire // Fire deals 2 damage divided as you choose among one or two target creatures and/or players. diff --git a/Mage.Sets/src/mage/cards/f/FireImp.java b/Mage.Sets/src/mage/cards/f/FireImp.java index ad5d25d926a..4c914834d9d 100644 --- a/Mage.Sets/src/mage/cards/f/FireImp.java +++ b/Mage.Sets/src/mage/cards/f/FireImp.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FireJuggler.java b/Mage.Sets/src/mage/cards/f/FireJuggler.java index 5e57056ff0d..a4404367c55 100644 --- a/Mage.Sets/src/mage/cards/f/FireJuggler.java +++ b/Mage.Sets/src/mage/cards/f/FireJuggler.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesBlockedTriggeredAbility; import mage.abilities.effects.common.DamageAllEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.permanent.BlockingAttackerIdPredicate; +import java.util.UUID; + /** * * @author BursegSardaukar diff --git a/Mage.Sets/src/mage/cards/f/FireLitThicket.java b/Mage.Sets/src/mage/cards/f/FireLitThicket.java index b61b728994d..df872a1ce0f 100644 --- a/Mage.Sets/src/mage/cards/f/FireLitThicket.java +++ b/Mage.Sets/src/mage/cards/f/FireLitThicket.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.Mana; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +34,10 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FireServant.java b/Mage.Sets/src/mage/cards/f/FireServant.java index 8b52c1977e8..fea0225efc8 100644 --- a/Mage.Sets/src/mage/cards/f/FireServant.java +++ b/Mage.Sets/src/mage/cards/f/FireServant.java @@ -28,7 +28,6 @@ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.stack.StackObject; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/f/FireSnake.java b/Mage.Sets/src/mage/cards/f/FireSnake.java index 3a4fad38d85..a6beebfdf11 100644 --- a/Mage.Sets/src/mage/cards/f/FireSnake.java +++ b/Mage.Sets/src/mage/cards/f/FireSnake.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FireSprites.java b/Mage.Sets/src/mage/cards/f/FireSprites.java index d6dad894708..6cfe20293c9 100644 --- a/Mage.Sets/src/mage/cards/f/FireSprites.java +++ b/Mage.Sets/src/mage/cards/f/FireSprites.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/f/FireTempest.java b/Mage.Sets/src/mage/cards/f/FireTempest.java index 116e2557e97..af3e03e3f3e 100644 --- a/Mage.Sets/src/mage/cards/f/FireTempest.java +++ b/Mage.Sets/src/mage/cards/f/FireTempest.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DamageEverythingEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author ilcartographer diff --git a/Mage.Sets/src/mage/cards/f/FireWhip.java b/Mage.Sets/src/mage/cards/f/FireWhip.java index e3a9cdbcb1a..dd08a420e04 100644 --- a/Mage.Sets/src/mage/cards/f/FireWhip.java +++ b/Mage.Sets/src/mage/cards/f/FireWhip.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,15 +38,13 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/Fireblast.java b/Mage.Sets/src/mage/cards/f/Fireblast.java index f09518baa4e..fecd1ee3154 100644 --- a/Mage.Sets/src/mage/cards/f/Fireblast.java +++ b/Mage.Sets/src/mage/cards/f/Fireblast.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.DamageTargetEffect; @@ -39,6 +38,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/Firebolt.java b/Mage.Sets/src/mage/cards/f/Firebolt.java index 10d787f2680..f47271065b9 100644 --- a/Mage.Sets/src/mage/cards/f/Firebolt.java +++ b/Mage.Sets/src/mage/cards/f/Firebolt.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.FlashbackAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.TimingRule; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/f/FirebrandRanger.java b/Mage.Sets/src/mage/cards/f/FirebrandRanger.java index e51956c04f0..d4e22a78c66 100644 --- a/Mage.Sets/src/mage/cards/f/FirebrandRanger.java +++ b/Mage.Sets/src/mage/cards/f/FirebrandRanger.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; @@ -48,6 +48,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author fireshoes @@ -82,7 +84,7 @@ class PutLandOnBattlefieldEffect extends OneShotEffect { private static final FilterCard filter = new FilterCard("basic land card"); static { - filter.add(Predicates.and(new CardTypePredicate(CardType.LAND), new SupertypePredicate("Basic"))); + filter.add(Predicates.and(new CardTypePredicate(CardType.LAND), new SupertypePredicate(SuperType.BASIC))); } private static final String choiceText = "Put a basic land card from your hand onto the battlefield?"; @@ -113,7 +115,6 @@ class PutLandOnBattlefieldEffect extends OneShotEffect { Card card = game.getCard(target.getFirstTarget()); if (card != null) { card.putOntoBattlefield(game, Zone.HAND, source.getSourceId(), source.getControllerId()); - return true; } } diff --git a/Mage.Sets/src/mage/cards/f/Firebreathing.java b/Mage.Sets/src/mage/cards/f/Firebreathing.java index 5ddbf61e338..c01e4f59a0e 100644 --- a/Mage.Sets/src/mage/cards/f/Firebreathing.java +++ b/Mage.Sets/src/mage/cards/f/Firebreathing.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; @@ -36,14 +35,12 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FirecatBlitz.java b/Mage.Sets/src/mage/cards/f/FirecatBlitz.java index a9be479a0c0..9e0e6216ca4 100644 --- a/Mage.Sets/src/mage/cards/f/FirecatBlitz.java +++ b/Mage.Sets/src/mage/cards/f/FirecatBlitz.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -54,6 +53,8 @@ import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/FiredrinkerSatyr.java b/Mage.Sets/src/mage/cards/f/FiredrinkerSatyr.java index cf96572ae41..5cd462f8b73 100644 --- a/Mage.Sets/src/mage/cards/f/FiredrinkerSatyr.java +++ b/Mage.Sets/src/mage/cards/f/FiredrinkerSatyr.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealtDamageToSourceTriggeredAbility; @@ -46,6 +45,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FirefiendElemental.java b/Mage.Sets/src/mage/cards/f/FirefiendElemental.java index f6a7f50cc30..817da848678 100644 --- a/Mage.Sets/src/mage/cards/f/FirefiendElemental.java +++ b/Mage.Sets/src/mage/cards/f/FirefiendElemental.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.RenownAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FirefistStriker.java b/Mage.Sets/src/mage/cards/f/FirefistStriker.java index 5e78d9f2442..e0774d8dee8 100644 --- a/Mage.Sets/src/mage/cards/f/FirefistStriker.java +++ b/Mage.Sets/src/mage/cards/f/FirefistStriker.java @@ -28,17 +28,18 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.combat.CantBlockTargetEffect; import mage.abilities.keyword.BattalionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Firefly.java b/Mage.Sets/src/mage/cards/f/Firefly.java index ea488445780..08369ba614e 100644 --- a/Mage.Sets/src/mage/cards/f/Firefly.java +++ b/Mage.Sets/src/mage/cards/f/Firefly.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; @@ -37,6 +34,12 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FireforgersPuzzleknot.java b/Mage.Sets/src/mage/cards/f/FireforgersPuzzleknot.java index 7b814d3ff6f..bd067bd7435 100644 --- a/Mage.Sets/src/mage/cards/f/FireforgersPuzzleknot.java +++ b/Mage.Sets/src/mage/cards/f/FireforgersPuzzleknot.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/FirefrightMage.java b/Mage.Sets/src/mage/cards/f/FirefrightMage.java index f0dd8881e31..89a02052e20 100644 --- a/Mage.Sets/src/mage/cards/f/FirefrightMage.java +++ b/Mage.Sets/src/mage/cards/f/FirefrightMage.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BursegSardaukar diff --git a/Mage.Sets/src/mage/cards/f/FirehoofCavalry.java b/Mage.Sets/src/mage/cards/f/FirehoofCavalry.java index cce833cf9cd..47270f820ef 100644 --- a/Mage.Sets/src/mage/cards/f/FirehoofCavalry.java +++ b/Mage.Sets/src/mage/cards/f/FirehoofCavalry.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/FiremaneAngel.java b/Mage.Sets/src/mage/cards/f/FiremaneAngel.java index 4d766e4b931..a172b2286f7 100644 --- a/Mage.Sets/src/mage/cards/f/FiremaneAngel.java +++ b/Mage.Sets/src/mage/cards/f/FiremaneAngel.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -48,6 +47,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.game.Game; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FiremaneAvenger.java b/Mage.Sets/src/mage/cards/f/FiremaneAvenger.java index 685b7e08c0b..0e7bdce1e31 100644 --- a/Mage.Sets/src/mage/cards/f/FiremaneAvenger.java +++ b/Mage.Sets/src/mage/cards/f/FiremaneAvenger.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.DamageTargetEffect; @@ -37,8 +35,11 @@ import mage.abilities.keyword.BattalionAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FiremantleMage.java b/Mage.Sets/src/mage/cards/f/FiremantleMage.java index 634130f610e..7857bd999a9 100644 --- a/Mage.Sets/src/mage/cards/f/FiremantleMage.java +++ b/Mage.Sets/src/mage/cards/f/FiremantleMage.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FiremawKavu.java b/Mage.Sets/src/mage/cards/f/FiremawKavu.java index 73d3f97d060..15c15de2d1c 100644 --- a/Mage.Sets/src/mage/cards/f/FiremawKavu.java +++ b/Mage.Sets/src/mage/cards/f/FiremawKavu.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FiremindsForesight.java b/Mage.Sets/src/mage/cards/f/FiremindsForesight.java index 4887ea76043..96fa659953e 100644 --- a/Mage.Sets/src/mage/cards/f/FiremindsForesight.java +++ b/Mage.Sets/src/mage/cards/f/FiremindsForesight.java @@ -27,19 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; - +import mage.abilities.Ability; +import mage.constants.ComparisonType; +import mage.abilities.effects.OneShotEffect; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; -import mage.abilities.Ability; -import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -47,6 +41,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -104,7 +100,7 @@ class FiremindsForesightSearchEffect extends OneShotEffect { for (int cmc=3; cmc > 0; cmc--) { FilterCard filter = new FilterCard("instant card with converted mana cost " + cmc); filter.add(new CardTypePredicate(CardType.INSTANT)); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, cmc)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, cmc)); cardsCount = cardsInLibrary.count(filter, game); diff --git a/Mage.Sets/src/mage/cards/f/FiresOfUndeath.java b/Mage.Sets/src/mage/cards/f/FiresOfUndeath.java index 225c1b19de3..35911ef2835 100644 --- a/Mage.Sets/src/mage/cards/f/FiresOfUndeath.java +++ b/Mage.Sets/src/mage/cards/f/FiresOfUndeath.java @@ -27,16 +27,17 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TimingRule; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TimingRule; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FiresOfYavimaya.java b/Mage.Sets/src/mage/cards/f/FiresOfYavimaya.java index 515756c2a02..757fe53051f 100644 --- a/Mage.Sets/src/mage/cards/f/FiresOfYavimaya.java +++ b/Mage.Sets/src/mage/cards/f/FiresOfYavimaya.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,10 +36,16 @@ import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki, nantuko diff --git a/Mage.Sets/src/mage/cards/f/Firescreamer.java b/Mage.Sets/src/mage/cards/f/Firescreamer.java index 52d3bec4981..fef62c4739a 100644 --- a/Mage.Sets/src/mage/cards/f/Firescreamer.java +++ b/Mage.Sets/src/mage/cards/f/Firescreamer.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author michael.napoleon@gmail.com diff --git a/Mage.Sets/src/mage/cards/f/Fireshrieker.java b/Mage.Sets/src/mage/cards/f/Fireshrieker.java index fea5f332f1b..2c0ca33a5be 100644 --- a/Mage.Sets/src/mage/cards/f/Fireshrieker.java +++ b/Mage.Sets/src/mage/cards/f/Fireshrieker.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Fireslinger.java b/Mage.Sets/src/mage/cards/f/Fireslinger.java index 9410e62e500..1effdb1583d 100644 --- a/Mage.Sets/src/mage/cards/f/Fireslinger.java +++ b/Mage.Sets/src/mage/cards/f/Fireslinger.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,12 @@ import mage.abilities.effects.common.DamageControllerEffect; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/Firespout.java b/Mage.Sets/src/mage/cards/f/Firespout.java index cbf6db7e979..699dc61fa9a 100644 --- a/Mage.Sets/src/mage/cards/f/Firespout.java +++ b/Mage.Sets/src/mage/cards/f/Firespout.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.condition.common.ManaWasSpentCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DamageAllEffect; @@ -42,6 +41,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.watchers.common.ManaSpentToCastWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FirestormHellkite.java b/Mage.Sets/src/mage/cards/f/FirestormHellkite.java index 0215fc29e7d..1fb8fe1813f 100644 --- a/Mage.Sets/src/mage/cards/f/FirestormHellkite.java +++ b/Mage.Sets/src/mage/cards/f/FirestormHellkite.java @@ -27,16 +27,17 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.FlyingAbility; -import mage.abilities.keyword.TrampleAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.CumulativeUpkeepAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FirewakeSliver.java b/Mage.Sets/src/mage/cards/f/FirewakeSliver.java index 922027b5c26..784bbe1ced5 100644 --- a/Mage.Sets/src/mage/cards/f/FirewakeSliver.java +++ b/Mage.Sets/src/mage/cards/f/FirewakeSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FirewildBorderpost.java b/Mage.Sets/src/mage/cards/f/FirewildBorderpost.java index f913208cec7..137f64a214a 100644 --- a/Mage.Sets/src/mage/cards/f/FirewildBorderpost.java +++ b/Mage.Sets/src/mage/cards/f/FirewildBorderpost.java @@ -28,7 +28,6 @@ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.costs.AlternativeCostSourceAbility; @@ -39,11 +38,14 @@ import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki @@ -53,7 +55,7 @@ public class FirewildBorderpost extends CardImpl { private static final FilterControlledPermanent filter = new FilterControlledLandPermanent("a basic land"); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public FirewildBorderpost (UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/f/FirewingPhoenix.java b/Mage.Sets/src/mage/cards/f/FirewingPhoenix.java index 30cedd70380..80b082475c3 100644 --- a/Mage.Sets/src/mage/cards/f/FirewingPhoenix.java +++ b/Mage.Sets/src/mage/cards/f/FirewingPhoenix.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +34,10 @@ import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FirstResponse.java b/Mage.Sets/src/mage/cards/f/FirstResponse.java index c04c08a759b..41210761f68 100644 --- a/Mage.Sets/src/mage/cards/f/FirstResponse.java +++ b/Mage.Sets/src/mage/cards/f/FirstResponse.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.permanent.token.SoldierToken; import mage.watchers.common.PlayerLostLifeWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FirstVolley.java b/Mage.Sets/src/mage/cards/f/FirstVolley.java index b18caa5de14..f0cc5991241 100644 --- a/Mage.Sets/src/mage/cards/f/FirstVolley.java +++ b/Mage.Sets/src/mage/cards/f/FirstVolley.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetControllerEffect; import mage.abilities.effects.common.DamageTargetEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FishliverOil.java b/Mage.Sets/src/mage/cards/f/FishliverOil.java index 7733efa521c..d9bcda7510f 100644 --- a/Mage.Sets/src/mage/cards/f/FishliverOil.java +++ b/Mage.Sets/src/mage/cards/f/FishliverOil.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Laxika */ diff --git a/Mage.Sets/src/mage/cards/f/Fissure.java b/Mage.Sets/src/mage/cards/f/Fissure.java index f077970f186..6d23531e36e 100644 --- a/Mage.Sets/src/mage/cards/f/Fissure.java +++ b/Mage.Sets/src/mage/cards/f/Fissure.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -38,6 +37,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Jgod diff --git a/Mage.Sets/src/mage/cards/f/FissureVent.java b/Mage.Sets/src/mage/cards/f/FissureVent.java index 873f35a75ca..1aa0c32171e 100644 --- a/Mage.Sets/src/mage/cards/f/FissureVent.java +++ b/Mage.Sets/src/mage/cards/f/FissureVent.java @@ -27,15 +27,16 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetNonBasicLandPermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/f/FistOfSuns.java b/Mage.Sets/src/mage/cards/f/FistOfSuns.java index c3928f05d04..e9e20ee51c1 100644 --- a/Mage.Sets/src/mage/cards/f/FistOfSuns.java +++ b/Mage.Sets/src/mage/cards/f/FistOfSuns.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.SourceIsSpellCondition; @@ -36,15 +35,12 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FistfulOfForce.java b/Mage.Sets/src/mage/cards/f/FistfulOfForce.java index 6b5dbe70c19..3181a5c7873 100644 --- a/Mage.Sets/src/mage/cards/f/FistfulOfForce.java +++ b/Mage.Sets/src/mage/cards/f/FistfulOfForce.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -46,6 +45,8 @@ import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FistsOfIronwood.java b/Mage.Sets/src/mage/cards/f/FistsOfIronwood.java index 2ae42c78026..c4d7232a343 100644 --- a/Mage.Sets/src/mage/cards/f/FistsOfIronwood.java +++ b/Mage.Sets/src/mage/cards/f/FistsOfIronwood.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,10 +37,16 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.permanent.token.SaprolingToken; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FistsOfTheAnvil.java b/Mage.Sets/src/mage/cards/f/FistsOfTheAnvil.java index 4f04bf1d22c..b635c5e28de 100644 --- a/Mage.Sets/src/mage/cards/f/FistsOfTheAnvil.java +++ b/Mage.Sets/src/mage/cards/f/FistsOfTheAnvil.java @@ -27,15 +27,15 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FistsOfTheDemigod.java b/Mage.Sets/src/mage/cards/f/FistsOfTheDemigod.java index c4cc3add29a..4d11c1e8e56 100644 --- a/Mage.Sets/src/mage/cards/f/FistsOfTheDemigod.java +++ b/Mage.Sets/src/mage/cards/f/FistsOfTheDemigod.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -48,6 +47,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FitOfRage.java b/Mage.Sets/src/mage/cards/f/FitOfRage.java index be79914d482..922fa831cd7 100644 --- a/Mage.Sets/src/mage/cards/f/FitOfRage.java +++ b/Mage.Sets/src/mage/cards/f/FitOfRage.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FirstStrikeAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/FiveAlarmFire.java b/Mage.Sets/src/mage/cards/f/FiveAlarmFire.java index 9340a64f307..21557888024 100644 --- a/Mage.Sets/src/mage/cards/f/FiveAlarmFire.java +++ b/Mage.Sets/src/mage/cards/f/FiveAlarmFire.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.HashSet; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +46,9 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.HashSet; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FlagstonesOfTrokair.java b/Mage.Sets/src/mage/cards/f/FlagstonesOfTrokair.java index 8b60fd861a9..b2d44a7e737 100644 --- a/Mage.Sets/src/mage/cards/f/FlagstonesOfTrokair.java +++ b/Mage.Sets/src/mage/cards/f/FlagstonesOfTrokair.java @@ -27,17 +27,19 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterLandCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,7 +54,7 @@ public class FlagstonesOfTrokair extends CardImpl { public FlagstonesOfTrokair(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {W} to your mana pool. this.addAbility(new WhiteManaAbility()); diff --git a/Mage.Sets/src/mage/cards/f/FlailingDrake.java b/Mage.Sets/src/mage/cards/f/FlailingDrake.java index 2297de3860a..c574d375f22 100644 --- a/Mage.Sets/src/mage/cards/f/FlailingDrake.java +++ b/Mage.Sets/src/mage/cards/f/FlailingDrake.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/f/FlailingManticore.java b/Mage.Sets/src/mage/cards/f/FlailingManticore.java index 98da1455b2a..2975f7c80e3 100644 --- a/Mage.Sets/src/mage/cards/f/FlailingManticore.java +++ b/Mage.Sets/src/mage/cards/f/FlailingManticore.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlailingOgre.java b/Mage.Sets/src/mage/cards/f/FlailingOgre.java index 9cfa6782ae7..4a41120ad04 100644 --- a/Mage.Sets/src/mage/cards/f/FlailingOgre.java +++ b/Mage.Sets/src/mage/cards/f/FlailingOgre.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlailingSoldier.java b/Mage.Sets/src/mage/cards/f/FlailingSoldier.java index 76fe9c34ff6..c606ffdf1f2 100644 --- a/Mage.Sets/src/mage/cards/f/FlailingSoldier.java +++ b/Mage.Sets/src/mage/cards/f/FlailingSoldier.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlameBurst.java b/Mage.Sets/src/mage/cards/f/FlameBurst.java index 748c46b15d9..fe6efdf0ed1 100644 --- a/Mage.Sets/src/mage/cards/f/FlameBurst.java +++ b/Mage.Sets/src/mage/cards/f/FlameBurst.java @@ -27,13 +27,12 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.CardsInAllGraveyardsCount; import mage.abilities.effects.Effect; -import mage.abilities.effects.common.InfoEffect; import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.InfoEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.NamePredicate; import mage.game.Game; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlameFusillade.java b/Mage.Sets/src/mage/cards/f/FlameFusillade.java index 57dbc20cb9a..605f4aea7de 100644 --- a/Mage.Sets/src/mage/cards/f/FlameFusillade.java +++ b/Mage.Sets/src/mage/cards/f/FlameFusillade.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -37,10 +34,13 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FlameJab.java b/Mage.Sets/src/mage/cards/f/FlameJab.java index 1fbf623a355..10a87d5600e 100644 --- a/Mage.Sets/src/mage/cards/f/FlameJab.java +++ b/Mage.Sets/src/mage/cards/f/FlameJab.java @@ -27,15 +27,15 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.RetraceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FlameJavelin.java b/Mage.Sets/src/mage/cards/f/FlameJavelin.java index 4cba69787e0..f6c4dd9bcad 100644 --- a/Mage.Sets/src/mage/cards/f/FlameJavelin.java +++ b/Mage.Sets/src/mage/cards/f/FlameJavelin.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FlameJet.java b/Mage.Sets/src/mage/cards/f/FlameJet.java index a8d8683f7a4..5fc39f4663a 100644 --- a/Mage.Sets/src/mage/cards/f/FlameJet.java +++ b/Mage.Sets/src/mage/cards/f/FlameJet.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.CyclingAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlameKinZealot.java b/Mage.Sets/src/mage/cards/f/FlameKinZealot.java index 9737fae86df..e39b221d754 100644 --- a/Mage.Sets/src/mage/cards/f/FlameKinZealot.java +++ b/Mage.Sets/src/mage/cards/f/FlameKinZealot.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,9 +35,12 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FlameLash.java b/Mage.Sets/src/mage/cards/f/FlameLash.java index f23eb71205f..d15b17e894d 100644 --- a/Mage.Sets/src/mage/cards/f/FlameLash.java +++ b/Mage.Sets/src/mage/cards/f/FlameLash.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlameRift.java b/Mage.Sets/src/mage/cards/f/FlameRift.java index 105f1b70518..2e3f7f35600 100644 --- a/Mage.Sets/src/mage/cards/f/FlameRift.java +++ b/Mage.Sets/src/mage/cards/f/FlameRift.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DamagePlayersEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlameSlash.java b/Mage.Sets/src/mage/cards/f/FlameSlash.java index 217dd12964a..c1e1f3092fe 100644 --- a/Mage.Sets/src/mage/cards/f/FlameSlash.java +++ b/Mage.Sets/src/mage/cards/f/FlameSlash.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/f/FlameSpirit.java b/Mage.Sets/src/mage/cards/f/FlameSpirit.java index 726385af9da..4f730e82849 100644 --- a/Mage.Sets/src/mage/cards/f/FlameSpirit.java +++ b/Mage.Sets/src/mage/cards/f/FlameSpirit.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/FlameWave.java b/Mage.Sets/src/mage/cards/f/FlameWave.java index 8e770851c64..6f5f06f228f 100644 --- a/Mage.Sets/src/mage/cards/f/FlameWave.java +++ b/Mage.Sets/src/mage/cards/f/FlameWave.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DamageAllControlledTargetEffect; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FlameWreathedPhoenix.java b/Mage.Sets/src/mage/cards/f/FlameWreathedPhoenix.java index 36edda4f203..1a61f596971 100644 --- a/Mage.Sets/src/mage/cards/f/FlameWreathedPhoenix.java +++ b/Mage.Sets/src/mage/cards/f/FlameWreathedPhoenix.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.DiesTriggeredAbility; @@ -45,6 +44,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlamebladeAdept.java b/Mage.Sets/src/mage/cards/f/FlamebladeAdept.java new file mode 100644 index 00000000000..abd34b126ce --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/FlamebladeAdept.java @@ -0,0 +1,69 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.f; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.CycleOrDiscardControllerTriggeredAbility; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.keyword.MenaceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author fireshoes + */ +public class FlamebladeAdept extends CardImpl { + + public FlamebladeAdept(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}"); + + this.subtype.add("Jackal"); + this.subtype.add("Warrior"); + this.power = new MageInt(1); + this.toughness = new MageInt(2); + + // Menace + this.addAbility(new MenaceAbility()); + + // Whenever you cycle or discard a card, Flameblade Adept gets +1/+0 until end of turn. + this.addAbility(new CycleOrDiscardControllerTriggeredAbility(new BoostSourceEffect(1, 0, Duration.EndOfTurn))); + } + + public FlamebladeAdept(final FlamebladeAdept card) { + super(card); + } + + @Override + public FlamebladeAdept copy() { + return new FlamebladeAdept(this); + } +} diff --git a/Mage.Sets/src/mage/cards/f/FlamebladeAngel.java b/Mage.Sets/src/mage/cards/f/FlamebladeAngel.java index db45920d0e7..52a04c97916 100644 --- a/Mage.Sets/src/mage/cards/f/FlamebladeAngel.java +++ b/Mage.Sets/src/mage/cards/f/FlamebladeAngel.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -42,6 +41,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlameblastDragon.java b/Mage.Sets/src/mage/cards/f/FlameblastDragon.java index 879e36fc073..9fcd605f788 100644 --- a/Mage.Sets/src/mage/cards/f/FlameblastDragon.java +++ b/Mage.Sets/src/mage/cards/f/FlameblastDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -45,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/f/FlamebornHellion.java b/Mage.Sets/src/mage/cards/f/FlamebornHellion.java index ee8d857b4d2..e4921f44b9c 100644 --- a/Mage.Sets/src/mage/cards/f/FlamebornHellion.java +++ b/Mage.Sets/src/mage/cards/f/FlamebornHellion.java @@ -28,13 +28,14 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FlamebornViron.java b/Mage.Sets/src/mage/cards/f/FlamebornViron.java index 46febac3cdf..4e1d70fd5ca 100644 --- a/Mage.Sets/src/mage/cards/f/FlamebornViron.java +++ b/Mage.Sets/src/mage/cards/f/FlamebornViron.java @@ -27,11 +27,12 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/Flamebreak.java b/Mage.Sets/src/mage/cards/f/Flamebreak.java index 2c918ceafd7..f702ee66cf8 100644 --- a/Mage.Sets/src/mage/cards/f/Flamebreak.java +++ b/Mage.Sets/src/mage/cards/f/Flamebreak.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; @@ -46,6 +45,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.watchers.common.DamagedByWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlamecastWheel.java b/Mage.Sets/src/mage/cards/f/FlamecastWheel.java index 34506b0ffda..f8c7a4077ac 100644 --- a/Mage.Sets/src/mage/cards/f/FlamecastWheel.java +++ b/Mage.Sets/src/mage/cards/f/FlamecastWheel.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlamecoreElemental.java b/Mage.Sets/src/mage/cards/f/FlamecoreElemental.java index a7830435728..d830615ac17 100644 --- a/Mage.Sets/src/mage/cards/f/FlamecoreElemental.java +++ b/Mage.Sets/src/mage/cards/f/FlamecoreElemental.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.EchoAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlameheartWerewolf.java b/Mage.Sets/src/mage/cards/f/FlameheartWerewolf.java index 5c249df45a0..539f68415db 100644 --- a/Mage.Sets/src/mage/cards/f/FlameheartWerewolf.java +++ b/Mage.Sets/src/mage/cards/f/FlameheartWerewolf.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlamekinBladewhirl.java b/Mage.Sets/src/mage/cards/f/FlamekinBladewhirl.java index 171296bcd4e..51336d214df 100644 --- a/Mage.Sets/src/mage/cards/f/FlamekinBladewhirl.java +++ b/Mage.Sets/src/mage/cards/f/FlamekinBladewhirl.java @@ -27,18 +27,19 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.costs.OrCost; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.costs.mana.GenericManaCost; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlamekinBrawler.java b/Mage.Sets/src/mage/cards/f/FlamekinBrawler.java index 91f3e3ec101..6f0ec605f58 100644 --- a/Mage.Sets/src/mage/cards/f/FlamekinBrawler.java +++ b/Mage.Sets/src/mage/cards/f/FlamekinBrawler.java @@ -27,13 +27,16 @@ */ package mage.cards.f; -import mage.constants.*; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/f/FlamekinHarbinger.java b/Mage.Sets/src/mage/cards/f/FlamekinHarbinger.java index 2eaa57b2487..f603a171849 100644 --- a/Mage.Sets/src/mage/cards/f/FlamekinHarbinger.java +++ b/Mage.Sets/src/mage/cards/f/FlamekinHarbinger.java @@ -27,17 +27,18 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutOnLibraryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/f/FlamekinSpitfire.java b/Mage.Sets/src/mage/cards/f/FlamekinSpitfire.java index 530b045cb4f..e194a1af189 100644 --- a/Mage.Sets/src/mage/cards/f/FlamekinSpitfire.java +++ b/Mage.Sets/src/mage/cards/f/FlamekinSpitfire.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -35,6 +34,7 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; diff --git a/Mage.Sets/src/mage/cards/f/FlamekinVillage.java b/Mage.Sets/src/mage/cards/f/FlamekinVillage.java index c1d344a3f48..8efde2f5ff4 100644 --- a/Mage.Sets/src/mage/cards/f/FlamekinVillage.java +++ b/Mage.Sets/src/mage/cards/f/FlamekinVillage.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RevealTargetFromHandCost; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlamerushRider.java b/Mage.Sets/src/mage/cards/f/FlamerushRider.java index d9f816482aa..69e9a3ab688 100644 --- a/Mage.Sets/src/mage/cards/f/FlamerushRider.java +++ b/Mage.Sets/src/mage/cards/f/FlamerushRider.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -51,6 +50,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlamesOfRemembrance.java b/Mage.Sets/src/mage/cards/f/FlamesOfRemembrance.java index 6b9314a12bd..2615a726b9d 100644 --- a/Mage.Sets/src/mage/cards/f/FlamesOfRemembrance.java +++ b/Mage.Sets/src/mage/cards/f/FlamesOfRemembrance.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -43,18 +40,17 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.game.Game; import mage.players.Library; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/FlamesOfTheBloodHand.java b/Mage.Sets/src/mage/cards/f/FlamesOfTheBloodHand.java index 3613deb3cf3..c96bcae6a66 100644 --- a/Mage.Sets/src/mage/cards/f/FlamesOfTheBloodHand.java +++ b/Mage.Sets/src/mage/cards/f/FlamesOfTheBloodHand.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.common.DamageTargetEffect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlamesOfTheFirebrand.java b/Mage.Sets/src/mage/cards/f/FlamesOfTheFirebrand.java index bffd1fd1bef..3935175dbf3 100644 --- a/Mage.Sets/src/mage/cards/f/FlamesOfTheFirebrand.java +++ b/Mage.Sets/src/mage/cards/f/FlamesOfTheFirebrand.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DamageMultiEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayerAmount; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FlameshadowConjuring.java b/Mage.Sets/src/mage/cards/f/FlameshadowConjuring.java index 58a3194e856..d2e69c46716 100644 --- a/Mage.Sets/src/mage/cards/f/FlameshadowConjuring.java +++ b/Mage.Sets/src/mage/cards/f/FlameshadowConjuring.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; @@ -49,6 +48,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/Flameshot.java b/Mage.Sets/src/mage/cards/f/Flameshot.java index f89f6057f8f..89d543fb4f5 100644 --- a/Mage.Sets/src/mage/cards/f/Flameshot.java +++ b/Mage.Sets/src/mage/cards/f/Flameshot.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.DiscardTargetCost; import mage.abilities.effects.common.DamageMultiEffect; @@ -39,6 +38,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCreaturePermanentAmount; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FlamespeakerAdept.java b/Mage.Sets/src/mage/cards/f/FlamespeakerAdept.java index 49dcc46ae6a..06f6c0ec520 100644 --- a/Mage.Sets/src/mage/cards/f/FlamespeakerAdept.java +++ b/Mage.Sets/src/mage/cards/f/FlamespeakerAdept.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlamespeakersWill.java b/Mage.Sets/src/mage/cards/f/FlamespeakersWill.java index 72a6f521ccb..c87e35a5c7a 100644 --- a/Mage.Sets/src/mage/cards/f/FlamespeakersWill.java +++ b/Mage.Sets/src/mage/cards/f/FlamespeakersWill.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToAPlayerAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,15 +38,13 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlamestickCourier.java b/Mage.Sets/src/mage/cards/f/FlamestickCourier.java index 9d67a4a4b7d..13a15e2e79f 100644 --- a/Mage.Sets/src/mage/cards/f/FlamestickCourier.java +++ b/Mage.Sets/src/mage/cards/f/FlamestickCourier.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlametongueKavu.java b/Mage.Sets/src/mage/cards/f/FlametongueKavu.java index 6be638f7972..1c404590b97 100644 --- a/Mage.Sets/src/mage/cards/f/FlametongueKavu.java +++ b/Mage.Sets/src/mage/cards/f/FlametongueKavu.java @@ -27,16 +27,17 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FlamewakePhoenix.java b/Mage.Sets/src/mage/cards/f/FlamewakePhoenix.java index d032d39a62e..b359b5bc8cf 100644 --- a/Mage.Sets/src/mage/cards/f/FlamewakePhoenix.java +++ b/Mage.Sets/src/mage/cards/f/FlamewakePhoenix.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.abilities.common.BeginningOfCombatTriggeredAbility; @@ -44,6 +43,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlamewaveInvoker.java b/Mage.Sets/src/mage/cards/f/FlamewaveInvoker.java index 4f76fe4af8a..345ed79997c 100644 --- a/Mage.Sets/src/mage/cards/f/FlamewaveInvoker.java +++ b/Mage.Sets/src/mage/cards/f/FlamewaveInvoker.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +34,12 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/Flamewright.java b/Mage.Sets/src/mage/cards/f/Flamewright.java index d909713f34c..aa0b24b753d 100644 --- a/Mage.Sets/src/mage/cards/f/Flamewright.java +++ b/Mage.Sets/src/mage/cards/f/Flamewright.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.game.permanent.token.Token; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FlankingTroops.java b/Mage.Sets/src/mage/cards/f/FlankingTroops.java index 0d2b4fe5d04..6ca3bf8f149 100644 --- a/Mage.Sets/src/mage/cards/f/FlankingTroops.java +++ b/Mage.Sets/src/mage/cards/f/FlankingTroops.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/Flare.java b/Mage.Sets/src/mage/cards/f/Flare.java index abe661997c5..741aad749d6 100644 --- a/Mage.Sets/src/mage/cards/f/Flare.java +++ b/Mage.Sets/src/mage/cards/f/Flare.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.DamageTargetEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FlaringFlameKin.java b/Mage.Sets/src/mage/cards/f/FlaringFlameKin.java index 084230acb76..704b7b14f63 100644 --- a/Mage.Sets/src/mage/cards/f/FlaringFlameKin.java +++ b/Mage.Sets/src/mage/cards/f/FlaringFlameKin.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/Flash.java b/Mage.Sets/src/mage/cards/f/Flash.java index 0cf62455aa4..2fd40a12b1c 100644 --- a/Mage.Sets/src/mage/cards/f/Flash.java +++ b/Mage.Sets/src/mage/cards/f/Flash.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCost; import mage.abilities.costs.mana.ManaCosts; @@ -45,6 +44,8 @@ import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/FlashCounter.java b/Mage.Sets/src/mage/cards/f/FlashCounter.java index 4a8362d97a0..8aff7ba3ad6 100644 --- a/Mage.Sets/src/mage/cards/f/FlashCounter.java +++ b/Mage.Sets/src/mage/cards/f/FlashCounter.java @@ -27,15 +27,16 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FlashFlood.java b/Mage.Sets/src/mage/cards/f/FlashFlood.java index ff3e553148b..d372d731f28 100644 --- a/Mage.Sets/src/mage/cards/f/FlashFlood.java +++ b/Mage.Sets/src/mage/cards/f/FlashFlood.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; @@ -40,6 +39,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlashOfDefiance.java b/Mage.Sets/src/mage/cards/f/FlashOfDefiance.java index 419047967e5..187c72c1b31 100644 --- a/Mage.Sets/src/mage/cards/f/FlashOfDefiance.java +++ b/Mage.Sets/src/mage/cards/f/FlashOfDefiance.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.costs.common.PayLifeCost; @@ -43,6 +42,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FlashOfInsight.java b/Mage.Sets/src/mage/cards/f/FlashOfInsight.java index 96ddbbdb2b1..b1852d3e703 100644 --- a/Mage.Sets/src/mage/cards/f/FlashOfInsight.java +++ b/Mage.Sets/src/mage/cards/f/FlashOfInsight.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageObject; import mage.ObjectColor; import mage.abilities.Ability; @@ -37,11 +36,7 @@ import mage.abilities.costs.common.ExileXFromYourGraveCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlashbackAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TimingRule; @@ -54,6 +49,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Flashfires.java b/Mage.Sets/src/mage/cards/f/Flashfires.java index fe4805100c3..b4e1d1f174a 100644 --- a/Mage.Sets/src/mage/cards/f/Flashfires.java +++ b/Mage.Sets/src/mage/cards/f/Flashfires.java @@ -27,14 +27,15 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/Flashfreeze.java b/Mage.Sets/src/mage/cards/f/Flashfreeze.java index 05641189916..f10ca891a88 100644 --- a/Mage.Sets/src/mage/cards/f/Flashfreeze.java +++ b/Mage.Sets/src/mage/cards/f/Flashfreeze.java @@ -28,17 +28,18 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/f/Flatten.java b/Mage.Sets/src/mage/cards/f/Flatten.java index 82706570548..3490d4bf812 100644 --- a/Mage.Sets/src/mage/cards/f/Flatten.java +++ b/Mage.Sets/src/mage/cards/f/Flatten.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlayerDrone.java b/Mage.Sets/src/mage/cards/f/FlayerDrone.java index 8a395503be7..1bf47336987 100644 --- a/Mage.Sets/src/mage/cards/f/FlayerDrone.java +++ b/Mage.Sets/src/mage/cards/f/FlayerDrone.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.ColorlessPredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FlayerHusk.java b/Mage.Sets/src/mage/cards/f/FlayerHusk.java index 6b7b394f803..73c212baa0e 100644 --- a/Mage.Sets/src/mage/cards/f/FlayerHusk.java +++ b/Mage.Sets/src/mage/cards/f/FlayerHusk.java @@ -27,10 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.BoostEquippedEffect; @@ -38,6 +34,11 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.LivingWeaponAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FlayerOfTheHatebound.java b/Mage.Sets/src/mage/cards/f/FlayerOfTheHatebound.java index 86e829a90ef..255e6af6590 100644 --- a/Mage.Sets/src/mage/cards/f/FlayerOfTheHatebound.java +++ b/Mage.Sets/src/mage/cards/f/FlayerOfTheHatebound.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -47,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/f/FlayingTendrils.java b/Mage.Sets/src/mage/cards/f/FlayingTendrils.java index b1012af9313..23e7a9a546f 100644 --- a/Mage.Sets/src/mage/cards/f/FlayingTendrils.java +++ b/Mage.Sets/src/mage/cards/f/FlayingTendrils.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.common.continuous.BoostAllEffect; @@ -46,6 +45,8 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FledglingDjinn.java b/Mage.Sets/src/mage/cards/f/FledglingDjinn.java index 2764446bea8..3973a2d964c 100644 --- a/Mage.Sets/src/mage/cards/f/FledglingDjinn.java +++ b/Mage.Sets/src/mage/cards/f/FledglingDjinn.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.DamageControllerEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FledglingDragon.java b/Mage.Sets/src/mage/cards/f/FledglingDragon.java index 79e5e58e4eb..cd33f1b1669 100644 --- a/Mage.Sets/src/mage/cards/f/FledglingDragon.java +++ b/Mage.Sets/src/mage/cards/f/FledglingDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FledglingGriffin.java b/Mage.Sets/src/mage/cards/f/FledglingGriffin.java index 02e247015c4..2777ae48949 100644 --- a/Mage.Sets/src/mage/cards/f/FledglingGriffin.java +++ b/Mage.Sets/src/mage/cards/f/FledglingGriffin.java @@ -28,15 +28,16 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.LandfallAbility; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FledglingImp.java b/Mage.Sets/src/mage/cards/f/FledglingImp.java index 3577e09b3db..f790fd54b0b 100644 --- a/Mage.Sets/src/mage/cards/f/FledglingImp.java +++ b/Mage.Sets/src/mage/cards/f/FledglingImp.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/f/FledglingMawcor.java b/Mage.Sets/src/mage/cards/f/FledglingMawcor.java index f5264528570..5753732033b 100644 --- a/Mage.Sets/src/mage/cards/f/FledglingMawcor.java +++ b/Mage.Sets/src/mage/cards/f/FledglingMawcor.java @@ -27,14 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.MorphAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FledglingOsprey.java b/Mage.Sets/src/mage/cards/f/FledglingOsprey.java index 603743b6b5c..ae3ccbc3bab 100644 --- a/Mage.Sets/src/mage/cards/f/FledglingOsprey.java +++ b/Mage.Sets/src/mage/cards/f/FledglingOsprey.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.EnchantedSourceCondition; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Galatolol diff --git a/Mage.Sets/src/mage/cards/f/FleecemaneLion.java b/Mage.Sets/src/mage/cards/f/FleecemaneLion.java index 0beb45d628f..65006991466 100644 --- a/Mage.Sets/src/mage/cards/f/FleecemaneLion.java +++ b/Mage.Sets/src/mage/cards/f/FleecemaneLion.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FleetFootedMonk.java b/Mage.Sets/src/mage/cards/f/FleetFootedMonk.java index c87302e9b2d..d2d91541180 100644 --- a/Mage.Sets/src/mage/cards/f/FleetFootedMonk.java +++ b/Mage.Sets/src/mage/cards/f/FleetFootedMonk.java @@ -27,18 +27,19 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -48,7 +49,7 @@ public class FleetFootedMonk extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 1)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 1)); } public FleetFootedMonk(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/f/FleetfeatherCockatrice.java b/Mage.Sets/src/mage/cards/f/FleetfeatherCockatrice.java index 56c95e9ed5c..e80021235ed 100644 --- a/Mage.Sets/src/mage/cards/f/FleetfeatherCockatrice.java +++ b/Mage.Sets/src/mage/cards/f/FleetfeatherCockatrice.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.FlashAbility; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FleetfeatherSandals.java b/Mage.Sets/src/mage/cards/f/FleetfeatherSandals.java index b79e16d70d6..a8934a2773b 100644 --- a/Mage.Sets/src/mage/cards/f/FleetfeatherSandals.java +++ b/Mage.Sets/src/mage/cards/f/FleetfeatherSandals.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -37,11 +36,9 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FleetfootPanther.java b/Mage.Sets/src/mage/cards/f/FleetfootPanther.java index 9af2e51829d..70a3ddc5cbd 100644 --- a/Mage.Sets/src/mage/cards/f/FleetfootPanther.java +++ b/Mage.Sets/src/mage/cards/f/FleetfootPanther.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,6 +39,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author FenrisulfrX diff --git a/Mage.Sets/src/mage/cards/f/FleetingDistraction.java b/Mage.Sets/src/mage/cards/f/FleetingDistraction.java index addf68ff7fa..144b81cc115 100644 --- a/Mage.Sets/src/mage/cards/f/FleetingDistraction.java +++ b/Mage.Sets/src/mage/cards/f/FleetingDistraction.java @@ -28,16 +28,16 @@ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FleetingImage.java b/Mage.Sets/src/mage/cards/f/FleetingImage.java index d3cda0224d2..f00068b2f66 100644 --- a/Mage.Sets/src/mage/cards/f/FleetingImage.java +++ b/Mage.Sets/src/mage/cards/f/FleetingImage.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +34,10 @@ import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FleetingMemories.java b/Mage.Sets/src/mage/cards/f/FleetingMemories.java index 63b87f97724..1e1b05687d1 100644 --- a/Mage.Sets/src/mage/cards/f/FleetingMemories.java +++ b/Mage.Sets/src/mage/cards/f/FleetingMemories.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,6 +43,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FleetwheelCruiser.java b/Mage.Sets/src/mage/cards/f/FleetwheelCruiser.java index d20025445b0..aaef05274c0 100644 --- a/Mage.Sets/src/mage/cards/f/FleetwheelCruiser.java +++ b/Mage.Sets/src/mage/cards/f/FleetwheelCruiser.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/Flensermite.java b/Mage.Sets/src/mage/cards/f/Flensermite.java index 537322389af..02c71edc3a8 100644 --- a/Mage.Sets/src/mage/cards/f/Flensermite.java +++ b/Mage.Sets/src/mage/cards/f/Flensermite.java @@ -28,13 +28,14 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.InfectAbility; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FleshAllergy.java b/Mage.Sets/src/mage/cards/f/FleshAllergy.java index 6d89d970a0e..1251257f4b1 100644 --- a/Mage.Sets/src/mage/cards/f/FleshAllergy.java +++ b/Mage.Sets/src/mage/cards/f/FleshAllergy.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.costs.common.SacrificeTargetCost; @@ -49,6 +48,8 @@ import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; import mage.watchers.Watcher; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/f/FleshBlood.java b/Mage.Sets/src/mage/cards/f/FleshBlood.java index 59f370b415e..14b6b98df3f 100644 --- a/Mage.Sets/src/mage/cards/f/FleshBlood.java +++ b/Mage.Sets/src/mage/cards/f/FleshBlood.java @@ -25,18 +25,18 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.f; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardSetInfo; import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SpellAbilityType; +import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterCreatureCard; import mage.game.Game; @@ -48,16 +48,10 @@ import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; -/** - * - * @author LevelX2 - */ - - public class FleshBlood extends SplitCard { public FleshBlood(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{B}{G}","{R}{G}",true); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{B}{G}", "{R}{G}", SpellAbilityType.SPLIT_FUSED); // Flesh // Exile target creature card from a graveyard. Put X +1/+1 counters on target creature, where X is the power of the card you exiled. @@ -89,7 +83,7 @@ class FleshEffect extends OneShotEffect { public FleshEffect() { super(Outcome.BoostCreature); staticText = "Exile target creature card from a graveyard. Put X +1/+1 counters on target creature, where X is the power of the card you exiled"; - } + } public FleshEffect(final FleshEffect effect) { super(effect); @@ -124,7 +118,7 @@ class BloodEffect extends OneShotEffect { public BloodEffect() { super(Outcome.Damage); staticText = "Target creature you control deals damage equal to its power to target creature or player"; - } + } public BloodEffect(final BloodEffect effect) { super(effect); diff --git a/Mage.Sets/src/mage/cards/f/FleshCarver.java b/Mage.Sets/src/mage/cards/f/FleshCarver.java index d1742ef88ac..97d246aa96f 100644 --- a/Mage.Sets/src/mage/cards/f/FleshCarver.java +++ b/Mage.Sets/src/mage/cards/f/FleshCarver.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -54,6 +53,8 @@ import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FleshEaterImp.java b/Mage.Sets/src/mage/cards/f/FleshEaterImp.java index d3f2f659537..b6ce8117db4 100644 --- a/Mage.Sets/src/mage/cards/f/FleshEaterImp.java +++ b/Mage.Sets/src/mage/cards/f/FleshEaterImp.java @@ -28,9 +28,6 @@ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -39,10 +36,13 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FleshbagMarauder.java b/Mage.Sets/src/mage/cards/f/FleshbagMarauder.java index e22f403d4fc..9aa86fe7f8d 100644 --- a/Mage.Sets/src/mage/cards/f/FleshbagMarauder.java +++ b/Mage.Sets/src/mage/cards/f/FleshbagMarauder.java @@ -27,15 +27,16 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.SacrificeAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/f/Fleshformer.java b/Mage.Sets/src/mage/cards/f/Fleshformer.java index e3430b26062..97c5d9e320f 100644 --- a/Mage.Sets/src/mage/cards/f/Fleshformer.java +++ b/Mage.Sets/src/mage/cards/f/Fleshformer.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -45,6 +44,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/Fleshgrafter.java b/Mage.Sets/src/mage/cards/f/Fleshgrafter.java index fe6ab881e15..6492a913a34 100644 --- a/Mage.Sets/src/mage/cards/f/Fleshgrafter.java +++ b/Mage.Sets/src/mage/cards/f/Fleshgrafter.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardCardCost; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterArtifactCard; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FleshmadSteed.java b/Mage.Sets/src/mage/cards/f/FleshmadSteed.java index db0d2ee11f2..7791662ee76 100644 --- a/Mage.Sets/src/mage/cards/f/FleshmadSteed.java +++ b/Mage.Sets/src/mage/cards/f/FleshmadSteed.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.TapSourceEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FleshpulperGiant.java b/Mage.Sets/src/mage/cards/f/FleshpulperGiant.java index 58620e4c841..a031d92fb33 100644 --- a/Mage.Sets/src/mage/cards/f/FleshpulperGiant.java +++ b/Mage.Sets/src/mage/cards/f/FleshpulperGiant.java @@ -27,19 +27,20 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter.ComparisonType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -49,7 +50,7 @@ public class FleshpulperGiant extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with toughess 2 or less"); static { - filter.add(new ToughnessPredicate(ComparisonType.LessThan, 3)); + filter.add(new ToughnessPredicate(ComparisonType.FEWER_THAN, 3)); } public FleshpulperGiant(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/f/Fleshwrither.java b/Mage.Sets/src/mage/cards/f/Fleshwrither.java index 580ef74b32c..f37df33a279 100644 --- a/Mage.Sets/src/mage/cards/f/Fleshwrither.java +++ b/Mage.Sets/src/mage/cards/f/Fleshwrither.java @@ -27,10 +27,10 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -43,13 +43,14 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TimingRule; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -97,7 +98,7 @@ class FleshwritherEffect extends OneShotEffect { MageObject sourceObject = game.getObject(source.getSourceId()); if (sourceObject != null && controller != null) { FilterCreatureCard filter = new FilterCreatureCard("creature with converted mana cost " + sourceObject.getConvertedManaCost()); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, sourceObject.getConvertedManaCost())); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, sourceObject.getConvertedManaCost())); TargetCardInLibrary target = new TargetCardInLibrary(1, filter); if (controller.searchLibrary(target, game)) { if (!target.getTargets().isEmpty()) { diff --git a/Mage.Sets/src/mage/cards/f/Flicker.java b/Mage.Sets/src/mage/cards/f/Flicker.java index 9ce59c83619..c243fbc820c 100644 --- a/Mage.Sets/src/mage/cards/f/Flicker.java +++ b/Mage.Sets/src/mage/cards/f/Flicker.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.ExileTargetForSourceEffect; import mage.abilities.effects.common.ReturnToBattlefieldUnderOwnerControlTargetEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.TokenPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Flickerform.java b/Mage.Sets/src/mage/cards/f/Flickerform.java index 4fd952ff719..fb40569ccdc 100644 --- a/Mage.Sets/src/mage/cards/f/Flickerform.java +++ b/Mage.Sets/src/mage/cards/f/Flickerform.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -54,6 +53,8 @@ import mage.target.Target; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlickeringSpirit.java b/Mage.Sets/src/mage/cards/f/FlickeringSpirit.java index ab47d970f22..6a6a8685731 100644 --- a/Mage.Sets/src/mage/cards/f/FlickeringSpirit.java +++ b/Mage.Sets/src/mage/cards/f/FlickeringSpirit.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlickeringWard.java b/Mage.Sets/src/mage/cards/f/FlickeringWard.java index 04c339f1f3b..1dd4f29f9e1 100644 --- a/Mage.Sets/src/mage/cards/f/FlickeringWard.java +++ b/Mage.Sets/src/mage/cards/f/FlickeringWard.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/Flickerwisp.java b/Mage.Sets/src/mage/cards/f/Flickerwisp.java index c406608cefe..0c8d056575a 100644 --- a/Mage.Sets/src/mage/cards/f/Flickerwisp.java +++ b/Mage.Sets/src/mage/cards/f/Flickerwisp.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -49,6 +48,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/Flight.java b/Mage.Sets/src/mage/cards/f/Flight.java index e0a70ee2480..df1f226dce4 100644 --- a/Mage.Sets/src/mage/cards/f/Flight.java +++ b/Mage.Sets/src/mage/cards/f/Flight.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FlightOfFancy.java b/Mage.Sets/src/mage/cards/f/FlightOfFancy.java index 0f5f01832dd..ddc3506e5d1 100644 --- a/Mage.Sets/src/mage/cards/f/FlightOfFancy.java +++ b/Mage.Sets/src/mage/cards/f/FlightOfFancy.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,9 +37,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FlightSpellbomb.java b/Mage.Sets/src/mage/cards/f/FlightSpellbomb.java index e8b7be5bef7..a237e60ab5c 100644 --- a/Mage.Sets/src/mage/cards/f/FlightSpellbomb.java +++ b/Mage.Sets/src/mage/cards/f/FlightSpellbomb.java @@ -28,10 +28,6 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -44,8 +40,13 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/Fling.java b/Mage.Sets/src/mage/cards/f/Fling.java index 1286b38e262..947139f3b04 100644 --- a/Mage.Sets/src/mage/cards/f/Fling.java +++ b/Mage.Sets/src/mage/cards/f/Fling.java @@ -25,24 +25,20 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.abilities.Ability; -import mage.abilities.costs.Cost; import mage.abilities.costs.common.SacrificeTargetCost; -import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.game.Game; -import mage.game.permanent.Permanent; -import mage.players.Player; +import mage.constants.CardType; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; +import mage.abilities.dynamicvalue.common.SacrificeCostCreaturesPower; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DamageTargetEffect; + /** * * @author BetaSteward_at_googlemail.com @@ -50,11 +46,13 @@ import mage.target.common.TargetCreatureOrPlayer; public class Fling extends CardImpl { public Fling(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{R}"); + Effect effect = new DamageTargetEffect(new SacrificeCostCreaturesPower()); + effect.setText("{this} deals damage equal to the sacrificed creature's power to target creature or player"); this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent())); this.getSpellAbility().addTarget(new TargetCreatureOrPlayer()); - this.getSpellAbility().addEffect(new FlingEffect()); + this.getSpellAbility().addEffect(effect); } public Fling(final Fling card) { @@ -66,45 +64,3 @@ public class Fling extends CardImpl { return new Fling(this); } } - -class FlingEffect extends OneShotEffect { - - public FlingEffect() { - super(Outcome.Damage); - staticText = "{this} deals damage equal to the sacrificed creature's power to target creature or player"; - } - - public FlingEffect(final FlingEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source) { - int amount = 0; - for (Cost cost: source.getCosts()) { - if (cost instanceof SacrificeTargetCost && !((SacrificeTargetCost) cost).getPermanents().isEmpty()) { - amount = ((SacrificeTargetCost)cost).getPermanents().get(0).getPower().getValue(); - break; - } - } - if (amount > 0) { - Permanent permanent = game.getPermanent(source.getFirstTarget()); - if (permanent != null) { - permanent.damage(amount, source.getSourceId(), game, false, true); - return true; - } - Player player = game.getPlayer(source.getFirstTarget()); - if (player != null) { - player.damage(amount, source.getSourceId(), game, false, true); - return true; - } - } - return false; - } - - @Override - public FlingEffect copy() { - return new FlingEffect(this); - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/f/FlinthoofBoar.java b/Mage.Sets/src/mage/cards/f/FlinthoofBoar.java index 7e63a6cac5d..b8e2008a1e8 100644 --- a/Mage.Sets/src/mage/cards/f/FlinthoofBoar.java +++ b/Mage.Sets/src/mage/cards/f/FlinthoofBoar.java @@ -27,10 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,9 +36,14 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FlitterstepEidolon.java b/Mage.Sets/src/mage/cards/f/FlitterstepEidolon.java index b5db599fa7d..e5e972b0d57 100644 --- a/Mage.Sets/src/mage/cards/f/FlitterstepEidolon.java +++ b/Mage.Sets/src/mage/cards/f/FlitterstepEidolon.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Flood.java b/Mage.Sets/src/mage/cards/f/Flood.java index 94bcf86d8f6..725b8366360 100644 --- a/Mage.Sets/src/mage/cards/f/Flood.java +++ b/Mage.Sets/src/mage/cards/f/Flood.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +41,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FloodPlain.java b/Mage.Sets/src/mage/cards/f/FloodPlain.java index 02256d2affe..3ebaadca185 100644 --- a/Mage.Sets/src/mage/cards/f/FloodPlain.java +++ b/Mage.Sets/src/mage/cards/f/FloodPlain.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.FetchLandActivatedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Floodbringer.java b/Mage.Sets/src/mage/cards/f/Floodbringer.java index 8795f6113bc..d2a7404bd18 100644 --- a/Mage.Sets/src/mage/cards/f/Floodbringer.java +++ b/Mage.Sets/src/mage/cards/f/Floodbringer.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/Floodchaser.java b/Mage.Sets/src/mage/cards/f/Floodchaser.java index 7af9fd99111..6af53363bb2 100644 --- a/Mage.Sets/src/mage/cards/f/Floodchaser.java +++ b/Mage.Sets/src/mage/cards/f/Floodchaser.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -47,6 +46,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterLandPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FloodedGrove.java b/Mage.Sets/src/mage/cards/f/FloodedGrove.java index de3ad2c5025..9d40501baf7 100644 --- a/Mage.Sets/src/mage/cards/f/FloodedGrove.java +++ b/Mage.Sets/src/mage/cards/f/FloodedGrove.java @@ -28,7 +28,6 @@ package mage.cards.f; -import java.util.UUID; import mage.Mana; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FloodedShoreline.java b/Mage.Sets/src/mage/cards/f/FloodedShoreline.java index 7670b7f768b..75070b8b002 100644 --- a/Mage.Sets/src/mage/cards/f/FloodedShoreline.java +++ b/Mage.Sets/src/mage/cards/f/FloodedShoreline.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; @@ -42,6 +41,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FloodedStrand.java b/Mage.Sets/src/mage/cards/f/FloodedStrand.java index 7e0ae8c7982..f4d8eb56c36 100644 --- a/Mage.Sets/src/mage/cards/f/FloodedStrand.java +++ b/Mage.Sets/src/mage/cards/f/FloodedStrand.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; import mage.ObjectColor; -import mage.constants.CardType; import mage.abilities.common.FetchLandActivatedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FloodtideSerpent.java b/Mage.Sets/src/mage/cards/f/FloodtideSerpent.java index cad65107193..dd59f8dcc05 100644 --- a/Mage.Sets/src/mage/cards/f/FloodtideSerpent.java +++ b/Mage.Sets/src/mage/cards/f/FloodtideSerpent.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; @@ -41,6 +40,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FloodwaterDam.java b/Mage.Sets/src/mage/cards/f/FloodwaterDam.java index dc1340b5777..fe0279691cc 100644 --- a/Mage.Sets/src/mage/cards/f/FloodwaterDam.java +++ b/Mage.Sets/src/mage/cards/f/FloodwaterDam.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -42,6 +41,8 @@ import mage.filter.common.FilterLandPermanent; import mage.game.Game; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/Floodwaters.java b/Mage.Sets/src/mage/cards/f/Floodwaters.java new file mode 100644 index 00000000000..6a04b19f3b9 --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/Floodwaters.java @@ -0,0 +1,68 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.f; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class Floodwaters extends CardImpl { + + public Floodwaters(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{U}{U}"); + + // Return up to two target creatures to their owners' hands. + Effect effect = new ReturnToHandTargetEffect(); + effect.setText("Return up to two target creatures to their owners' hands"); + this.getSpellAbility().addEffect(effect); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2)); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + + } + + public Floodwaters(final Floodwaters card) { + super(card); + } + + @Override + public Floodwaters copy() { + return new Floodwaters(this); + } +} diff --git a/Mage.Sets/src/mage/cards/f/FlourishingDefenses.java b/Mage.Sets/src/mage/cards/f/FlourishingDefenses.java index a902410c388..85d4435a858 100644 --- a/Mage.Sets/src/mage/cards/f/FlourishingDefenses.java +++ b/Mage.Sets/src/mage/cards/f/FlourishingDefenses.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; @@ -41,6 +40,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.game.permanent.token.ElfToken; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/FlowOfIdeas.java b/Mage.Sets/src/mage/cards/f/FlowOfIdeas.java index f1115a26c0b..f54f2b547b4 100644 --- a/Mage.Sets/src/mage/cards/f/FlowOfIdeas.java +++ b/Mage.Sets/src/mage/cards/f/FlowOfIdeas.java @@ -27,15 +27,16 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FlowOfMaggots.java b/Mage.Sets/src/mage/cards/f/FlowOfMaggots.java index 214e7de85b7..5219f9929bf 100644 --- a/Mage.Sets/src/mage/cards/f/FlowOfMaggots.java +++ b/Mage.Sets/src/mage/cards/f/FlowOfMaggots.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FloweringField.java b/Mage.Sets/src/mage/cards/f/FloweringField.java index 00362a0f0de..763f22745c3 100644 --- a/Mage.Sets/src/mage/cards/f/FloweringField.java +++ b/Mage.Sets/src/mage/cards/f/FloweringField.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,15 +38,13 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FloweringLumberknot.java b/Mage.Sets/src/mage/cards/f/FloweringLumberknot.java index e7a7341bb2c..fa43b91d446 100644 --- a/Mage.Sets/src/mage/cards/f/FloweringLumberknot.java +++ b/Mage.Sets/src/mage/cards/f/FloweringLumberknot.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneArmor.java b/Mage.Sets/src/mage/cards/f/FlowstoneArmor.java index b73d1da0e2d..393042ede8a 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneArmor.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneArmor.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SkipUntapOptionalAbility; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneBlade.java b/Mage.Sets/src/mage/cards/f/FlowstoneBlade.java index 2e58b720dc2..a7c5d1beb09 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneBlade.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneBlade.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneCharger.java b/Mage.Sets/src/mage/cards/f/FlowstoneCharger.java index 0840e3222d4..c2fe9ddc91b 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneCharger.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneCharger.java @@ -27,16 +27,16 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneCrusher.java b/Mage.Sets/src/mage/cards/f/FlowstoneCrusher.java index b19d24b496e..d8b7d094c0b 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneCrusher.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneCrusher.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneEmbrace.java b/Mage.Sets/src/mage/cards/f/FlowstoneEmbrace.java index 3d67204473b..71232de5549 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneEmbrace.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneEmbrace.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneFlood.java b/Mage.Sets/src/mage/cards/f/FlowstoneFlood.java index ae25a4e22dd..c7d57f4eb0b 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneFlood.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneFlood.java @@ -27,16 +27,17 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.costs.common.PayLifeCost; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.BuybackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneGiant.java b/Mage.Sets/src/mage/cards/f/FlowstoneGiant.java index bce78787cd5..9e1c60841a3 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneGiant.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneGiant.java @@ -27,15 +27,18 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneHellion.java b/Mage.Sets/src/mage/cards/f/FlowstoneHellion.java index d4b14a27d64..617af468bdb 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneHellion.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneHellion.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneMauler.java b/Mage.Sets/src/mage/cards/f/FlowstoneMauler.java index be1c8cd3b77..84d3209475f 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneMauler.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneMauler.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneOverseer.java b/Mage.Sets/src/mage/cards/f/FlowstoneOverseer.java index 61dde0bab94..a500fc29522 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneOverseer.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneOverseer.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneSalamander.java b/Mage.Sets/src/mage/cards/f/FlowstoneSalamander.java index 0b9009a84a2..d31d9703b5d 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneSalamander.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneSalamander.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.BlockingAttackerIdPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneSculpture.java b/Mage.Sets/src/mage/cards/f/FlowstoneSculpture.java index 69507915eeb..8022d446443 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneSculpture.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneSculpture.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.HashSet; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -52,6 +50,9 @@ import mage.counters.CounterType; import mage.game.Game; import mage.players.Player; +import java.util.HashSet; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneShambler.java b/Mage.Sets/src/mage/cards/f/FlowstoneShambler.java index be104103ef4..8aff5dd893e 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneShambler.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneShambler.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneSlide.java b/Mage.Sets/src/mage/cards/f/FlowstoneSlide.java index 9f4655b3528..0d558f71790 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneSlide.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneSlide.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.dynamicvalue.common.SignInversionDynamicValue; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author chrisasanford diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneThopter.java b/Mage.Sets/src/mage/cards/f/FlowstoneThopter.java index 187ff53ce8a..63b40853ccc 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneThopter.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneThopter.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Galatolol diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneWall.java b/Mage.Sets/src/mage/cards/f/FlowstoneWall.java index 762323688a5..4f6b1a1d13f 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneWall.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneWall.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneWyvern.java b/Mage.Sets/src/mage/cards/f/FlowstoneWyvern.java index 72f3c5ba229..d27cf83ddfd 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneWyvern.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneWyvern.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; @@ -37,6 +34,12 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/Fluctuator.java b/Mage.Sets/src/mage/cards/f/Fluctuator.java index 707257c60cc..7bf2e0482b0 100644 --- a/Mage.Sets/src/mage/cards/f/Fluctuator.java +++ b/Mage.Sets/src/mage/cards/f/Fluctuator.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.LinkedHashSet; -import java.util.Set; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.ActivatedAbility; @@ -39,16 +36,15 @@ import mage.abilities.keyword.CyclingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.choices.ChoiceImpl; -import mage.constants.AbilityType; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; import mage.util.CardUtil; +import java.util.LinkedHashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlurryOfHorns.java b/Mage.Sets/src/mage/cards/f/FlurryOfHorns.java index 29fc7dae906..078c046d046 100644 --- a/Mage.Sets/src/mage/cards/f/FlurryOfHorns.java +++ b/Mage.Sets/src/mage/cards/f/FlurryOfHorns.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.effects.common.CreateTokenEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlurryOfWings.java b/Mage.Sets/src/mage/cards/f/FlurryOfWings.java index 9057758d72a..5af6470cdb5 100644 --- a/Mage.Sets/src/mage/cards/f/FlurryOfWings.java +++ b/Mage.Sets/src/mage/cards/f/FlurryOfWings.java @@ -27,17 +27,18 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterAttackingCreature; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/Flusterstorm.java b/Mage.Sets/src/mage/cards/f/Flusterstorm.java index bc01eff74e2..6e79c2bae10 100644 --- a/Mage.Sets/src/mage/cards/f/Flusterstorm.java +++ b/Mage.Sets/src/mage/cards/f/Flusterstorm.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CounterUnlessPaysEffect; import mage.abilities.keyword.StormAbility; @@ -39,6 +38,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/Flux.java b/Mage.Sets/src/mage/cards/f/Flux.java index e213929da8b..45e851749ae 100644 --- a/Mage.Sets/src/mage/cards/f/Flux.java +++ b/Mage.Sets/src/mage/cards/f/Flux.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -38,6 +37,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/Fluxcharger.java b/Mage.Sets/src/mage/cards/f/Fluxcharger.java index 31a11174aa6..6fae10adb52 100644 --- a/Mage.Sets/src/mage/cards/f/Fluxcharger.java +++ b/Mage.Sets/src/mage/cards/f/Fluxcharger.java @@ -27,20 +27,20 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.continuous.SwitchPowerToughnessSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlyingCarpet.java b/Mage.Sets/src/mage/cards/f/FlyingCarpet.java index c5feb866f9c..7e6f6eb99b6 100644 --- a/Mage.Sets/src/mage/cards/f/FlyingCarpet.java +++ b/Mage.Sets/src/mage/cards/f/FlyingCarpet.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,10 +35,13 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FlyingCraneTechnique.java b/Mage.Sets/src/mage/cards/f/FlyingCraneTechnique.java index 42d6dec4149..767e1081873 100644 --- a/Mage.Sets/src/mage/cards/f/FlyingCraneTechnique.java +++ b/Mage.Sets/src/mage/cards/f/FlyingCraneTechnique.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.UntapAllControllerEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FlyingMen.java b/Mage.Sets/src/mage/cards/f/FlyingMen.java index eab6ca3291c..d235a43892c 100644 --- a/Mage.Sets/src/mage/cards/f/FlyingMen.java +++ b/Mage.Sets/src/mage/cards/f/FlyingMen.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FodderCannon.java b/Mage.Sets/src/mage/cards/f/FodderCannon.java index 000af06e296..db746a795a4 100644 --- a/Mage.Sets/src/mage/cards/f/FodderCannon.java +++ b/Mage.Sets/src/mage/cards/f/FodderCannon.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -38,10 +35,13 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FodderLaunch.java b/Mage.Sets/src/mage/cards/f/FodderLaunch.java index 7613bdef35e..6e49334736a 100644 --- a/Mage.Sets/src/mage/cards/f/FodderLaunch.java +++ b/Mage.Sets/src/mage/cards/f/FodderLaunch.java @@ -27,19 +27,19 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.DamageTargetControllerEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author BursegSardaukar */ diff --git a/Mage.Sets/src/mage/cards/f/FoeRazerRegent.java b/Mage.Sets/src/mage/cards/f/FoeRazerRegent.java index 1461b352696..0ad8c3260f9 100644 --- a/Mage.Sets/src/mage/cards/f/FoeRazerRegent.java +++ b/Mage.Sets/src/mage/cards/f/FoeRazerRegent.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -53,6 +52,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Fog.java b/Mage.Sets/src/mage/cards/f/Fog.java index dd2080cc6f6..d1e614e7116 100644 --- a/Mage.Sets/src/mage/cards/f/Fog.java +++ b/Mage.Sets/src/mage/cards/f/Fog.java @@ -1,16 +1,16 @@ /* * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without modification, are * permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. - * + * * 2. Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR @@ -20,7 +20,7 @@ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * + * * The views and conclusions contained in the software and documentation are those of the * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. @@ -28,12 +28,13 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * @@ -44,6 +45,7 @@ public class Fog extends CardImpl { public Fog(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{G}"); + // Prevent all combat damage that would be dealt this turn. this.getSpellAbility().addEffect(new PreventAllDamageByAllPermanentsEffect(Duration.EndOfTurn, true)); } diff --git a/Mage.Sets/src/mage/cards/f/FogBank.java b/Mage.Sets/src/mage/cards/f/FogBank.java index a88d1bc436a..4c14238f9d7 100644 --- a/Mage.Sets/src/mage/cards/f/FogBank.java +++ b/Mage.Sets/src/mage/cards/f/FogBank.java @@ -27,10 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -40,8 +36,12 @@ import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/FogElemental.java b/Mage.Sets/src/mage/cards/f/FogElemental.java index 55b066a0d93..71fd3b4a632 100644 --- a/Mage.Sets/src/mage/cards/f/FogElemental.java +++ b/Mage.Sets/src/mage/cards/f/FogElemental.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/FogOfGnats.java b/Mage.Sets/src/mage/cards/f/FogOfGnats.java index 5a4f0648abd..27cc7cb1508 100644 --- a/Mage.Sets/src/mage/cards/f/FogOfGnats.java +++ b/Mage.Sets/src/mage/cards/f/FogOfGnats.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +34,10 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/Fogwalker.java b/Mage.Sets/src/mage/cards/f/Fogwalker.java index 956342727c7..9b3e7b2083a 100644 --- a/Mage.Sets/src/mage/cards/f/Fogwalker.java +++ b/Mage.Sets/src/mage/cards/f/Fogwalker.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; @@ -40,6 +39,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Foil.java b/Mage.Sets/src/mage/cards/f/Foil.java index afc9f28957f..649ed598773 100644 --- a/Mage.Sets/src/mage/cards/f/Foil.java +++ b/Mage.Sets/src/mage/cards/f/Foil.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.DiscardTargetCost; @@ -40,6 +39,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetSpell; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FoldIntoAether.java b/Mage.Sets/src/mage/cards/f/FoldIntoAether.java index ae95ec3a706..59a75785078 100644 --- a/Mage.Sets/src/mage/cards/f/FoldIntoAether.java +++ b/Mage.Sets/src/mage/cards/f/FoldIntoAether.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -43,6 +42,8 @@ import mage.players.Player; import mage.target.TargetSpell; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FolkMedicine.java b/Mage.Sets/src/mage/cards/f/FolkMedicine.java index 7044bf403ff..c58b0a065f0 100644 --- a/Mage.Sets/src/mage/cards/f/FolkMedicine.java +++ b/Mage.Sets/src/mage/cards/f/FolkMedicine.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.TimingRule; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FolkOfAnHavva.java b/Mage.Sets/src/mage/cards/f/FolkOfAnHavva.java index f76fe2744ec..0115c3d8d3b 100644 --- a/Mage.Sets/src/mage/cards/f/FolkOfAnHavva.java +++ b/Mage.Sets/src/mage/cards/f/FolkOfAnHavva.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BlocksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FolkOfThePines.java b/Mage.Sets/src/mage/cards/f/FolkOfThePines.java index 7db0a5d4ad8..c0d89d079eb 100644 --- a/Mage.Sets/src/mage/cards/f/FolkOfThePines.java +++ b/Mage.Sets/src/mage/cards/f/FolkOfThePines.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author hanasu diff --git a/Mage.Sets/src/mage/cards/f/FollowedFootsteps.java b/Mage.Sets/src/mage/cards/f/FollowedFootsteps.java index dc214e80eb6..1632a6c868f 100644 --- a/Mage.Sets/src/mage/cards/f/FollowedFootsteps.java +++ b/Mage.Sets/src/mage/cards/f/FollowedFootsteps.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.OnEventTriggeredAbility; import mage.abilities.effects.Effect; @@ -46,6 +45,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FomoriNomad.java b/Mage.Sets/src/mage/cards/f/FomoriNomad.java index 26a98e5161c..b1e063208f1 100644 --- a/Mage.Sets/src/mage/cards/f/FomoriNomad.java +++ b/Mage.Sets/src/mage/cards/f/FomoriNomad.java @@ -27,11 +27,12 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FontOfFertility.java b/Mage.Sets/src/mage/cards/f/FontOfFertility.java index 02c3e193335..3ea13f52664 100644 --- a/Mage.Sets/src/mage/cards/f/FontOfFertility.java +++ b/Mage.Sets/src/mage/cards/f/FontOfFertility.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FontOfFortunes.java b/Mage.Sets/src/mage/cards/f/FontOfFortunes.java index a0771e76082..44ab44a40a2 100644 --- a/Mage.Sets/src/mage/cards/f/FontOfFortunes.java +++ b/Mage.Sets/src/mage/cards/f/FontOfFortunes.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FontOfIre.java b/Mage.Sets/src/mage/cards/f/FontOfIre.java index d17ab709c06..447d7af989d 100644 --- a/Mage.Sets/src/mage/cards/f/FontOfIre.java +++ b/Mage.Sets/src/mage/cards/f/FontOfIre.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FontOfMythos.java b/Mage.Sets/src/mage/cards/f/FontOfMythos.java index 12939e56819..7d9a84ac1e7 100644 --- a/Mage.Sets/src/mage/cards/f/FontOfMythos.java +++ b/Mage.Sets/src/mage/cards/f/FontOfMythos.java @@ -28,7 +28,6 @@ package mage.cards.f; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.cards.CardImpl; @@ -40,6 +39,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/f/FontOfReturn.java b/Mage.Sets/src/mage/cards/f/FontOfReturn.java index 381ec917e36..fc98cfb6b7f 100644 --- a/Mage.Sets/src/mage/cards/f/FontOfReturn.java +++ b/Mage.Sets/src/mage/cards/f/FontOfReturn.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FontOfVigor.java b/Mage.Sets/src/mage/cards/f/FontOfVigor.java index 0fd87ab4342..502d9649606 100644 --- a/Mage.Sets/src/mage/cards/f/FontOfVigor.java +++ b/Mage.Sets/src/mage/cards/f/FontOfVigor.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FoodChain.java b/Mage.Sets/src/mage/cards/f/FoodChain.java index 3a001b430db..54030980709 100644 --- a/Mage.Sets/src/mage/cards/f/FoodChain.java +++ b/Mage.Sets/src/mage/cards/f/FoodChain.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.ConditionalMana; import mage.Mana; import mage.abilities.Ability; @@ -49,6 +48,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/FoolsDemise.java b/Mage.Sets/src/mage/cards/f/FoolsDemise.java index 066f18a9a1a..3bf92906196 100644 --- a/Mage.Sets/src/mage/cards/f/FoolsDemise.java +++ b/Mage.Sets/src/mage/cards/f/FoolsDemise.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.Outcome; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FoolsTome.java b/Mage.Sets/src/mage/cards/f/FoolsTome.java index 01676cc376a..ce3440771b6 100644 --- a/Mage.Sets/src/mage/cards/f/FoolsTome.java +++ b/Mage.Sets/src/mage/cards/f/FoolsTome.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.HellbentCondition; import mage.abilities.costs.common.TapSourceCost; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FootSoldiers.java b/Mage.Sets/src/mage/cards/f/FootSoldiers.java index 847929e2c0c..895e51fb168 100644 --- a/Mage.Sets/src/mage/cards/f/FootSoldiers.java +++ b/Mage.Sets/src/mage/cards/f/FootSoldiers.java @@ -27,11 +27,12 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FootbottomFeast.java b/Mage.Sets/src/mage/cards/f/FootbottomFeast.java index 866583fccfa..6ed4b1ec309 100644 --- a/Mage.Sets/src/mage/cards/f/FootbottomFeast.java +++ b/Mage.Sets/src/mage/cards/f/FootbottomFeast.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FoothillGuide.java b/Mage.Sets/src/mage/cards/f/FoothillGuide.java index 94c499d93ce..8c18bf0396f 100644 --- a/Mage.Sets/src/mage/cards/f/FoothillGuide.java +++ b/Mage.Sets/src/mage/cards/f/FoothillGuide.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.MorphAbility; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FootstepsOfTheGoryo.java b/Mage.Sets/src/mage/cards/f/FootstepsOfTheGoryo.java index 725bb2c793a..aa902339c43 100644 --- a/Mage.Sets/src/mage/cards/f/FootstepsOfTheGoryo.java +++ b/Mage.Sets/src/mage/cards/f/FootstepsOfTheGoryo.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -47,6 +46,8 @@ import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/f/Foratog.java b/Mage.Sets/src/mage/cards/f/Foratog.java index 2b4db351429..993c8413629 100644 --- a/Mage.Sets/src/mage/cards/f/Foratog.java +++ b/Mage.Sets/src/mage/cards/f/Foratog.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,12 +35,15 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/Forbid.java b/Mage.Sets/src/mage/cards/f/Forbid.java index fbd0ccb3061..a1909cede8e 100644 --- a/Mage.Sets/src/mage/cards/f/Forbid.java +++ b/Mage.Sets/src/mage/cards/f/Forbid.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - import mage.abilities.costs.common.DiscardTargetCost; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.keyword.BuybackAbility; @@ -39,6 +37,8 @@ import mage.filter.FilterCard; import mage.target.TargetSpell; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/f/ForbiddenAlchemy.java b/Mage.Sets/src/mage/cards/f/ForbiddenAlchemy.java index 8ef5b97a977..98fce93e168 100644 --- a/Mage.Sets/src/mage/cards/f/ForbiddenAlchemy.java +++ b/Mage.Sets/src/mage/cards/f/ForbiddenAlchemy.java @@ -27,16 +27,11 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlashbackAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TimingRule; @@ -46,6 +41,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/ForbiddenCrypt.java b/Mage.Sets/src/mage/cards/f/ForbiddenCrypt.java index 1a566bea5d2..5b2bd603526 100644 --- a/Mage.Sets/src/mage/cards/f/ForbiddenCrypt.java +++ b/Mage.Sets/src/mage/cards/f/ForbiddenCrypt.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; @@ -47,6 +46,8 @@ import mage.game.permanent.PermanentToken; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/ForbiddenLore.java b/Mage.Sets/src/mage/cards/f/ForbiddenLore.java index ec9da37ea0c..4d674f27e00 100644 --- a/Mage.Sets/src/mage/cards/f/ForbiddenLore.java +++ b/Mage.Sets/src/mage/cards/f/ForbiddenLore.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -38,15 +37,13 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/ForbiddenOrchard.java b/Mage.Sets/src/mage/cards/f/ForbiddenOrchard.java index b8ebbac06ba..1c0e8c1434a 100644 --- a/Mage.Sets/src/mage/cards/f/ForbiddenOrchard.java +++ b/Mage.Sets/src/mage/cards/f/ForbiddenOrchard.java @@ -29,19 +29,20 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.CreateTokenTargetEffect; import mage.abilities.mana.AnyColorManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.token.SpiritToken; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/ForbiddingWatchtower.java b/Mage.Sets/src/mage/cards/f/ForbiddingWatchtower.java index 656a174f0e7..dd5aaaa706e 100644 --- a/Mage.Sets/src/mage/cards/f/ForbiddingWatchtower.java +++ b/Mage.Sets/src/mage/cards/f/ForbiddingWatchtower.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/ForceAway.java b/Mage.Sets/src/mage/cards/f/ForceAway.java index d1b31da3f57..f83c3967e62 100644 --- a/Mage.Sets/src/mage/cards/f/ForceAway.java +++ b/Mage.Sets/src/mage/cards/f/ForceAway.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.condition.common.FerociousCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.Effect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/ForceChoke.java b/Mage.Sets/src/mage/cards/f/ForceChoke.java index a3d155ab684..26162a6cd08 100644 --- a/Mage.Sets/src/mage/cards/f/ForceChoke.java +++ b/Mage.Sets/src/mage/cards/f/ForceChoke.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.common.PayLifeCost; @@ -44,6 +43,8 @@ import mage.game.stack.StackObject; import mage.players.Player; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/ForceDenial.java b/Mage.Sets/src/mage/cards/f/ForceDenial.java index 4832efee6b6..ce48bac4a28 100644 --- a/Mage.Sets/src/mage/cards/f/ForceDenial.java +++ b/Mage.Sets/src/mage/cards/f/ForceDenial.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.HateCondition; import mage.abilities.costs.mana.GenericManaCost; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.target.TargetSpell; import mage.watchers.common.LifeLossOtherFromCombatWatcher; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/ForceDrain.java b/Mage.Sets/src/mage/cards/f/ForceDrain.java index 5bb111c4338..d91ccb2c1a1 100644 --- a/Mage.Sets/src/mage/cards/f/ForceDrain.java +++ b/Mage.Sets/src/mage/cards/f/ForceDrain.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.keyword.ScryEffect; @@ -40,6 +39,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/ForceHealing.java b/Mage.Sets/src/mage/cards/f/ForceHealing.java index d259691314d..28c7b94daee 100644 --- a/Mage.Sets/src/mage/cards/f/ForceHealing.java +++ b/Mage.Sets/src/mage/cards/f/ForceHealing.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.PreventDamageToTargetEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/ForceLightning.java b/Mage.Sets/src/mage/cards/f/ForceLightning.java index 311d32e869d..740a3554281 100644 --- a/Mage.Sets/src/mage/cards/f/ForceLightning.java +++ b/Mage.Sets/src/mage/cards/f/ForceLightning.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.OneShotEffect; @@ -40,6 +39,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/ForceMastery.java b/Mage.Sets/src/mage/cards/f/ForceMastery.java index 0db6f835a53..9489ddc40f0 100644 --- a/Mage.Sets/src/mage/cards/f/ForceMastery.java +++ b/Mage.Sets/src/mage/cards/f/ForceMastery.java @@ -27,15 +27,10 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; @@ -44,6 +39,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/ForceOfNature.java b/Mage.Sets/src/mage/cards/f/ForceOfNature.java index f90ede3add4..442b456a418 100644 --- a/Mage.Sets/src/mage/cards/f/ForceOfNature.java +++ b/Mage.Sets/src/mage/cards/f/ForceOfNature.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -43,6 +42,8 @@ import mage.constants.TargetController; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/ForceOfSavagery.java b/Mage.Sets/src/mage/cards/f/ForceOfSavagery.java index 468514759ae..bf7a324e6ce 100644 --- a/Mage.Sets/src/mage/cards/f/ForceOfSavagery.java +++ b/Mage.Sets/src/mage/cards/f/ForceOfSavagery.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/ForceOfWill.java b/Mage.Sets/src/mage/cards/f/ForceOfWill.java index 597973654ad..e9adae8320f 100644 --- a/Mage.Sets/src/mage/cards/f/ForceOfWill.java +++ b/Mage.Sets/src/mage/cards/f/ForceOfWill.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.ExileFromHandCost; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetSpell; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/ForcePull.java b/Mage.Sets/src/mage/cards/f/ForcePull.java index a6df2e9c1b4..a23afb668a3 100644 --- a/Mage.Sets/src/mage/cards/f/ForcePull.java +++ b/Mage.Sets/src/mage/cards/f/ForcePull.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.keyword.SpaceflightAbility; @@ -38,6 +37,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/ForcePush.java b/Mage.Sets/src/mage/cards/f/ForcePush.java index b3dda9d935d..fc6c9012db9 100644 --- a/Mage.Sets/src/mage/cards/f/ForcePush.java +++ b/Mage.Sets/src/mage/cards/f/ForcePush.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/ForceReflex.java b/Mage.Sets/src/mage/cards/f/ForceReflex.java index a1d0895d678..b1e75f43aaa 100644 --- a/Mage.Sets/src/mage/cards/f/ForceReflex.java +++ b/Mage.Sets/src/mage/cards/f/ForceReflex.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/ForceScream.java b/Mage.Sets/src/mage/cards/f/ForceScream.java index 3464148146f..6bba9cbcdd2 100644 --- a/Mage.Sets/src/mage/cards/f/ForceScream.java +++ b/Mage.Sets/src/mage/cards/f/ForceScream.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DamageEverythingEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.keyword.SpaceflightAbility; @@ -38,6 +37,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/ForceSpark.java b/Mage.Sets/src/mage/cards/f/ForceSpark.java index 41eae6e8842..0198fedb816 100644 --- a/Mage.Sets/src/mage/cards/f/ForceSpark.java +++ b/Mage.Sets/src/mage/cards/f/ForceSpark.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/ForceSpike.java b/Mage.Sets/src/mage/cards/f/ForceSpike.java index b4b3895d46f..087573b95f2 100644 --- a/Mage.Sets/src/mage/cards/f/ForceSpike.java +++ b/Mage.Sets/src/mage/cards/f/ForceSpike.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CounterUnlessPaysEffect; import mage.cards.CardImpl; @@ -36,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/f/ForceVoid.java b/Mage.Sets/src/mage/cards/f/ForceVoid.java index 74fd3dee3bb..50f21d88bfd 100644 --- a/Mage.Sets/src/mage/cards/f/ForceVoid.java +++ b/Mage.Sets/src/mage/cards/f/ForceVoid.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CounterUnlessPaysEffect; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/ForcedAdaptation.java b/Mage.Sets/src/mage/cards/f/ForcedAdaptation.java index e5703192ca8..281aea9becf 100644 --- a/Mage.Sets/src/mage/cards/f/ForcedAdaptation.java +++ b/Mage.Sets/src/mage/cards/f/ForcedAdaptation.java @@ -27,11 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.AttachEffect; @@ -39,9 +34,15 @@ import mage.abilities.effects.common.counter.AddPlusOneCountersAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/ForcedFruition.java b/Mage.Sets/src/mage/cards/f/ForcedFruition.java index 5c6a8b1aa45..0e7ca4589cf 100644 --- a/Mage.Sets/src/mage/cards/f/ForcedFruition.java +++ b/Mage.Sets/src/mage/cards/f/ForcedFruition.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - import mage.abilities.common.SpellCastOpponentTriggeredAbility; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.cards.CardImpl; @@ -38,6 +36,8 @@ import mage.constants.SetTargetPointer; import mage.constants.Zone; import mage.filter.FilterSpell; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/f/ForcedMarch.java b/Mage.Sets/src/mage/cards/f/ForcedMarch.java index 72fa35ef412..14b5054028e 100644 --- a/Mage.Sets/src/mage/cards/f/ForcedMarch.java +++ b/Mage.Sets/src/mage/cards/f/ForcedMarch.java @@ -5,22 +5,22 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; -import mage.constants.CardType; - -/** - * - * @author nick.myers - */ import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + +/** + * @author nick.myers + */ + public class ForcedMarch extends CardImpl { diff --git a/Mage.Sets/src/mage/cards/f/ForcedRetreat.java b/Mage.Sets/src/mage/cards/f/ForcedRetreat.java index 9492f03d953..72d56d67dc0 100644 --- a/Mage.Sets/src/mage/cards/f/ForcedRetreat.java +++ b/Mage.Sets/src/mage/cards/f/ForcedRetreat.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/ForcedWorship.java b/Mage.Sets/src/mage/cards/f/ForcedWorship.java index 66ca8293a02..59f6e631c8b 100644 --- a/Mage.Sets/src/mage/cards/f/ForcedWorship.java +++ b/Mage.Sets/src/mage/cards/f/ForcedWorship.java @@ -28,9 +28,6 @@ package mage.cards.f; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,9 +38,15 @@ import mage.abilities.effects.common.combat.CantAttackAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/Forcefield.java b/Mage.Sets/src/mage/cards/f/Forcefield.java index b35074e689c..f87f80f357e 100644 --- a/Mage.Sets/src/mage/cards/f/Forcefield.java +++ b/Mage.Sets/src/mage/cards/f/Forcefield.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -52,6 +51,8 @@ import mage.target.Target; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/ForebodingRuins.java b/Mage.Sets/src/mage/cards/f/ForebodingRuins.java index 9d98bb6a2b1..6108d48ece5 100644 --- a/Mage.Sets/src/mage/cards/f/ForebodingRuins.java +++ b/Mage.Sets/src/mage/cards/f/ForebodingRuins.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.common.TapSourceUnlessPaysEffect; @@ -41,6 +40,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/ForerunnerOfSlaughter.java b/Mage.Sets/src/mage/cards/f/ForerunnerOfSlaughter.java index 8a987107cdc..8fd4207d00b 100644 --- a/Mage.Sets/src/mage/cards/f/ForerunnerOfSlaughter.java +++ b/Mage.Sets/src/mage/cards/f/ForerunnerOfSlaughter.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorlessPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Foresee.java b/Mage.Sets/src/mage/cards/f/Foresee.java index 27c6595f1b2..f0957796a17 100644 --- a/Mage.Sets/src/mage/cards/f/Foresee.java +++ b/Mage.Sets/src/mage/cards/f/Foresee.java @@ -28,12 +28,13 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/ForestBear.java b/Mage.Sets/src/mage/cards/f/ForestBear.java index d612381208d..5dc8620dd07 100644 --- a/Mage.Sets/src/mage/cards/f/ForestBear.java +++ b/Mage.Sets/src/mage/cards/f/ForestBear.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Forfend.java b/Mage.Sets/src/mage/cards/f/Forfend.java index 91fcfdb0f62..934d49eedbf 100644 --- a/Mage.Sets/src/mage/cards/f/Forfend.java +++ b/Mage.Sets/src/mage/cards/f/Forfend.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.PreventAllDamageToAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/ForgeArmor.java b/Mage.Sets/src/mage/cards/f/ForgeArmor.java index bfca5b07872..752ecba43b5 100644 --- a/Mage.Sets/src/mage/cards/f/ForgeArmor.java +++ b/Mage.Sets/src/mage/cards/f/ForgeArmor.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.dynamicvalue.common.SacrificeCostConvertedMana; import mage.abilities.effects.common.counter.AddCountersTargetEffect; @@ -39,6 +38,8 @@ import mage.filter.common.FilterControlledArtifactPermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/ForgeDevil.java b/Mage.Sets/src/mage/cards/f/ForgeDevil.java index 5f1d141736f..bc05eec5a31 100644 --- a/Mage.Sets/src/mage/cards/f/ForgeDevil.java +++ b/Mage.Sets/src/mage/cards/f/ForgeDevil.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/f/ForgebornOreads.java b/Mage.Sets/src/mage/cards/f/ForgebornOreads.java index e17213678e6..2a1fa44b9df 100644 --- a/Mage.Sets/src/mage/cards/f/ForgebornOreads.java +++ b/Mage.Sets/src/mage/cards/f/ForgebornOreads.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.abilityword.ConstellationAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/ForgestokerDragon.java b/Mage.Sets/src/mage/cards/f/ForgestokerDragon.java index 67dc64d6c21..43aa253e0ff 100644 --- a/Mage.Sets/src/mage/cards/f/ForgestokerDragon.java +++ b/Mage.Sets/src/mage/cards/f/ForgestokerDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +61,7 @@ public class ForgestokerDragon extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); // {1}{R}: Forgestoker Dragon deals 1 damage to target creature. That creature can't block this combat. Activate this ability only if Forgestoker Dragon is attacking. - Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{1}{R}"), new SourceAttackingCondition()); + Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{1}{R}"), SourceAttackingCondition.instance); ability.addTarget(new TargetCreaturePermanent()); Effect effect = new CantBlockTargetEffect(Duration.EndOfCombat); effect.setText("That creature can't block this combat"); diff --git a/Mage.Sets/src/mage/cards/f/Forget.java b/Mage.Sets/src/mage/cards/f/Forget.java index 12a739a4b92..2c5d6fd119b 100644 --- a/Mage.Sets/src/mage/cards/f/Forget.java +++ b/Mage.Sets/src/mage/cards/f/Forget.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/ForgottenAncient.java b/Mage.Sets/src/mage/cards/f/ForgottenAncient.java index 7513d62d574..0fe92d351b8 100644 --- a/Mage.Sets/src/mage/cards/f/ForgottenAncient.java +++ b/Mage.Sets/src/mage/cards/f/ForgottenAncient.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.ArrayList; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -51,6 +49,9 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.ArrayList; +import java.util.UUID; + /** * * @author Blinke diff --git a/Mage.Sets/src/mage/cards/f/ForgottenCave.java b/Mage.Sets/src/mage/cards/f/ForgottenCave.java index 28f39e9c513..6376f03981f 100644 --- a/Mage.Sets/src/mage/cards/f/ForgottenCave.java +++ b/Mage.Sets/src/mage/cards/f/ForgottenCave.java @@ -27,14 +27,15 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.CyclingAbility; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/ForgottenCreation.java b/Mage.Sets/src/mage/cards/f/ForgottenCreation.java index 5ebebee7ba9..c82233fbcad 100644 --- a/Mage.Sets/src/mage/cards/f/ForgottenCreation.java +++ b/Mage.Sets/src/mage/cards/f/ForgottenCreation.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.TargetController; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/ForgottenLore.java b/Mage.Sets/src/mage/cards/f/ForgottenLore.java index ef502bcd430..7276b39bc37 100644 --- a/Mage.Sets/src/mage/cards/f/ForgottenLore.java +++ b/Mage.Sets/src/mage/cards/f/ForgottenLore.java @@ -27,16 +27,11 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -48,6 +43,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetOpponent; + +import java.util.UUID; /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/ForiysianBrigade.java b/Mage.Sets/src/mage/cards/f/ForiysianBrigade.java index 2bc1e85efab..36a20c70c90 100644 --- a/Mage.Sets/src/mage/cards/f/ForiysianBrigade.java +++ b/Mage.Sets/src/mage/cards/f/ForiysianBrigade.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CanBlockAdditionalCreatureEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/ForiysianInterceptor.java b/Mage.Sets/src/mage/cards/f/ForiysianInterceptor.java index a6cdb72f20d..76ffa1d81b0 100644 --- a/Mage.Sets/src/mage/cards/f/ForiysianInterceptor.java +++ b/Mage.Sets/src/mage/cards/f/ForiysianInterceptor.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CanBlockAdditionalCreatureEffect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/Fork.java b/Mage.Sets/src/mage/cards/f/Fork.java index 84bcec8ee78..e2710b74eef 100644 --- a/Mage.Sets/src/mage/cards/f/Fork.java +++ b/Mage.Sets/src/mage/cards/f/Fork.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.OneShotEffect; @@ -44,6 +43,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/ForkInTheRoad.java b/Mage.Sets/src/mage/cards/f/ForkInTheRoad.java index 066266ec64c..b6ac1d29e2f 100644 --- a/Mage.Sets/src/mage/cards/f/ForkInTheRoad.java +++ b/Mage.Sets/src/mage/cards/f/ForkInTheRoad.java @@ -27,15 +27,10 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -46,6 +41,8 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/ForkedBolt.java b/Mage.Sets/src/mage/cards/f/ForkedBolt.java index dceb13efc37..701bbac1bbc 100644 --- a/Mage.Sets/src/mage/cards/f/ForkedBolt.java +++ b/Mage.Sets/src/mage/cards/f/ForkedBolt.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageMultiEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayerAmount; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/ForkedBranchGarami.java b/Mage.Sets/src/mage/cards/f/ForkedBranchGarami.java index 7bc9e40a1cc..1564bf25580 100644 --- a/Mage.Sets/src/mage/cards/f/ForkedBranchGarami.java +++ b/Mage.Sets/src/mage/cards/f/ForkedBranchGarami.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.SoulshiftAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/ForlornPseudamma.java b/Mage.Sets/src/mage/cards/f/ForlornPseudamma.java index 2ef119130ab..4add9e38f8c 100644 --- a/Mage.Sets/src/mage/cards/f/ForlornPseudamma.java +++ b/Mage.Sets/src/mage/cards/f/ForlornPseudamma.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FormOfTheDragon.java b/Mage.Sets/src/mage/cards/f/FormOfTheDragon.java index 859e047b7b6..2df4c8ad334 100644 --- a/Mage.Sets/src/mage/cards/f/FormOfTheDragon.java +++ b/Mage.Sets/src/mage/cards/f/FormOfTheDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -47,6 +46,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/FormlessNurturing.java b/Mage.Sets/src/mage/cards/f/FormlessNurturing.java index 63f656ec2de..f7b6f0bd415 100644 --- a/Mage.Sets/src/mage/cards/f/FormlessNurturing.java +++ b/Mage.Sets/src/mage/cards/f/FormlessNurturing.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/ForsakeTheWorldly.java b/Mage.Sets/src/mage/cards/f/ForsakeTheWorldly.java new file mode 100644 index 00000000000..d2045246204 --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/ForsakeTheWorldly.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.f; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.ExileTargetEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterArtifactOrEnchantmentPermanent; +import mage.target.TargetPermanent; + +/** + * + * @author fireshoes + */ +public class ForsakeTheWorldly extends CardImpl { + + public ForsakeTheWorldly(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{W}"); + + // Exile target artifact or enchantment. + getSpellAbility().addEffect(new ExileTargetEffect()); + getSpellAbility().addTarget(new TargetPermanent(new FilterArtifactOrEnchantmentPermanent())); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + + } + + public ForsakeTheWorldly(final ForsakeTheWorldly card) { + super(card); + } + + @Override + public ForsakeTheWorldly copy() { + return new ForsakeTheWorldly(this); + } +} diff --git a/Mage.Sets/src/mage/cards/f/ForsakenCity.java b/Mage.Sets/src/mage/cards/f/ForsakenCity.java index 67711a1dd5c..23d115cb25a 100644 --- a/Mage.Sets/src/mage/cards/f/ForsakenCity.java +++ b/Mage.Sets/src/mage/cards/f/ForsakenCity.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.ExileFromHandCost; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author Luna Skyrise diff --git a/Mage.Sets/src/mage/cards/f/ForsakenDrifters.java b/Mage.Sets/src/mage/cards/f/ForsakenDrifters.java index e9cd7125763..4d1cea5f888 100644 --- a/Mage.Sets/src/mage/cards/f/ForsakenDrifters.java +++ b/Mage.Sets/src/mage/cards/f/ForsakenDrifters.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/ForsakenSanctuary.java b/Mage.Sets/src/mage/cards/f/ForsakenSanctuary.java index 4637a7ac1c7..ac135e82bd8 100644 --- a/Mage.Sets/src/mage/cards/f/ForsakenSanctuary.java +++ b/Mage.Sets/src/mage/cards/f/ForsakenSanctuary.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.WhiteManaAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/ForsakenWastes.java b/Mage.Sets/src/mage/cards/f/ForsakenWastes.java index 68305aef982..d36af61591e 100644 --- a/Mage.Sets/src/mage/cards/f/ForsakenWastes.java +++ b/Mage.Sets/src/mage/cards/f/ForsakenWastes.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageObject; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -37,6 +36,7 @@ import mage.abilities.effects.common.continuous.CantGainLifeAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; import mage.game.Game; @@ -45,6 +45,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.stack.Spell; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +55,7 @@ public class ForsakenWastes extends CardImpl { public ForsakenWastes(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{B}"); - this.supertype.add("World"); + addSuperType(SuperType.WORLD); // Players can't gain life. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantGainLifeAllEffect())); diff --git a/Mage.Sets/src/mage/cards/f/FortifiedRampart.java b/Mage.Sets/src/mage/cards/f/FortifiedRampart.java index 32f5ec4ae45..9ac30ab9298 100644 --- a/Mage.Sets/src/mage/cards/f/FortifiedRampart.java +++ b/Mage.Sets/src/mage/cards/f/FortifiedRampart.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FortifiedVillage.java b/Mage.Sets/src/mage/cards/f/FortifiedVillage.java index 493498fc3b8..cebad51600b 100644 --- a/Mage.Sets/src/mage/cards/f/FortifiedVillage.java +++ b/Mage.Sets/src/mage/cards/f/FortifiedVillage.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.common.TapSourceUnlessPaysEffect; @@ -41,6 +40,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/Fortify.java b/Mage.Sets/src/mage/cards/f/Fortify.java index 74ef6d2df6b..1ebe606573a 100644 --- a/Mage.Sets/src/mage/cards/f/Fortify.java +++ b/Mage.Sets/src/mage/cards/f/Fortify.java @@ -27,15 +27,15 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Mode; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/Fortitude.java b/Mage.Sets/src/mage/cards/f/Fortitude.java index 844e8b2ef41..7c8f9944d30 100644 --- a/Mage.Sets/src/mage/cards/f/Fortitude.java +++ b/Mage.Sets/src/mage/cards/f/Fortitude.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author hanasu diff --git a/Mage.Sets/src/mage/cards/f/FortressCrab.java b/Mage.Sets/src/mage/cards/f/FortressCrab.java index 57eea924f10..faaa72522bd 100644 --- a/Mage.Sets/src/mage/cards/f/FortressCrab.java +++ b/Mage.Sets/src/mage/cards/f/FortressCrab.java @@ -27,11 +27,12 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FortressCyclops.java b/Mage.Sets/src/mage/cards/f/FortressCyclops.java index 842effcebd0..f5e0c2f14ee 100644 --- a/Mage.Sets/src/mage/cards/f/FortressCyclops.java +++ b/Mage.Sets/src/mage/cards/f/FortressCyclops.java @@ -27,15 +27,16 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.BlocksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FortuitousFind.java b/Mage.Sets/src/mage/cards/f/FortuitousFind.java index 37d9ced7371..ea5fb1a4185 100644 --- a/Mage.Sets/src/mage/cards/f/FortuitousFind.java +++ b/Mage.Sets/src/mage/cards/f/FortuitousFind.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.common.FilterArtifactCard; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FortuneThief.java b/Mage.Sets/src/mage/cards/f/FortuneThief.java index db975be43d0..df0d845de71 100644 --- a/Mage.Sets/src/mage/cards/f/FortuneThief.java +++ b/Mage.Sets/src/mage/cards/f/FortuneThief.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FortunesFavor.java b/Mage.Sets/src/mage/cards/f/FortunesFavor.java index 9e9b780a1a0..0f4f22b15ab 100644 --- a/Mage.Sets/src/mage/cards/f/FortunesFavor.java +++ b/Mage.Sets/src/mage/cards/f/FortunesFavor.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -44,6 +43,8 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FossilFind.java b/Mage.Sets/src/mage/cards/f/FossilFind.java index eb2579fa02d..51421e6d748 100644 --- a/Mage.Sets/src/mage/cards/f/FossilFind.java +++ b/Mage.Sets/src/mage/cards/f/FossilFind.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/Foster.java b/Mage.Sets/src/mage/cards/f/Foster.java index 7f38e3d6fe6..48a7e2ab8c0 100644 --- a/Mage.Sets/src/mage/cards/f/Foster.java +++ b/Mage.Sets/src/mage/cards/f/Foster.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FoulEmissary.java b/Mage.Sets/src/mage/cards/f/FoulEmissary.java index f98b53d26c8..2e71addce19 100644 --- a/Mage.Sets/src/mage/cards/f/FoulEmissary.java +++ b/Mage.Sets/src/mage/cards/f/FoulEmissary.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SacrificeSourceTriggeredAbility; @@ -46,6 +45,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.token.EldraziHorrorToken; import mage.game.stack.Spell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FoulFamiliar.java b/Mage.Sets/src/mage/cards/f/FoulFamiliar.java index 2deb64e023b..268d9117dcb 100644 --- a/Mage.Sets/src/mage/cards/f/FoulFamiliar.java +++ b/Mage.Sets/src/mage/cards/f/FoulFamiliar.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CantBlockAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FoulImp.java b/Mage.Sets/src/mage/cards/f/FoulImp.java index 0fee8828222..5fa371edb99 100644 --- a/Mage.Sets/src/mage/cards/f/FoulImp.java +++ b/Mage.Sets/src/mage/cards/f/FoulImp.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author daagar diff --git a/Mage.Sets/src/mage/cards/f/FoulOrchard.java b/Mage.Sets/src/mage/cards/f/FoulOrchard.java index 5d56292c593..9d8a6049c0c 100644 --- a/Mage.Sets/src/mage/cards/f/FoulOrchard.java +++ b/Mage.Sets/src/mage/cards/f/FoulOrchard.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.GreenManaAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FoulPresence.java b/Mage.Sets/src/mage/cards/f/FoulPresence.java index 84e02f06d96..6133b8026f3 100644 --- a/Mage.Sets/src/mage/cards/f/FoulPresence.java +++ b/Mage.Sets/src/mage/cards/f/FoulPresence.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,14 +39,12 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FoulRenewal.java b/Mage.Sets/src/mage/cards/f/FoulRenewal.java index e5080f88c23..2289f28f602 100644 --- a/Mage.Sets/src/mage/cards/f/FoulRenewal.java +++ b/Mage.Sets/src/mage/cards/f/FoulRenewal.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -46,6 +45,8 @@ import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FoulSpirit.java b/Mage.Sets/src/mage/cards/f/FoulSpirit.java index bc5158b1508..cf8a297cb27 100644 --- a/Mage.Sets/src/mage/cards/f/FoulSpirit.java +++ b/Mage.Sets/src/mage/cards/f/FoulSpirit.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.SacrificeControllerEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FoulTongueInvocation.java b/Mage.Sets/src/mage/cards/f/FoulTongueInvocation.java index d55a933fede..09938de420c 100644 --- a/Mage.Sets/src/mage/cards/f/FoulTongueInvocation.java +++ b/Mage.Sets/src/mage/cards/f/FoulTongueInvocation.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.OneShotEffect; @@ -48,6 +46,8 @@ import mage.target.TargetPlayer; import mage.target.common.TargetCardInHand; import mage.watchers.common.DragonOnTheBattlefieldWhileSpellWasCastWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FoulTongueShriek.java b/Mage.Sets/src/mage/cards/f/FoulTongueShriek.java index 3c90acb32f4..82dc864a5d8 100644 --- a/Mage.Sets/src/mage/cards/f/FoulTongueShriek.java +++ b/Mage.Sets/src/mage/cards/f/FoulTongueShriek.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.common.AttackingFilterCreatureCount; import mage.abilities.effects.OneShotEffect; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FoundryAssembler.java b/Mage.Sets/src/mage/cards/f/FoundryAssembler.java index 4e38c4dd810..3c3dba3d3d7 100644 --- a/Mage.Sets/src/mage/cards/f/FoundryAssembler.java +++ b/Mage.Sets/src/mage/cards/f/FoundryAssembler.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.ImproviseAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FoundryChampion.java b/Mage.Sets/src/mage/cards/f/FoundryChampion.java index 4653106b837..8bce6590e0b 100644 --- a/Mage.Sets/src/mage/cards/f/FoundryChampion.java +++ b/Mage.Sets/src/mage/cards/f/FoundryChampion.java @@ -28,9 +28,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,11 +38,14 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FoundryHornet.java b/Mage.Sets/src/mage/cards/f/FoundryHornet.java index 537f32fdee7..9a9ae008967 100644 --- a/Mage.Sets/src/mage/cards/f/FoundryHornet.java +++ b/Mage.Sets/src/mage/cards/f/FoundryHornet.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -46,6 +45,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.CounterPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FoundryInspector.java b/Mage.Sets/src/mage/cards/f/FoundryInspector.java index 65b8dc549f8..7b0d040bf9e 100644 --- a/Mage.Sets/src/mage/cards/f/FoundryInspector.java +++ b/Mage.Sets/src/mage/cards/f/FoundryInspector.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; @@ -38,6 +37,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FoundryOfTheConsuls.java b/Mage.Sets/src/mage/cards/f/FoundryOfTheConsuls.java index 6a97ff0abeb..b56dda39f23 100644 --- a/Mage.Sets/src/mage/cards/f/FoundryOfTheConsuls.java +++ b/Mage.Sets/src/mage/cards/f/FoundryOfTheConsuls.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.game.permanent.token.ThopterColorlessToken; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FoundryScreecher.java b/Mage.Sets/src/mage/cards/f/FoundryScreecher.java index 92815bf8cf2..8f20e7895c4 100644 --- a/Mage.Sets/src/mage/cards/f/FoundryScreecher.java +++ b/Mage.Sets/src/mage/cards/f/FoundryScreecher.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FoundryStreetDenizen.java b/Mage.Sets/src/mage/cards/f/FoundryStreetDenizen.java index f3e772464a4..2c3940b2afe 100644 --- a/Mage.Sets/src/mage/cards/f/FoundryStreetDenizen.java +++ b/Mage.Sets/src/mage/cards/f/FoundryStreetDenizen.java @@ -27,23 +27,24 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FountainOfCho.java b/Mage.Sets/src/mage/cards/f/FountainOfCho.java index abbbfb1cc21..c5340dfb1ab 100644 --- a/Mage.Sets/src/mage/cards/f/FountainOfCho.java +++ b/Mage.Sets/src/mage/cards/f/FountainOfCho.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; @@ -44,6 +43,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/f/FountainOfYouth.java b/Mage.Sets/src/mage/cards/f/FountainOfYouth.java index 7c0bae98659..710d8e8fd2f 100644 --- a/Mage.Sets/src/mage/cards/f/FountainOfYouth.java +++ b/Mage.Sets/src/mage/cards/f/FountainOfYouth.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -37,8 +34,11 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FountainWatch.java b/Mage.Sets/src/mage/cards/f/FountainWatch.java index 3e83f7f1af2..e0e59ee4b22 100644 --- a/Mage.Sets/src/mage/cards/f/FountainWatch.java +++ b/Mage.Sets/src/mage/cards/f/FountainWatch.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -41,6 +40,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/f/FourthBridgeProwler.java b/Mage.Sets/src/mage/cards/f/FourthBridgeProwler.java index 057a809c44d..8df13412d8f 100644 --- a/Mage.Sets/src/mage/cards/f/FourthBridgeProwler.java +++ b/Mage.Sets/src/mage/cards/f/FourthBridgeProwler.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FoxfireOak.java b/Mage.Sets/src/mage/cards/f/FoxfireOak.java index 78022a4c1ca..d5715c0f463 100644 --- a/Mage.Sets/src/mage/cards/f/FoxfireOak.java +++ b/Mage.Sets/src/mage/cards/f/FoxfireOak.java @@ -27,16 +27,17 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FracturingGust.java b/Mage.Sets/src/mage/cards/f/FracturingGust.java index 184ee22f7c1..98d277ac066 100644 --- a/Mage.Sets/src/mage/cards/f/FracturingGust.java +++ b/Mage.Sets/src/mage/cards/f/FracturingGust.java @@ -27,13 +27,12 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Fragmentize.java b/Mage.Sets/src/mage/cards/f/Fragmentize.java index af4506ec406..5c22ec3614f 100644 --- a/Mage.Sets/src/mage/cards/f/Fragmentize.java +++ b/Mage.Sets/src/mage/cards/f/Fragmentize.java @@ -27,16 +27,17 @@ */ package mage.cards.f; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -46,7 +47,7 @@ public class Fragmentize extends CardImpl { private static final FilterArtifactOrEnchantmentPermanent filter = new FilterArtifactOrEnchantmentPermanent("artifact or enchantment with converted mana cost 4 or less"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 5)); } public Fragmentize(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/f/FranticPurification.java b/Mage.Sets/src/mage/cards/f/FranticPurification.java index 9c540994aeb..8b6c76eb5d5 100644 --- a/Mage.Sets/src/mage/cards/f/FranticPurification.java +++ b/Mage.Sets/src/mage/cards/f/FranticPurification.java @@ -27,12 +27,12 @@ */ package mage.cards.f; -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.MadnessAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetEnchantmentPermanent; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/f/FranticSalvage.java b/Mage.Sets/src/mage/cards/f/FranticSalvage.java index 0e760d8fecb..4e4e0916869 100644 --- a/Mage.Sets/src/mage/cards/f/FranticSalvage.java +++ b/Mage.Sets/src/mage/cards/f/FranticSalvage.java @@ -27,15 +27,15 @@ */ package mage.cards.f; -import mage.constants.CardType; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterArtifactCard; +import mage.target.common.TargetCardInYourGraveyard; import java.util.UUID; -import mage.target.common.TargetCardInYourGraveyard; /** * diff --git a/Mage.Sets/src/mage/cards/f/FranticSearch.java b/Mage.Sets/src/mage/cards/f/FranticSearch.java index b1712c22ddd..9340ba938d3 100644 --- a/Mage.Sets/src/mage/cards/f/FranticSearch.java +++ b/Mage.Sets/src/mage/cards/f/FranticSearch.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DrawDiscardControllerEffect; -import mage.constants.CardType; import mage.abilities.effects.common.UntapLandsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/Frazzle.java b/Mage.Sets/src/mage/cards/f/Frazzle.java index ddb8acb84fd..cf5fb1b4bd7 100644 --- a/Mage.Sets/src/mage/cards/f/Frazzle.java +++ b/Mage.Sets/src/mage/cards/f/Frazzle.java @@ -27,17 +27,18 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/f/FreedFromTheReal.java b/Mage.Sets/src/mage/cards/f/FreedFromTheReal.java index 0a39fd110ed..ce7a5ee92ca 100644 --- a/Mage.Sets/src/mage/cards/f/FreedFromTheReal.java +++ b/Mage.Sets/src/mage/cards/f/FreedFromTheReal.java @@ -27,10 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.AttachEffect; @@ -39,10 +35,14 @@ import mage.abilities.effects.common.UntapEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX diff --git a/Mage.Sets/src/mage/cards/f/FreewindEquenaut.java b/Mage.Sets/src/mage/cards/f/FreewindEquenaut.java index 9a6e1629437..7757fc58b9e 100644 --- a/Mage.Sets/src/mage/cards/f/FreewindEquenaut.java +++ b/Mage.Sets/src/mage/cards/f/FreewindEquenaut.java @@ -27,10 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -42,9 +38,14 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterAttackingOrBlockingCreature; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FreewindFalcon.java b/Mage.Sets/src/mage/cards/f/FreewindFalcon.java index 92017c98a7c..a55481a93be 100644 --- a/Mage.Sets/src/mage/cards/f/FreewindFalcon.java +++ b/Mage.Sets/src/mage/cards/f/FreewindFalcon.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.FlyingAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/f/FreneticEfreet.java b/Mage.Sets/src/mage/cards/f/FreneticEfreet.java index 37b2bd3252e..a68a812e94d 100644 --- a/Mage.Sets/src/mage/cards/f/FreneticEfreet.java +++ b/Mage.Sets/src/mage/cards/f/FreneticEfreet.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FreneticOgre.java b/Mage.Sets/src/mage/cards/f/FreneticOgre.java index e73840be64e..0a84f51ba8e 100644 --- a/Mage.Sets/src/mage/cards/f/FreneticOgre.java +++ b/Mage.Sets/src/mage/cards/f/FreneticOgre.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/f/FreneticSliver.java b/Mage.Sets/src/mage/cards/f/FreneticSliver.java index af8cac90b61..84463581015 100644 --- a/Mage.Sets/src/mage/cards/f/FreneticSliver.java +++ b/Mage.Sets/src/mage/cards/f/FreneticSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -48,6 +47,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author anonymous @@ -64,7 +65,7 @@ public class FreneticSliver extends CardImpl { // All Slivers have "{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner's control at the beginning of the next end step. If you lose the flip, sacrifice it." Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, - new FreneticSliverEffect(), new ManaCostsImpl("{0}"), SourceOnBattlefieldCondition.getInstance(), "{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner's control at the beginning of the next end step. If you lose the flip, sacrifice it."); + new FreneticSliverEffect(), new ManaCostsImpl("{0}"), SourceOnBattlefieldCondition.instance, "{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner's control at the beginning of the next end step. If you lose the flip, sacrifice it."); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(ability, Duration.WhileOnBattlefield, filter, "All Slivers have \"{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner's control at the beginning of the next end step. If you lose the flip, sacrifice it.\""))); diff --git a/Mage.Sets/src/mage/cards/f/FrenziedFugue.java b/Mage.Sets/src/mage/cards/f/FrenziedFugue.java index 27ab625d1fd..782176b789f 100644 --- a/Mage.Sets/src/mage/cards/f/FrenziedFugue.java +++ b/Mage.Sets/src/mage/cards/f/FrenziedFugue.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -51,6 +49,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * @author LevelX2 */ diff --git a/Mage.Sets/src/mage/cards/f/FrenziedGoblin.java b/Mage.Sets/src/mage/cards/f/FrenziedGoblin.java index fbaae281280..2a22ad96fe4 100644 --- a/Mage.Sets/src/mage/cards/f/FrenziedGoblin.java +++ b/Mage.Sets/src/mage/cards/f/FrenziedGoblin.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FrenziedTilling.java b/Mage.Sets/src/mage/cards/f/FrenziedTilling.java index 18f96367f96..25e253caa5a 100644 --- a/Mage.Sets/src/mage/cards/f/FrenziedTilling.java +++ b/Mage.Sets/src/mage/cards/f/FrenziedTilling.java @@ -27,16 +27,17 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FrenzySliver.java b/Mage.Sets/src/mage/cards/f/FrenzySliver.java index 515b6213c1a..623a9252904 100644 --- a/Mage.Sets/src/mage/cards/f/FrenzySliver.java +++ b/Mage.Sets/src/mage/cards/f/FrenzySliver.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; @@ -46,6 +45,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FreshMeat.java b/Mage.Sets/src/mage/cards/f/FreshMeat.java index bd144d9195d..87d68b34680 100644 --- a/Mage.Sets/src/mage/cards/f/FreshMeat.java +++ b/Mage.Sets/src/mage/cards/f/FreshMeat.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; @@ -39,6 +38,8 @@ import mage.game.Game; import mage.game.permanent.token.BeastToken; import mage.watchers.common.CreaturesDiedWatcher; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FreshVolunteers.java b/Mage.Sets/src/mage/cards/f/FreshVolunteers.java index 4c97a4b5e95..880eadf4586 100644 --- a/Mage.Sets/src/mage/cards/f/FreshVolunteers.java +++ b/Mage.Sets/src/mage/cards/f/FreshVolunteers.java @@ -27,11 +27,12 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FretworkColony.java b/Mage.Sets/src/mage/cards/f/FretworkColony.java index cc920ef4272..e4b06e8e22e 100644 --- a/Mage.Sets/src/mage/cards/f/FretworkColony.java +++ b/Mage.Sets/src/mage/cards/f/FretworkColony.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FreyaliseLlanowarsFury.java b/Mage.Sets/src/mage/cards/f/FreyaliseLlanowarsFury.java index fda2a75bd7f..aa9d8bc273c 100644 --- a/Mage.Sets/src/mage/cards/f/FreyaliseLlanowarsFury.java +++ b/Mage.Sets/src/mage/cards/f/FreyaliseLlanowarsFury.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.LoyaltyAbility; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.permanent.token.Token; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FriendlyFire.java b/Mage.Sets/src/mage/cards/f/FriendlyFire.java index f72eb127a9e..e6e954ad0cf 100644 --- a/Mage.Sets/src/mage/cards/f/FriendlyFire.java +++ b/Mage.Sets/src/mage/cards/f/FriendlyFire.java @@ -27,15 +27,10 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; @@ -43,6 +38,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/Frightcrawler.java b/Mage.Sets/src/mage/cards/f/Frightcrawler.java index bbaeb3e3aad..27be4cbfe76 100644 --- a/Mage.Sets/src/mage/cards/f/Frightcrawler.java +++ b/Mage.Sets/src/mage/cards/f/Frightcrawler.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/f/FrightfulDelusion.java b/Mage.Sets/src/mage/cards/f/FrightfulDelusion.java index 7f7a7a23883..79691d54600 100644 --- a/Mage.Sets/src/mage/cards/f/FrightfulDelusion.java +++ b/Mage.Sets/src/mage/cards/f/FrightfulDelusion.java @@ -27,20 +27,21 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.game.Game; import mage.game.stack.StackObject; import mage.players.Player; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Rafbill diff --git a/Mage.Sets/src/mage/cards/f/FrightshroudCourier.java b/Mage.Sets/src/mage/cards/f/FrightshroudCourier.java index 1be6bbfc540..cb94ff13b46 100644 --- a/Mage.Sets/src/mage/cards/f/FrightshroudCourier.java +++ b/Mage.Sets/src/mage/cards/f/FrightshroudCourier.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FrilledOculus.java b/Mage.Sets/src/mage/cards/f/FrilledOculus.java index da2d4ae9a66..b079df86241 100644 --- a/Mage.Sets/src/mage/cards/f/FrilledOculus.java +++ b/Mage.Sets/src/mage/cards/f/FrilledOculus.java @@ -27,18 +27,18 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FrogTongue.java b/Mage.Sets/src/mage/cards/f/FrogTongue.java index 369944b2bbf..8f8d468d00d 100644 --- a/Mage.Sets/src/mage/cards/f/FrogTongue.java +++ b/Mage.Sets/src/mage/cards/f/FrogTongue.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,9 +37,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/f/Frogmite.java b/Mage.Sets/src/mage/cards/f/Frogmite.java index 530c69b60de..1e2557cf4f9 100644 --- a/Mage.Sets/src/mage/cards/f/Frogmite.java +++ b/Mage.Sets/src/mage/cards/f/Frogmite.java @@ -27,12 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.AffinityForArtifactsAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FrogtosserBanneret.java b/Mage.Sets/src/mage/cards/f/FrogtosserBanneret.java index 453568518d8..c36ef5a166c 100644 --- a/Mage.Sets/src/mage/cards/f/FrogtosserBanneret.java +++ b/Mage.Sets/src/mage/cards/f/FrogtosserBanneret.java @@ -27,19 +27,20 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FromBeyond.java b/Mage.Sets/src/mage/cards/f/FromBeyond.java index 3aa53e75395..f48d824e41b 100644 --- a/Mage.Sets/src/mage/cards/f/FromBeyond.java +++ b/Mage.Sets/src/mage/cards/f/FromBeyond.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -46,6 +45,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.EldraziScionToken; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FromTheAshes.java b/Mage.Sets/src/mage/cards/f/FromTheAshes.java index 397d6c1fa27..ca52f4d66e6 100644 --- a/Mage.Sets/src/mage/cards/f/FromTheAshes.java +++ b/Mage.Sets/src/mage/cards/f/FromTheAshes.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -45,6 +42,10 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FromUnderTheFloorboards.java b/Mage.Sets/src/mage/cards/f/FromUnderTheFloorboards.java index 52b190caa23..f209d1900ac 100644 --- a/Mage.Sets/src/mage/cards/f/FromUnderTheFloorboards.java +++ b/Mage.Sets/src/mage/cards/f/FromUnderTheFloorboards.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCosts; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.game.Game; import mage.game.permanent.token.ZombieToken; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/f/FrontierBivouac.java b/Mage.Sets/src/mage/cards/f/FrontierBivouac.java index 6aa73c74d8d..eadf2792bb2 100644 --- a/Mage.Sets/src/mage/cards/f/FrontierBivouac.java +++ b/Mage.Sets/src/mage/cards/f/FrontierBivouac.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.BlueManaAbility; import mage.abilities.mana.GreenManaAbility; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FrontierGuide.java b/Mage.Sets/src/mage/cards/f/FrontierGuide.java index 7a80bb99dd1..3110b786ad5 100644 --- a/Mage.Sets/src/mage/cards/f/FrontierGuide.java +++ b/Mage.Sets/src/mage/cards/f/FrontierGuide.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -37,9 +34,13 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FrontierMastodon.java b/Mage.Sets/src/mage/cards/f/FrontierMastodon.java index be476d413ec..606c50084b6 100644 --- a/Mage.Sets/src/mage/cards/f/FrontierMastodon.java +++ b/Mage.Sets/src/mage/cards/f/FrontierMastodon.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.FerociousCondition; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FrontierSiege.java b/Mage.Sets/src/mage/cards/f/FrontierSiege.java index d84289ae34a..5d937f57b95 100644 --- a/Mage.Sets/src/mage/cards/f/FrontierSiege.java +++ b/Mage.Sets/src/mage/cards/f/FrontierSiege.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -41,11 +40,7 @@ import mage.abilities.effects.common.ChooseModeEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.filter.predicate.permanent.ControllerPredicate; @@ -54,6 +49,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FrontlineMedic.java b/Mage.Sets/src/mage/cards/f/FrontlineMedic.java index 8188d7a1b94..cc4f2bcde8d 100644 --- a/Mage.Sets/src/mage/cards/f/FrontlineMedic.java +++ b/Mage.Sets/src/mage/cards/f/FrontlineMedic.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +39,7 @@ import mage.abilities.keyword.BattalionAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.FilterSpell; @@ -49,6 +47,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.VariableManaCostPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FrontlineRebel.java b/Mage.Sets/src/mage/cards/f/FrontlineRebel.java index 6ac05f3a295..5b2f33ab4de 100644 --- a/Mage.Sets/src/mage/cards/f/FrontlineRebel.java +++ b/Mage.Sets/src/mage/cards/f/FrontlineRebel.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksEachCombatStaticAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/FrontlineSage.java b/Mage.Sets/src/mage/cards/f/FrontlineSage.java index 98a548efacf..4cc2a635209 100644 --- a/Mage.Sets/src/mage/cards/f/FrontlineSage.java +++ b/Mage.Sets/src/mage/cards/f/FrontlineSage.java @@ -28,9 +28,6 @@ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,8 +37,11 @@ import mage.abilities.effects.common.DrawDiscardControllerEffect; import mage.abilities.keyword.ExaltedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FrostBreath.java b/Mage.Sets/src/mage/cards/f/FrostBreath.java index 67ec4dd4deb..7b2a910eaa4 100644 --- a/Mage.Sets/src/mage/cards/f/FrostBreath.java +++ b/Mage.Sets/src/mage/cards/f/FrostBreath.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/f/FrostGiant.java b/Mage.Sets/src/mage/cards/f/FrostGiant.java index 474d0804245..b5bbb6f27b9 100644 --- a/Mage.Sets/src/mage/cards/f/FrostGiant.java +++ b/Mage.Sets/src/mage/cards/f/FrostGiant.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.RampageAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FrostLynx.java b/Mage.Sets/src/mage/cards/f/FrostLynx.java index 999165d0688..3a0f4fe96a3 100644 --- a/Mage.Sets/src/mage/cards/f/FrostLynx.java +++ b/Mage.Sets/src/mage/cards/f/FrostLynx.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FrostMarsh.java b/Mage.Sets/src/mage/cards/f/FrostMarsh.java index 80f21c9e729..5d70bafb62a 100644 --- a/Mage.Sets/src/mage/cards/f/FrostMarsh.java +++ b/Mage.Sets/src/mage/cards/f/FrostMarsh.java @@ -27,14 +27,15 @@ */ package mage.cards.f; -import java.util.UUID; - import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -44,7 +45,7 @@ public class FrostMarsh extends CardImpl { public FrostMarsh(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); // Frost Marsh enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); diff --git a/Mage.Sets/src/mage/cards/f/FrostOgre.java b/Mage.Sets/src/mage/cards/f/FrostOgre.java index ab8f8eaa0e8..f1955e27b2b 100644 --- a/Mage.Sets/src/mage/cards/f/FrostOgre.java +++ b/Mage.Sets/src/mage/cards/f/FrostOgre.java @@ -27,11 +27,12 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FrostRaptor.java b/Mage.Sets/src/mage/cards/f/FrostRaptor.java index 5bec72c6fec..3239cff4757 100644 --- a/Mage.Sets/src/mage/cards/f/FrostRaptor.java +++ b/Mage.Sets/src/mage/cards/f/FrostRaptor.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,8 +37,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox @@ -48,7 +50,7 @@ public class FrostRaptor extends CardImpl { public FrostRaptor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Bird"); this.power = new MageInt(2); this.toughness = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/f/FrostTitan.java b/Mage.Sets/src/mage/cards/f/FrostTitan.java index 86ac14b6c49..34a2eaecf6c 100644 --- a/Mage.Sets/src/mage/cards/f/FrostTitan.java +++ b/Mage.Sets/src/mage/cards/f/FrostTitan.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -40,12 +37,16 @@ import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEf import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.TargetPermanent; import mage.target.TargetStackObject; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/f/FrostWalker.java b/Mage.Sets/src/mage/cards/f/FrostWalker.java index c26bb144dd0..1b6631b7a5f 100644 --- a/Mage.Sets/src/mage/cards/f/FrostWalker.java +++ b/Mage.Sets/src/mage/cards/f/FrostWalker.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesTargetTriggeredAbility; import mage.abilities.effects.common.SacrificeSourceEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FrostburnWeird.java b/Mage.Sets/src/mage/cards/f/FrostburnWeird.java index 31d29ce6c6d..abd300333a9 100644 --- a/Mage.Sets/src/mage/cards/f/FrostburnWeird.java +++ b/Mage.Sets/src/mage/cards/f/FrostburnWeird.java @@ -27,18 +27,18 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Frostling.java b/Mage.Sets/src/mage/cards/f/Frostling.java index ebd2b8a61f6..84d716db663 100644 --- a/Mage.Sets/src/mage/cards/f/Frostling.java +++ b/Mage.Sets/src/mage/cards/f/Frostling.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +34,12 @@ import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/Frostwielder.java b/Mage.Sets/src/mage/cards/f/Frostwielder.java index 4ac3d613b86..4c4302b9b39 100644 --- a/Mage.Sets/src/mage/cards/f/Frostwielder.java +++ b/Mage.Sets/src/mage/cards/f/Frostwielder.java @@ -28,7 +28,6 @@ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; import mage.watchers.common.DamagedByWatcher; +import java.util.UUID; + /** * @author LevelX */ diff --git a/Mage.Sets/src/mage/cards/f/FrostwindInvoker.java b/Mage.Sets/src/mage/cards/f/FrostwindInvoker.java index d48baf8915a..02319acc977 100644 --- a/Mage.Sets/src/mage/cards/f/FrostwindInvoker.java +++ b/Mage.Sets/src/mage/cards/f/FrostwindInvoker.java @@ -27,10 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +34,11 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FrozenAether.java b/Mage.Sets/src/mage/cards/f/FrozenAether.java index 9b99c1e778f..d3827eda56a 100644 --- a/Mage.Sets/src/mage/cards/f/FrozenAether.java +++ b/Mage.Sets/src/mage/cards/f/FrozenAether.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; @@ -43,6 +42,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FrozenShade.java b/Mage.Sets/src/mage/cards/f/FrozenShade.java index 589c56bc4bd..cffdacb077c 100644 --- a/Mage.Sets/src/mage/cards/f/FrozenShade.java +++ b/Mage.Sets/src/mage/cards/f/FrozenShade.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/f/FrozenSolid.java b/Mage.Sets/src/mage/cards/f/FrozenSolid.java index 0b488e17ac9..32827e7e95d 100644 --- a/Mage.Sets/src/mage/cards/f/FrozenSolid.java +++ b/Mage.Sets/src/mage/cards/f/FrozenSolid.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DealtDamageAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FruitOfTheFirstTree.java b/Mage.Sets/src/mage/cards/f/FruitOfTheFirstTree.java index 07f1795b5ea..82187ab2be2 100644 --- a/Mage.Sets/src/mage/cards/f/FruitOfTheFirstTree.java +++ b/Mage.Sets/src/mage/cards/f/FruitOfTheFirstTree.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.common.DiesAttachedTriggeredAbility; @@ -44,6 +43,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/Fruition.java b/Mage.Sets/src/mage/cards/f/Fruition.java index fe660790f1b..1b63833e838 100644 --- a/Mage.Sets/src/mage/cards/f/Fruition.java +++ b/Mage.Sets/src/mage/cards/f/Fruition.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FuelForTheCause.java b/Mage.Sets/src/mage/cards/f/FuelForTheCause.java index 5ff3827354b..b2bd9b20178 100644 --- a/Mage.Sets/src/mage/cards/f/FuelForTheCause.java +++ b/Mage.Sets/src/mage/cards/f/FuelForTheCause.java @@ -28,14 +28,15 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.counter.ProliferateEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FugitiveDruid.java b/Mage.Sets/src/mage/cards/f/FugitiveDruid.java index 76c9bcc50b6..a704626722e 100644 --- a/Mage.Sets/src/mage/cards/f/FugitiveDruid.java +++ b/Mage.Sets/src/mage/cards/f/FugitiveDruid.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesTargetTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FugitiveWizard.java b/Mage.Sets/src/mage/cards/f/FugitiveWizard.java index ccb1b724752..051883b95f2 100644 --- a/Mage.Sets/src/mage/cards/f/FugitiveWizard.java +++ b/Mage.Sets/src/mage/cards/f/FugitiveWizard.java @@ -27,11 +27,12 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/Fugue.java b/Mage.Sets/src/mage/cards/f/Fugue.java index 50d17d44106..cf5f2bb42c4 100644 --- a/Mage.Sets/src/mage/cards/f/Fugue.java +++ b/Mage.Sets/src/mage/cards/f/Fugue.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FulfillContract.java b/Mage.Sets/src/mage/cards/f/FulfillContract.java index 3c5fb1f093e..fbbf3ad6dc4 100644 --- a/Mage.Sets/src/mage/cards/f/FulfillContract.java +++ b/Mage.Sets/src/mage/cards/f/FulfillContract.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -46,6 +45,8 @@ import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/f/FullMoonsRise.java b/Mage.Sets/src/mage/cards/f/FullMoonsRise.java index a6234988d99..6a85d2c0185 100644 --- a/Mage.Sets/src/mage/cards/f/FullMoonsRise.java +++ b/Mage.Sets/src/mage/cards/f/FullMoonsRise.java @@ -27,11 +27,11 @@ */ package mage.cards.f; -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.ReplacementEffect; import mage.abilities.effects.common.RegenerateTargetEffect; @@ -40,6 +40,10 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -48,7 +52,6 @@ import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; import java.util.UUID; -import mage.abilities.effects.Effect; /** * @author nantuko diff --git a/Mage.Sets/src/mage/cards/f/FulminatorMage.java b/Mage.Sets/src/mage/cards/f/FulminatorMage.java index eceb3ce1557..953c23c263b 100644 --- a/Mage.Sets/src/mage/cards/f/FulminatorMage.java +++ b/Mage.Sets/src/mage/cards/f/FulminatorMage.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,8 +34,12 @@ import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.common.TargetNonBasicLandPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/Fumarole.java b/Mage.Sets/src/mage/cards/f/Fumarole.java index 69299374ee3..86cdc13cc1b 100644 --- a/Mage.Sets/src/mage/cards/f/Fumarole.java +++ b/Mage.Sets/src/mage/cards/f/Fumarole.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.costs.common.PayLifeCost; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FumeSpitter.java b/Mage.Sets/src/mage/cards/f/FumeSpitter.java index 229be1561f3..a8722e3d2b0 100644 --- a/Mage.Sets/src/mage/cards/f/FumeSpitter.java +++ b/Mage.Sets/src/mage/cards/f/FumeSpitter.java @@ -28,9 +28,6 @@ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,13 @@ import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/Fumigate.java b/Mage.Sets/src/mage/cards/f/Fumigate.java index 92e6d2dbbdd..668ab91c2e5 100644 --- a/Mage.Sets/src/mage/cards/f/Fumigate.java +++ b/Mage.Sets/src/mage/cards/f/Fumigate.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FumikoTheLowblood.java b/Mage.Sets/src/mage/cards/f/FumikoTheLowblood.java index a4a07b9d40b..48877c51532 100644 --- a/Mage.Sets/src/mage/cards/f/FumikoTheLowblood.java +++ b/Mage.Sets/src/mage/cards/f/FumikoTheLowblood.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.AttackingCreatureCount; @@ -36,12 +35,15 @@ import mage.abilities.keyword.BushidoAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.watchers.common.AttackedThisTurnWatcher; +import java.util.UUID; + /** * * @author LevelX2 @@ -50,7 +52,7 @@ public class FumikoTheLowblood extends CardImpl { public FumikoTheLowblood(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Samurai"); diff --git a/Mage.Sets/src/mage/cards/f/FuneralCharm.java b/Mage.Sets/src/mage/cards/f/FuneralCharm.java index 807404b951f..c8cfc64178d 100644 --- a/Mage.Sets/src/mage/cards/f/FuneralCharm.java +++ b/Mage.Sets/src/mage/cards/f/FuneralCharm.java @@ -27,20 +27,20 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Mode; -import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.keyword.SwampwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FungalBehemoth.java b/Mage.Sets/src/mage/cards/f/FungalBehemoth.java index cb746e715e4..f63ed790e03 100644 --- a/Mage.Sets/src/mage/cards/f/FungalBehemoth.java +++ b/Mage.Sets/src/mage/cards/f/FungalBehemoth.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -51,6 +50,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FungalBloom.java b/Mage.Sets/src/mage/cards/f/FungalBloom.java index 93faf2d139a..98decb7ba37 100644 --- a/Mage.Sets/src/mage/cards/f/FungalBloom.java +++ b/Mage.Sets/src/mage/cards/f/FungalBloom.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,6 +40,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FungalReaches.java b/Mage.Sets/src/mage/cards/f/FungalReaches.java index b7a72f10c3a..e4801748098 100644 --- a/Mage.Sets/src/mage/cards/f/FungalReaches.java +++ b/Mage.Sets/src/mage/cards/f/FungalReaches.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveVariableCountersSourceCost; @@ -45,6 +44,8 @@ import mage.constants.ColoredManaSymbol; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FungalShambler.java b/Mage.Sets/src/mage/cards/f/FungalShambler.java index d1b8633cec3..d7b46bf6f76 100644 --- a/Mage.Sets/src/mage/cards/f/FungalShambler.java +++ b/Mage.Sets/src/mage/cards/f/FungalShambler.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToOpponentTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FungalSprouting.java b/Mage.Sets/src/mage/cards/f/FungalSprouting.java index 20341ff2676..e304ee2714b 100644 --- a/Mage.Sets/src/mage/cards/f/FungalSprouting.java +++ b/Mage.Sets/src/mage/cards/f/FungalSprouting.java @@ -27,15 +27,15 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.GreatestPowerAmongControlledCreaturesValue; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.SaprolingToken; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/FungusSliver.java b/Mage.Sets/src/mage/cards/f/FungusSliver.java index 5b0e0ae689c..4368c90fea2 100644 --- a/Mage.Sets/src/mage/cards/f/FungusSliver.java +++ b/Mage.Sets/src/mage/cards/f/FungusSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealtDamageToSourceTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/f/Fungusaur.java b/Mage.Sets/src/mage/cards/f/Fungusaur.java index a0a0811a1d6..a82ce6c9897 100644 --- a/Mage.Sets/src/mage/cards/f/Fungusaur.java +++ b/Mage.Sets/src/mage/cards/f/Fungusaur.java @@ -27,17 +27,17 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DealtDamageToSourceTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FuriousAssault.java b/Mage.Sets/src/mage/cards/f/FuriousAssault.java index 8570921ed40..8f409f4ca1a 100644 --- a/Mage.Sets/src/mage/cards/f/FuriousAssault.java +++ b/Mage.Sets/src/mage/cards/f/FuriousAssault.java @@ -27,8 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; @@ -38,6 +36,8 @@ import mage.constants.CardType; import mage.filter.StaticFilters; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Galatolol diff --git a/Mage.Sets/src/mage/cards/f/FuriousReprisal.java b/Mage.Sets/src/mage/cards/f/FuriousReprisal.java index 4615422f862..ce80d4d26de 100644 --- a/Mage.Sets/src/mage/cards/f/FuriousReprisal.java +++ b/Mage.Sets/src/mage/cards/f/FuriousReprisal.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FuriousResistance.java b/Mage.Sets/src/mage/cards/f/FuriousResistance.java index 3779352df06..636035d6189 100644 --- a/Mage.Sets/src/mage/cards/f/FuriousResistance.java +++ b/Mage.Sets/src/mage/cards/f/FuriousResistance.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -38,6 +35,7 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.filter.common.FilterBlockingCreature; @@ -47,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/FurnaceBrood.java b/Mage.Sets/src/mage/cards/f/FurnaceBrood.java index fb468bccba6..56ea9dd6664 100644 --- a/Mage.Sets/src/mage/cards/f/FurnaceBrood.java +++ b/Mage.Sets/src/mage/cards/f/FurnaceBrood.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FurnaceCelebration.java b/Mage.Sets/src/mage/cards/f/FurnaceCelebration.java index c07b9f342ed..5354c0be680 100644 --- a/Mage.Sets/src/mage/cards/f/FurnaceCelebration.java +++ b/Mage.Sets/src/mage/cards/f/FurnaceCelebration.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; @@ -41,6 +40,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/f/FurnaceDragon.java b/Mage.Sets/src/mage/cards/f/FurnaceDragon.java index dc9a1c59fd0..a456e333c3a 100644 --- a/Mage.Sets/src/mage/cards/f/FurnaceDragon.java +++ b/Mage.Sets/src/mage/cards/f/FurnaceDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.CastFromHandSourceCondition; @@ -42,6 +41,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * * @author fireshoes @@ -69,7 +70,7 @@ public class FurnaceDragon extends CardImpl { // When Furnace Dragon enters the battlefield, if you cast it from your hand, exile all artifacts. this.addAbility(new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new ExileAllEffect(filter), false), - new CastFromHandSourceCondition(), + CastFromHandSourceCondition.instance, "When {this} enters the battlefield, if you cast it from your hand, exile all artifacts."), new CastFromHandWatcher()); } diff --git a/Mage.Sets/src/mage/cards/f/FurnaceOfRath.java b/Mage.Sets/src/mage/cards/f/FurnaceOfRath.java index b0cf1aa9755..a69be2774e6 100644 --- a/Mage.Sets/src/mage/cards/f/FurnaceOfRath.java +++ b/Mage.Sets/src/mage/cards/f/FurnaceOfRath.java @@ -27,17 +27,20 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/FurnaceScamp.java b/Mage.Sets/src/mage/cards/f/FurnaceScamp.java index c9a838e0af8..fea98732172 100644 --- a/Mage.Sets/src/mage/cards/f/FurnaceScamp.java +++ b/Mage.Sets/src/mage/cards/f/FurnaceScamp.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -35,6 +34,7 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/f/FurnaceSpirit.java b/Mage.Sets/src/mage/cards/f/FurnaceSpirit.java index eeff4ec9a84..ccd0d7e9677 100644 --- a/Mage.Sets/src/mage/cards/f/FurnaceSpirit.java +++ b/Mage.Sets/src/mage/cards/f/FurnaceSpirit.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FurnaceWhelp.java b/Mage.Sets/src/mage/cards/f/FurnaceWhelp.java index 13a9178deac..c4f72aaf367 100644 --- a/Mage.Sets/src/mage/cards/f/FurnaceWhelp.java +++ b/Mage.Sets/src/mage/cards/f/FurnaceWhelp.java @@ -27,9 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; @@ -37,6 +34,12 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FurorOfTheBitten.java b/Mage.Sets/src/mage/cards/f/FurorOfTheBitten.java index a6f8afd68cd..f06d4b4f88a 100644 --- a/Mage.Sets/src/mage/cards/f/FurorOfTheBitten.java +++ b/Mage.Sets/src/mage/cards/f/FurorOfTheBitten.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -37,14 +36,12 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/f/FurtiveHomunculus.java b/Mage.Sets/src/mage/cards/f/FurtiveHomunculus.java index 4743b0b69f3..e71cf9d13af 100644 --- a/Mage.Sets/src/mage/cards/f/FurtiveHomunculus.java +++ b/Mage.Sets/src/mage/cards/f/FurtiveHomunculus.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.SkulkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/f/FuryCharm.java b/Mage.Sets/src/mage/cards/f/FuryCharm.java index e1b5aec3663..f1e6009a52f 100644 --- a/Mage.Sets/src/mage/cards/f/FuryCharm.java +++ b/Mage.Sets/src/mage/cards/f/FuryCharm.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.Effect; @@ -53,6 +52,8 @@ import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetPermanentOrSuspendedCard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FuryOfTheHorde.java b/Mage.Sets/src/mage/cards/f/FuryOfTheHorde.java index febebc4f2c4..424044f71f2 100644 --- a/Mage.Sets/src/mage/cards/f/FuryOfTheHorde.java +++ b/Mage.Sets/src/mage/cards/f/FuryOfTheHorde.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.ExileFromHandCost; @@ -41,6 +40,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCardInHand; import mage.watchers.common.AttackedThisTurnWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FurySliver.java b/Mage.Sets/src/mage/cards/f/FurySliver.java index 4ae3869fc29..d13e7498a0c 100644 --- a/Mage.Sets/src/mage/cards/f/FurySliver.java +++ b/Mage.Sets/src/mage/cards/f/FurySliver.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author Sir-Speshkitty diff --git a/Mage.Sets/src/mage/cards/f/FurybladeVampire.java b/Mage.Sets/src/mage/cards/f/FurybladeVampire.java index f2527644a30..6f7f8285339 100644 --- a/Mage.Sets/src/mage/cards/f/FurybladeVampire.java +++ b/Mage.Sets/src/mage/cards/f/FurybladeVampire.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/f/FurybornHellkite.java b/Mage.Sets/src/mage/cards/f/FurybornHellkite.java index 3f67c229c4b..6436a91a61a 100644 --- a/Mage.Sets/src/mage/cards/f/FurybornHellkite.java +++ b/Mage.Sets/src/mage/cards/f/FurybornHellkite.java @@ -27,13 +27,14 @@ */ package mage.cards.f; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.BloodthirstAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/f/FurystokeGiant.java b/Mage.Sets/src/mage/cards/f/FurystokeGiant.java index 664346631fc..a0cbc12b078 100644 --- a/Mage.Sets/src/mage/cards/f/FurystokeGiant.java +++ b/Mage.Sets/src/mage/cards/f/FurystokeGiant.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/f/FusionElemental.java b/Mage.Sets/src/mage/cards/f/FusionElemental.java index fc75210f8f8..9e0bb97b85d 100644 --- a/Mage.Sets/src/mage/cards/f/FusionElemental.java +++ b/Mage.Sets/src/mage/cards/f/FusionElemental.java @@ -28,12 +28,13 @@ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/f/FutureSight.java b/Mage.Sets/src/mage/cards/f/FutureSight.java index 75c08ad8349..0696aad86ee 100644 --- a/Mage.Sets/src/mage/cards/f/FutureSight.java +++ b/Mage.Sets/src/mage/cards/f/FutureSight.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.PlayTheTopCardEffect; import mage.abilities.effects.common.continuous.PlayWithTheTopCardRevealedEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/Fylamarid.java b/Mage.Sets/src/mage/cards/f/Fylamarid.java index b3dc20a579c..075aa8d6f52 100644 --- a/Mage.Sets/src/mage/cards/f/Fylamarid.java +++ b/Mage.Sets/src/mage/cards/f/Fylamarid.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -46,6 +45,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FyndhornBow.java b/Mage.Sets/src/mage/cards/f/FyndhornBow.java index c0a57072b9a..a88895418cb 100644 --- a/Mage.Sets/src/mage/cards/f/FyndhornBow.java +++ b/Mage.Sets/src/mage/cards/f/FyndhornBow.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/f/FyndhornBrownie.java b/Mage.Sets/src/mage/cards/f/FyndhornBrownie.java index 043e7242dc8..2c4a46eb58e 100644 --- a/Mage.Sets/src/mage/cards/f/FyndhornBrownie.java +++ b/Mage.Sets/src/mage/cards/f/FyndhornBrownie.java @@ -27,7 +27,6 @@ */ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/f/FyndhornElder.java b/Mage.Sets/src/mage/cards/f/FyndhornElder.java index 1a55aa3f5bd..76a2b11991b 100644 --- a/Mage.Sets/src/mage/cards/f/FyndhornElder.java +++ b/Mage.Sets/src/mage/cards/f/FyndhornElder.java @@ -27,17 +27,17 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.Mana; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/f/FyndhornElves.java b/Mage.Sets/src/mage/cards/f/FyndhornElves.java index 52cf230cd7d..5c78bc1c9d1 100644 --- a/Mage.Sets/src/mage/cards/f/FyndhornElves.java +++ b/Mage.Sets/src/mage/cards/f/FyndhornElves.java @@ -27,13 +27,13 @@ */ package mage.cards.f; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GaddockTeeg.java b/Mage.Sets/src/mage/cards/g/GaddockTeeg.java index e4f9016f97a..95f911ea582 100644 --- a/Mage.Sets/src/mage/cards/g/GaddockTeeg.java +++ b/Mage.Sets/src/mage/cards/g/GaddockTeeg.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -35,13 +34,12 @@ import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author Plopman @@ -50,7 +48,7 @@ public class GaddockTeeg extends CardImpl { public GaddockTeeg(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Kithkin"); this.subtype.add("Advisor"); diff --git a/Mage.Sets/src/mage/cards/g/GaeasAnthem.java b/Mage.Sets/src/mage/cards/g/GaeasAnthem.java index e6e5c2871c0..85b5f82554d 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasAnthem.java +++ b/Mage.Sets/src/mage/cards/g/GaeasAnthem.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; @@ -38,6 +36,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/g/GaeasAvenger.java b/Mage.Sets/src/mage/cards/g/GaeasAvenger.java index dd38e21afc6..3c5986a72fc 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasAvenger.java +++ b/Mage.Sets/src/mage/cards/g/GaeasAvenger.java @@ -27,9 +27,9 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.IntPlusDynamicValue; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.cards.CardImpl; @@ -40,7 +40,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.permanent.ControllerPredicate; -import mage.abilities.dynamicvalue.IntPlusDynamicValue; + +import java.util.UUID; /** diff --git a/Mage.Sets/src/mage/cards/g/GaeasBlessing.java b/Mage.Sets/src/mage/cards/g/GaeasBlessing.java index a29262fff65..d1e4b684aed 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasBlessing.java +++ b/Mage.Sets/src/mage/cards/g/GaeasBlessing.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.ZoneChangeTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -45,6 +43,9 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCardInGraveyard; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GaeasBounty.java b/Mage.Sets/src/mage/cards/g/GaeasBounty.java index 23678504a34..1485fa82985 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasBounty.java +++ b/Mage.Sets/src/mage/cards/g/GaeasBounty.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,6 +35,8 @@ import mage.filter.common.FilterLandCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author hanasu diff --git a/Mage.Sets/src/mage/cards/g/GaeasCradle.java b/Mage.Sets/src/mage/cards/g/GaeasCradle.java index f854815edd2..6eea3c3f552 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasCradle.java +++ b/Mage.Sets/src/mage/cards/g/GaeasCradle.java @@ -27,16 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; import mage.Mana; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.mana.DynamicManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Backfir3 @@ -51,7 +53,7 @@ public class GaeasCradle extends CardImpl { public GaeasCradle(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {T}: Add {G} to your mana pool for each creature you control. DynamicManaAbility ability = new DynamicManaAbility(Mana.GreenMana(1), new PermanentsOnBattlefieldCount(filter)); diff --git a/Mage.Sets/src/mage/cards/g/GaeasEmbrace.java b/Mage.Sets/src/mage/cards/g/GaeasEmbrace.java index 66d06817881..d30e275ce1c 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasEmbrace.java +++ b/Mage.Sets/src/mage/cards/g/GaeasEmbrace.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,14 +40,12 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Backfir3 */ diff --git a/Mage.Sets/src/mage/cards/g/GaeasHerald.java b/Mage.Sets/src/mage/cards/g/GaeasHerald.java index f21a71668c3..5e1eac78d85 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasHerald.java +++ b/Mage.Sets/src/mage/cards/g/GaeasHerald.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.stack.Spell; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GaeasLiege.java b/Mage.Sets/src/mage/cards/g/GaeasLiege.java index 52014ab9381..13dcdc17c35 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasLiege.java +++ b/Mage.Sets/src/mage/cards/g/GaeasLiege.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -54,6 +53,8 @@ import mage.game.combat.CombatGroup; import mage.game.permanent.Permanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author anonymous @@ -77,7 +78,7 @@ public class GaeasLiege extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.ALL, new ConditionalContinuousEffect( new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filterLands), Duration.EndOfGame), new SetPowerToughnessSourceEffect(new DefendersForestCount(), Duration.EndOfCombat), - new InvertCondition(SourceAttackingCondition.getInstance()), + new InvertCondition(SourceAttackingCondition.instance), "As long as {this} isn't attacking, its power and toughness are each equal to the number of Forests you control. As long as {this} is attacking, its power and toughness are each equal to the number of Forests defending player controls."))); // {tap}: Target land becomes a Forest until Gaea's Liege leaves the battlefield. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBasicLandTargetEffect(Duration.WhileOnBattlefield, "Forest"), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/g/GaeasMight.java b/Mage.Sets/src/mage/cards/g/GaeasMight.java index 00e92b1361b..a0ebf599de8 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasMight.java +++ b/Mage.Sets/src/mage/cards/g/GaeasMight.java @@ -27,16 +27,16 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.DomainValue; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GaeasRevenge.java b/Mage.Sets/src/mage/cards/g/GaeasRevenge.java index b0a5b9b1d18..0b66d5f9215 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasRevenge.java +++ b/Mage.Sets/src/mage/cards/g/GaeasRevenge.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.filter.FilterStackObject; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/g/GaeasSkyfolk.java b/Mage.Sets/src/mage/cards/g/GaeasSkyfolk.java index bb70177a3a4..f1fac61d252 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasSkyfolk.java +++ b/Mage.Sets/src/mage/cards/g/GaeasSkyfolk.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GaeasTouch.java b/Mage.Sets/src/mage/cards/g/GaeasTouch.java index 90ebba87603..6b7306504f0 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasTouch.java +++ b/Mage.Sets/src/mage/cards/g/GaeasTouch.java @@ -27,21 +27,17 @@ */ package mage.cards.g; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; import mage.Mana; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.mana.SimpleManaAbility; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; +import mage.abilities.mana.SimpleManaAbility; import mage.cards.Card; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TimingRule; -import mage.constants.Zone; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -51,6 +47,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author spjspj @@ -84,7 +82,7 @@ class PutBasicForestOnBattlefieldEffect extends OneShotEffect { private static final FilterCard filter = new FilterCard("basic Forest card"); static { - filter.add(Predicates.and(new CardTypePredicate(CardType.LAND), new SupertypePredicate("Basic"))); + filter.add(Predicates.and(new CardTypePredicate(CardType.LAND), new SupertypePredicate(SuperType.BASIC))); filter.add(new SubtypePredicate("Forest")); } diff --git a/Mage.Sets/src/mage/cards/g/GahijiHonoredOne.java b/Mage.Sets/src/mage/cards/g/GahijiHonoredOne.java index 45193630fbe..b792e2edcf1 100644 --- a/Mage.Sets/src/mage/cards/g/GahijiHonoredOne.java +++ b/Mage.Sets/src/mage/cards/g/GahijiHonoredOne.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -37,6 +35,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -45,6 +44,9 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +55,7 @@ public class GahijiHonoredOne extends CardImpl { public GahijiHonoredOne(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Beast"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/g/Gainsay.java b/Mage.Sets/src/mage/cards/g/Gainsay.java index 47e1ee6ad1e..f332167d794 100644 --- a/Mage.Sets/src/mage/cards/g/Gainsay.java +++ b/Mage.Sets/src/mage/cards/g/Gainsay.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.Target; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GaleForce.java b/Mage.Sets/src/mage/cards/g/GaleForce.java index 6a6e47d1542..891f9ea24d2 100644 --- a/Mage.Sets/src/mage/cards/g/GaleForce.java +++ b/Mage.Sets/src/mage/cards/g/GaleForce.java @@ -28,16 +28,16 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/g/GalepowderMage.java b/Mage.Sets/src/mage/cards/g/GalepowderMage.java index acc87936eb0..5de7b216087 100644 --- a/Mage.Sets/src/mage/cards/g/GalepowderMage.java +++ b/Mage.Sets/src/mage/cards/g/GalepowderMage.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -51,6 +50,8 @@ import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GaleriderSliver.java b/Mage.Sets/src/mage/cards/g/GaleriderSliver.java index a02809d7a82..33a818a9edf 100644 --- a/Mage.Sets/src/mage/cards/g/GaleriderSliver.java +++ b/Mage.Sets/src/mage/cards/g/GaleriderSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/Galestrike.java b/Mage.Sets/src/mage/cards/g/Galestrike.java new file mode 100644 index 00000000000..e1e87e32767 --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/Galestrike.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author Styxo + */ +public class Galestrike extends CardImpl { + + private static FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature"); + + static { + filter.add(new TappedPredicate()); + } + + public Galestrike(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}"); + + // Return target tapped creature to its owner's hand. + this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter)); + + // Draw a card. + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + + } + + public Galestrike(final Galestrike card) { + super(card); + } + + @Override + public Galestrike copy() { + return new Galestrike(this); + } +} diff --git a/Mage.Sets/src/mage/cards/g/GalinasKnight.java b/Mage.Sets/src/mage/cards/g/GalinasKnight.java index 80f6af3a4a6..ee2950c4531 100644 --- a/Mage.Sets/src/mage/cards/g/GalinasKnight.java +++ b/Mage.Sets/src/mage/cards/g/GalinasKnight.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.ProtectionAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author michael.napoleon@gmail.com @@ -60,4 +61,4 @@ public class GalinasKnight extends CardImpl { public GalinasKnight copy() { return new GalinasKnight(this); } -} +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/g/Gallantry.java b/Mage.Sets/src/mage/cards/g/Gallantry.java index eb0ab89e3b8..fccf3d5fe5c 100644 --- a/Mage.Sets/src/mage/cards/g/Gallantry.java +++ b/Mage.Sets/src/mage/cards/g/Gallantry.java @@ -27,18 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.common.FilterBlockingCreature; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/Gallowbraid.java b/Mage.Sets/src/mage/cards/g/Gallowbraid.java index fbc590f4747..989a21e2ed8 100644 --- a/Mage.Sets/src/mage/cards/g/Gallowbraid.java +++ b/Mage.Sets/src/mage/cards/g/Gallowbraid.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.common.PayLifeCost; import mage.abilities.keyword.CumulativeUpkeepAbility; @@ -35,6 +34,9 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -44,7 +46,7 @@ public class Gallowbraid extends CardImpl { public Gallowbraid(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Horror"); this.power = new MageInt(5); this.toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/g/GallowsAtWillowHill.java b/Mage.Sets/src/mage/cards/g/GallowsAtWillowHill.java index bc1b3f797e6..6b461fe3fa2 100644 --- a/Mage.Sets/src/mage/cards/g/GallowsAtWillowHill.java +++ b/Mage.Sets/src/mage/cards/g/GallowsAtWillowHill.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -51,6 +50,8 @@ import mage.players.Player; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/g/GallowsWarden.java b/Mage.Sets/src/mage/cards/g/GallowsWarden.java index cb7f837cc77..8a9503d2d20 100644 --- a/Mage.Sets/src/mage/cards/g/GallowsWarden.java +++ b/Mage.Sets/src/mage/cards/g/GallowsWarden.java @@ -27,13 +27,13 @@ */ package mage.cards.g; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/g/GalvanicAlchemist.java b/Mage.Sets/src/mage/cards/g/GalvanicAlchemist.java index 9e4ccd33ea9..43b04d478a5 100644 --- a/Mage.Sets/src/mage/cards/g/GalvanicAlchemist.java +++ b/Mage.Sets/src/mage/cards/g/GalvanicAlchemist.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/g/GalvanicArc.java b/Mage.Sets/src/mage/cards/g/GalvanicArc.java index dd90199d959..8dd60cb04d7 100644 --- a/Mage.Sets/src/mage/cards/g/GalvanicArc.java +++ b/Mage.Sets/src/mage/cards/g/GalvanicArc.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,10 +37,16 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GalvanicBlast.java b/Mage.Sets/src/mage/cards/g/GalvanicBlast.java index e5c807f1d31..bb5e199a52c 100644 --- a/Mage.Sets/src/mage/cards/g/GalvanicBlast.java +++ b/Mage.Sets/src/mage/cards/g/GalvanicBlast.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.condition.common.MetalcraftCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DamageTargetEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GalvanicBombardment.java b/Mage.Sets/src/mage/cards/g/GalvanicBombardment.java index a6cf6f2a74c..28ee3c4bc14 100644 --- a/Mage.Sets/src/mage/cards/g/GalvanicBombardment.java +++ b/Mage.Sets/src/mage/cards/g/GalvanicBombardment.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GalvanicJuggernaut.java b/Mage.Sets/src/mage/cards/g/GalvanicJuggernaut.java index f4f131429e4..8b7a33a5da0 100644 --- a/Mage.Sets/src/mage/cards/g/GalvanicJuggernaut.java +++ b/Mage.Sets/src/mage/cards/g/GalvanicJuggernaut.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.abilities.common.DiesCreatureTriggeredAbility; @@ -38,6 +35,10 @@ import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GalvanicKey.java b/Mage.Sets/src/mage/cards/g/GalvanicKey.java index 0d166bdfd14..8ce47e0c0cf 100644 --- a/Mage.Sets/src/mage/cards/g/GalvanicKey.java +++ b/Mage.Sets/src/mage/cards/g/GalvanicKey.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,11 +35,14 @@ import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/Galvanoth.java b/Mage.Sets/src/mage/cards/g/Galvanoth.java index fc282da54e1..0025b3855e4 100644 --- a/Mage.Sets/src/mage/cards/g/Galvanoth.java +++ b/Mage.Sets/src/mage/cards/g/Galvanoth.java @@ -27,23 +27,19 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.TargetController; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * @author North */ diff --git a/Mage.Sets/src/mage/cards/g/Gamble.java b/Mage.Sets/src/mage/cards/g/Gamble.java index d81e3d673df..737c516b4c1 100644 --- a/Mage.Sets/src/mage/cards/g/Gamble.java +++ b/Mage.Sets/src/mage/cards/g/Gamble.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.discard.DiscardControllerEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GameOfChaos.java b/Mage.Sets/src/mage/cards/g/GameOfChaos.java index e59575b636a..4dd02e5708d 100644 --- a/Mage.Sets/src/mage/cards/g/GameOfChaos.java +++ b/Mage.Sets/src/mage/cards/g/GameOfChaos.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/g/GameTrail.java b/Mage.Sets/src/mage/cards/g/GameTrail.java index 61139e6aca6..14555bce92d 100644 --- a/Mage.Sets/src/mage/cards/g/GameTrail.java +++ b/Mage.Sets/src/mage/cards/g/GameTrail.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.common.TapSourceUnlessPaysEffect; @@ -41,6 +40,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GameTrailChangeling.java b/Mage.Sets/src/mage/cards/g/GameTrailChangeling.java index 66b4d4a17ea..36004c70b3a 100644 --- a/Mage.Sets/src/mage/cards/g/GameTrailChangeling.java +++ b/Mage.Sets/src/mage/cards/g/GameTrailChangeling.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ChangelingAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/Gamekeeper.java b/Mage.Sets/src/mage/cards/g/Gamekeeper.java index d37853a9c3f..9e3d4b9eda7 100644 --- a/Mage.Sets/src/mage/cards/g/Gamekeeper.java +++ b/Mage.Sets/src/mage/cards/g/Gamekeeper.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GamorreanPrisonGuard.java b/Mage.Sets/src/mage/cards/g/GamorreanPrisonGuard.java index 6cefc3b016a..b994e078cf6 100644 --- a/Mage.Sets/src/mage/cards/g/GamorreanPrisonGuard.java +++ b/Mage.Sets/src/mage/cards/g/GamorreanPrisonGuard.java @@ -27,18 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; @@ -46,6 +41,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/g/GangOfDevils.java b/Mage.Sets/src/mage/cards/g/GangOfDevils.java index 1c4a8e27aca..590b49624cf 100644 --- a/Mage.Sets/src/mage/cards/g/GangOfDevils.java +++ b/Mage.Sets/src/mage/cards/g/GangOfDevils.java @@ -27,13 +27,13 @@ */ package mage.cards.g; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.DamageMultiEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayerAmount; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/g/GangOfElk.java b/Mage.Sets/src/mage/cards/g/GangOfElk.java index 546e267a551..1bc1d1408e9 100644 --- a/Mage.Sets/src/mage/cards/g/GangOfElk.java +++ b/Mage.Sets/src/mage/cards/g/GangOfElk.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesBlockedTriggeredAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GangrenousGoliath.java b/Mage.Sets/src/mage/cards/g/GangrenousGoliath.java index feb3019db84..0bca24643cc 100644 --- a/Mage.Sets/src/mage/cards/g/GangrenousGoliath.java +++ b/Mage.Sets/src/mage/cards/g/GangrenousGoliath.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; @@ -40,6 +39,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GargoyleCastle.java b/Mage.Sets/src/mage/cards/g/GargoyleCastle.java index 2ed252a2dc8..a60b0075fe0 100644 --- a/Mage.Sets/src/mage/cards/g/GargoyleCastle.java +++ b/Mage.Sets/src/mage/cards/g/GargoyleCastle.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.ActivatedAbilityImpl; import mage.abilities.costs.common.SacrificeSourceCost; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/g/GarrukApexPredator.java b/Mage.Sets/src/mage/cards/g/GarrukApexPredator.java index 435922722e8..367df8b3c29 100644 --- a/Mage.Sets/src/mage/cards/g/GarrukApexPredator.java +++ b/Mage.Sets/src/mage/cards/g/GarrukApexPredator.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; @@ -44,11 +43,7 @@ import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; @@ -61,6 +56,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GarrukCallerOfBeasts.java b/Mage.Sets/src/mage/cards/g/GarrukCallerOfBeasts.java index 6f8f9e039c6..06b88647913 100644 --- a/Mage.Sets/src/mage/cards/g/GarrukCallerOfBeasts.java +++ b/Mage.Sets/src/mage/cards/g/GarrukCallerOfBeasts.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; @@ -49,6 +48,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.command.Emblem; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GarrukPrimalHunter.java b/Mage.Sets/src/mage/cards/g/GarrukPrimalHunter.java index 37ac70b982d..b8f3892300e 100644 --- a/Mage.Sets/src/mage/cards/g/GarrukPrimalHunter.java +++ b/Mage.Sets/src/mage/cards/g/GarrukPrimalHunter.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -47,6 +46,8 @@ import mage.game.permanent.token.BeastToken; import mage.game.permanent.token.WurmToken; import mage.players.Player; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GarrukRelentless.java b/Mage.Sets/src/mage/cards/g/GarrukRelentless.java index e030f9501ab..1fec63cb28b 100644 --- a/Mage.Sets/src/mage/cards/g/GarrukRelentless.java +++ b/Mage.Sets/src/mage/cards/g/GarrukRelentless.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.TriggeredAbilityImpl; @@ -49,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.WolfToken; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/g/GarrukTheVeilCursed.java b/Mage.Sets/src/mage/cards/g/GarrukTheVeilCursed.java index b2497bfad82..420f9bf5e7b 100644 --- a/Mage.Sets/src/mage/cards/g/GarrukTheVeilCursed.java +++ b/Mage.Sets/src/mage/cards/g/GarrukTheVeilCursed.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -38,12 +37,11 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.TrampleAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.constants.*; +import mage.cards.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; @@ -55,6 +53,8 @@ import mage.target.Target; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/g/GarrukWildspeaker.java b/Mage.Sets/src/mage/cards/g/GarrukWildspeaker.java index e2635c6f880..1580ca4ce4c 100644 --- a/Mage.Sets/src/mage/cards/g/GarrukWildspeaker.java +++ b/Mage.Sets/src/mage/cards/g/GarrukWildspeaker.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; import mage.abilities.effects.Effect; @@ -45,6 +44,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.game.permanent.token.BeastToken; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/g/GarruksCompanion.java b/Mage.Sets/src/mage/cards/g/GarruksCompanion.java index 5b92bbf41e9..c50be10deba 100644 --- a/Mage.Sets/src/mage/cards/g/GarruksCompanion.java +++ b/Mage.Sets/src/mage/cards/g/GarruksCompanion.java @@ -28,12 +28,13 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GarruksHorde.java b/Mage.Sets/src/mage/cards/g/GarruksHorde.java index e1e568dd9b3..04fcb25a7a0 100644 --- a/Mage.Sets/src/mage/cards/g/GarruksHorde.java +++ b/Mage.Sets/src/mage/cards/g/GarruksHorde.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/g/GarruksPackleader.java b/Mage.Sets/src/mage/cards/g/GarruksPackleader.java index 2a200cd6242..b96ff7d4836 100644 --- a/Mage.Sets/src/mage/cards/g/GarruksPackleader.java +++ b/Mage.Sets/src/mage/cards/g/GarruksPackleader.java @@ -28,20 +28,21 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -51,7 +52,7 @@ public class GarruksPackleader extends CardImpl { private static final FilterPermanent filter = new FilterControlledCreaturePermanent("another creature with power 3 or greater"); static { filter.add(new AnotherPredicate()); - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); } public GarruksPackleader(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GarrulousSycophant.java b/Mage.Sets/src/mage/cards/g/GarrulousSycophant.java index 23efc3dd39a..6ba21b55a97 100644 --- a/Mage.Sets/src/mage/cards/g/GarrulousSycophant.java +++ b/Mage.Sets/src/mage/cards/g/GarrulousSycophant.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +58,7 @@ public class GarrulousSycophant extends CardImpl { // At the beginning of your end step, if you're the monarch, each opponent loses 1 life and you gain 1 life. Ability ability = new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new LoseLifeOpponentsEffect(1), - TargetController.YOU, MonarchIsSourceControllerCondition.getInstance(), false); + TargetController.YOU, MonarchIsSourceControllerCondition.instance, false); Effect effect = new GainLifeEffect(1); effect.setText("and you gain 1 life"); ability.addEffect(effect); diff --git a/Mage.Sets/src/mage/cards/g/GarzaZolPlagueQueen.java b/Mage.Sets/src/mage/cards/g/GarzaZolPlagueQueen.java index a1ddb14411d..671246a850a 100644 --- a/Mage.Sets/src/mage/cards/g/GarzaZolPlagueQueen.java +++ b/Mage.Sets/src/mage/cards/g/GarzaZolPlagueQueen.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.common.DealtDamageAndDiedTriggeredAbility; @@ -38,8 +37,11 @@ import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author fireshoes @@ -48,7 +50,7 @@ public class GarzaZolPlagueQueen extends CardImpl { public GarzaZolPlagueQueen(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.power = new MageInt(5); this.toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/g/GaseousForm.java b/Mage.Sets/src/mage/cards/g/GaseousForm.java index e92210a037d..c5aef96524b 100644 --- a/Mage.Sets/src/mage/cards/g/GaseousForm.java +++ b/Mage.Sets/src/mage/cards/g/GaseousForm.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.PreventAllDamageToAndByAttachedEffect; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/g/GateHound.java b/Mage.Sets/src/mage/cards/g/GateHound.java index e02194775bf..92ff28eebca 100644 --- a/Mage.Sets/src/mage/cards/g/GateHound.java +++ b/Mage.Sets/src/mage/cards/g/GateHound.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.EnchantedSourceCondition; @@ -39,8 +35,13 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GateSmasher.java b/Mage.Sets/src/mage/cards/g/GateSmasher.java index 369ad568d08..b7bca328b8e 100644 --- a/Mage.Sets/src/mage/cards/g/GateSmasher.java +++ b/Mage.Sets/src/mage/cards/g/GateSmasher.java @@ -27,8 +27,8 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.AttachableToRestrictedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -43,12 +43,13 @@ import mage.constants.AttachmentType; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.target.Target; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,7 +59,7 @@ public class GateSmasher extends CardImpl { private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature with 3 or more power"); static { - filter.add(new ToughnessPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 3)); } public GateSmasher(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GateToPhyrexia.java b/Mage.Sets/src/mage/cards/g/GateToPhyrexia.java index ec870fce7d1..6708ce4e345 100644 --- a/Mage.Sets/src/mage/cards/g/GateToPhyrexia.java +++ b/Mage.Sets/src/mage/cards/g/GateToPhyrexia.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; import mage.abilities.condition.common.IsStepCondition; @@ -42,6 +41,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GateToTheAether.java b/Mage.Sets/src/mage/cards/g/GateToTheAether.java index 3bc32a36357..b690bf81d03 100644 --- a/Mage.Sets/src/mage/cards/g/GateToTheAether.java +++ b/Mage.Sets/src/mage/cards/g/GateToTheAether.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/GateToTheAfterlife.java b/Mage.Sets/src/mage/cards/g/GateToTheAfterlife.java new file mode 100644 index 00000000000..b04415be311 --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GateToTheAfterlife.java @@ -0,0 +1,160 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; +import mage.abilities.condition.common.CardsInControllerGraveCondition; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.decorator.ConditionalActivatedAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.DrawDiscardControllerEffect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.common.FilterCreatureCard; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.NamePredicate; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.filter.predicate.permanent.TokenPredicate; +import mage.game.Game; +import mage.players.Player; +import mage.target.common.TargetCardInHand; +import mage.target.common.TargetCardInLibrary; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author LevelX2 + */ +public class GateToTheAfterlife extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a nontoken creature you control"); + + static { + filter.add(new ControllerPredicate(TargetController.YOU)); + filter.add(Predicates.not(new TokenPredicate())); + } + + public GateToTheAfterlife(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); + + // Whenever a nontoken creature you control dies, you gain 1 life. Then you may draw a card. If you do, discard a card. + Ability ability = new EntersBattlefieldControlledTriggeredAbility(Zone.BATTLEFIELD, new GainLifeEffect(1), filter, false); + Effect effect = new DrawDiscardControllerEffect(1, 1, true); + effect.setText("Then you may draw a card. If you do, discard a card"); + ability.addEffect(effect); + this.addAbility(ability); + + // {2}, {T}, Sacrifice Gate to the Afterlife: Search your graveyard, hand, and/or library for a card named God-Pharaoh's Gift and put it onto the battlefield. If you seearch your library this way, shuffle it. Activate this ability only if there are six or more creature cards in your graveyard. + ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, + new GateToTheAfterlifeEffect(), new GenericManaCost(2), new CardsInControllerGraveCondition(6, new FilterCreatureCard())); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + ability.addEffect(effect); + this.addAbility(ability); + } + + public GateToTheAfterlife(final GateToTheAfterlife card) { + super(card); + } + + @Override + public GateToTheAfterlife copy() { + return new GateToTheAfterlife(this); + } +} + +class GateToTheAfterlifeEffect extends OneShotEffect { + + static private String cardName = "God-Pharaoh's Gift"; + + public GateToTheAfterlifeEffect() { + super(Outcome.Benefit); + this.staticText = "Search your graveyard, hand, and/or library for a card named " + + cardName + + " and put it onto the battlefield. If you search your library this way, shuffle it"; + } + + public GateToTheAfterlifeEffect(final GateToTheAfterlifeEffect effect) { + super(effect); + } + + @Override + public GateToTheAfterlifeEffect copy() { + return new GateToTheAfterlifeEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller == null) { + return false; + } + FilterCard filter = new FilterCard("card named " + cardName); + filter.add(new NamePredicate(cardName)); + Card card = null; + // Graveyard check + if (controller.chooseUse(Outcome.Benefit, "Do you want to search your graveyard for " + cardName + "?", source, game)) { + TargetCardInYourGraveyard target = new TargetCardInYourGraveyard(filter); + if (controller.choose(Outcome.PutCardInPlay, controller.getGraveyard(), target, game)) { + card = game.getCard(target.getFirstTarget()); + } + } + // Hand check + if (card == null && controller.chooseUse(Outcome.Benefit, "Do you want to search your hand for " + cardName + "?", source, game)) { + TargetCardInHand target = new TargetCardInHand(filter); + if (controller.choose(Outcome.PutCardInPlay, controller.getHand(), target, game)) { + card = game.getCard(target.getFirstTarget()); + } + } + // Library check + if (card == null && controller.chooseUse(Outcome.Benefit, "Do you want to search your library for " + cardName + "?", source, game)) { + TargetCardInLibrary target = new TargetCardInLibrary(filter); + if (controller.searchLibrary(target, game)) { + card = game.getCard(target.getFirstTarget()); + } + controller.shuffleLibrary(source, game); + } + if (card != null) { + controller.moveCards(card, Zone.BATTLEFIELD, source, game); + } + return true; + } +} diff --git a/Mage.Sets/src/mage/cards/g/GatecreeperVine.java b/Mage.Sets/src/mage/cards/g/GatecreeperVine.java index 45727d76756..c81c89f48fa 100644 --- a/Mage.Sets/src/mage/cards/g/GatecreeperVine.java +++ b/Mage.Sets/src/mage/cards/g/GatecreeperVine.java @@ -27,14 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -42,6 +42,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +56,7 @@ public class GatecreeperVine extends CardImpl { Predicates.or( Predicates.and( new CardTypePredicate(CardType.LAND), - new SupertypePredicate("Basic")), + new SupertypePredicate(SuperType.BASIC)), new SubtypePredicate("Gate"))); } diff --git a/Mage.Sets/src/mage/cards/g/GatekeeperOfMalakir.java b/Mage.Sets/src/mage/cards/g/GatekeeperOfMalakir.java index 7ec3b3182b9..66f973b7a16 100644 --- a/Mage.Sets/src/mage/cards/g/GatekeeperOfMalakir.java +++ b/Mage.Sets/src/mage/cards/g/GatekeeperOfMalakir.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author maurer.it_at_gmail.com diff --git a/Mage.Sets/src/mage/cards/g/GatewayShade.java b/Mage.Sets/src/mage/cards/g/GatewayShade.java index 4a4d90f034e..064dbb7d4af 100644 --- a/Mage.Sets/src/mage/cards/g/GatewayShade.java +++ b/Mage.Sets/src/mage/cards/g/GatewayShade.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; @@ -38,12 +34,17 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GathanRaiders.java b/Mage.Sets/src/mage/cards/g/GathanRaiders.java index a38b24948f8..bad8835b05f 100644 --- a/Mage.Sets/src/mage/cards/g/GathanRaiders.java +++ b/Mage.Sets/src/mage/cards/g/GathanRaiders.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.HellbentCondition; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GatherCourage.java b/Mage.Sets/src/mage/cards/g/GatherCourage.java index e95bfbe652a..af4fe5b3c3f 100644 --- a/Mage.Sets/src/mage/cards/g/GatherCourage.java +++ b/Mage.Sets/src/mage/cards/g/GatherCourage.java @@ -27,16 +27,16 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.ConvokeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/g/GatherSpecimens.java b/Mage.Sets/src/mage/cards/g/GatherSpecimens.java index 3d299f9a7ec..cbb937233e7 100644 --- a/Mage.Sets/src/mage/cards/g/GatherSpecimens.java +++ b/Mage.Sets/src/mage/cards/g/GatherSpecimens.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ReplacementEffectImpl; import mage.cards.Card; @@ -42,6 +41,8 @@ import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GatherThePack.java b/Mage.Sets/src/mage/cards/g/GatherThePack.java index c0ca44edcf8..5c699d93745 100644 --- a/Mage.Sets/src/mage/cards/g/GatherThePack.java +++ b/Mage.Sets/src/mage/cards/g/GatherThePack.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.condition.common.SpellMasteryCondition; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GatherTheTownsfolk.java b/Mage.Sets/src/mage/cards/g/GatherTheTownsfolk.java index d95e6381910..08a28099853 100644 --- a/Mage.Sets/src/mage/cards/g/GatherTheTownsfolk.java +++ b/Mage.Sets/src/mage/cards/g/GatherTheTownsfolk.java @@ -27,15 +27,16 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.condition.common.FatefulHourCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.HumanToken; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/g/GatstafArsonists.java b/Mage.Sets/src/mage/cards/g/GatstafArsonists.java index c11628265eb..997b0ab4796 100644 --- a/Mage.Sets/src/mage/cards/g/GatstafArsonists.java +++ b/Mage.Sets/src/mage/cards/g/GatstafArsonists.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GatstafHowler.java b/Mage.Sets/src/mage/cards/g/GatstafHowler.java index 1af7d7fc381..3757aedff75 100644 --- a/Mage.Sets/src/mage/cards/g/GatstafHowler.java +++ b/Mage.Sets/src/mage/cards/g/GatstafHowler.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -38,6 +37,7 @@ import mage.abilities.keyword.IntimidateAbility; import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/g/GatstafRavagers.java b/Mage.Sets/src/mage/cards/g/GatstafRavagers.java index f4575078243..db8ddebc381 100644 --- a/Mage.Sets/src/mage/cards/g/GatstafRavagers.java +++ b/Mage.Sets/src/mage/cards/g/GatstafRavagers.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -41,6 +40,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GatstafShepherd.java b/Mage.Sets/src/mage/cards/g/GatstafShepherd.java index 28e1f334286..c5b1cca4cf9 100644 --- a/Mage.Sets/src/mage/cards/g/GatstafShepherd.java +++ b/Mage.Sets/src/mage/cards/g/GatstafShepherd.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -37,6 +36,7 @@ import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/g/GauntletOfMight.java b/Mage.Sets/src/mage/cards/g/GauntletOfMight.java index 243d9148bbe..9f96294169e 100644 --- a/Mage.Sets/src/mage/cards/g/GauntletOfMight.java +++ b/Mage.Sets/src/mage/cards/g/GauntletOfMight.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.Mana; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -37,16 +36,14 @@ import mage.abilities.effects.common.ManaEffect; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GauntletOfPower.java b/Mage.Sets/src/mage/cards/g/GauntletOfPower.java index 48c270ac156..53f54052e2b 100644 --- a/Mage.Sets/src/mage/cards/g/GauntletOfPower.java +++ b/Mage.Sets/src/mage/cards/g/GauntletOfPower.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.Mana; import mage.ObjectColor; import mage.abilities.Ability; @@ -40,13 +39,7 @@ import mage.abilities.effects.common.ManaEffect; import mage.abilities.mana.TriggeredManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterLandPermanent; @@ -59,6 +52,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -68,7 +63,7 @@ public class GauntletOfPower extends CardImpl { private static final FilterLandPermanent filter = new FilterLandPermanent("a basic land"); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public GauntletOfPower(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GavonyIronwright.java b/Mage.Sets/src/mage/cards/g/GavonyIronwright.java index b0d8e10cc65..d873bd5930e 100644 --- a/Mage.Sets/src/mage/cards/g/GavonyIronwright.java +++ b/Mage.Sets/src/mage/cards/g/GavonyIronwright.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.FatefulHourCondition; @@ -37,9 +34,12 @@ import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GavonyTownship.java b/Mage.Sets/src/mage/cards/g/GavonyTownship.java index 40217135672..059b9944699 100644 --- a/Mage.Sets/src/mage/cards/g/GavonyTownship.java +++ b/Mage.Sets/src/mage/cards/g/GavonyTownship.java @@ -1,6 +1,5 @@ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -14,6 +13,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + public class GavonyTownship extends CardImpl { public GavonyTownship(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GavonyUnhallowed.java b/Mage.Sets/src/mage/cards/g/GavonyUnhallowed.java index 28d75cc0859..3da14e0bbde 100644 --- a/Mage.Sets/src/mage/cards/g/GavonyUnhallowed.java +++ b/Mage.Sets/src/mage/cards/g/GavonyUnhallowed.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -40,6 +39,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/g/GazeOfAdamaro.java b/Mage.Sets/src/mage/cards/g/GazeOfAdamaro.java index 9be95c16496..457bbc5e88b 100644 --- a/Mage.Sets/src/mage/cards/g/GazeOfAdamaro.java +++ b/Mage.Sets/src/mage/cards/g/GazeOfAdamaro.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GazeOfGranite.java b/Mage.Sets/src/mage/cards/g/GazeOfGranite.java index 242bb2fba2f..0a2dbc5ad24 100644 --- a/Mage.Sets/src/mage/cards/g/GazeOfGranite.java +++ b/Mage.Sets/src/mage/cards/g/GazeOfGranite.java @@ -27,19 +27,20 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -48,7 +49,7 @@ public class GazeOfGranite extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("each nonland permanent with converted mana cost X or less"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public GazeOfGranite(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GazeOfJustice.java b/Mage.Sets/src/mage/cards/g/GazeOfJustice.java index c730c584e05..e313c0e606b 100644 --- a/Mage.Sets/src/mage/cards/g/GazeOfJustice.java +++ b/Mage.Sets/src/mage/cards/g/GazeOfJustice.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.costs.common.TapTargetCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -44,6 +43,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GearseekerSerpent.java b/Mage.Sets/src/mage/cards/g/GearseekerSerpent.java index abb7c979698..8e8efe2d49f 100644 --- a/Mage.Sets/src/mage/cards/g/GearseekerSerpent.java +++ b/Mage.Sets/src/mage/cards/g/GearseekerSerpent.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,16 +36,14 @@ import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect; import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GearshiftAce.java b/Mage.Sets/src/mage/cards/g/GearshiftAce.java index 0b2355c60b4..7a026944a3b 100644 --- a/Mage.Sets/src/mage/cards/g/GearshiftAce.java +++ b/Mage.Sets/src/mage/cards/g/GearshiftAce.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.CrewsVehicleSourceTriggeredAbility; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GeierReachBandit.java b/Mage.Sets/src/mage/cards/g/GeierReachBandit.java index aaa7c979e3d..8e91e6ccee9 100644 --- a/Mage.Sets/src/mage/cards/g/GeierReachBandit.java +++ b/Mage.Sets/src/mage/cards/g/GeierReachBandit.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -36,12 +35,14 @@ import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.TransformAbility; -import mage.cards.v.VildinPackAlpha; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.v.VildinPackAlpha; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GeierReachSanitarium.java b/Mage.Sets/src/mage/cards/g/GeierReachSanitarium.java index c6a7a1f1d96..7edccb250b2 100644 --- a/Mage.Sets/src/mage/cards/g/GeierReachSanitarium.java +++ b/Mage.Sets/src/mage/cards/g/GeierReachSanitarium.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,8 +38,11 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes @@ -49,7 +51,7 @@ public class GeierReachSanitarium extends CardImpl { public GeierReachSanitarium(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/g/GeistFueledScarecrow.java b/Mage.Sets/src/mage/cards/g/GeistFueledScarecrow.java index eb6de9876e5..acf2b716589 100644 --- a/Mage.Sets/src/mage/cards/g/GeistFueledScarecrow.java +++ b/Mage.Sets/src/mage/cards/g/GeistFueledScarecrow.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/g/GeistHonoredMonk.java b/Mage.Sets/src/mage/cards/g/GeistHonoredMonk.java index aacc72c6c77..3789fec3c84 100644 --- a/Mage.Sets/src/mage/cards/g/GeistHonoredMonk.java +++ b/Mage.Sets/src/mage/cards/g/GeistHonoredMonk.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.permanent.token.SpiritWhiteToken; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/g/GeistOfSaintTraft.java b/Mage.Sets/src/mage/cards/g/GeistOfSaintTraft.java index 80759f534b7..65e10ddaffc 100644 --- a/Mage.Sets/src/mage/cards/g/GeistOfSaintTraft.java +++ b/Mage.Sets/src/mage/cards/g/GeistOfSaintTraft.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -38,10 +37,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.game.Game; import mage.game.permanent.token.AngelToken; import mage.players.Player; +import java.util.UUID; + /** * @author Loki */ @@ -49,7 +51,7 @@ public class GeistOfSaintTraft extends CardImpl { public GeistOfSaintTraft(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.subtype.add("Cleric"); diff --git a/Mage.Sets/src/mage/cards/g/GeistOfTheArchives.java b/Mage.Sets/src/mage/cards/g/GeistOfTheArchives.java index 01daffca708..6ee86042d7e 100644 --- a/Mage.Sets/src/mage/cards/g/GeistOfTheArchives.java +++ b/Mage.Sets/src/mage/cards/g/GeistOfTheArchives.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.keyword.ScryEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GeistOfTheLonelyVigil.java b/Mage.Sets/src/mage/cards/g/GeistOfTheLonelyVigil.java index b039ef7eeeb..abe9d1ad2b3 100644 --- a/Mage.Sets/src/mage/cards/g/GeistOfTheLonelyVigil.java +++ b/Mage.Sets/src/mage/cards/g/GeistOfTheLonelyVigil.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.DeliriumCondition; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GeistOfTheMoors.java b/Mage.Sets/src/mage/cards/g/GeistOfTheMoors.java index 47bd744c64b..630b830b143 100644 --- a/Mage.Sets/src/mage/cards/g/GeistOfTheMoors.java +++ b/Mage.Sets/src/mage/cards/g/GeistOfTheMoors.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GeistSnatch.java b/Mage.Sets/src/mage/cards/g/GeistSnatch.java index 536ea6995ee..a0efdbdd784 100644 --- a/Mage.Sets/src/mage/cards/g/GeistSnatch.java +++ b/Mage.Sets/src/mage/cards/g/GeistSnatch.java @@ -27,13 +27,13 @@ */ package mage.cards.g; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; diff --git a/Mage.Sets/src/mage/cards/g/GeistTrappers.java b/Mage.Sets/src/mage/cards/g/GeistTrappers.java index 8e8b7ef6527..4bc5c3b1ad1 100644 --- a/Mage.Sets/src/mage/cards/g/GeistTrappers.java +++ b/Mage.Sets/src/mage/cards/g/GeistTrappers.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityPairedEffect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/g/Geistblast.java b/Mage.Sets/src/mage/cards/g/Geistblast.java index 6563af8852c..5e651ff19e7 100644 --- a/Mage.Sets/src/mage/cards/g/Geistblast.java +++ b/Mage.Sets/src/mage/cards/g/Geistblast.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.ExileSourceFromGraveCost; @@ -46,6 +45,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetSpell; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GeistcatchersRig.java b/Mage.Sets/src/mage/cards/g/GeistcatchersRig.java index dffceea9c76..95c7c2404ec 100644 --- a/Mage.Sets/src/mage/cards/g/GeistcatchersRig.java +++ b/Mage.Sets/src/mage/cards/g/GeistcatchersRig.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -36,10 +34,13 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/Geistflame.java b/Mage.Sets/src/mage/cards/g/Geistflame.java index 9c692a34ba8..4a4e265a1b2 100644 --- a/Mage.Sets/src/mage/cards/g/Geistflame.java +++ b/Mage.Sets/src/mage/cards/g/Geistflame.java @@ -27,12 +27,12 @@ */ package mage.cards.g; -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TimingRule; import mage.target.common.TargetCreatureOrPlayer; diff --git a/Mage.Sets/src/mage/cards/g/GelatinousGenesis.java b/Mage.Sets/src/mage/cards/g/GelatinousGenesis.java index 5c012bca88c..0a3db83763a 100644 --- a/Mage.Sets/src/mage/cards/g/GelatinousGenesis.java +++ b/Mage.Sets/src/mage/cards/g/GelatinousGenesis.java @@ -27,17 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.token.OozeToken; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/Gelectrode.java b/Mage.Sets/src/mage/cards/g/Gelectrode.java index 972debfacac..2b4966c6e61 100644 --- a/Mage.Sets/src/mage/cards/g/Gelectrode.java +++ b/Mage.Sets/src/mage/cards/g/Gelectrode.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterInstantOrSorcerySpell; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GelidShackles.java b/Mage.Sets/src/mage/cards/g/GelidShackles.java index 84f04690b9d..8dd3d7b4e98 100644 --- a/Mage.Sets/src/mage/cards/g/GelidShackles.java +++ b/Mage.Sets/src/mage/cards/g/GelidShackles.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,14 +38,12 @@ import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -55,7 +52,7 @@ public class GelidShackles extends CardImpl { public GelidShackles(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{W}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Aura"); // Enchant creature diff --git a/Mage.Sets/src/mage/cards/g/GemOfBecoming.java b/Mage.Sets/src/mage/cards/g/GemOfBecoming.java index 5243c9ee435..c73e94ac6a8 100644 --- a/Mage.Sets/src/mage/cards/g/GemOfBecoming.java +++ b/Mage.Sets/src/mage/cards/g/GemOfBecoming.java @@ -27,27 +27,24 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterLandCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GemhideSliver.java b/Mage.Sets/src/mage/cards/g/GemhideSliver.java index b99d0322161..5779e908d4b 100644 --- a/Mage.Sets/src/mage/cards/g/GemhideSliver.java +++ b/Mage.Sets/src/mage/cards/g/GemhideSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.FilterPermanent; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/g/GempalmAvenger.java b/Mage.Sets/src/mage/cards/g/GempalmAvenger.java index d27acccdf83..8085521e834 100644 --- a/Mage.Sets/src/mage/cards/g/GempalmAvenger.java +++ b/Mage.Sets/src/mage/cards/g/GempalmAvenger.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CycleTriggeredAbility; @@ -44,6 +43,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GempalmIncinerator.java b/Mage.Sets/src/mage/cards/g/GempalmIncinerator.java index 8658de91f77..eed3d911310 100644 --- a/Mage.Sets/src/mage/cards/g/GempalmIncinerator.java +++ b/Mage.Sets/src/mage/cards/g/GempalmIncinerator.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CycleTriggeredAbility; @@ -38,10 +36,13 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.CyclingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GempalmPolluter.java b/Mage.Sets/src/mage/cards/g/GempalmPolluter.java index 67598fe135f..e4fd1c03e25 100644 --- a/Mage.Sets/src/mage/cards/g/GempalmPolluter.java +++ b/Mage.Sets/src/mage/cards/g/GempalmPolluter.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CycleTriggeredAbility; @@ -43,6 +42,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GempalmStrider.java b/Mage.Sets/src/mage/cards/g/GempalmStrider.java index 2ecce095b6a..ffca7140672 100644 --- a/Mage.Sets/src/mage/cards/g/GempalmStrider.java +++ b/Mage.Sets/src/mage/cards/g/GempalmStrider.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CycleTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GemstoneArray.java b/Mage.Sets/src/mage/cards/g/GemstoneArray.java index 8c79266b6f6..0200eaa030d 100644 --- a/Mage.Sets/src/mage/cards/g/GemstoneArray.java +++ b/Mage.Sets/src/mage/cards/g/GemstoneArray.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GemstoneCaverns.java b/Mage.Sets/src/mage/cards/g/GemstoneCaverns.java index 9cf89058ee9..493a3b15014 100644 --- a/Mage.Sets/src/mage/cards/g/GemstoneCaverns.java +++ b/Mage.Sets/src/mage/cards/g/GemstoneCaverns.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.OpeningHandAction; @@ -46,6 +45,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; @@ -53,6 +53,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author emerald000 @@ -61,7 +63,7 @@ public class GemstoneCaverns extends CardImpl { public GemstoneCaverns(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // If Gemstone Caverns is in your opening hand and you're not playing first, you may begin the game with Gemstone Caverns on the battlefield with a luck counter on it. If you do, exile a card from your hand. this.addAbility(new GemstoneCavernsAbility()); diff --git a/Mage.Sets/src/mage/cards/g/GemstoneMine.java b/Mage.Sets/src/mage/cards/g/GemstoneMine.java index 430c47be42b..5aec54a095c 100644 --- a/Mage.Sets/src/mage/cards/g/GemstoneMine.java +++ b/Mage.Sets/src/mage/cards/g/GemstoneMine.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.SourceHasCounterCondition; @@ -41,6 +40,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GeneralGrievous.java b/Mage.Sets/src/mage/cards/g/GeneralGrievous.java index ca4ca9a59e6..c01d1355f3c 100644 --- a/Mage.Sets/src/mage/cards/g/GeneralGrievous.java +++ b/Mage.Sets/src/mage/cards/g/GeneralGrievous.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +37,12 @@ import mage.abilities.keyword.DoubleStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Styxo @@ -49,7 +51,7 @@ public class GeneralGrievous extends CardImpl { public GeneralGrievous(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{W}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Kaleesh"); this.power = new MageInt(2); this.toughness = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/g/GeneralTazri.java b/Mage.Sets/src/mage/cards/g/GeneralTazri.java index 91552b81411..4aa9994266d 100644 --- a/Mage.Sets/src/mage/cards/g/GeneralTazri.java +++ b/Mage.Sets/src/mage/cards/g/GeneralTazri.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -42,6 +41,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; @@ -50,6 +50,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -64,7 +66,7 @@ public class GeneralTazri extends CardImpl { public GeneralTazri(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Ally"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/g/GeneralsKabuto.java b/Mage.Sets/src/mage/cards/g/GeneralsKabuto.java index 641bf2d0bf8..67b74c25896 100644 --- a/Mage.Sets/src/mage/cards/g/GeneralsKabuto.java +++ b/Mage.Sets/src/mage/cards/g/GeneralsKabuto.java @@ -28,7 +28,6 @@ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.PreventAllDamageToAttachedEffect; @@ -37,11 +36,9 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GeneratorServant.java b/Mage.Sets/src/mage/cards/g/GeneratorServant.java index ba6375a97ce..7b602ff5363 100644 --- a/Mage.Sets/src/mage/cards/g/GeneratorServant.java +++ b/Mage.Sets/src/mage/cards/g/GeneratorServant.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.Mana; @@ -43,19 +40,17 @@ import mage.abilities.keyword.HasteAbility; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.game.stack.Spell; import mage.watchers.Watcher; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author Quercitron @@ -110,7 +105,7 @@ class GeneratorServantWatcher extends Watcher { @Override public void watch(GameEvent event, Game game) { - if (event.getType() == GameEvent.EventType.MANA_PAYED) { + if (event.getType() == GameEvent.EventType.MANA_PAID) { MageObject target = game.getObject(event.getTargetId()); if (event.getSourceId() != null && event.getSourceId().equals(this.getSourceId()) && target != null && target.isCreature() && event.getFlag()) { diff --git a/Mage.Sets/src/mage/cards/g/Genesis.java b/Mage.Sets/src/mage/cards/g/Genesis.java index 73f256ea699..26e9108e92e 100644 --- a/Mage.Sets/src/mage/cards/g/Genesis.java +++ b/Mage.Sets/src/mage/cards/g/Genesis.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GenesisChamber.java b/Mage.Sets/src/mage/cards/g/GenesisChamber.java index 9c32f0ff6d9..a46fbe36bde 100644 --- a/Mage.Sets/src/mage/cards/g/GenesisChamber.java +++ b/Mage.Sets/src/mage/cards/g/GenesisChamber.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.Effect; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.permanent.token.MyrToken; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GenesisHydra.java b/Mage.Sets/src/mage/cards/g/GenesisHydra.java index 244fe9ec2fa..028d47da732 100644 --- a/Mage.Sets/src/mage/cards/g/GenesisHydra.java +++ b/Mage.Sets/src/mage/cards/g/GenesisHydra.java @@ -27,24 +27,19 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.SpellAbility; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CastSourceTriggeredAbility; import mage.abilities.effects.common.EntersBattlefieldWithXCountersEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterCard; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.Predicates; @@ -54,6 +49,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author LevelX2 @@ -122,7 +119,7 @@ class GenesisHydraPutOntoBattlefieldEffect extends OneShotEffect { FilterCard filter = new FilterPermanentCard("a nonland permanent card with converted mana cost " + count + " or less to put onto the battlefield"); filter.add(Predicates.not(new CardTypePredicate(CardType.LAND))); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, count + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, count + 1)); TargetCard target1 = new TargetCard(Zone.LIBRARY, filter); target1.setRequired(false); if (cards.count(filter, controller.getId(), source.getSourceId(), game) > 0) { diff --git a/Mage.Sets/src/mage/cards/g/GenesisWave.java b/Mage.Sets/src/mage/cards/g/GenesisWave.java index 858acc2c079..9ce78884637 100644 --- a/Mage.Sets/src/mage/cards/g/GenesisWave.java +++ b/Mage.Sets/src/mage/cards/g/GenesisWave.java @@ -27,21 +27,14 @@ */ package mage.cards.g; -import java.util.LinkedHashSet; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -50,6 +43,10 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.LinkedHashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -104,7 +101,7 @@ class GenesisWaveEffect extends OneShotEffect { if (!cards.isEmpty()) { controller.revealCards(sourceObject.getIdName(), cards, game); FilterCard filter = new FilterCard("cards with converted mana cost " + xValue + " or less to put onto the battlefield"); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, xValue + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, xValue + 1)); filter.add( Predicates.or(new CardTypePredicate(CardType.ARTIFACT), new CardTypePredicate(CardType.CREATURE), diff --git a/Mage.Sets/src/mage/cards/g/GenjuOfTheRealm.java b/Mage.Sets/src/mage/cards/g/GenjuOfTheRealm.java index 3cb819d25f6..6912f9b7a9b 100644 --- a/Mage.Sets/src/mage/cards/g/GenjuOfTheRealm.java +++ b/Mage.Sets/src/mage/cards/g/GenjuOfTheRealm.java @@ -38,10 +38,7 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.permanent.token.Token; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; @@ -58,7 +55,7 @@ public class GenjuOfTheRealm extends CardImpl { public GenjuOfTheRealm(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{W}{U}{B}{R}{G}"); this.subtype.add("Aura"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Enchant Land TargetPermanent auraTarget = new TargetLandPermanent(); @@ -89,7 +86,7 @@ public class GenjuOfTheRealm extends CardImpl { SpiritToken() { super("Spirit", "legendary 8/12 Spirit creature with trample"); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); this.color.setWhite(true); this.color.setBlue(true); diff --git a/Mage.Sets/src/mage/cards/g/Geosurge.java b/Mage.Sets/src/mage/cards/g/Geosurge.java index 25efeb58948..a2955f88e9c 100644 --- a/Mage.Sets/src/mage/cards/g/Geosurge.java +++ b/Mage.Sets/src/mage/cards/g/Geosurge.java @@ -28,7 +28,6 @@ package mage.cards.g; import mage.ConditionalMana; -import mage.constants.CardType; import mage.Mana; import mage.abilities.Ability; import mage.abilities.SpellAbility; @@ -37,6 +36,7 @@ import mage.abilities.effects.common.BasicManaEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.Game; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/g/GeothermalCrevice.java b/Mage.Sets/src/mage/cards/g/GeothermalCrevice.java index f9c80b48942..5507aff5169 100644 --- a/Mage.Sets/src/mage/cards/g/GeothermalCrevice.java +++ b/Mage.Sets/src/mage/cards/g/GeothermalCrevice.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; @@ -39,8 +36,11 @@ import mage.abilities.mana.RedManaAbility; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/g/GeralfsMasterpiece.java b/Mage.Sets/src/mage/cards/g/GeralfsMasterpiece.java index 2cb5c6ffabc..36cc543906f 100644 --- a/Mage.Sets/src/mage/cards/g/GeralfsMasterpiece.java +++ b/Mage.Sets/src/mage/cards/g/GeralfsMasterpiece.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -49,6 +48,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GeralfsMessenger.java b/Mage.Sets/src/mage/cards/g/GeralfsMessenger.java index c554ed54cfd..3f21f6a06bb 100644 --- a/Mage.Sets/src/mage/cards/g/GeralfsMessenger.java +++ b/Mage.Sets/src/mage/cards/g/GeralfsMessenger.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; @@ -36,6 +35,7 @@ import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.keyword.UndyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetOpponent; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/g/GeralfsMindcrusher.java b/Mage.Sets/src/mage/cards/g/GeralfsMindcrusher.java index 1fdbc3ef0e4..df41fe6ce42 100644 --- a/Mage.Sets/src/mage/cards/g/GeralfsMindcrusher.java +++ b/Mage.Sets/src/mage/cards/g/GeralfsMindcrusher.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -36,8 +34,11 @@ import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; import mage.abilities.keyword.UndyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GerrardCapashen.java b/Mage.Sets/src/mage/cards/g/GerrardCapashen.java index 02d4756ef3a..419b594b938 100644 --- a/Mage.Sets/src/mage/cards/g/GerrardCapashen.java +++ b/Mage.Sets/src/mage/cards/g/GerrardCapashen.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -38,15 +37,14 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author FenrisulfrX @@ -55,7 +53,7 @@ public class GerrardCapashen extends CardImpl { public GerrardCapashen(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(3); @@ -69,7 +67,7 @@ public class GerrardCapashen extends CardImpl { // {3}{W}: Tap target creature. Activate this ability only if {this} is attacking. Ability ability2 = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), - new ManaCostsImpl("{3}{W}"), new SourceAttackingCondition()); + new ManaCostsImpl("{3}{W}"), SourceAttackingCondition.instance); ability2.addTarget(new TargetCreaturePermanent()); this.addAbility(ability2); } diff --git a/Mage.Sets/src/mage/cards/g/GerrardsBattleCry.java b/Mage.Sets/src/mage/cards/g/GerrardsBattleCry.java index cbf08bb2473..211ec44d1ae 100644 --- a/Mage.Sets/src/mage/cards/g/GerrardsBattleCry.java +++ b/Mage.Sets/src/mage/cards/g/GerrardsBattleCry.java @@ -27,18 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GerrardsCommand.java b/Mage.Sets/src/mage/cards/g/GerrardsCommand.java index cf5e4177878..0a41542e487 100644 --- a/Mage.Sets/src/mage/cards/g/GerrardsCommand.java +++ b/Mage.Sets/src/mage/cards/g/GerrardsCommand.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author FenrisulfrX diff --git a/Mage.Sets/src/mage/cards/g/GerrardsIrregulars.java b/Mage.Sets/src/mage/cards/g/GerrardsIrregulars.java index f6868db7db5..fb3a6fb4f77 100644 --- a/Mage.Sets/src/mage/cards/g/GerrardsIrregulars.java +++ b/Mage.Sets/src/mage/cards/g/GerrardsIrregulars.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; -import mage.abilities.keyword.TrampleAbility; import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GerrardsVerdict.java b/Mage.Sets/src/mage/cards/g/GerrardsVerdict.java index 65ef3d37e4b..014f3893e68 100644 --- a/Mage.Sets/src/mage/cards/g/GerrardsVerdict.java +++ b/Mage.Sets/src/mage/cards/g/GerrardsVerdict.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GerrardsWisdom.java b/Mage.Sets/src/mage/cards/g/GerrardsWisdom.java index 7a361c3128d..20ff6f16bb3 100644 --- a/Mage.Sets/src/mage/cards/g/GerrardsWisdom.java +++ b/Mage.Sets/src/mage/cards/g/GerrardsWisdom.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.dynamicvalue.MultipliedValue; import mage.abilities.dynamicvalue.common.CardsInControllerHandCount; import mage.abilities.effects.common.GainLifeEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GethLordOfTheVault.java b/Mage.Sets/src/mage/cards/g/GethLordOfTheVault.java index 3383e322c44..bf7c05163b4 100644 --- a/Mage.Sets/src/mage/cards/g/GethLordOfTheVault.java +++ b/Mage.Sets/src/mage/cards/g/GethLordOfTheVault.java @@ -27,9 +27,9 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; @@ -39,8 +39,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -50,8 +50,9 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInOpponentsGraveyard; +import java.util.UUID; + /** - * * @author nantuko */ public class GethLordOfTheVault extends CardImpl { @@ -59,8 +60,8 @@ public class GethLordOfTheVault extends CardImpl { private final UUID originalId; public GethLordOfTheVault(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}"); - this.supertype.add("Legendary"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}{B}"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.power = new MageInt(5); @@ -85,7 +86,7 @@ public class GethLordOfTheVault extends CardImpl { filter.add(Predicates.or( new CardTypePredicate(CardType.ARTIFACT), new CardTypePredicate(CardType.CREATURE))); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, xValue)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue)); Target target = new TargetCardInOpponentsGraveyard(filter); ability.addTarget(target); } diff --git a/Mage.Sets/src/mage/cards/g/GethsGrimoire.java b/Mage.Sets/src/mage/cards/g/GethsGrimoire.java index 4d4eff517ff..e8ac7e494fa 100644 --- a/Mage.Sets/src/mage/cards/g/GethsGrimoire.java +++ b/Mage.Sets/src/mage/cards/g/GethsGrimoire.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.common.DiscardsACardOpponentTriggeredAbility; import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GethsVerdict.java b/Mage.Sets/src/mage/cards/g/GethsVerdict.java index 80ca492ff53..c3d623305d4 100644 --- a/Mage.Sets/src/mage/cards/g/GethsVerdict.java +++ b/Mage.Sets/src/mage/cards/g/GethsVerdict.java @@ -28,15 +28,16 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.effects.common.SacrificeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GeyserGlider.java b/Mage.Sets/src/mage/cards/g/GeyserGlider.java index 2ce7317d33e..79c44b0a82b 100644 --- a/Mage.Sets/src/mage/cards/g/GeyserGlider.java +++ b/Mage.Sets/src/mage/cards/g/GeyserGlider.java @@ -27,17 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.LandfallAbility; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GeyserfieldStalker.java b/Mage.Sets/src/mage/cards/g/GeyserfieldStalker.java index 07fb2cbb53d..a1956515f0d 100644 --- a/Mage.Sets/src/mage/cards/g/GeyserfieldStalker.java +++ b/Mage.Sets/src/mage/cards/g/GeyserfieldStalker.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LandfallAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GhalmasWarden.java b/Mage.Sets/src/mage/cards/g/GhalmasWarden.java index a48fe4138b7..c6e9a477bb0 100644 --- a/Mage.Sets/src/mage/cards/g/GhalmasWarden.java +++ b/Mage.Sets/src/mage/cards/g/GhalmasWarden.java @@ -28,10 +28,6 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.MetalcraftCondition; @@ -40,6 +36,11 @@ import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GhastlordOfFugue.java b/Mage.Sets/src/mage/cards/g/GhastlordOfFugue.java index 577d06be7ba..cd4af223e5f 100644 --- a/Mage.Sets/src/mage/cards/g/GhastlordOfFugue.java +++ b/Mage.Sets/src/mage/cards/g/GhastlordOfFugue.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -47,6 +46,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GhastlyConscription.java b/Mage.Sets/src/mage/cards/g/GhastlyConscription.java index 948519adb2d..3c82f5b44a9 100644 --- a/Mage.Sets/src/mage/cards/g/GhastlyConscription.java +++ b/Mage.Sets/src/mage/cards/g/GhastlyConscription.java @@ -27,11 +27,6 @@ */ package mage.cards.g; -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.Set; -import java.util.UUID; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCosts; @@ -51,6 +46,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.*; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GhastlyDemise.java b/Mage.Sets/src/mage/cards/g/GhastlyDemise.java index dd644caf355..6e08ed68e2d 100644 --- a/Mage.Sets/src/mage/cards/g/GhastlyDemise.java +++ b/Mage.Sets/src/mage/cards/g/GhastlyDemise.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -44,6 +43,8 @@ import mage.target.Target; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FirstTargetPointer; +import java.util.UUID; + /** * * @author cbt33 diff --git a/Mage.Sets/src/mage/cards/g/GhastlyDiscovery.java b/Mage.Sets/src/mage/cards/g/GhastlyDiscovery.java index 9ea6daba008..a9b652ef849 100644 --- a/Mage.Sets/src/mage/cards/g/GhastlyDiscovery.java +++ b/Mage.Sets/src/mage/cards/g/GhastlyDiscovery.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.ConspireAbility; @@ -38,6 +37,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GhastlyHaunting.java b/Mage.Sets/src/mage/cards/g/GhastlyHaunting.java index bd9b82a190c..429f93da208 100644 --- a/Mage.Sets/src/mage/cards/g/GhastlyHaunting.java +++ b/Mage.Sets/src/mage/cards/g/GhastlyHaunting.java @@ -27,17 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.ControlEnchantedEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/g/GhaveGuruOfSpores.java b/Mage.Sets/src/mage/cards/g/GhaveGuruOfSpores.java index f50db77be68..b1c17480c1f 100644 --- a/Mage.Sets/src/mage/cards/g/GhaveGuruOfSpores.java +++ b/Mage.Sets/src/mage/cards/g/GhaveGuruOfSpores.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -41,6 +40,7 @@ import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; @@ -51,6 +51,8 @@ import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 @@ -65,7 +67,7 @@ public class GhaveGuruOfSpores extends CardImpl { public GhaveGuruOfSpores(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Fungus"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/g/GhazbanOgre.java b/Mage.Sets/src/mage/cards/g/GhazbanOgre.java index 084da558aec..7b828e7e128 100644 --- a/Mage.Sets/src/mage/cards/g/GhazbanOgre.java +++ b/Mage.Sets/src/mage/cards/g/GhazbanOgre.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -45,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author MarcoMarin, Watch out! This one I actually made from scratch!(1st diff --git a/Mage.Sets/src/mage/cards/g/GhirapurAetherGrid.java b/Mage.Sets/src/mage/cards/g/GhirapurAetherGrid.java index 92e5b8ce039..1c7fce8ba68 100644 --- a/Mage.Sets/src/mage/cards/g/GhirapurAetherGrid.java +++ b/Mage.Sets/src/mage/cards/g/GhirapurAetherGrid.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; import mage.abilities.effects.common.DamageTargetEffect; @@ -39,8 +38,10 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.TappedPredicate; -import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetControlledPermanent; +import mage.target.common.TargetCreatureOrPlayer; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GhirapurGearcrafter.java b/Mage.Sets/src/mage/cards/g/GhirapurGearcrafter.java index 8bf41e4cbe3..377e164c087 100644 --- a/Mage.Sets/src/mage/cards/g/GhirapurGearcrafter.java +++ b/Mage.Sets/src/mage/cards/g/GhirapurGearcrafter.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.ThopterColorlessToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GhirapurGuide.java b/Mage.Sets/src/mage/cards/g/GhirapurGuide.java index d7f4ba93095..236250cdedc 100644 --- a/Mage.Sets/src/mage/cards/g/GhirapurGuide.java +++ b/Mage.Sets/src/mage/cards/g/GhirapurGuide.java @@ -27,9 +27,9 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.combat.CantBeBlockedByAllTargetEffect; @@ -38,11 +38,12 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -52,7 +53,7 @@ public class GhirapurGuide extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public GhirapurGuide(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GhirapurOrrery.java b/Mage.Sets/src/mage/cards/g/GhirapurOrrery.java index 1204a3882b9..587403829be 100644 --- a/Mage.Sets/src/mage/cards/g/GhirapurOrrery.java +++ b/Mage.Sets/src/mage/cards/g/GhirapurOrrery.java @@ -27,8 +27,8 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.IntCompareCondition; @@ -43,6 +43,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 @@ -75,7 +77,7 @@ public class GhirapurOrrery extends CardImpl { class GhirapurOrreryCondition extends IntCompareCondition { GhirapurOrreryCondition() { - super(ComparisonType.Equal, 0); + super(ComparisonType.EQUAL_TO, 0); } @Override diff --git a/Mage.Sets/src/mage/cards/g/GhirapurOsprey.java b/Mage.Sets/src/mage/cards/g/GhirapurOsprey.java index 7a46e813e9d..dfa3d0ff493 100644 --- a/Mage.Sets/src/mage/cards/g/GhirapurOsprey.java +++ b/Mage.Sets/src/mage/cards/g/GhirapurOsprey.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/g/GhituEncampment.java b/Mage.Sets/src/mage/cards/g/GhituEncampment.java index e95ad286d98..7b883544a5f 100644 --- a/Mage.Sets/src/mage/cards/g/GhituEncampment.java +++ b/Mage.Sets/src/mage/cards/g/GhituEncampment.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -40,8 +36,13 @@ import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GhituFire.java b/Mage.Sets/src/mage/cards/g/GhituFire.java index ff3fe2b8fe0..32b1190aee1 100644 --- a/Mage.Sets/src/mage/cards/g/GhituFire.java +++ b/Mage.Sets/src/mage/cards/g/GhituFire.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.PayMoreToCastAsThoughtItHadFlashAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GhituFireEater.java b/Mage.Sets/src/mage/cards/g/GhituFireEater.java index 7ebf7d0acc1..bb994bc5a6e 100644 --- a/Mage.Sets/src/mage/cards/g/GhituFireEater.java +++ b/Mage.Sets/src/mage/cards/g/GhituFireEater.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GhituFirebreathing.java b/Mage.Sets/src/mage/cards/g/GhituFirebreathing.java index 7857158aea0..33061c49c09 100644 --- a/Mage.Sets/src/mage/cards/g/GhituFirebreathing.java +++ b/Mage.Sets/src/mage/cards/g/GhituFirebreathing.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; @@ -39,14 +38,12 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GhituSlinger.java b/Mage.Sets/src/mage/cards/g/GhituSlinger.java index e52f0b509f3..f0e3783fed5 100644 --- a/Mage.Sets/src/mage/cards/g/GhituSlinger.java +++ b/Mage.Sets/src/mage/cards/g/GhituSlinger.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -36,8 +34,11 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.EchoAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/g/GhituWarCry.java b/Mage.Sets/src/mage/cards/g/GhituWarCry.java index 93a027a9983..295103a7c2d 100644 --- a/Mage.Sets/src/mage/cards/g/GhituWarCry.java +++ b/Mage.Sets/src/mage/cards/g/GhituWarCry.java @@ -27,18 +27,19 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GhorClanBloodscale.java b/Mage.Sets/src/mage/cards/g/GhorClanBloodscale.java index f279d565bd9..ba28fbda056 100644 --- a/Mage.Sets/src/mage/cards/g/GhorClanBloodscale.java +++ b/Mage.Sets/src/mage/cards/g/GhorClanBloodscale.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,9 +34,12 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GhorClanRampager.java b/Mage.Sets/src/mage/cards/g/GhorClanRampager.java index bdb888e7f55..6b4db033e6d 100644 --- a/Mage.Sets/src/mage/cards/g/GhorClanRampager.java +++ b/Mage.Sets/src/mage/cards/g/GhorClanRampager.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -38,8 +35,11 @@ import mage.abilities.keyword.BloodrushAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GhorClanSavage.java b/Mage.Sets/src/mage/cards/g/GhorClanSavage.java index ac60fbd56d3..4a5be282d0c 100644 --- a/Mage.Sets/src/mage/cards/g/GhorClanSavage.java +++ b/Mage.Sets/src/mage/cards/g/GhorClanSavage.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.BloodthirstAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GhostCouncilOfOrzhova.java b/Mage.Sets/src/mage/cards/g/GhostCouncilOfOrzhova.java index cb23934842b..564dd7c6a00 100644 --- a/Mage.Sets/src/mage/cards/g/GhostCouncilOfOrzhova.java +++ b/Mage.Sets/src/mage/cards/g/GhostCouncilOfOrzhova.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,12 +39,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Loki @@ -54,7 +56,7 @@ public class GhostCouncilOfOrzhova extends CardImpl { public GhostCouncilOfOrzhova(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{W}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/g/GhostHounds.java b/Mage.Sets/src/mage/cards/g/GhostHounds.java index 5dbef9e482a..ad1d26fece4 100644 --- a/Mage.Sets/src/mage/cards/g/GhostHounds.java +++ b/Mage.Sets/src/mage/cards/g/GhostHounds.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Galatolol diff --git a/Mage.Sets/src/mage/cards/g/GhostLitNourisher.java b/Mage.Sets/src/mage/cards/g/GhostLitNourisher.java index d753b67f01f..3df4397b10e 100644 --- a/Mage.Sets/src/mage/cards/g/GhostLitNourisher.java +++ b/Mage.Sets/src/mage/cards/g/GhostLitNourisher.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GhostLitRaider.java b/Mage.Sets/src/mage/cards/g/GhostLitRaider.java index f611a3284e6..ad8dfc8359b 100644 --- a/Mage.Sets/src/mage/cards/g/GhostLitRaider.java +++ b/Mage.Sets/src/mage/cards/g/GhostLitRaider.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GhostLitRedeemer.java b/Mage.Sets/src/mage/cards/g/GhostLitRedeemer.java index 42c78c0881b..5e1891591f4 100644 --- a/Mage.Sets/src/mage/cards/g/GhostLitRedeemer.java +++ b/Mage.Sets/src/mage/cards/g/GhostLitRedeemer.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GhostLitStalker.java b/Mage.Sets/src/mage/cards/g/GhostLitStalker.java index 0e5a80b0ea1..98617c2a55a 100644 --- a/Mage.Sets/src/mage/cards/g/GhostLitStalker.java +++ b/Mage.Sets/src/mage/cards/g/GhostLitStalker.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.TimingRule; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GhostLitWarder.java b/Mage.Sets/src/mage/cards/g/GhostLitWarder.java index 5c7d5b08210..fdeeeb48a11 100644 --- a/Mage.Sets/src/mage/cards/g/GhostLitWarder.java +++ b/Mage.Sets/src/mage/cards/g/GhostLitWarder.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GhostQuarter.java b/Mage.Sets/src/mage/cards/g/GhostQuarter.java index 5b3b7349214..d0aebc0d108 100644 --- a/Mage.Sets/src/mage/cards/g/GhostQuarter.java +++ b/Mage.Sets/src/mage/cards/g/GhostQuarter.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -48,6 +47,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GhostShip.java b/Mage.Sets/src/mage/cards/g/GhostShip.java index 1e6e43eaa6f..c14537ffc01 100644 --- a/Mage.Sets/src/mage/cards/g/GhostShip.java +++ b/Mage.Sets/src/mage/cards/g/GhostShip.java @@ -27,18 +27,19 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author shieldal diff --git a/Mage.Sets/src/mage/cards/g/GhostTactician.java b/Mage.Sets/src/mage/cards/g/GhostTactician.java index b49be28085e..cc609421d49 100644 --- a/Mage.Sets/src/mage/cards/g/GhostTactician.java +++ b/Mage.Sets/src/mage/cards/g/GhostTactician.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GhostTown.java b/Mage.Sets/src/mage/cards/g/GhostTown.java index a3ef00aeb88..29e5488cbf5 100644 --- a/Mage.Sets/src/mage/cards/g/GhostTown.java +++ b/Mage.Sets/src/mage/cards/g/GhostTown.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.MyTurnCondition; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/GhostWarden.java b/Mage.Sets/src/mage/cards/g/GhostWarden.java index fe04594ff79..e865490e17e 100644 --- a/Mage.Sets/src/mage/cards/g/GhostWarden.java +++ b/Mage.Sets/src/mage/cards/g/GhostWarden.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,10 +34,13 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GhostbladeEidolon.java b/Mage.Sets/src/mage/cards/g/GhostbladeEidolon.java index 7a9e6927735..de6132b38ec 100644 --- a/Mage.Sets/src/mage/cards/g/GhostbladeEidolon.java +++ b/Mage.Sets/src/mage/cards/g/GhostbladeEidolon.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/Ghostfire.java b/Mage.Sets/src/mage/cards/g/Ghostfire.java index e5d4f8ad093..ed14ff9c087 100644 --- a/Mage.Sets/src/mage/cards/g/Ghostfire.java +++ b/Mage.Sets/src/mage/cards/g/Ghostfire.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.InfoEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/g/GhostfireBlade.java b/Mage.Sets/src/mage/cards/g/GhostfireBlade.java index 19c999adf76..f7f64b030cf 100644 --- a/Mage.Sets/src/mage/cards/g/GhostfireBlade.java +++ b/Mage.Sets/src/mage/cards/g/GhostfireBlade.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GhostflameSliver.java b/Mage.Sets/src/mage/cards/g/GhostflameSliver.java index 602f4166e68..d26111b0830 100644 --- a/Mage.Sets/src/mage/cards/g/GhostflameSliver.java +++ b/Mage.Sets/src/mage/cards/g/GhostflameSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -35,16 +34,13 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/g/Ghostform.java b/Mage.Sets/src/mage/cards/g/Ghostform.java index c6eb5066fe1..f64bfa566fb 100644 --- a/Mage.Sets/src/mage/cards/g/Ghostform.java +++ b/Mage.Sets/src/mage/cards/g/Ghostform.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author noxx diff --git a/Mage.Sets/src/mage/cards/g/GhosthelmCourier.java b/Mage.Sets/src/mage/cards/g/GhosthelmCourier.java index 12a396b46e5..3a7750efed6 100644 --- a/Mage.Sets/src/mage/cards/g/GhosthelmCourier.java +++ b/Mage.Sets/src/mage/cards/g/GhosthelmCourier.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GhostlyChangeling.java b/Mage.Sets/src/mage/cards/g/GhostlyChangeling.java index 7bbd2ec7007..5dcb09359c0 100644 --- a/Mage.Sets/src/mage/cards/g/GhostlyChangeling.java +++ b/Mage.Sets/src/mage/cards/g/GhostlyChangeling.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -35,6 +34,7 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.ChangelingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; diff --git a/Mage.Sets/src/mage/cards/g/GhostlyFlicker.java b/Mage.Sets/src/mage/cards/g/GhostlyFlicker.java index f213a2cf409..d663c88ad04 100644 --- a/Mage.Sets/src/mage/cards/g/GhostlyFlicker.java +++ b/Mage.Sets/src/mage/cards/g/GhostlyFlicker.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; - import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -48,6 +44,10 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/g/GhostlyPossession.java b/Mage.Sets/src/mage/cards/g/GhostlyPossession.java index 74bd456c31f..d973e6c9bcf 100644 --- a/Mage.Sets/src/mage/cards/g/GhostlyPossession.java +++ b/Mage.Sets/src/mage/cards/g/GhostlyPossession.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.PreventionEffectImpl; @@ -39,6 +36,7 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.game.Game; import mage.game.events.DamageEvent; import mage.game.events.GameEvent; @@ -46,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/g/GhostlyPrison.java b/Mage.Sets/src/mage/cards/g/GhostlyPrison.java index f2a1e755757..1c3401cc946 100644 --- a/Mage.Sets/src/mage/cards/g/GhostlyPrison.java +++ b/Mage.Sets/src/mage/cards/g/GhostlyPrison.java @@ -27,14 +27,15 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.combat.CantAttackYouUnlessPayManaAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GhostlySentinel.java b/Mage.Sets/src/mage/cards/g/GhostlySentinel.java index d55aa2ba9d3..df708ac1b51 100644 --- a/Mage.Sets/src/mage/cards/g/GhostlySentinel.java +++ b/Mage.Sets/src/mage/cards/g/GhostlySentinel.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GhostlyTouch.java b/Mage.Sets/src/mage/cards/g/GhostlyTouch.java index 99034df175d..31517dcbebc 100644 --- a/Mage.Sets/src/mage/cards/g/GhostlyTouch.java +++ b/Mage.Sets/src/mage/cards/g/GhostlyTouch.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -37,6 +36,10 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/g/GhostlyVisit.java b/Mage.Sets/src/mage/cards/g/GhostlyVisit.java index f338a78fffb..6efa27e3ebb 100644 --- a/Mage.Sets/src/mage/cards/g/GhostlyVisit.java +++ b/Mage.Sets/src/mage/cards/g/GhostlyVisit.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GhostlyWings.java b/Mage.Sets/src/mage/cards/g/GhostlyWings.java index 83b3490b6cd..5244dc5906a 100644 --- a/Mage.Sets/src/mage/cards/g/GhostlyWings.java +++ b/Mage.Sets/src/mage/cards/g/GhostlyWings.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,17 +40,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GhostsOfTheDamned.java b/Mage.Sets/src/mage/cards/g/GhostsOfTheDamned.java index 2f357094b90..8f3f263ab4a 100644 --- a/Mage.Sets/src/mage/cards/g/GhostsOfTheDamned.java +++ b/Mage.Sets/src/mage/cards/g/GhostsOfTheDamned.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author hanasu diff --git a/Mage.Sets/src/mage/cards/g/Ghostway.java b/Mage.Sets/src/mage/cards/g/Ghostway.java index 884162fa39d..e407bddd844 100644 --- a/Mage.Sets/src/mage/cards/g/Ghostway.java +++ b/Mage.Sets/src/mage/cards/g/Ghostway.java @@ -27,20 +27,13 @@ */ package mage.cards.g; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ReturnToBattlefieldUnderOwnerControlTargetEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; @@ -53,6 +46,10 @@ import mage.players.Player; import mage.target.targetpointer.FixedTargets; import mage.util.CardUtil; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GhoulcallerGisa.java b/Mage.Sets/src/mage/cards/g/GhoulcallerGisa.java index 4d9596ff1ce..8d84ca91fba 100644 --- a/Mage.Sets/src/mage/cards/g/GhoulcallerGisa.java +++ b/Mage.Sets/src/mage/cards/g/GhoulcallerGisa.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,7 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; @@ -48,6 +48,8 @@ import mage.game.permanent.token.Token; import mage.game.permanent.token.ZombieToken; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -62,7 +64,7 @@ public class GhoulcallerGisa extends CardImpl { public GhoulcallerGisa(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/g/GhoulcallersBell.java b/Mage.Sets/src/mage/cards/g/GhoulcallersBell.java index 695b7b507cd..3b4cdccdf78 100644 --- a/Mage.Sets/src/mage/cards/g/GhoulcallersBell.java +++ b/Mage.Sets/src/mage/cards/g/GhoulcallersBell.java @@ -27,11 +27,6 @@ */ package mage.cards.g; -import java.util.Collection; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,9 +34,15 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.Collection; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GhoulcallersChant.java b/Mage.Sets/src/mage/cards/g/GhoulcallersChant.java index dc20e7e8698..f5dfc6d830f 100644 --- a/Mage.Sets/src/mage/cards/g/GhoulcallersChant.java +++ b/Mage.Sets/src/mage/cards/g/GhoulcallersChant.java @@ -27,17 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Mode; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/Ghoulflesh.java b/Mage.Sets/src/mage/cards/g/Ghoulflesh.java index 9ce1d07d46f..814eec10e22 100644 --- a/Mage.Sets/src/mage/cards/g/Ghoulflesh.java +++ b/Mage.Sets/src/mage/cards/g/Ghoulflesh.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import mage.constants.*; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -37,6 +36,7 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/g/Ghoulraiser.java b/Mage.Sets/src/mage/cards/g/Ghoulraiser.java index c1c4a36b084..b1f9fae3658 100644 --- a/Mage.Sets/src/mage/cards/g/Ghoulraiser.java +++ b/Mage.Sets/src/mage/cards/g/Ghoulraiser.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,12 +34,17 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.players.Player; import mage.util.RandomUtil; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GhoulsFeast.java b/Mage.Sets/src/mage/cards/g/GhoulsFeast.java index 2253bf758d7..447b44514da 100644 --- a/Mage.Sets/src/mage/cards/g/GhoulsFeast.java +++ b/Mage.Sets/src/mage/cards/g/GhoulsFeast.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; import mage.abilities.dynamicvalue.common.StaticValue; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/Ghoulsteed.java b/Mage.Sets/src/mage/cards/g/Ghoulsteed.java index 5ad83892500..63ac4dc6262 100644 --- a/Mage.Sets/src/mage/cards/g/Ghoulsteed.java +++ b/Mage.Sets/src/mage/cards/g/Ghoulsteed.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/Ghoultree.java b/Mage.Sets/src/mage/cards/g/Ghoultree.java index 57237e31fca..8a8bc52c3eb 100644 --- a/Mage.Sets/src/mage/cards/g/Ghoultree.java +++ b/Mage.Sets/src/mage/cards/g/Ghoultree.java @@ -28,22 +28,14 @@ package mage.cards.g; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; -import mage.abilities.Ability; -import mage.abilities.SpellAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.cost.CostModificationEffectImpl; +import mage.abilities.effects.common.cost.SourceCostReductionForEachCardInGraveyardEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CostModificationType; -import mage.constants.Duration; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; -import mage.game.Game; -import mage.players.Player; -import mage.util.CardUtil; /** * @@ -52,7 +44,7 @@ import mage.util.CardUtil; public class Ghoultree extends CardImpl { public Ghoultree(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{7}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{7}{G}"); this.subtype.add("Zombie"); this.subtype.add("Treefolk"); @@ -60,9 +52,7 @@ public class Ghoultree extends CardImpl { this.toughness = new MageInt(10); // Ghoultree costs {1} less to cast for each creature card in your graveyard. - Ability ability = new SimpleStaticAbility(Zone.ALL, new GhoultreeCostReductionEffect()); - ability.setRuleAtTheTop(true); - this.addAbility(ability); + this.addAbility(new SimpleStaticAbility(Zone.ALL, new SourceCostReductionForEachCardInGraveyardEffect(new FilterCreatureCard()))); } public Ghoultree(final Ghoultree card) { @@ -74,40 +64,3 @@ public class Ghoultree extends CardImpl { return new Ghoultree(this); } } - -class GhoultreeCostReductionEffect extends CostModificationEffectImpl { - - GhoultreeCostReductionEffect() { - super(Duration.WhileOnStack, Outcome.Benefit, CostModificationType.REDUCE_COST); - staticText = "{this} costs {1} less to cast for each creature card in your graveyard"; - } - - GhoultreeCostReductionEffect(GhoultreeCostReductionEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source, Ability abilityToModify) { - Player player = game.getPlayer(source.getControllerId()); - if (player != null) { - int reductionAmount = player.getGraveyard().count(new FilterCreatureCard(), game); - CardUtil.reduceCost(abilityToModify, reductionAmount); - return true; - } - return false; - } - - @Override - public boolean applies(Ability abilityToModify, Ability source, Game game) { - if ((abilityToModify instanceof SpellAbility) && abilityToModify.getSourceId().equals(source.getSourceId())) { - return game.getCard(abilityToModify.getSourceId()) != null; - } - return false; - } - - @Override - public GhoultreeCostReductionEffect copy() { - return new GhoultreeCostReductionEffect(this); - } -} - diff --git a/Mage.Sets/src/mage/cards/g/GiantAdephage.java b/Mage.Sets/src/mage/cards/g/GiantAdephage.java index 813a91faa29..112431ba373 100644 --- a/Mage.Sets/src/mage/cards/g/GiantAdephage.java +++ b/Mage.Sets/src/mage/cards/g/GiantAdephage.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.PutTokenOntoBattlefieldCopySourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GiantAmbushBeetle.java b/Mage.Sets/src/mage/cards/g/GiantAmbushBeetle.java index da264682fa9..5e18881844b 100644 --- a/Mage.Sets/src/mage/cards/g/GiantAmbushBeetle.java +++ b/Mage.Sets/src/mage/cards/g/GiantAmbushBeetle.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GiantBadger.java b/Mage.Sets/src/mage/cards/g/GiantBadger.java index 86022c8e4df..551daf2b3dd 100644 --- a/Mage.Sets/src/mage/cards/g/GiantBadger.java +++ b/Mage.Sets/src/mage/cards/g/GiantBadger.java @@ -27,16 +27,16 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.BlocksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GiantCaterpillar.java b/Mage.Sets/src/mage/cards/g/GiantCaterpillar.java index e2fa1fcc0bf..18bf78a4aea 100644 --- a/Mage.Sets/src/mage/cards/g/GiantCaterpillar.java +++ b/Mage.Sets/src/mage/cards/g/GiantCaterpillar.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GiantCockroach.java b/Mage.Sets/src/mage/cards/g/GiantCockroach.java index b44df12fa43..366830c4106 100644 --- a/Mage.Sets/src/mage/cards/g/GiantCockroach.java +++ b/Mage.Sets/src/mage/cards/g/GiantCockroach.java @@ -27,11 +27,12 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GiantCrab.java b/Mage.Sets/src/mage/cards/g/GiantCrab.java index e29dc67a83e..483c17fff14 100644 --- a/Mage.Sets/src/mage/cards/g/GiantCrab.java +++ b/Mage.Sets/src/mage/cards/g/GiantCrab.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; @@ -37,6 +34,12 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GiantDustwasp.java b/Mage.Sets/src/mage/cards/g/GiantDustwasp.java index 8c5f2ffc44b..23eddbb0b92 100644 --- a/Mage.Sets/src/mage/cards/g/GiantDustwasp.java +++ b/Mage.Sets/src/mage/cards/g/GiantDustwasp.java @@ -27,14 +27,15 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.SuspendAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GiantGrowth.java b/Mage.Sets/src/mage/cards/g/GiantGrowth.java index d3d5c5436da..851a8bb12f6 100644 --- a/Mage.Sets/src/mage/cards/g/GiantGrowth.java +++ b/Mage.Sets/src/mage/cards/g/GiantGrowth.java @@ -28,14 +28,15 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/g/GiantHarbinger.java b/Mage.Sets/src/mage/cards/g/GiantHarbinger.java index e7834ce47a8..5fecc600c32 100644 --- a/Mage.Sets/src/mage/cards/g/GiantHarbinger.java +++ b/Mage.Sets/src/mage/cards/g/GiantHarbinger.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutOnLibraryEffect; @@ -38,6 +37,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GiantMantis.java b/Mage.Sets/src/mage/cards/g/GiantMantis.java index 50b5e4d88aa..51a2b17190b 100644 --- a/Mage.Sets/src/mage/cards/g/GiantMantis.java +++ b/Mage.Sets/src/mage/cards/g/GiantMantis.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GiantOctopus.java b/Mage.Sets/src/mage/cards/g/GiantOctopus.java index bf1e2a39e20..1c57707bafd 100644 --- a/Mage.Sets/src/mage/cards/g/GiantOctopus.java +++ b/Mage.Sets/src/mage/cards/g/GiantOctopus.java @@ -27,13 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; - import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GiantScorpion.java b/Mage.Sets/src/mage/cards/g/GiantScorpion.java index 5a29055b38c..d1c759a8246 100644 --- a/Mage.Sets/src/mage/cards/g/GiantScorpion.java +++ b/Mage.Sets/src/mage/cards/g/GiantScorpion.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DeathtouchAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GiantSolifuge.java b/Mage.Sets/src/mage/cards/g/GiantSolifuge.java index c32ecb6a5bc..4093b281305 100644 --- a/Mage.Sets/src/mage/cards/g/GiantSolifuge.java +++ b/Mage.Sets/src/mage/cards/g/GiantSolifuge.java @@ -27,14 +27,15 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.ShroudAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GiantSpectacle.java b/Mage.Sets/src/mage/cards/g/GiantSpectacle.java index 36206726f7e..5ba3f421911 100644 --- a/Mage.Sets/src/mage/cards/g/GiantSpectacle.java +++ b/Mage.Sets/src/mage/cards/g/GiantSpectacle.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GiantSpider.java b/Mage.Sets/src/mage/cards/g/GiantSpider.java index d4b08861dd3..1a9ea9e4327 100644 --- a/Mage.Sets/src/mage/cards/g/GiantSpider.java +++ b/Mage.Sets/src/mage/cards/g/GiantSpider.java @@ -28,12 +28,13 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GiantStrength.java b/Mage.Sets/src/mage/cards/g/GiantStrength.java index 690b633201d..5b51e05f41f 100644 --- a/Mage.Sets/src/mage/cards/g/GiantStrength.java +++ b/Mage.Sets/src/mage/cards/g/GiantStrength.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -35,10 +34,15 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/g/GiantTortoise.java b/Mage.Sets/src/mage/cards/g/GiantTortoise.java index 88b3d5bffc7..2fe0a8353c8 100644 --- a/Mage.Sets/src/mage/cards/g/GiantTortoise.java +++ b/Mage.Sets/src/mage/cards/g/GiantTortoise.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.InvertCondition; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GiantWarthog.java b/Mage.Sets/src/mage/cards/g/GiantWarthog.java index fc9f933b450..b1c0f21dee2 100644 --- a/Mage.Sets/src/mage/cards/g/GiantWarthog.java +++ b/Mage.Sets/src/mage/cards/g/GiantWarthog.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/Giantbaiting.java b/Mage.Sets/src/mage/cards/g/Giantbaiting.java index 6e741d2ccc9..7f679f25487 100644 --- a/Mage.Sets/src/mage/cards/g/Giantbaiting.java +++ b/Mage.Sets/src/mage/cards/g/Giantbaiting.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -41,6 +40,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GiantsIre.java b/Mage.Sets/src/mage/cards/g/GiantsIre.java index 838f5d27ebd..83bcffd151b 100644 --- a/Mage.Sets/src/mage/cards/g/GiantsIre.java +++ b/Mage.Sets/src/mage/cards/g/GiantsIre.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DamageTargetEffect; @@ -39,6 +38,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GibberingDescent.java b/Mage.Sets/src/mage/cards/g/GibberingDescent.java index a7676a3656f..5136be18c6f 100644 --- a/Mage.Sets/src/mage/cards/g/GibberingDescent.java +++ b/Mage.Sets/src/mage/cards/g/GibberingDescent.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,15 +40,13 @@ import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.keyword.MadnessAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/GibberingFiend.java b/Mage.Sets/src/mage/cards/g/GibberingFiend.java index 1cc08becfc9..2274648a5e6 100644 --- a/Mage.Sets/src/mage/cards/g/GibberingFiend.java +++ b/Mage.Sets/src/mage/cards/g/GibberingFiend.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GibberingKami.java b/Mage.Sets/src/mage/cards/g/GibberingKami.java index 6c3fcd08f45..de9b20f030d 100644 --- a/Mage.Sets/src/mage/cards/g/GibberingKami.java +++ b/Mage.Sets/src/mage/cards/g/GibberingKami.java @@ -28,14 +28,14 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.SoulshiftAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GideonAllyOfZendikar.java b/Mage.Sets/src/mage/cards/g/GideonAllyOfZendikar.java index b2ac452716d..72cc0109b4f 100644 --- a/Mage.Sets/src/mage/cards/g/GideonAllyOfZendikar.java +++ b/Mage.Sets/src/mage/cards/g/GideonAllyOfZendikar.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; @@ -48,6 +47,8 @@ import mage.constants.Zone; import mage.game.command.Emblem; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GideonBattleForged.java b/Mage.Sets/src/mage/cards/g/GideonBattleForged.java index dc77aa8fd12..feaa6241ea5 100644 --- a/Mage.Sets/src/mage/cards/g/GideonBattleForged.java +++ b/Mage.Sets/src/mage/cards/g/GideonBattleForged.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; @@ -53,6 +52,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GideonJura.java b/Mage.Sets/src/mage/cards/g/GideonJura.java index eb52bb19b0a..e6b50ae6bff 100644 --- a/Mage.Sets/src/mage/cards/g/GideonJura.java +++ b/Mage.Sets/src/mage/cards/g/GideonJura.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; @@ -51,6 +50,8 @@ import mage.game.permanent.token.Token; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/g/GideonMartialParagon.java b/Mage.Sets/src/mage/cards/g/GideonMartialParagon.java new file mode 100644 index 00000000000..57e2989f20f --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GideonMartialParagon.java @@ -0,0 +1,107 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.LoyaltyAbility; +import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.PreventAllDamageToSourceEffect; +import mage.abilities.effects.common.TapAllEffect; +import mage.abilities.effects.common.UntapAllEffect; +import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterOpponentsCreaturePermanent; +import mage.game.permanent.token.Token; + +/** + * + * @author fireshoes + */ +public class GideonMartialParagon extends CardImpl { + + public GideonMartialParagon(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{4}{W}"); + + this.subtype.add("Gideon"); + + this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(5)); + + // +2: Untap all creatures you control. Those creatures get +1/+1 until end of turn. + LoyaltyAbility ability = new LoyaltyAbility(new UntapAllEffect(new FilterControlledCreaturePermanent()), 2); + Effect effect = new BoostControlledEffect(1, 1, Duration.EndOfTurn); + effect.setText("Those creatures get +1/+1 until end of turn"); + ability.addEffect(effect); + this.addAbility(ability); + + // 0: Until end of turn, Gideon, Martial Paragon, becomes a 5/5 Human Soldier creature with indestructible that's still a planeswalker. + // Prevent all damage that would be dealt to him this turn. + ability = new LoyaltyAbility(new BecomesCreatureSourceEffect(new GideonMartialParagonToken(), "planeswalker", Duration.EndOfTurn), 0); + effect = new PreventAllDamageToSourceEffect(Duration.EndOfTurn); + effect.setText("Prevent all damage that would be dealt to him this turn"); + ability.addEffect(effect); + this.addAbility(ability); + + // -10: Creatures you control get +2/+2 until end of turn. Tap all creatures your opponents control. + ability = new LoyaltyAbility(new BoostControlledEffect(2, 2, Duration.EndOfTurn), -10); + effect = new TapAllEffect(new FilterOpponentsCreaturePermanent()); + effect.setText("Tap all creatures your opponents control"); + ability.addEffect(effect); + this.addAbility(ability); + } + + public GideonMartialParagon(final GideonMartialParagon card) { + super(card); + } + + @Override + public GideonMartialParagon copy() { + return new GideonMartialParagon(this); + } +} + +class GideonMartialParagonToken extends Token { + + public GideonMartialParagonToken() { + super("", "5/5 Human Soldier creature with indestructible"); + cardType.add(CardType.CREATURE); + subtype.add("Human"); + subtype.add("Soldier"); + power = new MageInt(5); + toughness = new MageInt(5); + + addAbility(IndestructibleAbility.getInstance()); + } +} diff --git a/Mage.Sets/src/mage/cards/g/GideonOfTheTrials.java b/Mage.Sets/src/mage/cards/g/GideonOfTheTrials.java new file mode 100644 index 00000000000..84bb2d89bfd --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GideonOfTheTrials.java @@ -0,0 +1,155 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.LoyaltyAbility; +import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.GetEmblemEffect; +import mage.abilities.effects.common.PreventAllDamageToSourceEffect; +import mage.abilities.effects.common.PreventDamageByTargetEffect; +import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.filter.common.FilterPlaneswalkerPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.game.Game; +import mage.game.command.Emblem; +import mage.game.events.GameEvent; +import mage.game.permanent.token.Token; +import mage.target.TargetPermanent; + +/** + * + * @author JRHerlehy + */ +public class GideonOfTheTrials extends CardImpl { + + public GideonOfTheTrials(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{1}{W}{W}"); + + this.subtype.add("Gideon"); + + //Starting Loyalty: 3 + this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(3)); + + // +1: Until your next turn, prevent all damage target permanent would deal. + Effect effect = new PreventDamageByTargetEffect(Duration.UntilYourNextTurn); + effect.setText("Until your next turn, prevent all damage target permanent would deal"); + LoyaltyAbility ability = new LoyaltyAbility(effect, 1); + ability.addTarget(new TargetPermanent()); + this.addAbility(ability); + + // 0: Until end of turn, Gideon of the Trials becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn. + ability = new LoyaltyAbility(new BecomesCreatureSourceEffect(new GideonOfTheTrialsToken(), "planeswalker", Duration.EndOfTurn), 0); + effect = new PreventAllDamageToSourceEffect(Duration.EndOfTurn); + effect.setText("Prevent all damage that would be dealt to him this turn"); + ability.addEffect(effect); + this.addAbility(ability); + + // 0: You get an emblem with "As long as you control a Gideon planeswalker, you can't lose the game and your opponent can't win the game." + this.addAbility(new LoyaltyAbility(new GetEmblemEffect(new GideonOfTheTrialsEmblem()), 0)); + + } + + public GideonOfTheTrials(final GideonOfTheTrials card) { + super(card); + } + + @Override + public GideonOfTheTrials copy() { + return new GideonOfTheTrials(this); + } +} + +class GideonOfTheTrialsCantLoseEffect extends ContinuousRuleModifyingEffectImpl { + + private static final FilterPlaneswalkerPermanent filter = new FilterPlaneswalkerPermanent("a Gideon planeswalker"); + + static { + filter.add(new SubtypePredicate("Gideon")); + } + + public GideonOfTheTrialsCantLoseEffect() { + super(Duration.EndOfGame, Outcome.Benefit); + staticText = "As long as you control a Gideon planeswalker, you can't lose the game and your opponents can't win the game"; + } + + public GideonOfTheTrialsCantLoseEffect(final GideonOfTheTrialsCantLoseEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + if ((event.getType() == GameEvent.EventType.WINS && game.getOpponents(source.getControllerId()).contains(event.getPlayerId())) || + (event.getType() == GameEvent.EventType.LOSES && event.getPlayerId().equals(source.getControllerId()))) { + if (game.getBattlefield().contains(filter, source.getControllerId(), 1, game)) { + return true; + } + } + return false; + } + + @Override + public GideonOfTheTrialsCantLoseEffect copy() { + return new GideonOfTheTrialsCantLoseEffect(this); + } +} + +class GideonOfTheTrialsEmblem extends Emblem { + public GideonOfTheTrialsEmblem() { + this.setName("Emblem - Gideon of the Trials"); + Ability ability = new SimpleStaticAbility(Zone.COMMAND, new GideonOfTheTrialsCantLoseEffect()); + this.getAbilities().add(ability); + } +} + +class GideonOfTheTrialsToken extends Token { + public GideonOfTheTrialsToken() { + super("", "a 4/4 Human Soldier creature with indestructible"); + cardType.add(CardType.CREATURE); + subtype.add("Human"); + subtype.add("Soldier"); + power = new MageInt(4); + toughness = new MageInt(4); + this.addAbility(IndestructibleAbility.getInstance()); + } +} diff --git a/Mage.Sets/src/mage/cards/g/GideonsAvenger.java b/Mage.Sets/src/mage/cards/g/GideonsAvenger.java index dff270cbac8..40fd799379a 100644 --- a/Mage.Sets/src/mage/cards/g/GideonsAvenger.java +++ b/Mage.Sets/src/mage/cards/g/GideonsAvenger.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesTappedTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -39,6 +38,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GideonsIntervention.java b/Mage.Sets/src/mage/cards/g/GideonsIntervention.java new file mode 100644 index 00000000000..c4e9691e631 --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GideonsIntervention.java @@ -0,0 +1,174 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.common.AsEntersBattlefieldAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.PreventionEffectImpl; +import mage.abilities.effects.common.NameACardEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.permanent.Permanent; + +/** + * + * @author spjspj + */ +public class GideonsIntervention extends CardImpl { + + public GideonsIntervention(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}{W}"); + + // As Gideon's Intervention enters the battlefield, choose a card name. + Effect effect = new NameACardEffect(NameACardEffect.TypeOfName.ALL); + effect.setText("choose a card name"); + this.addAbility(new AsEntersBattlefieldAbility(effect)); + + // Your opponents can't cast spells with the chosen name. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GideonsInterventionCantCastEffect())); + + // Prevent all damage that would be dealt to you and permanents you control by sources with the chosen name. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GideonsInterventionPreventAllDamageEffect())); + } + + public GideonsIntervention(final GideonsIntervention card) { + super(card); + } + + @Override + public GideonsIntervention copy() { + return new GideonsIntervention(this); + } +} + +class GideonsInterventionCantCastEffect extends ContinuousRuleModifyingEffectImpl { + + public GideonsInterventionCantCastEffect() { + super(Duration.WhileOnBattlefield, Outcome.Benefit); + staticText = "Your opponents can't cast spells with the chosen name"; + } + + public GideonsInterventionCantCastEffect(final GideonsInterventionCantCastEffect effect) { + super(effect); + } + + @Override + public GideonsInterventionCantCastEffect copy() { + return new GideonsInterventionCantCastEffect(this); + } + + @Override + public String getInfoMessage(Ability source, GameEvent event, Game game) { + MageObject mageObject = game.getObject(source.getSourceId()); + if (mageObject != null) { + String cardName = (String) game.getState().getValue(source.getSourceId().toString() + NameACardEffect.INFO_KEY); + return "You may not cast a card named " + cardName + " (" + mageObject.getIdName() + ")."; + } + return null; + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return (event.getType() == EventType.CAST_SPELL_LATE || event.getType() == EventType.CAST_SPELL); + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + String cardName = (String) game.getState().getValue(source.getSourceId().toString() + NameACardEffect.INFO_KEY); + if (game.getOpponents(source.getControllerId()).contains(event.getPlayerId())) { + MageObject object = game.getObject(event.getSourceId()); + if (object != null && object.getName().equals(cardName)) { + return true; + } + } + return false; + } +} + +class GideonsInterventionPreventAllDamageEffect extends PreventionEffectImpl { + + public GideonsInterventionPreventAllDamageEffect() { + super(Duration.WhileOnBattlefield); + staticText = "Prevent all damage that would be dealt to you and permanents you control by sources with the chosen name."; + } + + public GideonsInterventionPreventAllDamageEffect(final GideonsInterventionPreventAllDamageEffect effect) { + super(effect); + } + + @Override + public GideonsInterventionPreventAllDamageEffect copy() { + return new GideonsInterventionPreventAllDamageEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + GameEvent preventEvent = new GameEvent(GameEvent.EventType.PREVENT_DAMAGE, source.getFirstTarget(), source.getSourceId(), source.getControllerId(), event.getAmount(), false); + if (!game.replaceEvent(preventEvent)) { + int damage = event.getAmount(); + event.setAmount(0); + game.informPlayers("Damage has been prevented: " + damage); + game.fireEvent(GameEvent.getEvent(GameEvent.EventType.PREVENTED_DAMAGE, source.getFirstTarget(), source.getSourceId(), source.getControllerId(), damage)); + } + return false; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + MageObject object = game.getObject(event.getSourceId()); + Permanent targetPerm = game.getPermanent(event.getTargetId()); + + if (object != null && (event.getType() == GameEvent.EventType.DAMAGE_PLAYER + || targetPerm != null && (event.getType() == GameEvent.EventType.DAMAGE_CREATURE + || event.getType() == GameEvent.EventType.DAMAGE_PLANESWALKER))) { + if (object.getName().equals(game.getState().getValue(source.getSourceId().toString() + NameACardEffect.INFO_KEY)) + && (event.getTargetId().equals(source.getControllerId()) + || targetPerm != null && targetPerm.getControllerId().equals(source.getControllerId()))) { + return super.applies(event, source, game); + } + } + return false; + } +} diff --git a/Mage.Sets/src/mage/cards/g/GideonsLawkeeper.java b/Mage.Sets/src/mage/cards/g/GideonsLawkeeper.java index 0474b752b93..376e879a2f4 100644 --- a/Mage.Sets/src/mage/cards/g/GideonsLawkeeper.java +++ b/Mage.Sets/src/mage/cards/g/GideonsLawkeeper.java @@ -28,9 +28,6 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,10 +36,13 @@ import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/g/GideonsPhalanx.java b/Mage.Sets/src/mage/cards/g/GideonsPhalanx.java index 3ed8c94bc04..d8d393fa764 100644 --- a/Mage.Sets/src/mage/cards/g/GideonsPhalanx.java +++ b/Mage.Sets/src/mage/cards/g/GideonsPhalanx.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.condition.common.SpellMasteryCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.Effect; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.permanent.token.KnightToken; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GideonsReproach.java b/Mage.Sets/src/mage/cards/g/GideonsReproach.java index 53e441d78c7..0019be3181b 100644 --- a/Mage.Sets/src/mage/cards/g/GideonsReproach.java +++ b/Mage.Sets/src/mage/cards/g/GideonsReproach.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GideonsResolve.java b/Mage.Sets/src/mage/cards/g/GideonsResolve.java new file mode 100644 index 00000000000..476b9cb6cf4 --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GideonsResolve.java @@ -0,0 +1,74 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.abilities.effects.common.search.SearchLibraryGraveyardPutInHandEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.NamePredicate; + +/** + * + * @author fireshoes + */ +public class GideonsResolve extends CardImpl { + + private final static FilterCard filter = new FilterCard("Gideon, Martial Paragon"); + + static { + filter.add(new NamePredicate("Gideon, Martial Paragon")); + } + + public GideonsResolve(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{W}"); + + // When Gideon's Resolve enters the battlefield, you may search your library and/or graveyard for a card named Gideon, Martial Paragon, + // reveal it, and put it into your hand. If you search your library this way, shuffle it. + this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryGraveyardPutInHandEffect(filter), true)); + + // Creature you control get +1/+1. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield))); + } + + public GideonsResolve(final GideonsResolve card) { + super(card); + } + + @Override + public GideonsResolve copy() { + return new GideonsResolve(this); + } +} diff --git a/Mage.Sets/src/mage/cards/g/GiftOfEstates.java b/Mage.Sets/src/mage/cards/g/GiftOfEstates.java index be6505862bb..fe0f6b7df5f 100644 --- a/Mage.Sets/src/mage/cards/g/GiftOfEstates.java +++ b/Mage.Sets/src/mage/cards/g/GiftOfEstates.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.condition.common.OpponentControlsMoreCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; @@ -39,6 +38,8 @@ import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GiftOfImmortality.java b/Mage.Sets/src/mage/cards/g/GiftOfImmortality.java index 2722cd935ac..24c6e7e9f99 100644 --- a/Mage.Sets/src/mage/cards/g/GiftOfImmortality.java +++ b/Mage.Sets/src/mage/cards/g/GiftOfImmortality.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -48,6 +47,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GiftOfOrzhova.java b/Mage.Sets/src/mage/cards/g/GiftOfOrzhova.java index cd43fa56195..8aa5d4b07d9 100644 --- a/Mage.Sets/src/mage/cards/g/GiftOfOrzhova.java +++ b/Mage.Sets/src/mage/cards/g/GiftOfOrzhova.java @@ -27,12 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -43,9 +37,12 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GiftOfParadise.java b/Mage.Sets/src/mage/cards/g/GiftOfParadise.java new file mode 100644 index 00000000000..1446fc572d8 --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GiftOfParadise.java @@ -0,0 +1,87 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; +import mage.target.common.TargetLandPermanent; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.AddManaOfAnyColorEffect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.constants.Outcome; +import mage.target.TargetPermanent; +import mage.abilities.keyword.EnchantAbility; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Zone; + +/** + * + * @author fireshoes + */ +public class GiftOfParadise extends CardImpl { + + public GiftOfParadise(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}"); + + this.subtype.add("Aura"); + + // Enchant land + TargetPermanent auraTarget = new TargetLandPermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // When Gift of Paradise enters the battlefield, you gain 3 life. + this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(3))); + + // Enchanted land has "{T}: Add two mana of any one color to your mana pool." + Ability gainedAbility = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(2), new TapSourceCost()); + Effect effect = new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA); + effect.setText("Enchanted land has \"{T}: Add two mana of any color to your mana pool.\""); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); + } + + public GiftOfParadise(final GiftOfParadise card) { + super(card); + } + + @Override + public GiftOfParadise copy() { + return new GiftOfParadise(this); + } +} diff --git a/Mage.Sets/src/mage/cards/g/GiftOfTheDeity.java b/Mage.Sets/src/mage/cards/g/GiftOfTheDeity.java index c5d608304bb..228f79064f7 100644 --- a/Mage.Sets/src/mage/cards/g/GiftOfTheDeity.java +++ b/Mage.Sets/src/mage/cards/g/GiftOfTheDeity.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -50,6 +49,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GiftOfTheGargantuan.java b/Mage.Sets/src/mage/cards/g/GiftOfTheGargantuan.java index 9fdf7f99ebb..22d270f3f17 100644 --- a/Mage.Sets/src/mage/cards/g/GiftOfTheGargantuan.java +++ b/Mage.Sets/src/mage/cards/g/GiftOfTheGargantuan.java @@ -27,14 +27,9 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -44,6 +39,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GiftOfTusks.java b/Mage.Sets/src/mage/cards/g/GiftOfTusks.java index 078dca867d9..c7ee735a5af 100644 --- a/Mage.Sets/src/mage/cards/g/GiftOfTusks.java +++ b/Mage.Sets/src/mage/cards/g/GiftOfTusks.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.constants.Duration; import mage.game.permanent.token.ElephantToken; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GiftedAetherborn.java b/Mage.Sets/src/mage/cards/g/GiftedAetherborn.java index 4703447c619..12a9da04388 100644 --- a/Mage.Sets/src/mage/cards/g/GiftedAetherborn.java +++ b/Mage.Sets/src/mage/cards/g/GiftedAetherborn.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.LifelinkAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/g/GiftedInitiate.java b/Mage.Sets/src/mage/cards/g/GiftedInitiate.java index b7a2a35324d..31105254e3c 100644 --- a/Mage.Sets/src/mage/cards/g/GiftedInitiate.java +++ b/Mage.Sets/src/mage/cards/g/GiftedInitiate.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/g/GiftsUngiven.java b/Mage.Sets/src/mage/cards/g/GiftsUngiven.java index 4b4db14aa8d..7479dfd4aa9 100644 --- a/Mage.Sets/src/mage/cards/g/GiftsUngiven.java +++ b/Mage.Sets/src/mage/cards/g/GiftsUngiven.java @@ -27,14 +27,9 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -45,6 +40,8 @@ import mage.target.TargetCard; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/Gigadrowse.java b/Mage.Sets/src/mage/cards/g/Gigadrowse.java index d554758767c..9025a3adbd2 100644 --- a/Mage.Sets/src/mage/cards/g/Gigadrowse.java +++ b/Mage.Sets/src/mage/cards/g/Gigadrowse.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.keyword.ReplicateAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/Gigantiform.java b/Mage.Sets/src/mage/cards/g/Gigantiform.java index 68c12f61067..1eff8d75b90 100644 --- a/Mage.Sets/src/mage/cards/g/Gigantiform.java +++ b/Mage.Sets/src/mage/cards/g/Gigantiform.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.StaticAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,12 +43,7 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.NamePredicate; import mage.game.Game; @@ -58,6 +52,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/Gigantomancer.java b/Mage.Sets/src/mage/cards/g/Gigantomancer.java index b6b2db03b9d..8264561a539 100644 --- a/Mage.Sets/src/mage/cards/g/Gigantomancer.java +++ b/Mage.Sets/src/mage/cards/g/Gigantomancer.java @@ -28,7 +28,6 @@ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/Gigantoplasm.java b/Mage.Sets/src/mage/cards/g/Gigantoplasm.java index 79774188797..0f186bf7b02 100644 --- a/Mage.Sets/src/mage/cards/g/Gigantoplasm.java +++ b/Mage.Sets/src/mage/cards/g/Gigantoplasm.java @@ -57,7 +57,7 @@ import mage.util.functions.ApplyToPermanent; public class Gigantoplasm extends CardImpl { public Gigantoplasm(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); this.subtype.add("Shapeshifter"); this.power = new MageInt(0); this.toughness = new MageInt(0); @@ -81,7 +81,7 @@ public class Gigantoplasm extends CardImpl { class GigantoplasmApplyToPermanent extends ApplyToPermanent { @Override - public boolean apply(Game game, Permanent permanent) { + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { DynamicValue variableMana = new ManacostVariableValue(); Effect effect = new SetPowerToughnessSourceEffect(variableMana, Duration.WhileOnBattlefield, SubLayer.SetPT_7b); effect.setText("This creature has base power and toughness X/X"); @@ -91,7 +91,7 @@ class GigantoplasmApplyToPermanent extends ApplyToPermanent { } @Override - public boolean apply(Game game, MageObject mageObject) { + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { DynamicValue variableMana = new ManacostVariableValue(); Effect effect = new SetPowerToughnessSourceEffect(variableMana, Duration.WhileOnBattlefield, SubLayer.SetPT_7b); effect.setText("This creature has base power and toughness X/X"); diff --git a/Mage.Sets/src/mage/cards/g/Gigapede.java b/Mage.Sets/src/mage/cards/g/Gigapede.java index 3d9c841cbb1..5c56bdeb92b 100644 --- a/Mage.Sets/src/mage/cards/g/Gigapede.java +++ b/Mage.Sets/src/mage/cards/g/Gigapede.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.costs.common.DiscardCardCost; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/Gild.java b/Mage.Sets/src/mage/cards/g/Gild.java index cd72e91447e..60ed6c857de 100644 --- a/Mage.Sets/src/mage/cards/g/Gild.java +++ b/Mage.Sets/src/mage/cards/g/Gild.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.ExileTargetEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.game.permanent.token.GoldToken; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GildedDrake.java b/Mage.Sets/src/mage/cards/g/GildedDrake.java index be6951537f4..a3ef7374733 100644 --- a/Mage.Sets/src/mage/cards/g/GildedDrake.java +++ b/Mage.Sets/src/mage/cards/g/GildedDrake.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -48,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GildedLight.java b/Mage.Sets/src/mage/cards/g/GildedLight.java index fed701678de..570e1a40c9f 100644 --- a/Mage.Sets/src/mage/cards/g/GildedLight.java +++ b/Mage.Sets/src/mage/cards/g/GildedLight.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.GainAbilityControllerEffect; import mage.abilities.keyword.CyclingAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GildedLotus.java b/Mage.Sets/src/mage/cards/g/GildedLotus.java index 4b91738ce46..fcf3b2ecb16 100644 --- a/Mage.Sets/src/mage/cards/g/GildedLotus.java +++ b/Mage.Sets/src/mage/cards/g/GildedLotus.java @@ -27,17 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.AddManaOfAnyColorEffect; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GilderBairn.java b/Mage.Sets/src/mage/cards/g/GilderBairn.java index bab59c1fbd0..a1b59c183e4 100644 --- a/Mage.Sets/src/mage/cards/g/GilderBairn.java +++ b/Mage.Sets/src/mage/cards/g/GilderBairn.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GiltLeafAmbush.java b/Mage.Sets/src/mage/cards/g/GiltLeafAmbush.java index 46ab3358afe..eb80b187741 100644 --- a/Mage.Sets/src/mage/cards/g/GiltLeafAmbush.java +++ b/Mage.Sets/src/mage/cards/g/GiltLeafAmbush.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -38,6 +34,9 @@ import mage.abilities.effects.common.ClashEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.DeathtouchAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.game.Game; @@ -46,6 +45,8 @@ import mage.game.permanent.token.ElfToken; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/g/GiltLeafArchdruid.java b/Mage.Sets/src/mage/cards/g/GiltLeafArchdruid.java index c6ce2ca8ff6..9a749314787 100644 --- a/Mage.Sets/src/mage/cards/g/GiltLeafArchdruid.java +++ b/Mage.Sets/src/mage/cards/g/GiltLeafArchdruid.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -38,12 +37,7 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterSpell; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterLandPermanent; @@ -54,6 +48,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GiltLeafPalace.java b/Mage.Sets/src/mage/cards/g/GiltLeafPalace.java index d46e0ebf515..850c51098ab 100644 --- a/Mage.Sets/src/mage/cards/g/GiltLeafPalace.java +++ b/Mage.Sets/src/mage/cards/g/GiltLeafPalace.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.common.TapSourceUnlessPaysEffect; @@ -36,10 +34,13 @@ import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GiltLeafSeer.java b/Mage.Sets/src/mage/cards/g/GiltLeafSeer.java index 4c322a1cb8b..e326f805b19 100644 --- a/Mage.Sets/src/mage/cards/g/GiltLeafSeer.java +++ b/Mage.Sets/src/mage/cards/g/GiltLeafSeer.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,6 +35,8 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.LookLibraryControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/g/GiltLeafWinnower.java b/Mage.Sets/src/mage/cards/g/GiltLeafWinnower.java index 008982f0668..23c992ad67b 100644 --- a/Mage.Sets/src/mage/cards/g/GiltLeafWinnower.java +++ b/Mage.Sets/src/mage/cards/g/GiltLeafWinnower.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GisaAndGeralf.java b/Mage.Sets/src/mage/cards/g/GisaAndGeralf.java index a8c871dc7c6..0d1184313f2 100644 --- a/Mage.Sets/src/mage/cards/g/GisaAndGeralf.java +++ b/Mage.Sets/src/mage/cards/g/GisaAndGeralf.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,14 +38,7 @@ import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffec import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; @@ -56,6 +48,8 @@ import mage.players.Player; import mage.target.targetpointer.FixedTarget; import mage.watchers.Watcher; +import java.util.UUID; + /** * * @author fireshoes @@ -64,7 +58,7 @@ public class GisaAndGeralf extends CardImpl { public GisaAndGeralf(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/g/GisasBidding.java b/Mage.Sets/src/mage/cards/g/GisasBidding.java index dc5e1f10a13..9c245bc9ea5 100644 --- a/Mage.Sets/src/mage/cards/g/GisasBidding.java +++ b/Mage.Sets/src/mage/cards/g/GisasBidding.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.MadnessAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.ZombieToken; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/g/GiselaBladeOfGoldnight.java b/Mage.Sets/src/mage/cards/g/GiselaBladeOfGoldnight.java index 7861dc84faf..8b7976f231b 100644 --- a/Mage.Sets/src/mage/cards/g/GiselaBladeOfGoldnight.java +++ b/Mage.Sets/src/mage/cards/g/GiselaBladeOfGoldnight.java @@ -37,10 +37,7 @@ import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; @@ -53,7 +50,7 @@ public class GiselaBladeOfGoldnight extends CardImpl { public GiselaBladeOfGoldnight(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/g/GiselaTheBrokenBlade.java b/Mage.Sets/src/mage/cards/g/GiselaTheBrokenBlade.java index 7bcd5455f17..0033c27ebc8 100644 --- a/Mage.Sets/src/mage/cards/g/GiselaTheBrokenBlade.java +++ b/Mage.Sets/src/mage/cards/g/GiselaTheBrokenBlade.java @@ -40,6 +40,7 @@ import mage.cards.CardSetInfo; import mage.cards.b.BriselaVoiceOfNightmares; import mage.constants.CardType; import mage.constants.Rarity; +import mage.constants.SuperType; import mage.constants.TargetController; import java.util.UUID; @@ -52,7 +53,7 @@ public class GiselaTheBrokenBlade extends CardImpl { public GiselaTheBrokenBlade(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.subtype.add("Horror"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/g/GitaxianProbe.java b/Mage.Sets/src/mage/cards/g/GitaxianProbe.java index 8bf19e2dc5b..74ce3e7622a 100644 --- a/Mage.Sets/src/mage/cards/g/GitaxianProbe.java +++ b/Mage.Sets/src/mage/cards/g/GitaxianProbe.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.LookAtTargetPlayerHandEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GiveNoGround.java b/Mage.Sets/src/mage/cards/g/GiveNoGround.java index 0cddcd13f38..4e58e428e0d 100644 --- a/Mage.Sets/src/mage/cards/g/GiveNoGround.java +++ b/Mage.Sets/src/mage/cards/g/GiveNoGround.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GiveTake.java b/Mage.Sets/src/mage/cards/g/GiveTake.java index 0d142df0fdf..cb96d355b9a 100644 --- a/Mage.Sets/src/mage/cards/g/GiveTake.java +++ b/Mage.Sets/src/mage/cards/g/GiveTake.java @@ -28,13 +28,14 @@ package mage.cards.g; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SpellAbilityType; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; @@ -49,7 +50,7 @@ import mage.target.common.TargetCreaturePermanent; public class GiveTake extends SplitCard { public GiveTake(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{G}","{2}{U}",true); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{G}", "{2}{U}", SpellAbilityType.SPLIT_FUSED); // Give // Put three +1/+1 counters on target creature. diff --git a/Mage.Sets/src/mage/cards/g/GlacialChasm.java b/Mage.Sets/src/mage/cards/g/GlacialChasm.java index d08dde2007f..ac995bc0963 100644 --- a/Mage.Sets/src/mage/cards/g/GlacialChasm.java +++ b/Mage.Sets/src/mage/cards/g/GlacialChasm.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.PayLifeCost; @@ -45,6 +44,8 @@ import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GlacialCrasher.java b/Mage.Sets/src/mage/cards/g/GlacialCrasher.java index 2ea779793c9..610779e6d3b 100644 --- a/Mage.Sets/src/mage/cards/g/GlacialCrasher.java +++ b/Mage.Sets/src/mage/cards/g/GlacialCrasher.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GlacialCrevasses.java b/Mage.Sets/src/mage/cards/g/GlacialCrevasses.java index af8362dfa5d..7191b238b55 100644 --- a/Mage.Sets/src/mage/cards/g/GlacialCrevasses.java +++ b/Mage.Sets/src/mage/cards/g/GlacialCrevasses.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -37,12 +36,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Quercitron @@ -53,7 +55,7 @@ public class GlacialCrevasses extends CardImpl { static { filter.add(new SubtypePredicate("Mountain")); - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); } public GlacialCrevasses(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GlacialFortress.java b/Mage.Sets/src/mage/cards/g/GlacialFortress.java index 1679ea1698d..b37642ca6bb 100644 --- a/Mage.Sets/src/mage/cards/g/GlacialFortress.java +++ b/Mage.Sets/src/mage/cards/g/GlacialFortress.java @@ -28,24 +28,24 @@ package mage.cards.g; -import java.util.UUID; - -import mage.abilities.CountType; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; -import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.condition.InvertCondition; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.TapSourceEffect; import mage.abilities.mana.BlueManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -61,7 +61,7 @@ public class GlacialFortress extends CardImpl { public GlacialFortress(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Plains or an Island"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlueManaAbility()); diff --git a/Mage.Sets/src/mage/cards/g/GlacialRay.java b/Mage.Sets/src/mage/cards/g/GlacialRay.java index 0084b8ea0ee..9791c46b96a 100644 --- a/Mage.Sets/src/mage/cards/g/GlacialRay.java +++ b/Mage.Sets/src/mage/cards/g/GlacialRay.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.SpliceOntoArcaneAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GlacialStalker.java b/Mage.Sets/src/mage/cards/g/GlacialStalker.java index 94336d1021f..9a62476cfb5 100644 --- a/Mage.Sets/src/mage/cards/g/GlacialStalker.java +++ b/Mage.Sets/src/mage/cards/g/GlacialStalker.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.MorphAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GlacialWall.java b/Mage.Sets/src/mage/cards/g/GlacialWall.java index c2eaaab22d9..6ab7d92d094 100644 --- a/Mage.Sets/src/mage/cards/g/GlacialWall.java +++ b/Mage.Sets/src/mage/cards/g/GlacialWall.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GladeGnarr.java b/Mage.Sets/src/mage/cards/g/GladeGnarr.java index ca91dda24a9..5d2afc7cae3 100644 --- a/Mage.Sets/src/mage/cards/g/GladeGnarr.java +++ b/Mage.Sets/src/mage/cards/g/GladeGnarr.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SpellCastAllTriggeredAbility; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/g/GladeWatcher.java b/Mage.Sets/src/mage/cards/g/GladeWatcher.java index 2657406267b..6ea1f8c097e 100644 --- a/Mage.Sets/src/mage/cards/g/GladeWatcher.java +++ b/Mage.Sets/src/mage/cards/g/GladeWatcher.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GladecoverScout.java b/Mage.Sets/src/mage/cards/g/GladecoverScout.java index dafab955c3a..3f66c807c83 100644 --- a/Mage.Sets/src/mage/cards/g/GladecoverScout.java +++ b/Mage.Sets/src/mage/cards/g/GladecoverScout.java @@ -28,13 +28,13 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GladehartCavalry.java b/Mage.Sets/src/mage/cards/g/GladehartCavalry.java index 8335c7afea9..24b1e2ba4ae 100644 --- a/Mage.Sets/src/mage/cards/g/GladehartCavalry.java +++ b/Mage.Sets/src/mage/cards/g/GladehartCavalry.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.GainLifeEffect; @@ -43,6 +42,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GlamerSpinners.java b/Mage.Sets/src/mage/cards/g/GlamerSpinners.java index 3f1f3209778..e188cadf1b8 100644 --- a/Mage.Sets/src/mage/cards/g/GlamerSpinners.java +++ b/Mage.Sets/src/mage/cards/g/GlamerSpinners.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.LinkedList; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -50,6 +48,9 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.LinkedList; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GlareOfHeresy.java b/Mage.Sets/src/mage/cards/g/GlareOfHeresy.java index c0b44357a74..50c6db8f509 100644 --- a/Mage.Sets/src/mage/cards/g/GlareOfHeresy.java +++ b/Mage.Sets/src/mage/cards/g/GlareOfHeresy.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; @@ -38,6 +37,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GlareOfSubdual.java b/Mage.Sets/src/mage/cards/g/GlareOfSubdual.java index 34ab0ff31a5..1b303c013c1 100644 --- a/Mage.Sets/src/mage/cards/g/GlareOfSubdual.java +++ b/Mage.Sets/src/mage/cards/g/GlareOfSubdual.java @@ -27,15 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; @@ -45,6 +43,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/Glarewielder.java b/Mage.Sets/src/mage/cards/g/Glarewielder.java index 3e368642543..e01862763ca 100644 --- a/Mage.Sets/src/mage/cards/g/Glarewielder.java +++ b/Mage.Sets/src/mage/cards/g/Glarewielder.java @@ -27,20 +27,20 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.combat.CantBlockTargetEffect; -import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.EvokeAbility; +import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GlaringAegis.java b/Mage.Sets/src/mage/cards/g/GlaringAegis.java index e0712bd6a9f..1cae035820c 100644 --- a/Mage.Sets/src/mage/cards/g/GlaringAegis.java +++ b/Mage.Sets/src/mage/cards/g/GlaringAegis.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -37,16 +36,14 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GlaringSpotlight.java b/Mage.Sets/src/mage/cards/g/GlaringSpotlight.java index 5fe803499ec..17186a5bb3b 100644 --- a/Mage.Sets/src/mage/cards/g/GlaringSpotlight.java +++ b/Mage.Sets/src/mage/cards/g/GlaringSpotlight.java @@ -27,13 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.AsThoughEffectType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,11 +38,14 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * Gatecrash FAQ 21.01.2013 * diff --git a/Mage.Sets/src/mage/cards/g/GlassAsp.java b/Mage.Sets/src/mage/cards/g/GlassAsp.java index f25907f7a47..31a1c53b5fb 100644 --- a/Mage.Sets/src/mage/cards/g/GlassAsp.java +++ b/Mage.Sets/src/mage/cards/g/GlassAsp.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsDamageToAPlayerTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.PhaseStep; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GlassGolem.java b/Mage.Sets/src/mage/cards/g/GlassGolem.java index df9b4da230a..050462b20c6 100644 --- a/Mage.Sets/src/mage/cards/g/GlassGolem.java +++ b/Mage.Sets/src/mage/cards/g/GlassGolem.java @@ -28,11 +28,12 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GlassdustHulk.java b/Mage.Sets/src/mage/cards/g/GlassdustHulk.java index 0236c0e15ac..ae046c39e6d 100644 --- a/Mage.Sets/src/mage/cards/g/GlassdustHulk.java +++ b/Mage.Sets/src/mage/cards/g/GlassdustHulk.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; @@ -45,6 +44,8 @@ import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GlassesOfUrza.java b/Mage.Sets/src/mage/cards/g/GlassesOfUrza.java index 653ab186920..fd24fe0e64b 100644 --- a/Mage.Sets/src/mage/cards/g/GlassesOfUrza.java +++ b/Mage.Sets/src/mage/cards/g/GlassesOfUrza.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/g/GlazeFiend.java b/Mage.Sets/src/mage/cards/g/GlazeFiend.java index 69abbddc542..22e9a3347d1 100644 --- a/Mage.Sets/src/mage/cards/g/GlazeFiend.java +++ b/Mage.Sets/src/mage/cards/g/GlazeFiend.java @@ -27,21 +27,21 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GleamOfAuthority.java b/Mage.Sets/src/mage/cards/g/GleamOfAuthority.java index 8ccd18d5d52..e459cbee0f9 100644 --- a/Mage.Sets/src/mage/cards/g/GleamOfAuthority.java +++ b/Mage.Sets/src/mage/cards/g/GleamOfAuthority.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,11 +42,7 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -55,6 +50,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GleamOfBattle.java b/Mage.Sets/src/mage/cards/g/GleamOfBattle.java index 2b0b6ed5f9a..fc68093182a 100644 --- a/Mage.Sets/src/mage/cards/g/GleamOfBattle.java +++ b/Mage.Sets/src/mage/cards/g/GleamOfBattle.java @@ -27,14 +27,15 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.AttacksCreatureYouControlTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GleamOfResistance.java b/Mage.Sets/src/mage/cards/g/GleamOfResistance.java index f4ece3bae96..4e3a7063735 100644 --- a/Mage.Sets/src/mage/cards/g/GleamOfResistance.java +++ b/Mage.Sets/src/mage/cards/g/GleamOfResistance.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.UntapAllControllerEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/Gleancrawler.java b/Mage.Sets/src/mage/cards/g/Gleancrawler.java index afe336499df..5a4e0c3d80f 100644 --- a/Mage.Sets/src/mage/cards/g/Gleancrawler.java +++ b/Mage.Sets/src/mage/cards/g/Gleancrawler.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; @@ -37,11 +35,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.InfoEffect; import mage.abilities.keyword.TrampleAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; @@ -50,6 +44,9 @@ import mage.game.Game; import mage.players.Player; import mage.watchers.common.CardsPutIntoGraveyardWatcher; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GleefulSabotage.java b/Mage.Sets/src/mage/cards/g/GleefulSabotage.java index ffb579e63b6..f1c5d0fa1ef 100644 --- a/Mage.Sets/src/mage/cards/g/GleefulSabotage.java +++ b/Mage.Sets/src/mage/cards/g/GleefulSabotage.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.ConspireAbility; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GlenElendraArchmage.java b/Mage.Sets/src/mage/cards/g/GlenElendraArchmage.java index ee1367f1598..f0d36fb1549 100644 --- a/Mage.Sets/src/mage/cards/g/GlenElendraArchmage.java +++ b/Mage.Sets/src/mage/cards/g/GlenElendraArchmage.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,12 +37,15 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.PersistAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/g/GlenElendraLiege.java b/Mage.Sets/src/mage/cards/g/GlenElendraLiege.java index c655b00f65f..110524fcf1f 100644 --- a/Mage.Sets/src/mage/cards/g/GlenElendraLiege.java +++ b/Mage.Sets/src/mage/cards/g/GlenElendraLiege.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -38,9 +34,14 @@ import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GlidingLicid.java b/Mage.Sets/src/mage/cards/g/GlidingLicid.java index 0619a12975c..c6a918a4811 100644 --- a/Mage.Sets/src/mage/cards/g/GlidingLicid.java +++ b/Mage.Sets/src/mage/cards/g/GlidingLicid.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LicidAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/GlimmerOfGenius.java b/Mage.Sets/src/mage/cards/g/GlimmerOfGenius.java index c1a4b36e012..f46b6f4cc4f 100644 --- a/Mage.Sets/src/mage/cards/g/GlimmerOfGenius.java +++ b/Mage.Sets/src/mage/cards/g/GlimmerOfGenius.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GlimmerdustNap.java b/Mage.Sets/src/mage/cards/g/GlimmerdustNap.java index cb1af3a7c8e..8eef2800bea 100644 --- a/Mage.Sets/src/mage/cards/g/GlimmerdustNap.java +++ b/Mage.Sets/src/mage/cards/g/GlimmerdustNap.java @@ -27,21 +27,22 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GlimmeringAngel.java b/Mage.Sets/src/mage/cards/g/GlimmeringAngel.java index 56612281bb3..c7f460b4869 100644 --- a/Mage.Sets/src/mage/cards/g/GlimmeringAngel.java +++ b/Mage.Sets/src/mage/cards/g/GlimmeringAngel.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GlimmerpointStag.java b/Mage.Sets/src/mage/cards/g/GlimmerpointStag.java index b43a8c46cbb..3ae8daab26f 100644 --- a/Mage.Sets/src/mage/cards/g/GlimmerpointStag.java +++ b/Mage.Sets/src/mage/cards/g/GlimmerpointStag.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -49,6 +48,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author maurer.it_at_gmail.com diff --git a/Mage.Sets/src/mage/cards/g/Glimmerpost.java b/Mage.Sets/src/mage/cards/g/Glimmerpost.java index 2d1b7e145f2..00d34eb6321 100644 --- a/Mage.Sets/src/mage/cards/g/Glimmerpost.java +++ b/Mage.Sets/src/mage/cards/g/Glimmerpost.java @@ -28,21 +28,21 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/Glimmervoid.java b/Mage.Sets/src/mage/cards/g/Glimmervoid.java index 337064a09f3..68807d768ee 100644 --- a/Mage.Sets/src/mage/cards/g/Glimmervoid.java +++ b/Mage.Sets/src/mage/cards/g/Glimmervoid.java @@ -27,9 +27,7 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.OnEventTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -42,6 +40,8 @@ import mage.constants.CardType; import mage.filter.common.FilterControlledArtifactPermanent; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author jonubuu @@ -53,7 +53,7 @@ public class Glimmervoid extends CardImpl { // At the beginning of the end step, if you control no artifacts, sacrifice Glimmervoid. TriggeredAbility triggered = new OnEventTriggeredAbility(GameEvent.EventType.END_TURN_STEP_PRE, "beginning of the end step", true, new SacrificeSourceEffect()); - this.addAbility(new ConditionalTriggeredAbility(triggered, new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), CountType.FEWER_THAN, 1), + this.addAbility(new ConditionalTriggeredAbility(triggered, new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), ComparisonType.FEWER_THAN, 1), "At the beginning of the end step, if you control no artifacts, sacrifice {this}.")); // {tap}: Add one mana of any color to your mana pool. this.addAbility(new AnyColorManaAbility()); diff --git a/Mage.Sets/src/mage/cards/g/GlimpseOfNature.java b/Mage.Sets/src/mage/cards/g/GlimpseOfNature.java index c07e0b3ca4a..22d51adfcea 100644 --- a/Mage.Sets/src/mage/cards/g/GlimpseOfNature.java +++ b/Mage.Sets/src/mage/cards/g/GlimpseOfNature.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -42,6 +41,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.stack.Spell; +import java.util.UUID; + public class GlimpseOfNature extends CardImpl { public GlimpseOfNature (UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GlimpseTheFuture.java b/Mage.Sets/src/mage/cards/g/GlimpseTheFuture.java index 73ce9ae8a43..a57e352cf7e 100644 --- a/Mage.Sets/src/mage/cards/g/GlimpseTheFuture.java +++ b/Mage.Sets/src/mage/cards/g/GlimpseTheFuture.java @@ -27,14 +27,9 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -43,6 +38,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GlimpseTheSunGod.java b/Mage.Sets/src/mage/cards/g/GlimpseTheSunGod.java index cefdfdff6b0..82a19d1bcee 100644 --- a/Mage.Sets/src/mage/cards/g/GlimpseTheSunGod.java +++ b/Mage.Sets/src/mage/cards/g/GlimpseTheSunGod.java @@ -27,11 +27,10 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.SpellAbility; -import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.effects.common.TapTargetEffect; +import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -39,6 +38,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/Glint.java b/Mage.Sets/src/mage/cards/g/Glint.java index ea5b7e47303..f7c5b221227 100644 --- a/Mage.Sets/src/mage/cards/g/Glint.java +++ b/Mage.Sets/src/mage/cards/g/Glint.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GlintEyeNephilim.java b/Mage.Sets/src/mage/cards/g/GlintEyeNephilim.java index 29d9b317ed5..6758fa92630 100644 --- a/Mage.Sets/src/mage/cards/g/GlintEyeNephilim.java +++ b/Mage.Sets/src/mage/cards/g/GlintEyeNephilim.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * @author fenhl */ diff --git a/Mage.Sets/src/mage/cards/g/GlintHawk.java b/Mage.Sets/src/mage/cards/g/GlintHawk.java index 36fc5e4bec0..dfb3e44bc74 100644 --- a/Mage.Sets/src/mage/cards/g/GlintHawk.java +++ b/Mage.Sets/src/mage/cards/g/GlintHawk.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author maurer.it_at_gmail.com diff --git a/Mage.Sets/src/mage/cards/g/GlintHawkIdol.java b/Mage.Sets/src/mage/cards/g/GlintHawkIdol.java index ee3bacdcb52..de3fe9d97fc 100644 --- a/Mage.Sets/src/mage/cards/g/GlintHawkIdol.java +++ b/Mage.Sets/src/mage/cards/g/GlintHawkIdol.java @@ -28,12 +28,6 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -42,13 +36,15 @@ import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.ColoredManaSymbol; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GlintNestCrane.java b/Mage.Sets/src/mage/cards/g/GlintNestCrane.java index 4261ffcaf2c..a2be6cba275 100644 --- a/Mage.Sets/src/mage/cards/g/GlintNestCrane.java +++ b/Mage.Sets/src/mage/cards/g/GlintNestCrane.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.dynamicvalue.common.StaticValue; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GlintSleeveArtisan.java b/Mage.Sets/src/mage/cards/g/GlintSleeveArtisan.java index c82f28a8e2f..d3d302049fd 100644 --- a/Mage.Sets/src/mage/cards/g/GlintSleeveArtisan.java +++ b/Mage.Sets/src/mage/cards/g/GlintSleeveArtisan.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FabricateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/GlintSleeveSiphoner.java b/Mage.Sets/src/mage/cards/g/GlintSleeveSiphoner.java index 8b1d885e022..70842746386 100644 --- a/Mage.Sets/src/mage/cards/g/GlintSleeveSiphoner.java +++ b/Mage.Sets/src/mage/cards/g/GlintSleeveSiphoner.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility; @@ -44,6 +43,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GlintwingInvoker.java b/Mage.Sets/src/mage/cards/g/GlintwingInvoker.java index de5259cfa34..6209de5630b 100644 --- a/Mage.Sets/src/mage/cards/g/GlintwingInvoker.java +++ b/Mage.Sets/src/mage/cards/g/GlintwingInvoker.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GlissaSunseeker.java b/Mage.Sets/src/mage/cards/g/GlissaSunseeker.java index 47e037cc615..5d4ccc8c487 100644 --- a/Mage.Sets/src/mage/cards/g/GlissaSunseeker.java +++ b/Mage.Sets/src/mage/cards/g/GlissaSunseeker.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; @@ -45,6 +45,8 @@ import mage.players.ManaPool; import mage.players.Player; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +55,7 @@ public class GlissaSunseeker extends CardImpl { public GlissaSunseeker(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.power = new MageInt(3); this.toughness = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/g/GlissaTheTraitor.java b/Mage.Sets/src/mage/cards/g/GlissaTheTraitor.java index 9903b42dc86..1413989c063 100644 --- a/Mage.Sets/src/mage/cards/g/GlissaTheTraitor.java +++ b/Mage.Sets/src/mage/cards/g/GlissaTheTraitor.java @@ -28,7 +28,6 @@ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.ReturnToHandTargetEffect; @@ -37,6 +36,7 @@ import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -47,6 +47,8 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Loki @@ -54,7 +56,7 @@ import mage.target.common.TargetCardInYourGraveyard; public class GlissaTheTraitor extends CardImpl { public GlissaTheTraitor (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Elf"); diff --git a/Mage.Sets/src/mage/cards/g/GlissasCourier.java b/Mage.Sets/src/mage/cards/g/GlissasCourier.java index 69897c92b23..bce6b3aef56 100644 --- a/Mage.Sets/src/mage/cards/g/GlissasCourier.java +++ b/Mage.Sets/src/mage/cards/g/GlissasCourier.java @@ -28,12 +28,13 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.MountainwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GlissasScorn.java b/Mage.Sets/src/mage/cards/g/GlissasScorn.java index 463f08efeb4..bdaacebfaa7 100644 --- a/Mage.Sets/src/mage/cards/g/GlissasScorn.java +++ b/Mage.Sets/src/mage/cards/g/GlissasScorn.java @@ -27,14 +27,15 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.LoseLifeTargetControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GlistenerElf.java b/Mage.Sets/src/mage/cards/g/GlistenerElf.java index 4f24eba4a4a..5651b6d73ab 100644 --- a/Mage.Sets/src/mage/cards/g/GlistenerElf.java +++ b/Mage.Sets/src/mage/cards/g/GlistenerElf.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GlisteningOil.java b/Mage.Sets/src/mage/cards/g/GlisteningOil.java index 1c5d0e20aae..b3e5e7fb62c 100644 --- a/Mage.Sets/src/mage/cards/g/GlisteningOil.java +++ b/Mage.Sets/src/mage/cards/g/GlisteningOil.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; @@ -42,12 +39,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/Glitterfang.java b/Mage.Sets/src/mage/cards/g/Glitterfang.java index 029dc6208be..27c4a6c63fd 100644 --- a/Mage.Sets/src/mage/cards/g/Glitterfang.java +++ b/Mage.Sets/src/mage/cards/g/Glitterfang.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.effects.common.ReturnToHandSourceEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GlitteringWish.java b/Mage.Sets/src/mage/cards/g/GlitteringWish.java index 509635970ac..baa55786109 100644 --- a/Mage.Sets/src/mage/cards/g/GlitteringWish.java +++ b/Mage.Sets/src/mage/cards/g/GlitteringWish.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.common.ExileSpellEffect; import mage.abilities.effects.common.WishEffect; import mage.cards.CardImpl; @@ -36,6 +35,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.MulticoloredPredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GlobalRuin.java b/Mage.Sets/src/mage/cards/g/GlobalRuin.java index ebaecb60bd8..5475b9bb288 100644 --- a/Mage.Sets/src/mage/cards/g/GlobalRuin.java +++ b/Mage.Sets/src/mage/cards/g/GlobalRuin.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -45,6 +42,10 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledPermanent; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author Markedagain diff --git a/Mage.Sets/src/mage/cards/g/Gloom.java b/Mage.Sets/src/mage/cards/g/Gloom.java index c17e812073d..2832c5508fa 100644 --- a/Mage.Sets/src/mage/cards/g/Gloom.java +++ b/Mage.Sets/src/mage/cards/g/Gloom.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageObject; import mage.ObjectColor; import mage.abilities.Ability; @@ -36,17 +35,14 @@ import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.abilities.effects.common.cost.SpellsCostIncreasementAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AbilityType; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/g/GloomSurgeon.java b/Mage.Sets/src/mage/cards/g/GloomSurgeon.java index e6550f29d25..3bb9dbdee25 100644 --- a/Mage.Sets/src/mage/cards/g/GloomSurgeon.java +++ b/Mage.Sets/src/mage/cards/g/GloomSurgeon.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.game.events.DamageCreatureEvent; import mage.game.events.GameEvent; import mage.players.Player; +import java.util.UUID; + /** * @author noxx */ diff --git a/Mage.Sets/src/mage/cards/g/Gloomdrifter.java b/Mage.Sets/src/mage/cards/g/Gloomdrifter.java index 4bf7fdccbe7..56f554930de 100644 --- a/Mage.Sets/src/mage/cards/g/Gloomdrifter.java +++ b/Mage.Sets/src/mage/cards/g/Gloomdrifter.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -48,6 +47,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/Gloomhunter.java b/Mage.Sets/src/mage/cards/g/Gloomhunter.java index 37975a8bdaf..f0ac0bc7869 100644 --- a/Mage.Sets/src/mage/cards/g/Gloomhunter.java +++ b/Mage.Sets/src/mage/cards/g/Gloomhunter.java @@ -28,12 +28,13 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/Gloomlance.java b/Mage.Sets/src/mage/cards/g/Gloomlance.java index 1504b75a682..28fefc10d9b 100644 --- a/Mage.Sets/src/mage/cards/g/Gloomlance.java +++ b/Mage.Sets/src/mage/cards/g/Gloomlance.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/Gloomwidow.java b/Mage.Sets/src/mage/cards/g/Gloomwidow.java index 12dc2d702a1..fabb0774e04 100644 --- a/Mage.Sets/src/mage/cards/g/Gloomwidow.java +++ b/Mage.Sets/src/mage/cards/g/Gloomwidow.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CanBlockOnlyFlyingAbility; import mage.abilities.keyword.ReachAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GloomwidowsFeast.java b/Mage.Sets/src/mage/cards/g/GloomwidowsFeast.java index 11cdf6a9dc7..c4af3683f41 100644 --- a/Mage.Sets/src/mage/cards/g/GloomwidowsFeast.java +++ b/Mage.Sets/src/mage/cards/g/GloomwidowsFeast.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; @@ -42,6 +41,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.SpiderToken; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GloriousAnthem.java b/Mage.Sets/src/mage/cards/g/GloriousAnthem.java index 02cd430399d..3c839379629 100644 --- a/Mage.Sets/src/mage/cards/g/GloriousAnthem.java +++ b/Mage.Sets/src/mage/cards/g/GloriousAnthem.java @@ -27,17 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GloriousCharge.java b/Mage.Sets/src/mage/cards/g/GloriousCharge.java index 551f8dfb512..11df001fd5e 100644 --- a/Mage.Sets/src/mage/cards/g/GloriousCharge.java +++ b/Mage.Sets/src/mage/cards/g/GloriousCharge.java @@ -27,15 +27,15 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GloriousEnd.java b/Mage.Sets/src/mage/cards/g/GloriousEnd.java new file mode 100644 index 00000000000..0a8a1341071 --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GloriousEnd.java @@ -0,0 +1,65 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; +import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; +import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; +import mage.abilities.effects.common.EndTurnEffect; +import mage.abilities.effects.common.LoseGameSourceControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; + +/** + * + * @author fireshoes + */ +public class GloriousEnd extends CardImpl { + + public GloriousEnd(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{R}"); + + // End the turn. + getSpellAbility().addEffect(new EndTurnEffect()); + + // At the beginning of your next end step, you lose the game. + getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect( + new AtTheBeginOfNextEndStepDelayedTriggeredAbility(new LoseGameSourceControllerEffect(), TargetController.YOU))); + } + + public GloriousEnd(final GloriousEnd card) { + super(card); + } + + @Override + public GloriousEnd copy() { + return new GloriousEnd(this); + } +} diff --git a/Mage.Sets/src/mage/cards/g/Glory.java b/Mage.Sets/src/mage/cards/g/Glory.java index 6419d72adc4..442bb111713 100644 --- a/Mage.Sets/src/mage/cards/g/Glory.java +++ b/Mage.Sets/src/mage/cards/g/Glory.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GloryBoundInitiate.java b/Mage.Sets/src/mage/cards/g/GloryBoundInitiate.java new file mode 100644 index 00000000000..cb00e8d7b0b --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GloryBoundInitiate.java @@ -0,0 +1,75 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.ExertAbility; +import mage.abilities.keyword.LifelinkAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author fireshoes + */ +public class GloryBoundInitiate extends CardImpl { + + public GloryBoundInitiate(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); + + this.subtype.add("Human"); + this.subtype.add("Warrior"); + this.power = new MageInt(3); + this.toughness = new MageInt(1); + + // You may exert Glory-Bound Initiate as it attacks. When you do, it gets +1/+3 and gains lifelink until end of turn. + Effect effect = new BoostSourceEffect(1, 3, Duration.EndOfTurn); + effect.setText("it gets +1/+3"); + BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(effect); + effect = new GainAbilitySourceEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn); + effect.setText("and gains lifelink until end of turn"); + ability.addEffect(effect); + this.addAbility(new ExertAbility(ability)); + } + + public GloryBoundInitiate(final GloryBoundInitiate card) { + super(card); + } + + @Override + public GloryBoundInitiate copy() { + return new GloryBoundInitiate(this); + } +} diff --git a/Mage.Sets/src/mage/cards/g/GloryOfWarfare.java b/Mage.Sets/src/mage/cards/g/GloryOfWarfare.java index 54375c13c7c..fea3d86f07a 100644 --- a/Mage.Sets/src/mage/cards/g/GloryOfWarfare.java +++ b/Mage.Sets/src/mage/cards/g/GloryOfWarfare.java @@ -28,11 +28,6 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.condition.common.NotMyTurnCondition; @@ -40,6 +35,11 @@ import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GlorySeeker.java b/Mage.Sets/src/mage/cards/g/GlorySeeker.java index fd4efb8028b..1bec3bd1188 100644 --- a/Mage.Sets/src/mage/cards/g/GlorySeeker.java +++ b/Mage.Sets/src/mage/cards/g/GlorySeeker.java @@ -28,11 +28,12 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/Glorybringer.java b/Mage.Sets/src/mage/cards/g/Glorybringer.java new file mode 100644 index 00000000000..d65e9804399 --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/Glorybringer.java @@ -0,0 +1,90 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.keyword.ExertAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.HasteAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class Glorybringer extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("non-Dragon creature an opponent controls"); + + static { + filter.add(Predicates.not(new SubtypePredicate("Dragon"))); + filter.add(new ControllerPredicate(TargetController.OPPONENT)); + } + + public Glorybringer(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}{R}"); + + this.subtype.add("Dragon"); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Haste + this.addAbility(HasteAbility.getInstance()); + + // You may exert Glorybringer as it attacks. When you do, it deals 4 damage to target non-Dragon creature an opponent controls. + Effect effect = new DamageTargetEffect(4); + effect.setText("it deals 4 damage to target non-Dragon creature an opponent controls"); + BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(effect); + ability.addTarget(new TargetCreaturePermanent(filter)); + this.addAbility(new ExertAbility(ability)); + } + + public Glorybringer(final Glorybringer card) { + super(card); + } + + @Override + public Glorybringer copy() { + return new Glorybringer(this); + } +} diff --git a/Mage.Sets/src/mage/cards/g/GloryscaleViashino.java b/Mage.Sets/src/mage/cards/g/GloryscaleViashino.java index d186df38e91..e2ca85a26ea 100644 --- a/Mage.Sets/src/mage/cards/g/GloryscaleViashino.java +++ b/Mage.Sets/src/mage/cards/g/GloryscaleViashino.java @@ -28,7 +28,6 @@ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.MulticoloredPredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GloweringRogon.java b/Mage.Sets/src/mage/cards/g/GloweringRogon.java index 42373913e13..cd40eca33f0 100644 --- a/Mage.Sets/src/mage/cards/g/GloweringRogon.java +++ b/Mage.Sets/src/mage/cards/g/GloweringRogon.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.AmplifyEffect; import mage.abilities.keyword.AmplifyAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/Glowrider.java b/Mage.Sets/src/mage/cards/g/Glowrider.java index be7abb0d0a4..e07ebfbbe52 100644 --- a/Mage.Sets/src/mage/cards/g/Glowrider.java +++ b/Mage.Sets/src/mage/cards/g/Glowrider.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.SpellAbility; @@ -37,14 +36,12 @@ import mage.abilities.keyword.FlashbackAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GluttonousCyclops.java b/Mage.Sets/src/mage/cards/g/GluttonousCyclops.java index 3f69e793b96..6d8f79ac195 100644 --- a/Mage.Sets/src/mage/cards/g/GluttonousCyclops.java +++ b/Mage.Sets/src/mage/cards/g/GluttonousCyclops.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.MonstrosityAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GluttonousSlime.java b/Mage.Sets/src/mage/cards/g/GluttonousSlime.java index dcf6cdf219c..af68dbe9ac5 100644 --- a/Mage.Sets/src/mage/cards/g/GluttonousSlime.java +++ b/Mage.Sets/src/mage/cards/g/GluttonousSlime.java @@ -27,14 +27,15 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.effects.common.DevourEffect.DevourFactor; import mage.abilities.keyword.DevourAbility; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GluttonousZombie.java b/Mage.Sets/src/mage/cards/g/GluttonousZombie.java index 25d928967a4..2e82782c1e1 100644 --- a/Mage.Sets/src/mage/cards/g/GluttonousZombie.java +++ b/Mage.Sets/src/mage/cards/g/GluttonousZombie.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GlyphKeeper.java b/Mage.Sets/src/mage/cards/g/GlyphKeeper.java new file mode 100644 index 00000000000..2d5d1a3bf7a --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GlyphKeeper.java @@ -0,0 +1,120 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.CounterTargetEffect; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.target.TargetStackObject; + +/** + * + * @author Styxo + */ +public class GlyphKeeper extends CardImpl { + + public GlyphKeeper(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}"); + + this.subtype.add("Sphinx"); + this.power = new MageInt(5); + this.toughness = new MageInt(3); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Whenever Glyph Keeper becomes the target of a spell or ability for the first time in a turn, counter that spell or ability. + this.addAbility(new GlyphKeeperAbility()); + + // Embalm {5}{U}{U} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{5}{U}{U}"), this)); + + } + + public GlyphKeeper(final GlyphKeeper card) { + super(card); + } + + @Override + public GlyphKeeper copy() { + return new GlyphKeeper(this); + } +} + +class GlyphKeeperAbility extends TriggeredAbilityImpl { + + protected int turnUsed; + + public GlyphKeeperAbility() { + super(Zone.BATTLEFIELD, new CounterTargetEffect(), false); + } + + public GlyphKeeperAbility(final GlyphKeeperAbility ability) { + super(ability); + turnUsed = ability.turnUsed; + } + + @Override + public GlyphKeeperAbility copy() { + return new GlyphKeeperAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.TARGETED; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getTargetId().equals(this.getSourceId()) && game.getTurnNum() > turnUsed) { + this.getTargets().clear(); + TargetStackObject target = new TargetStackObject(); + target.add(event.getSourceId(), game); + this.addTarget(target); + turnUsed = game.getTurnNum(); + return true; + } + return false; + } + + @Override + public String getRule() { + return "Whenever {this} becomes the target of a spell or ability for the first time in a turn, counter that spell or ability."; + } + +} diff --git a/Mage.Sets/src/mage/cards/g/GnarledEffigy.java b/Mage.Sets/src/mage/cards/g/GnarledEffigy.java index 4adc6d8dd02..29803bb8f00 100644 --- a/Mage.Sets/src/mage/cards/g/GnarledEffigy.java +++ b/Mage.Sets/src/mage/cards/g/GnarledEffigy.java @@ -27,18 +27,19 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GnarledMass.java b/Mage.Sets/src/mage/cards/g/GnarledMass.java index aeb0b60e414..7b541b5b2a0 100644 --- a/Mage.Sets/src/mage/cards/g/GnarledMass.java +++ b/Mage.Sets/src/mage/cards/g/GnarledMass.java @@ -27,11 +27,12 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GnarledScarhide.java b/Mage.Sets/src/mage/cards/g/GnarledScarhide.java index 9a16eee3ecf..b2746aaa00c 100644 --- a/Mage.Sets/src/mage/cards/g/GnarledScarhide.java +++ b/Mage.Sets/src/mage/cards/g/GnarledScarhide.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CantBlockAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GnarlidPack.java b/Mage.Sets/src/mage/cards/g/GnarlidPack.java index d355092daa4..f3a6a6efe75 100644 --- a/Mage.Sets/src/mage/cards/g/GnarlidPack.java +++ b/Mage.Sets/src/mage/cards/g/GnarlidPack.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.dynamicvalue.common.MultikickerCount; @@ -36,8 +34,11 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.MultikickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GnarlrootTrapper.java b/Mage.Sets/src/mage/cards/g/GnarlrootTrapper.java index 0f133884803..ca8f9e2c2c7 100644 --- a/Mage.Sets/src/mage/cards/g/GnarlrootTrapper.java +++ b/Mage.Sets/src/mage/cards/g/GnarlrootTrapper.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.ConditionalMana; import mage.MageInt; import mage.MageObject; @@ -53,6 +52,8 @@ import mage.filter.predicate.permanent.AttackingPredicate; import mage.game.Game; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GnarlwoodDryad.java b/Mage.Sets/src/mage/cards/g/GnarlwoodDryad.java index 28b6619c963..4c5f3405a77 100644 --- a/Mage.Sets/src/mage/cards/g/GnarlwoodDryad.java +++ b/Mage.Sets/src/mage/cards/g/GnarlwoodDryad.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GnatAlleyCreeper.java b/Mage.Sets/src/mage/cards/g/GnatAlleyCreeper.java index 50d340c11ef..b19cf6bae14 100644 --- a/Mage.Sets/src/mage/cards/g/GnatAlleyCreeper.java +++ b/Mage.Sets/src/mage/cards/g/GnatAlleyCreeper.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/g/GnatMiser.java b/Mage.Sets/src/mage/cards/g/GnatMiser.java index a06a64e2c8f..af7e91141ce 100644 --- a/Mage.Sets/src/mage/cards/g/GnatMiser.java +++ b/Mage.Sets/src/mage/cards/g/GnatMiser.java @@ -27,20 +27,21 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.MaximumHandSizeControllerEffect; import mage.abilities.effects.common.continuous.MaximumHandSizeControllerEffect.HandSizeModification; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/Gnathosaur.java b/Mage.Sets/src/mage/cards/g/Gnathosaur.java index 1666d49241a..185afc84a63 100644 --- a/Mage.Sets/src/mage/cards/g/Gnathosaur.java +++ b/Mage.Sets/src/mage/cards/g/Gnathosaur.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -37,12 +34,15 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GnawToTheBone.java b/Mage.Sets/src/mage/cards/g/GnawToTheBone.java index d269233ad9e..7d722b924ae 100644 --- a/Mage.Sets/src/mage/cards/g/GnawToTheBone.java +++ b/Mage.Sets/src/mage/cards/g/GnawToTheBone.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; @@ -37,9 +34,12 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TimingRule; import mage.filter.common.FilterCreatureCard; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/g/GnawingZombie.java b/Mage.Sets/src/mage/cards/g/GnawingZombie.java index a43b14afe29..415b0fdde07 100644 --- a/Mage.Sets/src/mage/cards/g/GnawingZombie.java +++ b/Mage.Sets/src/mage/cards/g/GnawingZombie.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.target.TargetPlayer; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoForTheThroat.java b/Mage.Sets/src/mage/cards/g/GoForTheThroat.java index 574a1a04eec..109bc95a80c 100644 --- a/Mage.Sets/src/mage/cards/g/GoForTheThroat.java +++ b/Mage.Sets/src/mage/cards/g/GoForTheThroat.java @@ -27,17 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/Goatnapper.java b/Mage.Sets/src/mage/cards/g/Goatnapper.java index 508ea5e38b5..735cb808155 100644 --- a/Mage.Sets/src/mage/cards/g/Goatnapper.java +++ b/Mage.Sets/src/mage/cards/g/Goatnapper.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,6 +36,7 @@ import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; diff --git a/Mage.Sets/src/mage/cards/g/GobblingOoze.java b/Mage.Sets/src/mage/cards/g/GobblingOoze.java index 55e7e492e70..3609400edbc 100644 --- a/Mage.Sets/src/mage/cards/g/GobblingOoze.java +++ b/Mage.Sets/src/mage/cards/g/GobblingOoze.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,11 +35,15 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GobhobblerRats.java b/Mage.Sets/src/mage/cards/g/GobhobblerRats.java index 77333a1ba06..0c133b6e86a 100644 --- a/Mage.Sets/src/mage/cards/g/GobhobblerRats.java +++ b/Mage.Sets/src/mage/cards/g/GobhobblerRats.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinArchaeologist.java b/Mage.Sets/src/mage/cards/g/GoblinArchaeologist.java index 9ed3358eedb..7602a90c294 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinArchaeologist.java +++ b/Mage.Sets/src/mage/cards/g/GoblinArchaeologist.java @@ -5,7 +5,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -23,6 +22,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author BursegSardaukar diff --git a/Mage.Sets/src/mage/cards/g/GoblinArsonist.java b/Mage.Sets/src/mage/cards/g/GoblinArsonist.java index cb60c8183b1..03be7de0af2 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinArsonist.java +++ b/Mage.Sets/src/mage/cards/g/GoblinArsonist.java @@ -27,16 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GoblinArtillery.java b/Mage.Sets/src/mage/cards/g/GoblinArtillery.java index ed00ab54633..b00f8794abd 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinArtillery.java +++ b/Mage.Sets/src/mage/cards/g/GoblinArtillery.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,12 @@ import mage.abilities.effects.common.DamageControllerEffect; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GoblinArtisans.java b/Mage.Sets/src/mage/cards/g/GoblinArtisans.java index b078845e029..4f4d959aef0 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinArtisans.java +++ b/Mage.Sets/src/mage/cards/g/GoblinArtisans.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -54,6 +52,9 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetCard; +import java.util.List; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/g/GoblinAssassin.java b/Mage.Sets/src/mage/cards/g/GoblinAssassin.java index c20506e32f8..4f2f6335d99 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinAssassin.java +++ b/Mage.Sets/src/mage/cards/g/GoblinAssassin.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -46,6 +43,10 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * @author BursegSardaukar */ diff --git a/Mage.Sets/src/mage/cards/g/GoblinAssault.java b/Mage.Sets/src/mage/cards/g/GoblinAssault.java index d5f0cf4b67c..21bc0d72952 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinAssault.java +++ b/Mage.Sets/src/mage/cards/g/GoblinAssault.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -42,6 +41,8 @@ import mage.filter.StaticFilters; import mage.game.permanent.token.GoblinTokenWithHaste; import mage.watchers.common.AttackedThisTurnWatcher; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GoblinBalloonBrigade.java b/Mage.Sets/src/mage/cards/g/GoblinBalloonBrigade.java index 426879e00a1..001ffe92428 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinBalloonBrigade.java +++ b/Mage.Sets/src/mage/cards/g/GoblinBalloonBrigade.java @@ -28,10 +28,6 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +35,11 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinBangchuckers.java b/Mage.Sets/src/mage/cards/g/GoblinBangchuckers.java index b737295789c..1424e4d5f87 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinBangchuckers.java +++ b/Mage.Sets/src/mage/cards/g/GoblinBangchuckers.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/g/GoblinBattleJester.java b/Mage.Sets/src/mage/cards/g/GoblinBattleJester.java index f52009d0546..ad785137d25 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinBattleJester.java +++ b/Mage.Sets/src/mage/cards/g/GoblinBattleJester.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -37,10 +34,14 @@ import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.combat.CantBlockTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GoblinBerserker.java b/Mage.Sets/src/mage/cards/g/GoblinBerserker.java index dc7aaf800e8..3ef1b492470 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinBerserker.java +++ b/Mage.Sets/src/mage/cards/g/GoblinBerserker.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinBomb.java b/Mage.Sets/src/mage/cards/g/GoblinBomb.java index d9120b95124..9cc1ac7bb5f 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinBomb.java +++ b/Mage.Sets/src/mage/cards/g/GoblinBomb.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -49,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GoblinBombardment.java b/Mage.Sets/src/mage/cards/g/GoblinBombardment.java index 08edfd28110..e1f822c5398 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinBombardment.java +++ b/Mage.Sets/src/mage/cards/g/GoblinBombardment.java @@ -27,19 +27,19 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GoblinBoomKeg.java b/Mage.Sets/src/mage/cards/g/GoblinBoomKeg.java index ca4c307cab5..52eb27f7a2d 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinBoomKeg.java +++ b/Mage.Sets/src/mage/cards/g/GoblinBoomKeg.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinBrawler.java b/Mage.Sets/src/mage/cards/g/GoblinBrawler.java index 0e085dee1e0..1196b8e5e0e 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinBrawler.java +++ b/Mage.Sets/src/mage/cards/g/GoblinBrawler.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GoblinBrigand.java b/Mage.Sets/src/mage/cards/g/GoblinBrigand.java index 77b17115f76..009aed33076 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinBrigand.java +++ b/Mage.Sets/src/mage/cards/g/GoblinBrigand.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Jgod diff --git a/Mage.Sets/src/mage/cards/g/GoblinBully.java b/Mage.Sets/src/mage/cards/g/GoblinBully.java index 2d9acb14b73..0dcb14abbfc 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinBully.java +++ b/Mage.Sets/src/mage/cards/g/GoblinBully.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GoblinBurrows.java b/Mage.Sets/src/mage/cards/g/GoblinBurrows.java index ebffcceea1d..abdfebcaa0e 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinBurrows.java +++ b/Mage.Sets/src/mage/cards/g/GoblinBurrows.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -43,6 +42,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinBushwhacker.java b/Mage.Sets/src/mage/cards/g/GoblinBushwhacker.java index 3efb2e8b43f..dc6d2c37911 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinBushwhacker.java +++ b/Mage.Sets/src/mage/cards/g/GoblinBushwhacker.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; @@ -40,6 +37,10 @@ import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinCadets.java b/Mage.Sets/src/mage/cards/g/GoblinCadets.java index 72b6a494293..ed6181e6967 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinCadets.java +++ b/Mage.Sets/src/mage/cards/g/GoblinCadets.java @@ -27,22 +27,19 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinCannon.java b/Mage.Sets/src/mage/cards/g/GoblinCannon.java index f9d60952a69..b79c2611f17 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinCannon.java +++ b/Mage.Sets/src/mage/cards/g/GoblinCannon.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GoblinCavaliers.java b/Mage.Sets/src/mage/cards/g/GoblinCavaliers.java index 504a4a53f6a..d29e4c01f46 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinCavaliers.java +++ b/Mage.Sets/src/mage/cards/g/GoblinCavaliers.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GoblinCaves.java b/Mage.Sets/src/mage/cards/g/GoblinCaves.java index 56507925d8c..bf89fbcecad 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinCaves.java +++ b/Mage.Sets/src/mage/cards/g/GoblinCaves.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; @@ -48,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author nigelzor @@ -89,7 +89,7 @@ class AttachedToBasicMountainCondition implements Condition { if (enchantment != null) { Permanent enchanted = game.getPermanent(enchantment.getAttachedTo()); if (enchanted != null) { - if (enchanted.hasSubtype("Mountain", game) && enchanted.getSupertype().contains("Basic")) { + if (enchanted.hasSubtype("Mountain", game) && enchanted.isBasic()) { return true; } } diff --git a/Mage.Sets/src/mage/cards/g/GoblinCharbelcher.java b/Mage.Sets/src/mage/cards/g/GoblinCharbelcher.java index 979c304f904..eee0d432a79 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinCharbelcher.java +++ b/Mage.Sets/src/mage/cards/g/GoblinCharbelcher.java @@ -27,18 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -47,6 +42,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GoblinChariot.java b/Mage.Sets/src/mage/cards/g/GoblinChariot.java index 2e301f112b9..e5fb989a487 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinChariot.java +++ b/Mage.Sets/src/mage/cards/g/GoblinChariot.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinChieftain.java b/Mage.Sets/src/mage/cards/g/GoblinChieftain.java index 2b15368cdff..2d355e375e2 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinChieftain.java +++ b/Mage.Sets/src/mage/cards/g/GoblinChieftain.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/g/GoblinChirurgeon.java b/Mage.Sets/src/mage/cards/g/GoblinChirurgeon.java index aec0d39dc7c..d007e0428d5 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinChirurgeon.java +++ b/Mage.Sets/src/mage/cards/g/GoblinChirurgeon.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinClearcutter.java b/Mage.Sets/src/mage/cards/g/GoblinClearcutter.java index 56f52468add..ecf54069cfd 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinClearcutter.java +++ b/Mage.Sets/src/mage/cards/g/GoblinClearcutter.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.LinkedHashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -50,6 +47,10 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import java.util.LinkedHashSet; +import java.util.Set; +import java.util.UUID; + /** * @author BursegSardaukar */ diff --git a/Mage.Sets/src/mage/cards/g/GoblinCohort.java b/Mage.Sets/src/mage/cards/g/GoblinCohort.java index 7dc7628b1c5..4525bfd6ba1 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinCohort.java +++ b/Mage.Sets/src/mage/cards/g/GoblinCohort.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.watchers.common.PlayerCastCreatureWatcher; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinCommando.java b/Mage.Sets/src/mage/cards/g/GoblinCommando.java index 6028ccc9dfb..545afb12cab 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinCommando.java +++ b/Mage.Sets/src/mage/cards/g/GoblinCommando.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinDarkDwellers.java b/Mage.Sets/src/mage/cards/g/GoblinDarkDwellers.java index bd4243485f1..0396414faf2 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinDarkDwellers.java +++ b/Mage.Sets/src/mage/cards/g/GoblinDarkDwellers.java @@ -27,9 +27,9 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -42,7 +42,6 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterInstantOrSorceryCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; @@ -52,6 +51,8 @@ import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes @@ -61,7 +62,7 @@ public class GoblinDarkDwellers extends CardImpl { private static final FilterInstantOrSorceryCard filter = new FilterInstantOrSorceryCard("instant or sorcery card with converted mana cost 3 or less"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public GoblinDarkDwellers(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GoblinDeathraiders.java b/Mage.Sets/src/mage/cards/g/GoblinDeathraiders.java index 20916b7d2dc..f49b0379485 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinDeathraiders.java +++ b/Mage.Sets/src/mage/cards/g/GoblinDeathraiders.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinDiggingTeam.java b/Mage.Sets/src/mage/cards/g/GoblinDiggingTeam.java index d7f1353235f..f7946b2e541 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinDiggingTeam.java +++ b/Mage.Sets/src/mage/cards/g/GoblinDiggingTeam.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +40,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/g/GoblinDiplomats.java b/Mage.Sets/src/mage/cards/g/GoblinDiplomats.java index e9f16f655de..87e52636870 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinDiplomats.java +++ b/Mage.Sets/src/mage/cards/g/GoblinDiplomats.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GoblinDirigible.java b/Mage.Sets/src/mage/cards/g/GoblinDirigible.java index e676c1a9495..a3aae730851 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinDirigible.java +++ b/Mage.Sets/src/mage/cards/g/GoblinDirigible.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GoblinDynamo.java b/Mage.Sets/src/mage/cards/g/GoblinDynamo.java index f7b047658dd..a519bb73d5e 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinDynamo.java +++ b/Mage.Sets/src/mage/cards/g/GoblinDynamo.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * @author BursegSardaukar */ diff --git a/Mage.Sets/src/mage/cards/g/GoblinElectromancer.java b/Mage.Sets/src/mage/cards/g/GoblinElectromancer.java index dd012c962a6..ae3f4a1ebcd 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinElectromancer.java +++ b/Mage.Sets/src/mage/cards/g/GoblinElectromancer.java @@ -27,19 +27,19 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinEliteInfantry.java b/Mage.Sets/src/mage/cards/g/GoblinEliteInfantry.java index dfb49b71f61..f769c767e7b 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinEliteInfantry.java +++ b/Mage.Sets/src/mage/cards/g/GoblinEliteInfantry.java @@ -27,16 +27,16 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GoblinFireFiend.java b/Mage.Sets/src/mage/cards/g/GoblinFireFiend.java index 4a845b5cfaa..ce5b8cf14a7 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinFireFiend.java +++ b/Mage.Sets/src/mage/cards/g/GoblinFireFiend.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,9 +36,12 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author BursegSardaukar diff --git a/Mage.Sets/src/mage/cards/g/GoblinFirebug.java b/Mage.Sets/src/mage/cards/g/GoblinFirebug.java index 520cc63a6cb..752cc5e2da2 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinFirebug.java +++ b/Mage.Sets/src/mage/cards/g/GoblinFirebug.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LeavesBattlefieldTriggeredAbility; import mage.abilities.effects.common.SacrificeControllerEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GoblinFireslinger.java b/Mage.Sets/src/mage/cards/g/GoblinFireslinger.java index 0a99d2712f8..fb1a1b13b82 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinFireslinger.java +++ b/Mage.Sets/src/mage/cards/g/GoblinFireslinger.java @@ -28,9 +28,6 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,12 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/g/GoblinFirestarter.java b/Mage.Sets/src/mage/cards/g/GoblinFirestarter.java index b2309a3754d..a082de1308a 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinFirestarter.java +++ b/Mage.Sets/src/mage/cards/g/GoblinFirestarter.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes @@ -54,7 +55,7 @@ public class GoblinFirestarter extends CardImpl { // Sacrifice Goblin Firestarter: Goblin Firestarter deals 1 damage to target creature or player. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new DamageTargetEffect(1), new SacrificeSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new DamageTargetEffect(1), new SacrificeSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCreatureOrPlayer()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/g/GoblinFlectomancer.java b/Mage.Sets/src/mage/cards/g/GoblinFlectomancer.java index e8c7b47edc0..17cd89e973b 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinFlectomancer.java +++ b/Mage.Sets/src/mage/cards/g/GoblinFlectomancer.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterInstantOrSorcerySpell; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GoblinFlotilla.java b/Mage.Sets/src/mage/cards/g/GoblinFlotilla.java index 708cff45934..75d34c709ae 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinFlotilla.java +++ b/Mage.Sets/src/mage/cards/g/GoblinFlotilla.java @@ -27,11 +27,11 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DoUnlessControllerPaysEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FirstStrikeAbility; @@ -41,7 +41,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; -import mage.abilities.effects.common.DoUnlessControllerPaysEffect; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinFreerunner.java b/Mage.Sets/src/mage/cards/g/GoblinFreerunner.java index 729c0325141..88ebfae47e3 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinFreerunner.java +++ b/Mage.Sets/src/mage/cards/g/GoblinFreerunner.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.MenaceAbility; import mage.abilities.keyword.SurgeAbility; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GoblinGardener.java b/Mage.Sets/src/mage/cards/g/GoblinGardener.java index 0885514f8da..5245a3a7b95 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinGardener.java +++ b/Mage.Sets/src/mage/cards/g/GoblinGardener.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GoblinGaveleer.java b/Mage.Sets/src/mage/cards/g/GoblinGaveleer.java index e208a693868..83276b92dcb 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinGaveleer.java +++ b/Mage.Sets/src/mage/cards/g/GoblinGaveleer.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.EquipmentAttachedCount; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GoblinGeneral.java b/Mage.Sets/src/mage/cards/g/GoblinGeneral.java index 1dd8687f41b..12e8dddd550 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinGeneral.java +++ b/Mage.Sets/src/mage/cards/g/GoblinGeneral.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinGlider.java b/Mage.Sets/src/mage/cards/g/GoblinGlider.java index c60e2354f78..20a9f992bf4 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinGlider.java +++ b/Mage.Sets/src/mage/cards/g/GoblinGlider.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.CantBlockAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinGloryChaser.java b/Mage.Sets/src/mage/cards/g/GoblinGloryChaser.java index 18891f770b7..23fef684345 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinGloryChaser.java +++ b/Mage.Sets/src/mage/cards/g/GoblinGloryChaser.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GoblinGoon.java b/Mage.Sets/src/mage/cards/g/GoblinGoon.java index 4f077ebd6c8..73c6a915301 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinGoon.java +++ b/Mage.Sets/src/mage/cards/g/GoblinGoon.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/GoblinGrappler.java b/Mage.Sets/src/mage/cards/g/GoblinGrappler.java index 51715f4b530..cffe0615710 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinGrappler.java +++ b/Mage.Sets/src/mage/cards/g/GoblinGrappler.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.ProvokeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GoblinGrenade.java b/Mage.Sets/src/mage/cards/g/GoblinGrenade.java index 1c0a900a253..fea70d4cc7c 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinGrenade.java +++ b/Mage.Sets/src/mage/cards/g/GoblinGrenade.java @@ -27,18 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/g/GoblinGrenadiers.java b/Mage.Sets/src/mage/cards/g/GoblinGrenadiers.java index 9f3e699093c..476c4985410 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinGrenadiers.java +++ b/Mage.Sets/src/mage/cards/g/GoblinGrenadiers.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GoblinGuide.java b/Mage.Sets/src/mage/cards/g/GoblinGuide.java index ed74629a5d1..2d1163e9352 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinGuide.java +++ b/Mage.Sets/src/mage/cards/g/GoblinGuide.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -35,11 +34,7 @@ import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.HasteAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -49,6 +44,8 @@ import mage.game.events.GameEvent.EventType; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/g/GoblinHeelcutter.java b/Mage.Sets/src/mage/cards/g/GoblinHeelcutter.java index 90e3d7c92e0..672ca32d0dd 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinHeelcutter.java +++ b/Mage.Sets/src/mage/cards/g/GoblinHeelcutter.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinHero.java b/Mage.Sets/src/mage/cards/g/GoblinHero.java index 907186b616b..ab219d87ab7 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinHero.java +++ b/Mage.Sets/src/mage/cards/g/GoblinHero.java @@ -27,11 +27,12 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinKaboomist.java b/Mage.Sets/src/mage/cards/g/GoblinKaboomist.java index cd02229e5be..7529a2d93d9 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinKaboomist.java +++ b/Mage.Sets/src/mage/cards/g/GoblinKaboomist.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -53,6 +52,8 @@ import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/g/GoblinKing.java b/Mage.Sets/src/mage/cards/g/GoblinKing.java index cf366241012..bdfc1402b0a 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinKing.java +++ b/Mage.Sets/src/mage/cards/g/GoblinKing.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/g/GoblinKites.java b/Mage.Sets/src/mage/cards/g/GoblinKites.java index cb5fffb4115..a2df287e58c 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinKites.java +++ b/Mage.Sets/src/mage/cards/g/GoblinKites.java @@ -27,8 +27,8 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,12 +38,7 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; -import mage.filter.Filter; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.permanent.ControllerPredicate; @@ -52,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author MarcoMarin @@ -61,7 +58,7 @@ public class GoblinKites extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("controlled creature with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); filter.add(new ControllerPredicate(TargetController.YOU)); } diff --git a/Mage.Sets/src/mage/cards/g/GoblinLackey.java b/Mage.Sets/src/mage/cards/g/GoblinLackey.java index 2e7c5dd9436..dbb5c750326 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinLackey.java +++ b/Mage.Sets/src/mage/cards/g/GoblinLackey.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.PutPermanentOnBattlefieldEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/g/GoblinLegionnaire.java b/Mage.Sets/src/mage/cards/g/GoblinLegionnaire.java index 3e9a4acb21c..cb2bd644ce7 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinLegionnaire.java +++ b/Mage.Sets/src/mage/cards/g/GoblinLegionnaire.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,8 +36,14 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.PreventDamageToTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GoblinLookout.java b/Mage.Sets/src/mage/cards/g/GoblinLookout.java index 35f502df0ee..f1cb074f855 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinLookout.java +++ b/Mage.Sets/src/mage/cards/g/GoblinLookout.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GoblinLore.java b/Mage.Sets/src/mage/cards/g/GoblinLore.java index 8666479c5c7..2a22ae3117c 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinLore.java +++ b/Mage.Sets/src/mage/cards/g/GoblinLore.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.discard.DiscardControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinMarshal.java b/Mage.Sets/src/mage/cards/g/GoblinMarshal.java index 7af33b214c1..f7ca993545b 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinMarshal.java +++ b/Mage.Sets/src/mage/cards/g/GoblinMarshal.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldOrDiesSourceTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.GoblinToken; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/g/GoblinMasons.java b/Mage.Sets/src/mage/cards/g/GoblinMasons.java index 7e4e04f6da7..cec4aca2c10 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinMasons.java +++ b/Mage.Sets/src/mage/cards/g/GoblinMasons.java @@ -27,18 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author BursegSardaukar diff --git a/Mage.Sets/src/mage/cards/g/GoblinMatron.java b/Mage.Sets/src/mage/cards/g/GoblinMatron.java index d9f1262cecf..1284b4f7290 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinMatron.java +++ b/Mage.Sets/src/mage/cards/g/GoblinMatron.java @@ -27,17 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/g/GoblinMedics.java b/Mage.Sets/src/mage/cards/g/GoblinMedics.java index 440935255b5..892c7d1678c 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinMedics.java +++ b/Mage.Sets/src/mage/cards/g/GoblinMedics.java @@ -27,16 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesTappedSourceTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GoblinMountaineer.java b/Mage.Sets/src/mage/cards/g/GoblinMountaineer.java index d176fe7349a..83235340bf3 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinMountaineer.java +++ b/Mage.Sets/src/mage/cards/g/GoblinMountaineer.java @@ -28,12 +28,13 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.MountainwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinMutant.java b/Mage.Sets/src/mage/cards/g/GoblinMutant.java index 64344be68f9..3177df3a463 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinMutant.java +++ b/Mage.Sets/src/mage/cards/g/GoblinMutant.java @@ -27,8 +27,8 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.combat.CantAttackIfDefenderControlsPermanent; @@ -38,12 +38,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.permanent.TappedPredicate; +import java.util.UUID; + /** * * @author BursegSardaukar @@ -55,8 +56,8 @@ public class GoblinMutant extends CardImpl { static final private FilterCreaturePermanent filter2 = new FilterCreaturePermanent("creatures with power 3 or greater"); static { - filter.add(Predicates.and(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2), Predicates.not(new TappedPredicate()))); - filter2.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2)); + filter.add(Predicates.and(new PowerPredicate(ComparisonType.MORE_THAN, 2), Predicates.not(new TappedPredicate()))); + filter2.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); } public GoblinMutant(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GoblinOffensive.java b/Mage.Sets/src/mage/cards/g/GoblinOffensive.java index e7b780603d2..28f6a5503fb 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinOffensive.java +++ b/Mage.Sets/src/mage/cards/g/GoblinOffensive.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.GoblinToken; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/g/GoblinOutlander.java b/Mage.Sets/src/mage/cards/g/GoblinOutlander.java index 823aa4057be..f115f8c5ab9 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinOutlander.java +++ b/Mage.Sets/src/mage/cards/g/GoblinOutlander.java @@ -28,13 +28,14 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinPatrol.java b/Mage.Sets/src/mage/cards/g/GoblinPatrol.java index 6259cb0815e..30f788787d4 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinPatrol.java +++ b/Mage.Sets/src/mage/cards/g/GoblinPatrol.java @@ -28,12 +28,13 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.EchoAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinPiker.java b/Mage.Sets/src/mage/cards/g/GoblinPiker.java index eada94914ad..e7152baaf67 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinPiker.java +++ b/Mage.Sets/src/mage/cards/g/GoblinPiker.java @@ -28,12 +28,13 @@ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/g/GoblinPiledriver.java b/Mage.Sets/src/mage/cards/g/GoblinPiledriver.java index 9b82c30f7da..955096f50b8 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinPiledriver.java +++ b/Mage.Sets/src/mage/cards/g/GoblinPiledriver.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.AttacksTriggeredAbility; @@ -39,10 +36,14 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.common.FilterAttackingCreature; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/g/GoblinPyromancer.java b/Mage.Sets/src/mage/cards/g/GoblinPyromancer.java index 5e407d38791..4055ca5036f 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinPyromancer.java +++ b/Mage.Sets/src/mage/cards/g/GoblinPyromancer.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.FilterPermanent; import mage.filter.StaticFilters; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/GoblinRabblemaster.java b/Mage.Sets/src/mage/cards/g/GoblinRabblemaster.java index 28518ccddfd..e6175a3e846 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinRabblemaster.java +++ b/Mage.Sets/src/mage/cards/g/GoblinRabblemaster.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.BeginningOfCombatTriggeredAbility; @@ -51,6 +50,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.permanent.token.GoblinTokenWithHaste; import mage.watchers.common.AttackedThisTurnWatcher; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/g/GoblinRaider.java b/Mage.Sets/src/mage/cards/g/GoblinRaider.java index ca467840f0a..02492372e86 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinRaider.java +++ b/Mage.Sets/src/mage/cards/g/GoblinRaider.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.CantBlockAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinRally.java b/Mage.Sets/src/mage/cards/g/GoblinRally.java index b23c810c4cd..159e30b34c2 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinRally.java +++ b/Mage.Sets/src/mage/cards/g/GoblinRally.java @@ -28,13 +28,14 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.game.permanent.token.GoblinToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinRazerunners.java b/Mage.Sets/src/mage/cards/g/GoblinRazerunners.java index 4c417750d03..c1d7a1941af 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinRazerunners.java +++ b/Mage.Sets/src/mage/cards/g/GoblinRazerunners.java @@ -28,9 +28,6 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility; @@ -42,12 +39,16 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GoblinRecruiter.java b/Mage.Sets/src/mage/cards/g/GoblinRecruiter.java index 37c51803cc4..460f961332b 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinRecruiter.java +++ b/Mage.Sets/src/mage/cards/g/GoblinRecruiter.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.RecruiterEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinReplica.java b/Mage.Sets/src/mage/cards/g/GoblinReplica.java index 772a90989f2..d41bf871160 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinReplica.java +++ b/Mage.Sets/src/mage/cards/g/GoblinReplica.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,11 +35,14 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GoblinRingleader.java b/Mage.Sets/src/mage/cards/g/GoblinRingleader.java index 2aacef8b84a..1debf06e57d 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinRingleader.java +++ b/Mage.Sets/src/mage/cards/g/GoblinRingleader.java @@ -27,18 +27,19 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.RevealLibraryPutIntoHandEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.effects.common.RevealLibraryPutIntoHandEffect; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GoblinRoughrider.java b/Mage.Sets/src/mage/cards/g/GoblinRoughrider.java index f42afa77e50..9e3e5eb3247 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinRoughrider.java +++ b/Mage.Sets/src/mage/cards/g/GoblinRoughrider.java @@ -28,11 +28,12 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinRuinblaster.java b/Mage.Sets/src/mage/cards/g/GoblinRuinblaster.java index 51577ae0e7a..fe39531e71c 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinRuinblaster.java +++ b/Mage.Sets/src/mage/cards/g/GoblinRuinblaster.java @@ -28,8 +28,6 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; @@ -39,8 +37,11 @@ import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetNonBasicLandPermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/g/GoblinScouts.java b/Mage.Sets/src/mage/cards/g/GoblinScouts.java index 10d211d874f..a7ae2193a7a 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinScouts.java +++ b/Mage.Sets/src/mage/cards/g/GoblinScouts.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.MountainwalkAbility; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GoblinSettler.java b/Mage.Sets/src/mage/cards/g/GoblinSettler.java index 529915b2bbb..84c77cb9b6f 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinSettler.java +++ b/Mage.Sets/src/mage/cards/g/GoblinSettler.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinSharpshooter.java b/Mage.Sets/src/mage/cards/g/GoblinSharpshooter.java index be0b58f31eb..a1fde14334f 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinSharpshooter.java +++ b/Mage.Sets/src/mage/cards/g/GoblinSharpshooter.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; @@ -41,8 +38,12 @@ import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/g/GoblinShortcutter.java b/Mage.Sets/src/mage/cards/g/GoblinShortcutter.java index 07476230417..738f73bb814 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinShortcutter.java +++ b/Mage.Sets/src/mage/cards/g/GoblinShortcutter.java @@ -27,17 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.combat.CantBlockTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GoblinSkyRaider.java b/Mage.Sets/src/mage/cards/g/GoblinSkyRaider.java index 4a615458c67..d13d6c12a82 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinSkyRaider.java +++ b/Mage.Sets/src/mage/cards/g/GoblinSkyRaider.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinSkycutter.java b/Mage.Sets/src/mage/cards/g/GoblinSkycutter.java index c43f5b17d78..c22ab02c377 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinSkycutter.java +++ b/Mage.Sets/src/mage/cards/g/GoblinSkycutter.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GoblinSledder.java b/Mage.Sets/src/mage/cards/g/GoblinSledder.java index 86de895fc42..7eefefc36e1 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinSledder.java +++ b/Mage.Sets/src/mage/cards/g/GoblinSledder.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinSnowman.java b/Mage.Sets/src/mage/cards/g/GoblinSnowman.java index 3e24c11aeb2..a078c021b74 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinSnowman.java +++ b/Mage.Sets/src/mage/cards/g/GoblinSnowman.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BlocksTriggeredAbility; @@ -46,6 +45,8 @@ import mage.filter.common.FilterAttackingCreature; import mage.filter.predicate.permanent.BlockedByIdPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BursegSardaukar diff --git a/Mage.Sets/src/mage/cards/g/GoblinSoothsayer.java b/Mage.Sets/src/mage/cards/g/GoblinSoothsayer.java index 3b380c74e90..c408810cb66 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinSoothsayer.java +++ b/Mage.Sets/src/mage/cards/g/GoblinSoothsayer.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author BursegSardaukar diff --git a/Mage.Sets/src/mage/cards/g/GoblinSpelunkers.java b/Mage.Sets/src/mage/cards/g/GoblinSpelunkers.java index 10a6ae97dfa..5b4139c9f9a 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinSpelunkers.java +++ b/Mage.Sets/src/mage/cards/g/GoblinSpelunkers.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.MountainwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinSpy.java b/Mage.Sets/src/mage/cards/g/GoblinSpy.java index a3462e7b6e3..47aed5843d1 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinSpy.java +++ b/Mage.Sets/src/mage/cards/g/GoblinSpy.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.PlayWithTheTopCardRevealedEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author michael.napoleon@gmail.com diff --git a/Mage.Sets/src/mage/cards/g/GoblinSpymaster.java b/Mage.Sets/src/mage/cards/g/GoblinSpymaster.java index 80b8afcdfe9..fe6e7684863 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinSpymaster.java +++ b/Mage.Sets/src/mage/cards/g/GoblinSpymaster.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -38,17 +37,15 @@ import mage.abilities.effects.common.combat.AttacksIfAbleAllEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/g/GoblinStriker.java b/Mage.Sets/src/mage/cards/g/GoblinStriker.java index 60814dbb940..0bef44696e1 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinStriker.java +++ b/Mage.Sets/src/mage/cards/g/GoblinStriker.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinSwineRider.java b/Mage.Sets/src/mage/cards/g/GoblinSwineRider.java index b2cda8071ad..dda10436c8c 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinSwineRider.java +++ b/Mage.Sets/src/mage/cards/g/GoblinSwineRider.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesBlockedTriggeredAbility; import mage.abilities.effects.common.DamageAllEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GoblinTaskmaster.java b/Mage.Sets/src/mage/cards/g/GoblinTaskmaster.java index b7d9c256494..2788de404c8 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinTaskmaster.java +++ b/Mage.Sets/src/mage/cards/g/GoblinTaskmaster.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GoblinTestPilot.java b/Mage.Sets/src/mage/cards/g/GoblinTestPilot.java index f3ec3f7c843..2047197b51d 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinTestPilot.java +++ b/Mage.Sets/src/mage/cards/g/GoblinTestPilot.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,13 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.Target; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinTinkerer.java b/Mage.Sets/src/mage/cards/g/GoblinTinkerer.java index 6bd70ac464c..74eff264140 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinTinkerer.java +++ b/Mage.Sets/src/mage/cards/g/GoblinTinkerer.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinTrenches.java b/Mage.Sets/src/mage/cards/g/GoblinTrenches.java index 8fb74ac800e..1c03961eb01 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinTrenches.java +++ b/Mage.Sets/src/mage/cards/g/GoblinTrenches.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,11 +35,15 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.game.permanent.token.Token; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GoblinTunneler.java b/Mage.Sets/src/mage/cards/g/GoblinTunneler.java index 811fa41c08c..2c71e47c1f6 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinTunneler.java +++ b/Mage.Sets/src/mage/cards/g/GoblinTunneler.java @@ -28,21 +28,22 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -52,7 +53,7 @@ public class GoblinTunneler extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less"); static { - filter.add(new PowerPredicate(ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public GoblinTunneler(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GoblinTurncoat.java b/Mage.Sets/src/mage/cards/g/GoblinTurncoat.java index 317056218c6..e18775adbcc 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinTurncoat.java +++ b/Mage.Sets/src/mage/cards/g/GoblinTurncoat.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,11 +34,14 @@ import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.RegenerateSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/g/GoblinVandal.java b/Mage.Sets/src/mage/cards/g/GoblinVandal.java index 4b41cd7c31a..1d6d49e1280 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinVandal.java +++ b/Mage.Sets/src/mage/cards/g/GoblinVandal.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.ManaCostsImpl; @@ -51,6 +50,8 @@ import mage.game.permanent.Permanent; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinWarBuggy.java b/Mage.Sets/src/mage/cards/g/GoblinWarBuggy.java index d4dad590e1c..27ff5e0ce6d 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinWarBuggy.java +++ b/Mage.Sets/src/mage/cards/g/GoblinWarBuggy.java @@ -28,13 +28,14 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.EchoAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinWarDrums.java b/Mage.Sets/src/mage/cards/g/GoblinWarDrums.java index f53fba68300..23086fbaca3 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinWarDrums.java +++ b/Mage.Sets/src/mage/cards/g/GoblinWarDrums.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.keyword.MenaceAbility; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinWarPaint.java b/Mage.Sets/src/mage/cards/g/GoblinWarPaint.java index 8ea6a0d0848..ffcb00d49b2 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinWarPaint.java +++ b/Mage.Sets/src/mage/cards/g/GoblinWarPaint.java @@ -27,25 +27,25 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.continuous.BoostEnchantedEffect; -import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.continuous.BoostEnchantedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GoblinWarStrike.java b/Mage.Sets/src/mage/cards/g/GoblinWarStrike.java index ba196b6c87e..5448931a733 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinWarStrike.java +++ b/Mage.Sets/src/mage/cards/g/GoblinWarStrike.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoblinWarWagon.java b/Mage.Sets/src/mage/cards/g/GoblinWarWagon.java index b076fa4e56c..3e58dc9e6c6 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinWarWagon.java +++ b/Mage.Sets/src/mage/cards/g/GoblinWarWagon.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GoblinWarchief.java b/Mage.Sets/src/mage/cards/g/GoblinWarchief.java index eb691c9d4ce..33d442beb6d 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinWarchief.java +++ b/Mage.Sets/src/mage/cards/g/GoblinWarchief.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -38,10 +34,15 @@ import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/g/GoblinWardriver.java b/Mage.Sets/src/mage/cards/g/GoblinWardriver.java index 22c7f888a43..8779e22a9c2 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinWardriver.java +++ b/Mage.Sets/src/mage/cards/g/GoblinWardriver.java @@ -28,12 +28,13 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.BattleCryAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoblinWarrens.java b/Mage.Sets/src/mage/cards/g/GoblinWarrens.java index b939bb0f44c..8e2381b6664 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinWarrens.java +++ b/Mage.Sets/src/mage/cards/g/GoblinWarrens.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -41,6 +40,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.permanent.token.GoblinToken; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/g/GoblinWizard.java b/Mage.Sets/src/mage/cards/g/GoblinWizard.java index 13a433bf123..1f5a308f5b2 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinWizard.java +++ b/Mage.Sets/src/mage/cards/g/GoblinWizard.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -49,6 +48,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author BursegSardaukar diff --git a/Mage.Sets/src/mage/cards/g/GoblinsOfTheFlarg.java b/Mage.Sets/src/mage/cards/g/GoblinsOfTheFlarg.java index ec99f32bf62..7bb36b7d651 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinsOfTheFlarg.java +++ b/Mage.Sets/src/mage/cards/g/GoblinsOfTheFlarg.java @@ -27,24 +27,24 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.abilities.keyword.MountainwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** - * * @author fireshoes */ public class GoblinsOfTheFlarg extends CardImpl { - + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("a Dwarf"); static { @@ -52,7 +52,7 @@ public class GoblinsOfTheFlarg extends CardImpl { } public GoblinsOfTheFlarg(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}"); this.subtype.add("Goblin"); this.subtype.add("Warrior"); this.power = new MageInt(1); @@ -60,10 +60,10 @@ public class GoblinsOfTheFlarg extends CardImpl { // Mountainwalk this.addAbility(new MountainwalkAbility()); - + // When you control a Dwarf, sacrifice Goblins of the Flarg. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - filter, Filter.ComparisonType.GreaterThan, 0, + filter, ComparisonType.MORE_THAN, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/g/Goblinslide.java b/Mage.Sets/src/mage/cards/g/Goblinslide.java index 1114cf302cf..7eb34c68cd2 100644 --- a/Mage.Sets/src/mage/cards/g/Goblinslide.java +++ b/Mage.Sets/src/mage/cards/g/Goblinslide.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CreateTokenEffect; @@ -40,6 +39,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.permanent.token.GoblinTokenWithHaste; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/GodFavoredGeneral.java b/Mage.Sets/src/mage/cards/g/GodFavoredGeneral.java index 2bea2af4948..56e88ed6761 100644 --- a/Mage.Sets/src/mage/cards/g/GodFavoredGeneral.java +++ b/Mage.Sets/src/mage/cards/g/GodFavoredGeneral.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GodheadOfAwe.java b/Mage.Sets/src/mage/cards/g/GodheadOfAwe.java index 1ff3e3541aa..44c31e0caf1 100644 --- a/Mage.Sets/src/mage/cards/g/GodheadOfAwe.java +++ b/Mage.Sets/src/mage/cards/g/GodheadOfAwe.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.SetPowerToughnessAllEffect; @@ -41,6 +40,8 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GodhunterOctopus.java b/Mage.Sets/src/mage/cards/g/GodhunterOctopus.java index 20ab963c612..a1a46589b78 100644 --- a/Mage.Sets/src/mage/cards/g/GodhunterOctopus.java +++ b/Mage.Sets/src/mage/cards/g/GodhunterOctopus.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantAttackUnlessDefenderControllsPermanent; @@ -40,6 +39,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.EnchantedPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GodlessShrine.java b/Mage.Sets/src/mage/cards/g/GodlessShrine.java index e8444f7afaa..12895b13b3f 100644 --- a/Mage.Sets/src/mage/cards/g/GodlessShrine.java +++ b/Mage.Sets/src/mage/cards/g/GodlessShrine.java @@ -28,8 +28,6 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.costs.common.PayLifeCost; import mage.abilities.effects.common.TapSourceUnlessPaysEffect; @@ -37,6 +35,9 @@ import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GodoBanditWarlord.java b/Mage.Sets/src/mage/cards/g/GodoBanditWarlord.java index 181422cc76a..16a0bae7c59 100644 --- a/Mage.Sets/src/mage/cards/g/GodoBanditWarlord.java +++ b/Mage.Sets/src/mage/cards/g/GodoBanditWarlord.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -39,6 +38,7 @@ import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterControlledCreaturePermanent; @@ -52,6 +52,8 @@ import mage.game.events.GameEvent.EventType; import mage.target.common.TargetCardInLibrary; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 @@ -66,7 +68,7 @@ public class GodoBanditWarlord extends CardImpl { public GodoBanditWarlord(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Barbarian"); diff --git a/Mage.Sets/src/mage/cards/g/GodosIrregulars.java b/Mage.Sets/src/mage/cards/g/GodosIrregulars.java index 1aeeb8e9903..93882519cd6 100644 --- a/Mage.Sets/src/mage/cards/g/GodosIrregulars.java +++ b/Mage.Sets/src/mage/cards/g/GodosIrregulars.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.BlockingAttackerIdPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GodsEyeGateToTheReikai.java b/Mage.Sets/src/mage/cards/g/GodsEyeGateToTheReikai.java index 315e2058de7..537a5839f95 100644 --- a/Mage.Sets/src/mage/cards/g/GodsEyeGateToTheReikai.java +++ b/Mage.Sets/src/mage/cards/g/GodsEyeGateToTheReikai.java @@ -27,15 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.game.permanent.token.SpiritToken; +import java.util.UUID; + /** * * @author Loki @@ -44,7 +46,7 @@ public class GodsEyeGateToTheReikai extends CardImpl { public GodsEyeGateToTheReikai(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // When Gods' Eye, Gate to the Reikai is put into a graveyard from the battlefield, create a 1/1 colorless Spirit creature token. diff --git a/Mage.Sets/src/mage/cards/g/GodsWilling.java b/Mage.Sets/src/mage/cards/g/GodsWilling.java index 92bf1994476..d0124dc1b05 100644 --- a/Mage.Sets/src/mage/cards/g/GodsWilling.java +++ b/Mage.Sets/src/mage/cards/g/GodsWilling.java @@ -27,15 +27,16 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.effects.common.continuous.GainProtectionFromColorTargetEffect; +import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/Godsend.java b/Mage.Sets/src/mage/cards/g/Godsend.java index 209aa263419..50b5ba68e54 100644 --- a/Mage.Sets/src/mage/cards/g/Godsend.java +++ b/Mage.Sets/src/mage/cards/g/Godsend.java @@ -27,11 +27,6 @@ */ package mage.cards.g; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -44,10 +39,7 @@ import mage.abilities.keyword.EquipAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.PermanentIdPredicate; @@ -63,6 +55,8 @@ import mage.target.targetpointer.FirstTargetPointer; import mage.target.targetpointer.FixedTarget; import mage.util.CardUtil; +import java.util.*; + /** * * @author LevelX2 @@ -71,7 +65,7 @@ public class Godsend extends CardImpl { public Godsend(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Equipment"); // Equipped creature gets +3/+3. diff --git a/Mage.Sets/src/mage/cards/g/Godsire.java b/Mage.Sets/src/mage/cards/g/Godsire.java index 28bbe9dd373..34310af3364 100644 --- a/Mage.Sets/src/mage/cards/g/Godsire.java +++ b/Mage.Sets/src/mage/cards/g/Godsire.java @@ -28,7 +28,6 @@ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/Godtoucher.java b/Mage.Sets/src/mage/cards/g/Godtoucher.java index 5cb486de83c..77a9f841ed2 100644 --- a/Mage.Sets/src/mage/cards/g/Godtoucher.java +++ b/Mage.Sets/src/mage/cards/g/Godtoucher.java @@ -27,25 +27,26 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.PreventionEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; import mage.game.events.GameEvent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -55,7 +56,7 @@ public class Godtoucher extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); static { - filter.add(new PowerPredicate(ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public Godtoucher(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GodtrackerOfJund.java b/Mage.Sets/src/mage/cards/g/GodtrackerOfJund.java index 67963335fdf..58c65535a3e 100644 --- a/Mage.Sets/src/mage/cards/g/GodtrackerOfJund.java +++ b/Mage.Sets/src/mage/cards/g/GodtrackerOfJund.java @@ -27,8 +27,8 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; @@ -36,10 +36,11 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -49,7 +50,7 @@ public class GodtrackerOfJund extends CardImpl { final private static FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent(); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } String rule = "Whenever a creature with power 5 or greater enters the battlefield under your control, you may put a +1/+1 counter on {this}."; diff --git a/Mage.Sets/src/mage/cards/g/GoldForgedSentinel.java b/Mage.Sets/src/mage/cards/g/GoldForgedSentinel.java index 03529ec53d8..d3ab68ec2d0 100644 --- a/Mage.Sets/src/mage/cards/g/GoldForgedSentinel.java +++ b/Mage.Sets/src/mage/cards/g/GoldForgedSentinel.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoldMyr.java b/Mage.Sets/src/mage/cards/g/GoldMyr.java index 53c28bcbcd8..09c19a08927 100644 --- a/Mage.Sets/src/mage/cards/g/GoldMyr.java +++ b/Mage.Sets/src/mage/cards/g/GoldMyr.java @@ -28,12 +28,13 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoldenBear.java b/Mage.Sets/src/mage/cards/g/GoldenBear.java index 39ca9922bc8..ae0df2017d4 100644 --- a/Mage.Sets/src/mage/cards/g/GoldenBear.java +++ b/Mage.Sets/src/mage/cards/g/GoldenBear.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GoldenHind.java b/Mage.Sets/src/mage/cards/g/GoldenHind.java index 2f629db8fd9..a804094fd6e 100644 --- a/Mage.Sets/src/mage/cards/g/GoldenHind.java +++ b/Mage.Sets/src/mage/cards/g/GoldenHind.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoldenUrn.java b/Mage.Sets/src/mage/cards/g/GoldenUrn.java index 12342722f3d..3a2ac568d17 100644 --- a/Mage.Sets/src/mage/cards/g/GoldenUrn.java +++ b/Mage.Sets/src/mage/cards/g/GoldenUrn.java @@ -28,8 +28,6 @@ package mage.cards.g; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +43,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GoldenWish.java b/Mage.Sets/src/mage/cards/g/GoldenWish.java index 2ec362ccf0a..31290d66c5b 100644 --- a/Mage.Sets/src/mage/cards/g/GoldenWish.java +++ b/Mage.Sets/src/mage/cards/g/GoldenWish.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.common.ExileSpellEffect; import mage.abilities.effects.common.WishEffect; import mage.cards.CardImpl; @@ -37,6 +36,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GoldenglowMoth.java b/Mage.Sets/src/mage/cards/g/GoldenglowMoth.java index d8e4bbc65cd..9caaf7c37a8 100644 --- a/Mage.Sets/src/mage/cards/g/GoldenglowMoth.java +++ b/Mage.Sets/src/mage/cards/g/GoldenglowMoth.java @@ -28,14 +28,15 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.BlocksTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoldenhideOx.java b/Mage.Sets/src/mage/cards/g/GoldenhideOx.java index b9b489604d1..72080925e95 100644 --- a/Mage.Sets/src/mage/cards/g/GoldenhideOx.java +++ b/Mage.Sets/src/mage/cards/g/GoldenhideOx.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.abilityword.ConstellationAbility; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoldmeadowDodger.java b/Mage.Sets/src/mage/cards/g/GoldmeadowDodger.java index bd95e1e8c4c..30a7e2afc7a 100644 --- a/Mage.Sets/src/mage/cards/g/GoldmeadowDodger.java +++ b/Mage.Sets/src/mage/cards/g/GoldmeadowDodger.java @@ -27,18 +27,19 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author Wehk @@ -48,7 +49,7 @@ public class GoldmeadowDodger extends CardImpl { private static final FilterCreaturePermanent FILTER = new FilterCreaturePermanent("creatures with power 4 or greater"); static { - FILTER.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + FILTER.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public GoldmeadowDodger(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GoldmeadowHarrier.java b/Mage.Sets/src/mage/cards/g/GoldmeadowHarrier.java index 2061019f049..f0280a46586 100644 --- a/Mage.Sets/src/mage/cards/g/GoldmeadowHarrier.java +++ b/Mage.Sets/src/mage/cards/g/GoldmeadowHarrier.java @@ -28,9 +28,6 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,9 +36,12 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GoldmeadowLookout.java b/Mage.Sets/src/mage/cards/g/GoldmeadowLookout.java index 3eaa8f5af42..b18bf0a00dd 100644 --- a/Mage.Sets/src/mage/cards/g/GoldmeadowLookout.java +++ b/Mage.Sets/src/mage/cards/g/GoldmeadowLookout.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.game.permanent.token.Token; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GoldmeadowStalwart.java b/Mage.Sets/src/mage/cards/g/GoldmeadowStalwart.java index 448f4a4eaf3..b8d5a937e93 100644 --- a/Mage.Sets/src/mage/cards/g/GoldmeadowStalwart.java +++ b/Mage.Sets/src/mage/cards/g/GoldmeadowStalwart.java @@ -27,18 +27,19 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.costs.OrCost; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.costs.mana.GenericManaCost; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoldnightCastigator.java b/Mage.Sets/src/mage/cards/g/GoldnightCastigator.java index 8ac451994ea..4908d2352ab 100644 --- a/Mage.Sets/src/mage/cards/g/GoldnightCastigator.java +++ b/Mage.Sets/src/mage/cards/g/GoldnightCastigator.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GoldnightCommander.java b/Mage.Sets/src/mage/cards/g/GoldnightCommander.java index d58511e3920..0371c8f3ed3 100644 --- a/Mage.Sets/src/mage/cards/g/GoldnightCommander.java +++ b/Mage.Sets/src/mage/cards/g/GoldnightCommander.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/g/GoldnightRedeemer.java b/Mage.Sets/src/mage/cards/g/GoldnightRedeemer.java index ee591041191..5562d1e40ff 100644 --- a/Mage.Sets/src/mage/cards/g/GoldnightRedeemer.java +++ b/Mage.Sets/src/mage/cards/g/GoldnightRedeemer.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -35,6 +34,7 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; diff --git a/Mage.Sets/src/mage/cards/g/GolemArtisan.java b/Mage.Sets/src/mage/cards/g/GolemArtisan.java index 368fe6f6aed..f1f087a0f11 100644 --- a/Mage.Sets/src/mage/cards/g/GolemArtisan.java +++ b/Mage.Sets/src/mage/cards/g/GolemArtisan.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,13 +42,20 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.choices.Choice; import mage.choices.ChoiceImpl; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.StaticFilters; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/g/GolemFoundry.java b/Mage.Sets/src/mage/cards/g/GolemFoundry.java index a2f90dbaba3..817f4bb8ab3 100644 --- a/Mage.Sets/src/mage/cards/g/GolemFoundry.java +++ b/Mage.Sets/src/mage/cards/g/GolemFoundry.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; @@ -37,10 +34,14 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterArtifactSpell; import mage.game.permanent.token.GolemToken; +import java.util.UUID; + /** * * @author Loki, North diff --git a/Mage.Sets/src/mage/cards/g/GolemSkinGauntlets.java b/Mage.Sets/src/mage/cards/g/GolemSkinGauntlets.java index cc07177f53a..bdcd7ccb5b8 100644 --- a/Mage.Sets/src/mage/cards/g/GolemSkinGauntlets.java +++ b/Mage.Sets/src/mage/cards/g/GolemSkinGauntlets.java @@ -37,7 +37,10 @@ import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; diff --git a/Mage.Sets/src/mage/cards/g/GolemsHeart.java b/Mage.Sets/src/mage/cards/g/GolemsHeart.java index 2ab886d12dc..caeaaaddf5e 100644 --- a/Mage.Sets/src/mage/cards/g/GolemsHeart.java +++ b/Mage.Sets/src/mage/cards/g/GolemsHeart.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; @@ -39,6 +38,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.stack.Spell; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GolgariBrownscale.java b/Mage.Sets/src/mage/cards/g/GolgariBrownscale.java index 85fe9f3120c..94c13aa7ae5 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariBrownscale.java +++ b/Mage.Sets/src/mage/cards/g/GolgariBrownscale.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.ZoneChangeTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GolgariCharm.java b/Mage.Sets/src/mage/cards/g/GolgariCharm.java index 0221e9aa6cd..46f1650dfd9 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariCharm.java +++ b/Mage.Sets/src/mage/cards/g/GolgariCharm.java @@ -27,19 +27,20 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.RegenerateAllEffect; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GolgariCluestone.java b/Mage.Sets/src/mage/cards/g/GolgariCluestone.java index 784dd5f9ca4..70485471e01 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariCluestone.java +++ b/Mage.Sets/src/mage/cards/g/GolgariCluestone.java @@ -28,9 +28,6 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +38,10 @@ import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GolgariDecoy.java b/Mage.Sets/src/mage/cards/g/GolgariDecoy.java index 0af7ea40de2..678296527f1 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariDecoy.java +++ b/Mage.Sets/src/mage/cards/g/GolgariDecoy.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,8 +34,11 @@ import mage.abilities.effects.common.combat.MustBeBlockedByAllSourceEffect; import mage.abilities.keyword.ScavengeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GolgariGermination.java b/Mage.Sets/src/mage/cards/g/GolgariGermination.java index 814d6b57b14..f668e00e7d6 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariGermination.java +++ b/Mage.Sets/src/mage/cards/g/GolgariGermination.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; @@ -40,6 +39,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.permanent.token.SaprolingToken; +import java.util.UUID; + /** * * @author Wehk diff --git a/Mage.Sets/src/mage/cards/g/GolgariGraveTroll.java b/Mage.Sets/src/mage/cards/g/GolgariGraveTroll.java index 65ff855217c..29bbb92b324 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariGraveTroll.java +++ b/Mage.Sets/src/mage/cards/g/GolgariGraveTroll.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -49,6 +48,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/g/GolgariGuildgate.java b/Mage.Sets/src/mage/cards/g/GolgariGuildgate.java index ecab71efe88..77b094e1670 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariGuildgate.java +++ b/Mage.Sets/src/mage/cards/g/GolgariGuildgate.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GolgariGuildmage.java b/Mage.Sets/src/mage/cards/g/GolgariGuildmage.java index 5c990dfff2d..c2e1382bdb6 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariGuildmage.java +++ b/Mage.Sets/src/mage/cards/g/GolgariGuildmage.java @@ -28,9 +28,6 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +37,7 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterCreatureCard; @@ -47,6 +45,8 @@ import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GolgariLonglegs.java b/Mage.Sets/src/mage/cards/g/GolgariLonglegs.java index b5c0d62cae9..a42a65d801f 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariLonglegs.java +++ b/Mage.Sets/src/mage/cards/g/GolgariLonglegs.java @@ -27,11 +27,12 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GolgariRotFarm.java b/Mage.Sets/src/mage/cards/g/GolgariRotFarm.java index c0fb393ceb9..97de881cf4c 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariRotFarm.java +++ b/Mage.Sets/src/mage/cards/g/GolgariRotFarm.java @@ -26,7 +26,7 @@ * or implied, of BetaSteward_at_googlemail.com. */ package mage.cards.g; -import java.util.UUID; + import mage.Mana; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GolgariRotwurm.java b/Mage.Sets/src/mage/cards/g/GolgariRotwurm.java index bede0ec00fe..06ec9a12125 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariRotwurm.java +++ b/Mage.Sets/src/mage/cards/g/GolgariRotwurm.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,11 +35,14 @@ import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; import mage.target.TargetPlayer; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GolgariSignet.java b/Mage.Sets/src/mage/cards/g/GolgariSignet.java index 7b43493ecef..7a097cd803b 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariSignet.java +++ b/Mage.Sets/src/mage/cards/g/GolgariSignet.java @@ -28,9 +28,6 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -38,8 +35,11 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GolgariThug.java b/Mage.Sets/src/mage/cards/g/GolgariThug.java index 87424135c59..b5289cc9fa1 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariThug.java +++ b/Mage.Sets/src/mage/cards/g/GolgariThug.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -36,10 +34,13 @@ import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.abilities.keyword.DredgeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/g/GolgothianSylex.java b/Mage.Sets/src/mage/cards/g/GolgothianSylex.java index db187142ea1..218d4c23fbf 100644 --- a/Mage.Sets/src/mage/cards/g/GolgothianSylex.java +++ b/Mage.Sets/src/mage/cards/g/GolgothianSylex.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -45,6 +44,8 @@ import mage.filter.predicate.permanent.TokenPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author MarcoMarin diff --git a/Mage.Sets/src/mage/cards/g/GoliathBeetle.java b/Mage.Sets/src/mage/cards/g/GoliathBeetle.java index 136d8272a7f..cefee97dbe0 100644 --- a/Mage.Sets/src/mage/cards/g/GoliathBeetle.java +++ b/Mage.Sets/src/mage/cards/g/GoliathBeetle.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoliathSphinx.java b/Mage.Sets/src/mage/cards/g/GoliathSphinx.java index d2b6d9d281b..1fd314b6795 100644 --- a/Mage.Sets/src/mage/cards/g/GoliathSphinx.java +++ b/Mage.Sets/src/mage/cards/g/GoliathSphinx.java @@ -28,12 +28,13 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoliathSpider.java b/Mage.Sets/src/mage/cards/g/GoliathSpider.java index cc556a39f72..8ead479c42b 100644 --- a/Mage.Sets/src/mage/cards/g/GoliathSpider.java +++ b/Mage.Sets/src/mage/cards/g/GoliathSpider.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/Gomazoa.java b/Mage.Sets/src/mage/cards/g/Gomazoa.java index 25fb7ea8727..4eb27b36dfd 100644 --- a/Mage.Sets/src/mage/cards/g/Gomazoa.java +++ b/Mage.Sets/src/mage/cards/g/Gomazoa.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -49,6 +46,10 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.watchers.Watcher; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GoneMissing.java b/Mage.Sets/src/mage/cards/g/GoneMissing.java index 2566733e2a2..e0d8da61202 100644 --- a/Mage.Sets/src/mage/cards/g/GoneMissing.java +++ b/Mage.Sets/src/mage/cards/g/GoneMissing.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.abilities.effects.keyword.InvestigateEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GontiLordOfLuxury.java b/Mage.Sets/src/mage/cards/g/GontiLordOfLuxury.java index 14186d4b5f0..84daa609ddd 100644 --- a/Mage.Sets/src/mage/cards/g/GontiLordOfLuxury.java +++ b/Mage.Sets/src/mage/cards/g/GontiLordOfLuxury.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -40,17 +37,8 @@ import mage.abilities.effects.AsThoughManaEffect; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.DeathtouchAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.ManaType; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.cards.*; +import mage.constants.*; import mage.filter.FilterCard; import mage.game.ExileZone; import mage.game.Game; @@ -61,6 +49,10 @@ import mage.target.common.TargetOpponent; import mage.target.targetpointer.FixedTarget; import mage.util.CardUtil; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 @@ -71,7 +63,7 @@ public class GontiLordOfLuxury extends CardImpl { public GontiLordOfLuxury(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Aetherborn"); this.subtype.add("Rogue"); this.power = new MageInt(2); @@ -133,7 +125,6 @@ class GontiLordOfLuxuryEffect extends OneShotEffect { card.setFaceDown(true, game); if (controller.moveCardsToExile(card, source, game, false, exileZoneId, sourceObject.getIdName())) { card.setFaceDown(true, game); - @SuppressWarnings("unchecked") Set exileZones = (Set) game.getState().getValue(GontiLordOfLuxury.VALUE_PREFIX + source.getSourceId().toString()); if (exileZones == null) { exileZones = new HashSet<>(); diff --git a/Mage.Sets/src/mage/cards/g/GontisAetherHeart.java b/Mage.Sets/src/mage/cards/g/GontisAetherHeart.java index ee085a07396..b77cd9f9231 100644 --- a/Mage.Sets/src/mage/cards/g/GontisAetherHeart.java +++ b/Mage.Sets/src/mage/cards/g/GontisAetherHeart.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -38,11 +37,14 @@ import mage.abilities.effects.common.turn.AddExtraTurnControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -58,7 +60,7 @@ public class GontisAetherHeart extends CardImpl { public GontisAetherHeart(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{6}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Whenever Gonti's Aether Heart or another artifact enters the battlefield under your control, you get {E}{E} (two energy counters). this.addAbility(new EntersBattlefieldControlledTriggeredAbility(Zone.BATTLEFIELD, new GetEnergyCountersControllerEffect(2), filter, false)); diff --git a/Mage.Sets/src/mage/cards/g/GontisMachinations.java b/Mage.Sets/src/mage/cards/g/GontisMachinations.java index 3752633a1eb..b1aa454a015 100644 --- a/Mage.Sets/src/mage/cards/g/GontisMachinations.java +++ b/Mage.Sets/src/mage/cards/g/GontisMachinations.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleActivatedAbility; @@ -47,6 +44,10 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.watchers.Watcher; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GoreHouseChainwalker.java b/Mage.Sets/src/mage/cards/g/GoreHouseChainwalker.java index 3d3d136b743..c219d3bb117 100644 --- a/Mage.Sets/src/mage/cards/g/GoreHouseChainwalker.java +++ b/Mage.Sets/src/mage/cards/g/GoreHouseChainwalker.java @@ -26,13 +26,14 @@ * or implied, of BetaSteward_at_googlemail.com. */ package mage.cards.g; - -import java.util.UUID; -import mage.constants.CardType; + import mage.MageInt; import mage.abilities.keyword.UnleashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoreSwine.java b/Mage.Sets/src/mage/cards/g/GoreSwine.java index ef17a5cf028..da2d27cc6c8 100644 --- a/Mage.Sets/src/mage/cards/g/GoreSwine.java +++ b/Mage.Sets/src/mage/cards/g/GoreSwine.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GoreVassal.java b/Mage.Sets/src/mage/cards/g/GoreVassal.java index 948620b1f07..0736a915307 100644 --- a/Mage.Sets/src/mage/cards/g/GoreVassal.java +++ b/Mage.Sets/src/mage/cards/g/GoreVassal.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -37,9 +34,13 @@ import mage.abilities.effects.common.RegenerateTargetEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GorehornMinotaurs.java b/Mage.Sets/src/mage/cards/g/GorehornMinotaurs.java index 6fc308393f8..60a0695d8af 100644 --- a/Mage.Sets/src/mage/cards/g/GorehornMinotaurs.java +++ b/Mage.Sets/src/mage/cards/g/GorehornMinotaurs.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.BloodthirstAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoretuskFirebeast.java b/Mage.Sets/src/mage/cards/g/GoretuskFirebeast.java index 9bed064a927..e60b716dcab 100644 --- a/Mage.Sets/src/mage/cards/g/GoretuskFirebeast.java +++ b/Mage.Sets/src/mage/cards/g/GoretuskFirebeast.java @@ -27,16 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Backfir3 diff --git a/Mage.Sets/src/mage/cards/g/GorgerWurm.java b/Mage.Sets/src/mage/cards/g/GorgerWurm.java index 615cc1fb606..8b60c0f5fe5 100644 --- a/Mage.Sets/src/mage/cards/g/GorgerWurm.java +++ b/Mage.Sets/src/mage/cards/g/GorgerWurm.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.effects.common.DevourEffect; import mage.abilities.keyword.DevourAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GorgonFlail.java b/Mage.Sets/src/mage/cards/g/GorgonFlail.java index b11ca8a6ef3..136d1a7a80b 100644 --- a/Mage.Sets/src/mage/cards/g/GorgonFlail.java +++ b/Mage.Sets/src/mage/cards/g/GorgonFlail.java @@ -27,11 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostEquippedEffect; @@ -40,6 +35,12 @@ import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GorgonRecluse.java b/Mage.Sets/src/mage/cards/g/GorgonRecluse.java index fda81d4cb08..0e72fc521fd 100644 --- a/Mage.Sets/src/mage/cards/g/GorgonRecluse.java +++ b/Mage.Sets/src/mage/cards/g/GorgonRecluse.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author nigelzor diff --git a/Mage.Sets/src/mage/cards/g/GorgonsHead.java b/Mage.Sets/src/mage/cards/g/GorgonsHead.java index 01d263ade53..0391c2fa47e 100644 --- a/Mage.Sets/src/mage/cards/g/GorgonsHead.java +++ b/Mage.Sets/src/mage/cards/g/GorgonsHead.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GorillaBerserkers.java b/Mage.Sets/src/mage/cards/g/GorillaBerserkers.java index 0e7945d28ec..03b29d40ac6 100644 --- a/Mage.Sets/src/mage/cards/g/GorillaBerserkers.java +++ b/Mage.Sets/src/mage/cards/g/GorillaBerserkers.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GorillaChieftain.java b/Mage.Sets/src/mage/cards/g/GorillaChieftain.java index 87a38ec3956..154c6f7d02d 100644 --- a/Mage.Sets/src/mage/cards/g/GorillaChieftain.java +++ b/Mage.Sets/src/mage/cards/g/GorillaChieftain.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/g/GorillaPack.java b/Mage.Sets/src/mage/cards/g/GorillaPack.java index cc207a78f52..338b286a0bc 100644 --- a/Mage.Sets/src/mage/cards/g/GorillaPack.java +++ b/Mage.Sets/src/mage/cards/g/GorillaPack.java @@ -27,8 +27,8 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.SacrificeSourceEffect; @@ -37,9 +37,10 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -57,7 +58,7 @@ public class GorillaPack extends CardImpl { // When you control no Forests, sacrifice Gorilla Pack. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Forest", "no Forests"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Forest", "no Forests"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/g/GorillaShaman.java b/Mage.Sets/src/mage/cards/g/GorillaShaman.java index 82652461694..40e02de8106 100644 --- a/Mage.Sets/src/mage/cards/g/GorillaShaman.java +++ b/Mage.Sets/src/mage/cards/g/GorillaShaman.java @@ -27,9 +27,9 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; @@ -37,7 +37,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -74,7 +75,7 @@ public class GorillaShaman extends CardImpl { int xValue = ability.getManaCostsToPay().getX(); ability.getTargets().clear(); FilterArtifactPermanent filter = new FilterArtifactPermanent(new StringBuilder("noncreature artifact with converted mana cost ").append(xValue).toString()); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, xValue)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue)); filter.add(Predicates.not(new CardTypePredicate(CardType.CREATURE))); Target target = new TargetPermanent(filter); ability.addTarget(target); diff --git a/Mage.Sets/src/mage/cards/g/GorillaTitan.java b/Mage.Sets/src/mage/cards/g/GorillaTitan.java index ee2c8ef3738..4bf9c094486 100644 --- a/Mage.Sets/src/mage/cards/g/GorillaTitan.java +++ b/Mage.Sets/src/mage/cards/g/GorillaTitan.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GorillaWarCry.java b/Mage.Sets/src/mage/cards/g/GorillaWarCry.java index f3385a2c3b5..1fd22041b3b 100644 --- a/Mage.Sets/src/mage/cards/g/GorillaWarCry.java +++ b/Mage.Sets/src/mage/cards/g/GorillaWarCry.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.CastOnlyDuringPhaseStepSourceAbility; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; import mage.abilities.condition.common.BeforeBlockersAreDeclaredCondition; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.TurnPhase; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +54,7 @@ public class GorillaWarCry extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{R}"); // Cast Gorilla War Cry only during combat before blockers are declared. - this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(TurnPhase.COMBAT, BeforeBlockersAreDeclaredCondition.getInstance())); + this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(TurnPhase.COMBAT, BeforeBlockersAreDeclaredCondition.instance)); // All creatures gain menace until end of turn. (They can't be blocked except by two or more creatures.) Effect effect = new GainAbilityAllEffect(new MenaceAbility(), Duration.EndOfTurn, new FilterCreaturePermanent()); diff --git a/Mage.Sets/src/mage/cards/g/GorillaWarrior.java b/Mage.Sets/src/mage/cards/g/GorillaWarrior.java index e9bf5e4b468..88dcd2c84fb 100644 --- a/Mage.Sets/src/mage/cards/g/GorillaWarrior.java +++ b/Mage.Sets/src/mage/cards/g/GorillaWarrior.java @@ -28,11 +28,12 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GoryosVengeance.java b/Mage.Sets/src/mage/cards/g/GoryosVengeance.java index e19f25160ab..92481075dc9 100644 --- a/Mage.Sets/src/mage/cards/g/GoryosVengeance.java +++ b/Mage.Sets/src/mage/cards/g/GoryosVengeance.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -41,10 +40,7 @@ import mage.abilities.keyword.SpliceOntoArcaneAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.game.Game; @@ -53,6 +49,8 @@ import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -62,7 +60,7 @@ public class GoryosVengeance extends CardImpl { private static final FilterCard filter = new FilterCard("legendary creature card"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public GoryosVengeance(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GossamerChains.java b/Mage.Sets/src/mage/cards/g/GossamerChains.java index 5a9c9cc6d7e..6b068cb6ade 100644 --- a/Mage.Sets/src/mage/cards/g/GossamerChains.java +++ b/Mage.Sets/src/mage/cards/g/GossamerChains.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.ReturnToHandFromBattlefieldSourceCost; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.UnblockedPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GossamerPhantasm.java b/Mage.Sets/src/mage/cards/g/GossamerPhantasm.java index 280d997d4c3..0f2e91abe35 100644 --- a/Mage.Sets/src/mage/cards/g/GossamerPhantasm.java +++ b/Mage.Sets/src/mage/cards/g/GossamerPhantasm.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesTargetTriggeredAbility; import mage.abilities.effects.common.SacrificeSourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GovernTheGuildless.java b/Mage.Sets/src/mage/cards/g/GovernTheGuildless.java index 492d5838a27..8a01bf87eab 100644 --- a/Mage.Sets/src/mage/cards/g/GovernTheGuildless.java +++ b/Mage.Sets/src/mage/cards/g/GovernTheGuildless.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect; @@ -40,6 +39,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.MonocoloredPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Wehk diff --git a/Mage.Sets/src/mage/cards/g/GrabTheReins.java b/Mage.Sets/src/mage/cards/g/GrabTheReins.java index 5782572e465..cf226b32838 100644 --- a/Mage.Sets/src/mage/cards/g/GrabTheReins.java +++ b/Mage.Sets/src/mage/cards/g/GrabTheReins.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.Effect; @@ -48,6 +47,8 @@ import mage.target.Target; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GracebladeArtisan.java b/Mage.Sets/src/mage/cards/g/GracebladeArtisan.java index 218afdd85b0..3f252ef4244 100644 --- a/Mage.Sets/src/mage/cards/g/GracebladeArtisan.java +++ b/Mage.Sets/src/mage/cards/g/GracebladeArtisan.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.AuraAttachedCount; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GracefulAdept.java b/Mage.Sets/src/mage/cards/g/GracefulAdept.java index 10013911bdc..b6dd662f13f 100644 --- a/Mage.Sets/src/mage/cards/g/GracefulAdept.java +++ b/Mage.Sets/src/mage/cards/g/GracefulAdept.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -38,6 +34,11 @@ import mage.abilities.effects.common.continuous.MaximumHandSizeControllerEffect; import mage.abilities.effects.common.continuous.MaximumHandSizeControllerEffect.HandSizeModification; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GracefulAntelope.java b/Mage.Sets/src/mage/cards/g/GracefulAntelope.java index 2085787674a..5cf5fe6b3d3 100644 --- a/Mage.Sets/src/mage/cards/g/GracefulAntelope.java +++ b/Mage.Sets/src/mage/cards/g/GracefulAntelope.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.target.Target; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author cbt33, Loki (Contaminated Ground), Plopman (Larceny) diff --git a/Mage.Sets/src/mage/cards/g/GracefulCat.java b/Mage.Sets/src/mage/cards/g/GracefulCat.java new file mode 100644 index 00000000000..7980497b0da --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GracefulCat.java @@ -0,0 +1,67 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author fireshoes + */ +public class GracefulCat extends CardImpl { + + public GracefulCat(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); + + this.subtype.add("Cat"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Whenever Graceful Cat attacks, it gets +1/+1 until end of turn. + Effect effect = new BoostSourceEffect(1, 1, Duration.EndOfTurn); + effect.setText("it gets +1/+1 until end of turn"); + this.addAbility(new AttacksTriggeredAbility(effect, false)); + } + + public GracefulCat(final GracefulCat card) { + super(card); + } + + @Override + public GracefulCat copy() { + return new GracefulCat(this); + } +} diff --git a/Mage.Sets/src/mage/cards/g/GracefulReprieve.java b/Mage.Sets/src/mage/cards/g/GracefulReprieve.java index f727f6d91b7..cb5f326be2d 100644 --- a/Mage.Sets/src/mage/cards/g/GracefulReprieve.java +++ b/Mage.Sets/src/mage/cards/g/GracefulReprieve.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GrafHarvest.java b/Mage.Sets/src/mage/cards/g/GrafHarvest.java index 35bc105f1ab..47669f222aa 100644 --- a/Mage.Sets/src/mage/cards/g/GrafHarvest.java +++ b/Mage.Sets/src/mage/cards/g/GrafHarvest.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -48,6 +47,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.ZombieToken; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/g/GrafMole.java b/Mage.Sets/src/mage/cards/g/GrafMole.java index 050fa143b1c..1805f73a849 100644 --- a/Mage.Sets/src/mage/cards/g/GrafMole.java +++ b/Mage.Sets/src/mage/cards/g/GrafMole.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.GainLifeEffect; @@ -39,6 +38,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GrafdiggersCage.java b/Mage.Sets/src/mage/cards/g/GrafdiggersCage.java index bc07a31920d..64588972143 100644 --- a/Mage.Sets/src/mage/cards/g/GrafdiggersCage.java +++ b/Mage.Sets/src/mage/cards/g/GrafdiggersCage.java @@ -27,23 +27,23 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.events.ZoneChangeEvent; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/g/GraftedExoskeleton.java b/Mage.Sets/src/mage/cards/g/GraftedExoskeleton.java index ac1f0fd9b40..fe9b60ebbee 100644 --- a/Mage.Sets/src/mage/cards/g/GraftedExoskeleton.java +++ b/Mage.Sets/src/mage/cards/g/GraftedExoskeleton.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.UnattachedTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -40,6 +37,12 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GraftedSkullcap.java b/Mage.Sets/src/mage/cards/g/GraftedSkullcap.java index b95dde453db..016104f44c2 100644 --- a/Mage.Sets/src/mage/cards/g/GraftedSkullcap.java +++ b/Mage.Sets/src/mage/cards/g/GraftedSkullcap.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.BeginningOfDrawTriggeredAbility; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GraftedWargear.java b/Mage.Sets/src/mage/cards/g/GraftedWargear.java index d3194e1de83..ae5c3803edd 100644 --- a/Mage.Sets/src/mage/cards/g/GraftedWargear.java +++ b/Mage.Sets/src/mage/cards/g/GraftedWargear.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.UnattachedTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GrandAbolisher.java b/Mage.Sets/src/mage/cards/g/GrandAbolisher.java index df26b49d403..3136d887ac0 100644 --- a/Mage.Sets/src/mage/cards/g/GrandAbolisher.java +++ b/Mage.Sets/src/mage/cards/g/GrandAbolisher.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -44,6 +43,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * @author nantuko */ diff --git a/Mage.Sets/src/mage/cards/g/GrandArbiterAugustinIV.java b/Mage.Sets/src/mage/cards/g/GrandArbiterAugustinIV.java index 636b2e8f752..c91e672fbda 100644 --- a/Mage.Sets/src/mage/cards/g/GrandArbiterAugustinIV.java +++ b/Mage.Sets/src/mage/cards/g/GrandArbiterAugustinIV.java @@ -37,11 +37,7 @@ import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; @@ -62,7 +58,7 @@ public class GrandArbiterAugustinIV extends CardImpl { public GrandArbiterAugustinIV(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); diff --git a/Mage.Sets/src/mage/cards/g/GrandArchitect.java b/Mage.Sets/src/mage/cards/g/GrandArchitect.java index 5bff9e76034..ad1e0f67a2f 100644 --- a/Mage.Sets/src/mage/cards/g/GrandArchitect.java +++ b/Mage.Sets/src/mage/cards/g/GrandArchitect.java @@ -27,12 +27,7 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.ConditionalMana; -import mage.MageInt; -import mage.MageObject; -import mage.Mana; -import mage.ObjectColor; +import mage.*; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,12 +40,7 @@ import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.mana.ActivatedManaAbilityImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -62,6 +52,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com, nantuko diff --git a/Mage.Sets/src/mage/cards/g/GrandColiseum.java b/Mage.Sets/src/mage/cards/g/GrandColiseum.java index 14ea0416a3c..d2e056abad7 100644 --- a/Mage.Sets/src/mage/cards/g/GrandColiseum.java +++ b/Mage.Sets/src/mage/cards/g/GrandColiseum.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.effects.common.DamageControllerEffect; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author KholdFuzion diff --git a/Mage.Sets/src/mage/cards/g/GrandMelee.java b/Mage.Sets/src/mage/cards/g/GrandMelee.java index 62c8b6ee880..d9f73d49b5e 100644 --- a/Mage.Sets/src/mage/cards/g/GrandMelee.java +++ b/Mage.Sets/src/mage/cards/g/GrandMelee.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.AttacksIfAbleAllEffect; @@ -39,6 +38,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.watchers.common.AttackedThisTurnWatcher; +import java.util.UUID; + /** * * @author fenhl diff --git a/Mage.Sets/src/mage/cards/g/GrandMoffTarkin.java b/Mage.Sets/src/mage/cards/g/GrandMoffTarkin.java index 3cb1f6b60da..d549ccab1ba 100644 --- a/Mage.Sets/src/mage/cards/g/GrandMoffTarkin.java +++ b/Mage.Sets/src/mage/cards/g/GrandMoffTarkin.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -37,16 +36,19 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; -import mage.game.events.GameEvent.EventType; import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Styxo/spjspj @@ -55,7 +57,7 @@ public class GrandMoffTarkin extends CardImpl { public GrandMoffTarkin(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/g/GrandmotherSengir.java b/Mage.Sets/src/mage/cards/g/GrandmotherSengir.java index 0fa3bb3355a..921aeb3927f 100644 --- a/Mage.Sets/src/mage/cards/g/GrandmotherSengir.java +++ b/Mage.Sets/src/mage/cards/g/GrandmotherSengir.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +37,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author hanasu @@ -49,7 +51,7 @@ public class GrandmotherSengir extends CardImpl { public GrandmotherSengir(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/g/GrangerGuildmage.java b/Mage.Sets/src/mage/cards/g/GrangerGuildmage.java index 5ef84eb0b5b..ef22f7a30e1 100644 --- a/Mage.Sets/src/mage/cards/g/GrangerGuildmage.java +++ b/Mage.Sets/src/mage/cards/g/GrangerGuildmage.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GraniteGargoyle.java b/Mage.Sets/src/mage/cards/g/GraniteGargoyle.java index 994d4ca8c10..762d7d5568a 100644 --- a/Mage.Sets/src/mage/cards/g/GraniteGargoyle.java +++ b/Mage.Sets/src/mage/cards/g/GraniteGargoyle.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GraniteGrip.java b/Mage.Sets/src/mage/cards/g/GraniteGrip.java index 28cef455373..0de7f25519a 100644 --- a/Mage.Sets/src/mage/cards/g/GraniteGrip.java +++ b/Mage.Sets/src/mage/cards/g/GraniteGrip.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.AttachEffect; @@ -37,12 +34,15 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GraniteShard.java b/Mage.Sets/src/mage/cards/g/GraniteShard.java index 96940fc9551..b1a031be96a 100644 --- a/Mage.Sets/src/mage/cards/g/GraniteShard.java +++ b/Mage.Sets/src/mage/cards/g/GraniteShard.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/Granulate.java b/Mage.Sets/src/mage/cards/g/Granulate.java index e583326ea04..5ccfe2706f5 100644 --- a/Mage.Sets/src/mage/cards/g/Granulate.java +++ b/Mage.Sets/src/mage/cards/g/Granulate.java @@ -27,16 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterNonlandPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; +import java.util.UUID; + /** * * @author Plopman @@ -46,7 +47,7 @@ public class Granulate extends CardImpl { private static final FilterNonlandPermanent filter = new FilterNonlandPermanent("nonland artifact with converted mana cost 4 or less"); static { filter.add(new CardTypePredicate(CardType.ARTIFACT)); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 5)); } public Granulate(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{R}{R}"); diff --git a/Mage.Sets/src/mage/cards/g/Grapeshot.java b/Mage.Sets/src/mage/cards/g/Grapeshot.java index 8af88a2ccca..be18109ba65 100644 --- a/Mage.Sets/src/mage/cards/g/Grapeshot.java +++ b/Mage.Sets/src/mage/cards/g/Grapeshot.java @@ -27,14 +27,15 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.StormAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GrapeshotCatapult.java b/Mage.Sets/src/mage/cards/g/GrapeshotCatapult.java index f8d715a5c13..202774507fe 100644 --- a/Mage.Sets/src/mage/cards/g/GrapeshotCatapult.java +++ b/Mage.Sets/src/mage/cards/g/GrapeshotCatapult.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/g/GrappleWithThePast.java b/Mage.Sets/src/mage/cards/g/GrappleWithThePast.java index ba5fa7a1e35..3f7f4a0c666 100644 --- a/Mage.Sets/src/mage/cards/g/GrappleWithThePast.java +++ b/Mage.Sets/src/mage/cards/g/GrappleWithThePast.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect; @@ -44,6 +43,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GrapplerSpider.java b/Mage.Sets/src/mage/cards/g/GrapplerSpider.java index b8082101272..9d726d479e1 100644 --- a/Mage.Sets/src/mage/cards/g/GrapplerSpider.java +++ b/Mage.Sets/src/mage/cards/g/GrapplerSpider.java @@ -28,12 +28,13 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GrapplingHook.java b/Mage.Sets/src/mage/cards/g/GrapplingHook.java index 19952f6a5ae..d163a3025c8 100644 --- a/Mage.Sets/src/mage/cards/g/GrapplingHook.java +++ b/Mage.Sets/src/mage/cards/g/GrapplingHook.java @@ -27,12 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.AttacksAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,10 +37,13 @@ import mage.abilities.keyword.DoubleStrikeAbility; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GraspOfDarkness.java b/Mage.Sets/src/mage/cards/g/GraspOfDarkness.java index a2241c57931..d9d8727cd4b 100644 --- a/Mage.Sets/src/mage/cards/g/GraspOfDarkness.java +++ b/Mage.Sets/src/mage/cards/g/GraspOfDarkness.java @@ -28,14 +28,15 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GraspOfFate.java b/Mage.Sets/src/mage/cards/g/GraspOfFate.java index df48fd761d8..3bd4f6e0efe 100644 --- a/Mage.Sets/src/mage/cards/g/GraspOfFate.java +++ b/Mage.Sets/src/mage/cards/g/GraspOfFate.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility; @@ -44,7 +43,6 @@ import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; -import static mage.filter.predicate.permanent.ControllerControlsIslandPredicate.filter; import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; import mage.game.permanent.Permanent; @@ -52,6 +50,10 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.util.CardUtil; +import java.util.UUID; + +import static mage.filter.predicate.permanent.ControllerControlsIslandPredicate.filter; + /** * * @author fireshoes @@ -115,7 +117,7 @@ class GraspOfFateExileEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Permanent permanent = game.getPermanent(source.getSourceId()); if (permanent != null) { - return new ConditionalOneShotEffect(new ExileTargetEffect(CardUtil.getCardExileZoneId(game, source), permanent.getIdName(), Zone.BATTLEFIELD, true), new SourceOnBattlefieldCondition()).apply(game, source); + return new ConditionalOneShotEffect(new ExileTargetEffect(CardUtil.getCardExileZoneId(game, source), permanent.getIdName(), Zone.BATTLEFIELD, true), SourceOnBattlefieldCondition.instance).apply(game, source); } return false; } diff --git a/Mage.Sets/src/mage/cards/g/GraspOfPhantoms.java b/Mage.Sets/src/mage/cards/g/GraspOfPhantoms.java index 9e1463218e6..a749b04c1fb 100644 --- a/Mage.Sets/src/mage/cards/g/GraspOfPhantoms.java +++ b/Mage.Sets/src/mage/cards/g/GraspOfPhantoms.java @@ -27,17 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TimingRule; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/g/GraspingDunes.java b/Mage.Sets/src/mage/cards/g/GraspingDunes.java new file mode 100644 index 00000000000..afbbb355cd5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GraspingDunes.java @@ -0,0 +1,76 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.ActivateAsSorceryActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author jeffwadsworth + */ +public class GraspingDunes extends CardImpl { + + public GraspingDunes(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + this.subtype.add("Desert"); + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}, {T}, Sacrifice Grasping Dunes: Put a -1/-1 counter on target creature. Activate this ability only any time you could cast a sorcery. + Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.M1M1.createInstance()), new ManaCostsImpl("{1}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + + } + + public GraspingDunes(final GraspingDunes card) { + super(card); + } + + @Override + public GraspingDunes copy() { + return new GraspingDunes(this); + } +} diff --git a/Mage.Sets/src/mage/cards/g/GrasslandCrusader.java b/Mage.Sets/src/mage/cards/g/GrasslandCrusader.java index 8f55a36f526..2fa213f12bb 100644 --- a/Mage.Sets/src/mage/cards/g/GrasslandCrusader.java +++ b/Mage.Sets/src/mage/cards/g/GrasslandCrusader.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,6 +42,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/Grasslands.java b/Mage.Sets/src/mage/cards/g/Grasslands.java index 0cbc8a10610..c7d36828caa 100644 --- a/Mage.Sets/src/mage/cards/g/Grasslands.java +++ b/Mage.Sets/src/mage/cards/g/Grasslands.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.FetchLandActivatedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GratuitousViolence.java b/Mage.Sets/src/mage/cards/g/GratuitousViolence.java index 2465d48dde0..d243c1fd160 100644 --- a/Mage.Sets/src/mage/cards/g/GratuitousViolence.java +++ b/Mage.Sets/src/mage/cards/g/GratuitousViolence.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/GraveBetrayal.java b/Mage.Sets/src/mage/cards/g/GraveBetrayal.java index a8f648af1a4..c05107adf68 100644 --- a/Mage.Sets/src/mage/cards/g/GraveBetrayal.java +++ b/Mage.Sets/src/mage/cards/g/GraveBetrayal.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.TriggeredAbilityImpl; @@ -36,15 +35,11 @@ import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.continuous.BecomesBlackZombieAdditionEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; @@ -53,6 +48,8 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -147,7 +144,7 @@ class GraveBetrayalEffect extends OneShotEffect { if (card.putOntoBattlefield(game, currentZone, source.getSourceId(), source.getControllerId())) { Permanent creature = game.getPermanent(card.getId()); creature.addCounters(CounterType.P1P1.createInstance(), source, game); - ContinuousEffect effect = new GraveBetrayalContiniousEffect(); + ContinuousEffect effect = new BecomesBlackZombieAdditionEffect(); effect.setTargetPointer(new FixedTarget(creature.getId())); game.addEffect(effect, source); return true; @@ -157,54 +154,3 @@ class GraveBetrayalEffect extends OneShotEffect { } } - -class GraveBetrayalContiniousEffect extends ContinuousEffectImpl { - - public GraveBetrayalContiniousEffect() { - super(Duration.Custom, Outcome.Neutral); - staticText = "That creature is a black Zombie in addition to its other colors and types"; - } - - public GraveBetrayalContiniousEffect(final GraveBetrayalContiniousEffect effect) { - super(effect); - } - - @Override - public GraveBetrayalContiniousEffect copy() { - return new GraveBetrayalContiniousEffect(this); - } - - @Override - public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { - Permanent creature = game.getPermanent(targetPointer.getFirst(game, source)); - if (creature != null) { - switch (layer) { - case TypeChangingEffects_4: - if (sublayer == SubLayer.NA) { - creature.getSubtype(game).add("Zombie"); - } - break; - case ColorChangingEffects_5: - if (sublayer == SubLayer.NA) { - creature.getColor(game).setBlack(true); - } - break; - } - return true; - } else { - this.used = true; - } - return false; - } - - @Override - public boolean apply(Game game, Ability source) { - return false; - } - - @Override - public boolean hasLayer(Layer layer) { - return layer == Layer.ColorChangingEffects_5 || layer == Layer.TypeChangingEffects_4; - } - -} diff --git a/Mage.Sets/src/mage/cards/g/GraveBirthing.java b/Mage.Sets/src/mage/cards/g/GraveBirthing.java index cd8c0849028..86d09728367 100644 --- a/Mage.Sets/src/mage/cards/g/GraveBirthing.java +++ b/Mage.Sets/src/mage/cards/g/GraveBirthing.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; @@ -47,6 +46,8 @@ import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GraveBramble.java b/Mage.Sets/src/mage/cards/g/GraveBramble.java index 00671c86a29..0034df0dcdd 100644 --- a/Mage.Sets/src/mage/cards/g/GraveBramble.java +++ b/Mage.Sets/src/mage/cards/g/GraveBramble.java @@ -27,17 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GraveDefiler.java b/Mage.Sets/src/mage/cards/g/GraveDefiler.java index dc0ed10ab88..d7830bc7cd9 100644 --- a/Mage.Sets/src/mage/cards/g/GraveDefiler.java +++ b/Mage.Sets/src/mage/cards/g/GraveDefiler.java @@ -27,20 +27,21 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.RegenerateSourceEffect; +import mage.abilities.effects.common.RevealLibraryPutIntoHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.effects.common.RevealLibraryPutIntoHandEffect; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GraveExchange.java b/Mage.Sets/src/mage/cards/g/GraveExchange.java index fed5d6a8ed5..4e1a2627a86 100644 --- a/Mage.Sets/src/mage/cards/g/GraveExchange.java +++ b/Mage.Sets/src/mage/cards/g/GraveExchange.java @@ -27,14 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreatureCard; import mage.game.Game; @@ -45,6 +44,8 @@ import mage.target.TargetPlayer; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GravePact.java b/Mage.Sets/src/mage/cards/g/GravePact.java index 044f75d37bd..8298399fba3 100644 --- a/Mage.Sets/src/mage/cards/g/GravePact.java +++ b/Mage.Sets/src/mage/cards/g/GravePact.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.OneShotEffect; @@ -46,6 +43,10 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GravePeril.java b/Mage.Sets/src/mage/cards/g/GravePeril.java index d0edc88b67d..f699fa972ab 100644 --- a/Mage.Sets/src/mage/cards/g/GravePeril.java +++ b/Mage.Sets/src/mage/cards/g/GravePeril.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; @@ -46,6 +45,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/GraveRobbers.java b/Mage.Sets/src/mage/cards/g/GraveRobbers.java index 57933c75986..e469794b7be 100644 --- a/Mage.Sets/src/mage/cards/g/GraveRobbers.java +++ b/Mage.Sets/src/mage/cards/g/GraveRobbers.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterArtifactCard; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GraveScrabbler.java b/Mage.Sets/src/mage/cards/g/GraveScrabbler.java index 80cfba14ca6..8d5648a3b2b 100644 --- a/Mage.Sets/src/mage/cards/g/GraveScrabbler.java +++ b/Mage.Sets/src/mage/cards/g/GraveScrabbler.java @@ -1,7 +1,5 @@ package mage.cards.g; -import java.util.UUID; - import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbility; @@ -19,6 +17,8 @@ import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + public class GraveScrabbler extends CardImpl { public GraveScrabbler(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GraveServitude.java b/Mage.Sets/src/mage/cards/g/GraveServitude.java index 5d2100b1db2..d14481b4f46 100644 --- a/Mage.Sets/src/mage/cards/g/GraveServitude.java +++ b/Mage.Sets/src/mage/cards/g/GraveServitude.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SacrificeIfCastAtInstantTimeTriggeredAbility; @@ -40,14 +39,12 @@ import mage.abilities.effects.common.continuous.SetCardColorAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GraveShellScarab.java b/Mage.Sets/src/mage/cards/g/GraveShellScarab.java index aaa8a14ef2b..8dd08424a70 100644 --- a/Mage.Sets/src/mage/cards/g/GraveShellScarab.java +++ b/Mage.Sets/src/mage/cards/g/GraveShellScarab.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,8 +36,11 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.DredgeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author jonubuu diff --git a/Mage.Sets/src/mage/cards/g/GraveSifter.java b/Mage.Sets/src/mage/cards/g/GraveSifter.java index 643d3ff1d75..509f0cfb395 100644 --- a/Mage.Sets/src/mage/cards/g/GraveSifter.java +++ b/Mage.Sets/src/mage/cards/g/GraveSifter.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -49,6 +48,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GraveStrength.java b/Mage.Sets/src/mage/cards/g/GraveStrength.java index d8bfe97205d..1ad0e82bf52 100644 --- a/Mage.Sets/src/mage/cards/g/GraveStrength.java +++ b/Mage.Sets/src/mage/cards/g/GraveStrength.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect; @@ -39,6 +38,8 @@ import mage.counters.CounterType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GraveTitan.java b/Mage.Sets/src/mage/cards/g/GraveTitan.java index fb8e7b2de3b..a1e09527f44 100644 --- a/Mage.Sets/src/mage/cards/g/GraveTitan.java +++ b/Mage.Sets/src/mage/cards/g/GraveTitan.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.ZombieToken; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/g/GraveUpheaval.java b/Mage.Sets/src/mage/cards/g/GraveUpheaval.java index 60ccfd47007..8b2c2ff5155 100644 --- a/Mage.Sets/src/mage/cards/g/GraveUpheaval.java +++ b/Mage.Sets/src/mage/cards/g/GraveUpheaval.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.ContinuousEffect; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.target.common.TargetCardInGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GravebaneZombie.java b/Mage.Sets/src/mage/cards/g/GravebaneZombie.java index 28758bd6549..6c2bf215f88 100644 --- a/Mage.Sets/src/mage/cards/g/GravebaneZombie.java +++ b/Mage.Sets/src/mage/cards/g/GravebaneZombie.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/g/Gravebind.java b/Mage.Sets/src/mage/cards/g/Gravebind.java index c1c77fc34bd..f4a0fa6c262 100644 --- a/Mage.Sets/src/mage/cards/g/Gravebind.java +++ b/Mage.Sets/src/mage/cards/g/Gravebind.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; import mage.abilities.effects.common.CantBeRegeneratedTargetEffect; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GravebladeMarauder.java b/Mage.Sets/src/mage/cards/g/GravebladeMarauder.java index 197968846e5..3771be17ec9 100644 --- a/Mage.Sets/src/mage/cards/g/GravebladeMarauder.java +++ b/Mage.Sets/src/mage/cards/g/GravebladeMarauder.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -41,6 +40,8 @@ import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GravebornMuse.java b/Mage.Sets/src/mage/cards/g/GravebornMuse.java index d5055e1be20..f3a0a2349ad 100644 --- a/Mage.Sets/src/mage/cards/g/GravebornMuse.java +++ b/Mage.Sets/src/mage/cards/g/GravebornMuse.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -38,10 +35,13 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/Gravecrawler.java b/Mage.Sets/src/mage/cards/g/Gravecrawler.java index 3c0cfc10eaa..1412ae8bb1e 100644 --- a/Mage.Sets/src/mage/cards/g/Gravecrawler.java +++ b/Mage.Sets/src/mage/cards/g/Gravecrawler.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CantBlockAbility; @@ -37,9 +35,7 @@ import mage.abilities.effects.AsThoughEffectImpl; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.Duration; -import mage.constants.Outcome; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; diff --git a/Mage.Sets/src/mage/cards/g/Gravedigger.java b/Mage.Sets/src/mage/cards/g/Gravedigger.java index 88fc9d9a064..07e0b38eb2a 100644 --- a/Mage.Sets/src/mage/cards/g/Gravedigger.java +++ b/Mage.Sets/src/mage/cards/g/Gravedigger.java @@ -28,17 +28,18 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/g/Gravegouger.java b/Mage.Sets/src/mage/cards/g/Gravegouger.java index 01d53eea372..d4cdc373741 100644 --- a/Mage.Sets/src/mage/cards/g/Gravegouger.java +++ b/Mage.Sets/src/mage/cards/g/Gravegouger.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.target.common.TargetCardInASingleGraveyard; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GravelSlinger.java b/Mage.Sets/src/mage/cards/g/GravelSlinger.java index 9b5517b14a4..9276a9660f6 100644 --- a/Mage.Sets/src/mage/cards/g/GravelSlinger.java +++ b/Mage.Sets/src/mage/cards/g/GravelSlinger.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterAttackingOrBlockingCreature; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GravelgillAxeshark.java b/Mage.Sets/src/mage/cards/g/GravelgillAxeshark.java index 918e703377b..7630c384af2 100644 --- a/Mage.Sets/src/mage/cards/g/GravelgillAxeshark.java +++ b/Mage.Sets/src/mage/cards/g/GravelgillAxeshark.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.PersistAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GravelgillDuo.java b/Mage.Sets/src/mage/cards/g/GravelgillDuo.java index 00ca7e80979..35b63cf592b 100644 --- a/Mage.Sets/src/mage/cards/g/GravelgillDuo.java +++ b/Mage.Sets/src/mage/cards/g/GravelgillDuo.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -38,9 +35,13 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GravenCairns.java b/Mage.Sets/src/mage/cards/g/GravenCairns.java index a87fb09f52a..aa7892ea5a9 100644 --- a/Mage.Sets/src/mage/cards/g/GravenCairns.java +++ b/Mage.Sets/src/mage/cards/g/GravenCairns.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.Mana; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -36,8 +34,11 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GravenDominator.java b/Mage.Sets/src/mage/cards/g/GravenDominator.java index dbc7e61c6ac..952b0c52fb4 100644 --- a/Mage.Sets/src/mage/cards/g/GravenDominator.java +++ b/Mage.Sets/src/mage/cards/g/GravenDominator.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.continuous.SetPowerToughnessAllEffect; @@ -40,6 +39,8 @@ import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/Gravepurge.java b/Mage.Sets/src/mage/cards/g/Gravepurge.java index 07b85111184..7f684a4180e 100644 --- a/Mage.Sets/src/mage/cards/g/Gravepurge.java +++ b/Mage.Sets/src/mage/cards/g/Gravepurge.java @@ -27,15 +27,16 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GraverobberSpider.java b/Mage.Sets/src/mage/cards/g/GraverobberSpider.java index 01c5d92c16c..546f4f93ff7 100644 --- a/Mage.Sets/src/mage/cards/g/GraverobberSpider.java +++ b/Mage.Sets/src/mage/cards/g/GraverobberSpider.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; @@ -43,6 +42,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GravespawnSovereign.java b/Mage.Sets/src/mage/cards/g/GravespawnSovereign.java index 73ec30086c0..dab0b98335b 100644 --- a/Mage.Sets/src/mage/cards/g/GravespawnSovereign.java +++ b/Mage.Sets/src/mage/cards/g/GravespawnSovereign.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/g/Gravestorm.java b/Mage.Sets/src/mage/cards/g/Gravestorm.java index 179d78d76f8..15be2d62320 100644 --- a/Mage.Sets/src/mage/cards/g/Gravestorm.java +++ b/Mage.Sets/src/mage/cards/g/Gravestorm.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -45,6 +44,8 @@ import mage.players.Player; import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/g/GravetillerWurm.java b/Mage.Sets/src/mage/cards/g/GravetillerWurm.java index 2e2f0d3c3cf..39f329081ee 100644 --- a/Mage.Sets/src/mage/cards/g/GravetillerWurm.java +++ b/Mage.Sets/src/mage/cards/g/GravetillerWurm.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.MorbidCondition; @@ -37,8 +35,11 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GraveyardShovel.java b/Mage.Sets/src/mage/cards/g/GraveyardShovel.java index bc9162be1e3..aaff96109c9 100644 --- a/Mage.Sets/src/mage/cards/g/GraveyardShovel.java +++ b/Mage.Sets/src/mage/cards/g/GraveyardShovel.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,6 +35,9 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; diff --git a/Mage.Sets/src/mage/cards/g/GravitationalShift.java b/Mage.Sets/src/mage/cards/g/GravitationalShift.java index 51c90a5d20b..da9e6e3c7ca 100644 --- a/Mage.Sets/src/mage/cards/g/GravitationalShift.java +++ b/Mage.Sets/src/mage/cards/g/GravitationalShift.java @@ -27,19 +27,20 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GravityNegator.java b/Mage.Sets/src/mage/cards/g/GravityNegator.java index 8295039662e..77b9aa9628f 100644 --- a/Mage.Sets/src/mage/cards/g/GravityNegator.java +++ b/Mage.Sets/src/mage/cards/g/GravityNegator.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GravitySphere.java b/Mage.Sets/src/mage/cards/g/GravitySphere.java index 49e8f6c4f02..54b17aa7f46 100644 --- a/Mage.Sets/src/mage/cards/g/GravitySphere.java +++ b/Mage.Sets/src/mage/cards/g/GravitySphere.java @@ -27,16 +27,20 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.LoseAbilityAllEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.common.FilterCreaturePermanent; +import mage.filter.FilterPermanent; +import mage.filter.predicate.mageobject.CardTypePredicate; + +import java.util.UUID; /** * @@ -44,12 +48,21 @@ import mage.filter.common.FilterCreaturePermanent; */ public class GravitySphere extends CardImpl { + final static private FilterPermanent filter = new FilterPermanent("All creatures"); + + static { + filter.add(new CardTypePredicate(CardType.CREATURE)); + } + public GravitySphere(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{R}"); - this.supertype.add("World"); + addSuperType(SuperType.WORLD); // All creatures lose flying. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new LoseAbilityAllEffect(new FilterCreaturePermanent("All creatures"), FlyingAbility.getInstance(), Duration.WhileOnBattlefield))); + Effect effect = new LoseAbilityAllEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield, filter); + effect.setText("All creatures lose flying"); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); + } public GravitySphere(final GravitySphere card) { diff --git a/Mage.Sets/src/mage/cards/g/GrayOgre.java b/Mage.Sets/src/mage/cards/g/GrayOgre.java index 84034bb4f8b..e77c5dfc2fa 100644 --- a/Mage.Sets/src/mage/cards/g/GrayOgre.java +++ b/Mage.Sets/src/mage/cards/g/GrayOgre.java @@ -27,11 +27,12 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GraypeltHunter.java b/Mage.Sets/src/mage/cards/g/GraypeltHunter.java index 73c9587ee4f..ec05e2e0285 100644 --- a/Mage.Sets/src/mage/cards/g/GraypeltHunter.java +++ b/Mage.Sets/src/mage/cards/g/GraypeltHunter.java @@ -27,16 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GraypeltRefuge.java b/Mage.Sets/src/mage/cards/g/GraypeltRefuge.java index 5580141ec5d..a9de3921b52 100644 --- a/Mage.Sets/src/mage/cards/g/GraypeltRefuge.java +++ b/Mage.Sets/src/mage/cards/g/GraypeltRefuge.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -36,6 +34,9 @@ import mage.abilities.mana.GreenManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GrayscaledGharial.java b/Mage.Sets/src/mage/cards/g/GrayscaledGharial.java index e96eaa0d0be..62111639b76 100644 --- a/Mage.Sets/src/mage/cards/g/GrayscaledGharial.java +++ b/Mage.Sets/src/mage/cards/g/GrayscaledGharial.java @@ -28,12 +28,13 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.IslandwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GrazingGladehart.java b/Mage.Sets/src/mage/cards/g/GrazingGladehart.java index a464d7e645d..d1bf89a9a28 100644 --- a/Mage.Sets/src/mage/cards/g/GrazingGladehart.java +++ b/Mage.Sets/src/mage/cards/g/GrazingGladehart.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.LandfallAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GrazingKelpie.java b/Mage.Sets/src/mage/cards/g/GrazingKelpie.java index 0be2a4c5615..b5774fd5097 100644 --- a/Mage.Sets/src/mage/cards/g/GrazingKelpie.java +++ b/Mage.Sets/src/mage/cards/g/GrazingKelpie.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GreatDefender.java b/Mage.Sets/src/mage/cards/g/GreatDefender.java index 73f498fed63..ef1f55a4f42 100644 --- a/Mage.Sets/src/mage/cards/g/GreatDefender.java +++ b/Mage.Sets/src/mage/cards/g/GreatDefender.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.dynamicvalue.common.TargetConvertedManaCost; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/g/GreatFurnace.java b/Mage.Sets/src/mage/cards/g/GreatFurnace.java index d33689b19a8..970a320a847 100644 --- a/Mage.Sets/src/mage/cards/g/GreatFurnace.java +++ b/Mage.Sets/src/mage/cards/g/GreatFurnace.java @@ -28,11 +28,12 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GreatHart.java b/Mage.Sets/src/mage/cards/g/GreatHart.java index 47d57675ef4..ad8bb00d982 100644 --- a/Mage.Sets/src/mage/cards/g/GreatHart.java +++ b/Mage.Sets/src/mage/cards/g/GreatHart.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GreatHornKrushok.java b/Mage.Sets/src/mage/cards/g/GreatHornKrushok.java index e5c61922567..06436b5a082 100644 --- a/Mage.Sets/src/mage/cards/g/GreatHornKrushok.java +++ b/Mage.Sets/src/mage/cards/g/GreatHornKrushok.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GreatOakGuardian.java b/Mage.Sets/src/mage/cards/g/GreatOakGuardian.java index d0ae4bad2f8..93e4b56f908 100644 --- a/Mage.Sets/src/mage/cards/g/GreatOakGuardian.java +++ b/Mage.Sets/src/mage/cards/g/GreatOakGuardian.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.Iterator; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; @@ -40,17 +37,17 @@ import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GreatSableStag.java b/Mage.Sets/src/mage/cards/g/GreatSableStag.java index 3045ef9ca11..1ba14987d3c 100644 --- a/Mage.Sets/src/mage/cards/g/GreatSableStag.java +++ b/Mage.Sets/src/mage/cards/g/GreatSableStag.java @@ -28,9 +28,6 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -38,6 +35,10 @@ import mage.abilities.effects.common.CantBeCounteredSourceEffect; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GreatTeachersDecree.java b/Mage.Sets/src/mage/cards/g/GreatTeachersDecree.java index 286f1f4329b..bb82444acfb 100644 --- a/Mage.Sets/src/mage/cards/g/GreatTeachersDecree.java +++ b/Mage.Sets/src/mage/cards/g/GreatTeachersDecree.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.keyword.ReboundAbility; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GreatWhale.java b/Mage.Sets/src/mage/cards/g/GreatWhale.java index 2ad5b9ab31e..9446a9f79a7 100644 --- a/Mage.Sets/src/mage/cards/g/GreatWhale.java +++ b/Mage.Sets/src/mage/cards/g/GreatWhale.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.UntapLandsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GreatbowDoyen.java b/Mage.Sets/src/mage/cards/g/GreatbowDoyen.java index 5a69f31ba3f..7ca415b5d25 100644 --- a/Mage.Sets/src/mage/cards/g/GreatbowDoyen.java +++ b/Mage.Sets/src/mage/cards/g/GreatbowDoyen.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -36,11 +35,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; @@ -50,6 +45,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GreaterAuramancy.java b/Mage.Sets/src/mage/cards/g/GreaterAuramancy.java index 29d87233d1b..54108be03b6 100644 --- a/Mage.Sets/src/mage/cards/g/GreaterAuramancy.java +++ b/Mage.Sets/src/mage/cards/g/GreaterAuramancy.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.ShroudAbility; @@ -42,6 +41,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.EnchantedPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GreaterBasilisk.java b/Mage.Sets/src/mage/cards/g/GreaterBasilisk.java index 6283097e08c..7fba6bff01f 100644 --- a/Mage.Sets/src/mage/cards/g/GreaterBasilisk.java +++ b/Mage.Sets/src/mage/cards/g/GreaterBasilisk.java @@ -28,12 +28,13 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DeathtouchAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GreaterForgeling.java b/Mage.Sets/src/mage/cards/g/GreaterForgeling.java index f6dfce92360..0b8e2dc243e 100644 --- a/Mage.Sets/src/mage/cards/g/GreaterForgeling.java +++ b/Mage.Sets/src/mage/cards/g/GreaterForgeling.java @@ -27,18 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GreaterGargadon.java b/Mage.Sets/src/mage/cards/g/GreaterGargadon.java index 36f4e80dfa6..e8510393d6f 100644 --- a/Mage.Sets/src/mage/cards/g/GreaterGargadon.java +++ b/Mage.Sets/src/mage/cards/g/GreaterGargadon.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.ActivatedAbilityImpl; import mage.abilities.costs.common.SacrificeTargetCost; @@ -39,6 +36,7 @@ import mage.abilities.keyword.SuspendAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledPermanent; @@ -47,6 +45,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GreaterGood.java b/Mage.Sets/src/mage/cards/g/GreaterGood.java index c91bade6c7f..b714b85454d 100644 --- a/Mage.Sets/src/mage/cards/g/GreaterGood.java +++ b/Mage.Sets/src/mage/cards/g/GreaterGood.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/GreaterHarvester.java b/Mage.Sets/src/mage/cards/g/GreaterHarvester.java index dcb5e5a2cd9..57d310f0d20 100644 --- a/Mage.Sets/src/mage/cards/g/GreaterHarvester.java +++ b/Mage.Sets/src/mage/cards/g/GreaterHarvester.java @@ -5,7 +5,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -25,6 +24,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author wanderer120 diff --git a/Mage.Sets/src/mage/cards/g/GreaterKraytDragon.java b/Mage.Sets/src/mage/cards/g/GreaterKraytDragon.java index ef76ebf8b9b..8777d7285c4 100644 --- a/Mage.Sets/src/mage/cards/g/GreaterKraytDragon.java +++ b/Mage.Sets/src/mage/cards/g/GreaterKraytDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesMonstrousSourceTriggeredAbility; import mage.abilities.dynamicvalue.common.CountersCount; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/g/GreaterMossdog.java b/Mage.Sets/src/mage/cards/g/GreaterMossdog.java index dffacd3acb4..083f5a2cda2 100644 --- a/Mage.Sets/src/mage/cards/g/GreaterMossdog.java +++ b/Mage.Sets/src/mage/cards/g/GreaterMossdog.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DredgeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GreaterSandwurm.java b/Mage.Sets/src/mage/cards/g/GreaterSandwurm.java new file mode 100644 index 00000000000..55a0e079584 --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GreaterSandwurm.java @@ -0,0 +1,78 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleEvasionAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.constants.Duration; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.PowerPredicate; + +/** + * + * @author fireshoes + */ +public class GreaterSandwurm extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or less"); + + static { + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); + } + + public GreaterSandwurm(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{G}{G}"); + + this.subtype.add("Wurm"); + this.power = new MageInt(7); + this.toughness = new MageInt(7); + + // Greater Sandwurm can't be blocked by creatures with power 2 or less. + this.addAbility(new SimpleEvasionAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield))); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + } + + public GreaterSandwurm(final GreaterSandwurm card) { + super(card); + } + + @Override + public GreaterSandwurm copy() { + return new GreaterSandwurm(this); + } +} diff --git a/Mage.Sets/src/mage/cards/g/GreaterStoneSpirit.java b/Mage.Sets/src/mage/cards/g/GreaterStoneSpirit.java index 8e4f9cdbb1e..ac88e12ba5d 100644 --- a/Mage.Sets/src/mage/cards/g/GreaterStoneSpirit.java +++ b/Mage.Sets/src/mage/cards/g/GreaterStoneSpirit.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -48,6 +47,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/Greatsword.java b/Mage.Sets/src/mage/cards/g/Greatsword.java index 523459530bd..3311ac14279 100644 --- a/Mage.Sets/src/mage/cards/g/Greatsword.java +++ b/Mage.Sets/src/mage/cards/g/Greatsword.java @@ -28,18 +28,18 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/g/Greed.java b/Mage.Sets/src/mage/cards/g/Greed.java index 0ab68a136a5..64c06fd9c79 100644 --- a/Mage.Sets/src/mage/cards/g/Greed.java +++ b/Mage.Sets/src/mage/cards/g/Greed.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.PayLifeCost; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/Greedo.java b/Mage.Sets/src/mage/cards/g/Greedo.java index a6d664d3cd1..2f03867cdc2 100644 --- a/Mage.Sets/src/mage/cards/g/Greedo.java +++ b/Mage.Sets/src/mage/cards/g/Greedo.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -38,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterCreaturePermanent; @@ -47,6 +47,8 @@ import mage.filter.predicate.permanent.BlockedByIdPredicate; import mage.filter.predicate.permanent.BlockingAttackerIdPredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Styxo @@ -62,7 +64,7 @@ public class Greedo extends CardImpl { public Greedo(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Rodian"); this.subtype.add("Hunter"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/g/GreelMindRaker.java b/Mage.Sets/src/mage/cards/g/GreelMindRaker.java index 5b610e93551..7a5ac37e672 100644 --- a/Mage.Sets/src/mage/cards/g/GreelMindRaker.java +++ b/Mage.Sets/src/mage/cards/g/GreelMindRaker.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +37,15 @@ import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; +import mage.abilities.costs.common.DiscardTargetCost; +import mage.filter.FilterCard; +import mage.target.common.TargetCardInHand; + /** * * @author Styxo @@ -50,7 +55,7 @@ public class GreelMindRaker extends CardImpl { public GreelMindRaker(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Horror"); this.subtype.add("Spellshaper"); this.power = new MageInt(3); @@ -59,6 +64,7 @@ public class GreelMindRaker extends CardImpl { // {X}{B}, {tap}, Discard two cards: Target player discards X cards at random. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(new ManacostVariableValue(), true), new ManaCostsImpl("{X}{B}")); ability.addCost(new TapSourceCost()); + ability.addCost(new DiscardTargetCost(new TargetCardInHand(2, new FilterCard()))); ability.addTarget(new TargetPlayer()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/g/GreelsCaress.java b/Mage.Sets/src/mage/cards/g/GreelsCaress.java index 2ad1e4688e2..be446c4422e 100644 --- a/Mage.Sets/src/mage/cards/g/GreelsCaress.java +++ b/Mage.Sets/src/mage/cards/g/GreelsCaress.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -43,6 +42,8 @@ import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GreenScarab.java b/Mage.Sets/src/mage/cards/g/GreenScarab.java index 23de1d89e4b..d58e7dd3480 100644 --- a/Mage.Sets/src/mage/cards/g/GreenScarab.java +++ b/Mage.Sets/src/mage/cards/g/GreenScarab.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -40,17 +39,15 @@ import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Zeplar1_at_googlemail.com diff --git a/Mage.Sets/src/mage/cards/g/GreenSunsZenith.java b/Mage.Sets/src/mage/cards/g/GreenSunsZenith.java index 2c98d38df55..aa5d9d709a3 100644 --- a/Mage.Sets/src/mage/cards/g/GreenSunsZenith.java +++ b/Mage.Sets/src/mage/cards/g/GreenSunsZenith.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.ShuffleSpellEffect; import mage.abilities.effects.common.search.SearchLibraryWithLessCMCPutInPlayEffect; @@ -38,6 +37,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/g/GreenWard.java b/Mage.Sets/src/mage/cards/g/GreenWard.java index 657c1232397..d5bea2d8910 100644 --- a/Mage.Sets/src/mage/cards/g/GreenWard.java +++ b/Mage.Sets/src/mage/cards/g/GreenWard.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; @@ -46,6 +45,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GreenhiltTrainee.java b/Mage.Sets/src/mage/cards/g/GreenhiltTrainee.java index 636fe3183a2..9becf900cf4 100644 --- a/Mage.Sets/src/mage/cards/g/GreenhiltTrainee.java +++ b/Mage.Sets/src/mage/cards/g/GreenhiltTrainee.java @@ -28,9 +28,6 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,12 +37,15 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/Greenseeker.java b/Mage.Sets/src/mage/cards/g/Greenseeker.java index 2153953fd2a..49bcb976926 100644 --- a/Mage.Sets/src/mage/cards/g/Greenseeker.java +++ b/Mage.Sets/src/mage/cards/g/Greenseeker.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GreensideWatcher.java b/Mage.Sets/src/mage/cards/g/GreensideWatcher.java index 4d0bb31b1dd..f5ec8657168 100644 --- a/Mage.Sets/src/mage/cards/g/GreensideWatcher.java +++ b/Mage.Sets/src/mage/cards/g/GreensideWatcher.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,11 +34,14 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.UntapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GreenwardenOfMurasa.java b/Mage.Sets/src/mage/cards/g/GreenwardenOfMurasa.java index 54eb44fa38a..f60dc6a0311 100644 --- a/Mage.Sets/src/mage/cards/g/GreenwardenOfMurasa.java +++ b/Mage.Sets/src/mage/cards/g/GreenwardenOfMurasa.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -48,6 +47,8 @@ import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GreenweaverDruid.java b/Mage.Sets/src/mage/cards/g/GreenweaverDruid.java index 6f380f8cdf0..b4eff08ea82 100644 --- a/Mage.Sets/src/mage/cards/g/GreenweaverDruid.java +++ b/Mage.Sets/src/mage/cards/g/GreenweaverDruid.java @@ -27,15 +27,16 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.Mana; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GremlinInfestation.java b/Mage.Sets/src/mage/cards/g/GremlinInfestation.java index 6aae9b9f781..a27d0c43809 100644 --- a/Mage.Sets/src/mage/cards/g/GremlinInfestation.java +++ b/Mage.Sets/src/mage/cards/g/GremlinInfestation.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.DiesAttachedTriggeredAbility; @@ -45,6 +44,8 @@ import mage.game.permanent.token.GremlinToken; import mage.target.TargetPermanent; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GremlinMine.java b/Mage.Sets/src/mage/cards/g/GremlinMine.java index 6ae4168bec9..5af6e389faa 100644 --- a/Mage.Sets/src/mage/cards/g/GremlinMine.java +++ b/Mage.Sets/src/mage/cards/g/GremlinMine.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -42,6 +38,9 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.choices.Choice; import mage.choices.ChoiceImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.Predicates; @@ -51,6 +50,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GrenzoDungeonWarden.java b/Mage.Sets/src/mage/cards/g/GrenzoDungeonWarden.java index 2e48c23d94c..f40be9c3864 100644 --- a/Mage.Sets/src/mage/cards/g/GrenzoDungeonWarden.java +++ b/Mage.Sets/src/mage/cards/g/GrenzoDungeonWarden.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -40,12 +39,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 @@ -54,7 +56,7 @@ public class GrenzoDungeonWarden extends CardImpl { public GrenzoDungeonWarden(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{X}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Rogue"); diff --git a/Mage.Sets/src/mage/cards/g/GrenzosCutthroat.java b/Mage.Sets/src/mage/cards/g/GrenzosCutthroat.java index 5374b57497a..e92a56e281a 100644 --- a/Mage.Sets/src/mage/cards/g/GrenzosCutthroat.java +++ b/Mage.Sets/src/mage/cards/g/GrenzosCutthroat.java @@ -27,14 +27,15 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.DethroneAbility; +import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GridMonitor.java b/Mage.Sets/src/mage/cards/g/GridMonitor.java index bc2aee4dd2e..d86b94da345 100644 --- a/Mage.Sets/src/mage/cards/g/GridMonitor.java +++ b/Mage.Sets/src/mage/cards/g/GridMonitor.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -42,6 +41,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/Gridlock.java b/Mage.Sets/src/mage/cards/g/Gridlock.java index 6e062bf0edf..d36336c682d 100644 --- a/Mage.Sets/src/mage/cards/g/Gridlock.java +++ b/Mage.Sets/src/mage/cards/g/Gridlock.java @@ -27,17 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterNonlandPermanent; import mage.game.Game; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GriefTyrant.java b/Mage.Sets/src/mage/cards/g/GriefTyrant.java index 180849399b7..c6121531d72 100644 --- a/Mage.Sets/src/mage/cards/g/GriefTyrant.java +++ b/Mage.Sets/src/mage/cards/g/GriefTyrant.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GriffinCanyon.java b/Mage.Sets/src/mage/cards/g/GriffinCanyon.java index 8811ef3a898..98f83d1b4fa 100644 --- a/Mage.Sets/src/mage/cards/g/GriffinCanyon.java +++ b/Mage.Sets/src/mage/cards/g/GriffinCanyon.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -46,6 +45,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author anonymous diff --git a/Mage.Sets/src/mage/cards/g/GriffinDreamfinder.java b/Mage.Sets/src/mage/cards/g/GriffinDreamfinder.java index e34fbf8bd4c..fdf04ae3f5f 100644 --- a/Mage.Sets/src/mage/cards/g/GriffinDreamfinder.java +++ b/Mage.Sets/src/mage/cards/g/GriffinDreamfinder.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,6 +39,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GriffinGuide.java b/Mage.Sets/src/mage/cards/g/GriffinGuide.java index 5ba5b307448..a470b375a4b 100644 --- a/Mage.Sets/src/mage/cards/g/GriffinGuide.java +++ b/Mage.Sets/src/mage/cards/g/GriffinGuide.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; @@ -40,15 +39,13 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.permanent.token.Token; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GriffinProtector.java b/Mage.Sets/src/mage/cards/g/GriffinProtector.java index d743791c1ce..f6a9af33f45 100644 --- a/Mage.Sets/src/mage/cards/g/GriffinProtector.java +++ b/Mage.Sets/src/mage/cards/g/GriffinProtector.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GriffinRider.java b/Mage.Sets/src/mage/cards/g/GriffinRider.java index 77e7a6ffad8..78efcb34017 100644 --- a/Mage.Sets/src/mage/cards/g/GriffinRider.java +++ b/Mage.Sets/src/mage/cards/g/GriffinRider.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -40,11 +36,15 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author nantuko diff --git a/Mage.Sets/src/mage/cards/g/GriffinSentinel.java b/Mage.Sets/src/mage/cards/g/GriffinSentinel.java index dafbbf8a156..7125d5efa24 100644 --- a/Mage.Sets/src/mage/cards/g/GriffinSentinel.java +++ b/Mage.Sets/src/mage/cards/g/GriffinSentinel.java @@ -28,14 +28,14 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GrimAffliction.java b/Mage.Sets/src/mage/cards/g/GrimAffliction.java index f4a3425c520..f7c70e2fe15 100644 --- a/Mage.Sets/src/mage/cards/g/GrimAffliction.java +++ b/Mage.Sets/src/mage/cards/g/GrimAffliction.java @@ -27,15 +27,16 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.abilities.effects.common.counter.ProliferateEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GrimBackwoods.java b/Mage.Sets/src/mage/cards/g/GrimBackwoods.java index fdbf0dff745..6fdadcb1768 100644 --- a/Mage.Sets/src/mage/cards/g/GrimBackwoods.java +++ b/Mage.Sets/src/mage/cards/g/GrimBackwoods.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -39,8 +36,12 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GrimContest.java b/Mage.Sets/src/mage/cards/g/GrimContest.java index 65301ef86d9..51dfa810056 100644 --- a/Mage.Sets/src/mage/cards/g/GrimContest.java +++ b/Mage.Sets/src/mage/cards/g/GrimContest.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -43,6 +42,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GrimDiscovery.java b/Mage.Sets/src/mage/cards/g/GrimDiscovery.java index f9ffc7afe10..ba8e9dac2b3 100644 --- a/Mage.Sets/src/mage/cards/g/GrimDiscovery.java +++ b/Mage.Sets/src/mage/cards/g/GrimDiscovery.java @@ -27,15 +27,16 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.abilities.Mode; -import mage.abilities.effects.common.ReturnToHandTargetEffect; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.filter.common.FilterCreatureCard; -import mage.filter.common.FilterLandCard; -import mage.target.common.TargetCardInYourGraveyard; + import mage.abilities.Mode; + import mage.abilities.effects.common.ReturnToHandTargetEffect; + import mage.cards.CardImpl; + import mage.cards.CardSetInfo; + import mage.constants.CardType; + import mage.filter.common.FilterCreatureCard; + import mage.filter.common.FilterLandCard; + import mage.target.common.TargetCardInYourGraveyard; + + import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GrimFlayer.java b/Mage.Sets/src/mage/cards/g/GrimFlayer.java index c72ef0bed15..d4b7c882c85 100644 --- a/Mage.Sets/src/mage/cards/g/GrimFlayer.java +++ b/Mage.Sets/src/mage/cards/g/GrimFlayer.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.FilterCard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GrimFlowering.java b/Mage.Sets/src/mage/cards/g/GrimFlowering.java index d45edf6c2fb..d1550e421b8 100644 --- a/Mage.Sets/src/mage/cards/g/GrimFlowering.java +++ b/Mage.Sets/src/mage/cards/g/GrimFlowering.java @@ -27,14 +27,15 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GrimGuardian.java b/Mage.Sets/src/mage/cards/g/GrimGuardian.java index f1d2fd399dd..e0266a4b149 100644 --- a/Mage.Sets/src/mage/cards/g/GrimGuardian.java +++ b/Mage.Sets/src/mage/cards/g/GrimGuardian.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.abilityword.ConstellationAbility; import mage.abilities.effects.common.LoseLifeOpponentsEffect; @@ -35,6 +34,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GrimHaruspex.java b/Mage.Sets/src/mage/cards/g/GrimHaruspex.java index b8c5d4372e2..d00e0134d3e 100644 --- a/Mage.Sets/src/mage/cards/g/GrimHaruspex.java +++ b/Mage.Sets/src/mage/cards/g/GrimHaruspex.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.costs.mana.ColoredManaCost; @@ -44,6 +43,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.TokenPredicate; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/GrimHarvest.java b/Mage.Sets/src/mage/cards/g/GrimHarvest.java index 4ed7a3d4137..4cff64ba349 100644 --- a/Mage.Sets/src/mage/cards/g/GrimHarvest.java +++ b/Mage.Sets/src/mage/cards/g/GrimHarvest.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.RecoverAbility; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GrimLavamancer.java b/Mage.Sets/src/mage/cards/g/GrimLavamancer.java index 4a9bf06e224..d17765eaad5 100644 --- a/Mage.Sets/src/mage/cards/g/GrimLavamancer.java +++ b/Mage.Sets/src/mage/cards/g/GrimLavamancer.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,12 +36,15 @@ import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; import mage.filter.FilterCard; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GrimMonolith.java b/Mage.Sets/src/mage/cards/g/GrimMonolith.java index 4ac35306b63..f85966b3a05 100644 --- a/Mage.Sets/src/mage/cards/g/GrimMonolith.java +++ b/Mage.Sets/src/mage/cards/g/GrimMonolith.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.Mana; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,8 +37,11 @@ import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GrimPoppet.java b/Mage.Sets/src/mage/cards/g/GrimPoppet.java index 7c25f31ac49..07212b13a0d 100644 --- a/Mage.Sets/src/mage/cards/g/GrimPoppet.java +++ b/Mage.Sets/src/mage/cards/g/GrimPoppet.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GrimReturn.java b/Mage.Sets/src/mage/cards/g/GrimReturn.java index d0beb3739f2..b9e8664047b 100644 --- a/Mage.Sets/src/mage/cards/g/GrimReturn.java +++ b/Mage.Sets/src/mage/cards/g/GrimReturn.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.effects.Effect; @@ -45,6 +42,10 @@ import mage.game.Game; import mage.target.common.TargetCardInGraveyard; import mage.watchers.common.CardsPutIntoGraveyardWatcher; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GrimRoustabout.java b/Mage.Sets/src/mage/cards/g/GrimRoustabout.java index 3917a6986c2..f32001b58a2 100644 --- a/Mage.Sets/src/mage/cards/g/GrimRoustabout.java +++ b/Mage.Sets/src/mage/cards/g/GrimRoustabout.java @@ -26,10 +26,7 @@ * or implied, of BetaSteward_at_googlemail.com. */ package mage.cards.g; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; + import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,6 +34,10 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.keyword.UnleashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GrimStrider.java b/Mage.Sets/src/mage/cards/g/GrimStrider.java new file mode 100644 index 00000000000..95bf31a093d --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GrimStrider.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.CardsInControllerHandCount; +import mage.abilities.dynamicvalue.common.SignInversionDynamicValue; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; + +/** + * + * @author Darkside- + */ +public class GrimStrider extends CardImpl { + + public GrimStrider(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); + this.subtype.add("Horror"); + this.power = new MageInt(6); + this.toughness = new MageInt(6); + + // Grim Strider gets -1/-1 for each card in your hand. + DynamicValue count = new SignInversionDynamicValue(new CardsInControllerHandCount()); + Effect effect = new BoostSourceEffect(count, count, Duration.WhileOnBattlefield); + effect.setText("{this} gets -1/-1 for each card in your hand"); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); + + } + + public GrimStrider(final GrimStrider card) { + super(card); + } + + @Override + public GrimStrider copy() { + return new GrimStrider(this); + } +} diff --git a/Mage.Sets/src/mage/cards/g/GrimTutor.java b/Mage.Sets/src/mage/cards/g/GrimTutor.java index def87372790..3027ddca877 100644 --- a/Mage.Sets/src/mage/cards/g/GrimTutor.java +++ b/Mage.Sets/src/mage/cards/g/GrimTutor.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; @@ -35,6 +34,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/GrimclawBats.java b/Mage.Sets/src/mage/cards/g/GrimclawBats.java index 9a7aa4f7e28..23191e59925 100644 --- a/Mage.Sets/src/mage/cards/g/GrimclawBats.java +++ b/Mage.Sets/src/mage/cards/g/GrimclawBats.java @@ -28,9 +28,6 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +37,12 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GrimgrinCorpseBorn.java b/Mage.Sets/src/mage/cards/g/GrimgrinCorpseBorn.java index 489dd029740..70f5cd9a8d2 100644 --- a/Mage.Sets/src/mage/cards/g/GrimgrinCorpseBorn.java +++ b/Mage.Sets/src/mage/cards/g/GrimgrinCorpseBorn.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -41,6 +40,7 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; @@ -53,6 +53,8 @@ import mage.game.events.GameEvent.EventType; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -66,7 +68,7 @@ public class GrimgrinCorpseBorn extends CardImpl { public GrimgrinCorpseBorn(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/g/GrimoireOfTheDead.java b/Mage.Sets/src/mage/cards/g/GrimoireOfTheDead.java index 9217cef674e..30e853f606e 100644 --- a/Mage.Sets/src/mage/cards/g/GrimoireOfTheDead.java +++ b/Mage.Sets/src/mage/cards/g/GrimoireOfTheDead.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.LinkedHashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardTargetCost; @@ -43,18 +40,17 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; +import java.util.LinkedHashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author BetaSteward @@ -63,7 +59,7 @@ public class GrimoireOfTheDead extends CardImpl { public GrimoireOfTheDead(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {1}, {tap}, Discard a card: Put a study counter on Grimoire of the Dead. Ability ability1 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STUDY.createInstance()), new ManaCostsImpl("{1}")); diff --git a/Mage.Sets/src/mage/cards/g/GrimoireThief.java b/Mage.Sets/src/mage/cards/g/GrimoireThief.java index 538f528b053..d40fafdb801 100644 --- a/Mage.Sets/src/mage/cards/g/GrimoireThief.java +++ b/Mage.Sets/src/mage/cards/g/GrimoireThief.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -41,17 +37,8 @@ import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.AsThoughEffectImpl; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.cards.CardSetInfo; -import mage.cards.SplitCard; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.cards.*; +import mage.constants.*; import mage.game.ExileZone; import mage.game.Game; import mage.game.stack.Spell; @@ -60,6 +47,11 @@ import mage.players.Player; import mage.target.common.TargetOpponent; import mage.util.CardUtil; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/Grindclock.java b/Mage.Sets/src/mage/cards/g/Grindclock.java index 8a3acf2e2c8..47a5ef90d08 100644 --- a/Mage.Sets/src/mage/cards/g/Grindclock.java +++ b/Mage.Sets/src/mage/cards/g/Grindclock.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -44,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GrindingStation.java b/Mage.Sets/src/mage/cards/g/GrindingStation.java index aa3f9614ed0..ed55c09eaf9 100644 --- a/Mage.Sets/src/mage/cards/g/GrindingStation.java +++ b/Mage.Sets/src/mage/cards/g/GrindingStation.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -40,12 +36,16 @@ import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterArtifactPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/Grindstone.java b/Mage.Sets/src/mage/cards/g/Grindstone.java index c42aef233cb..acba996ba8e 100644 --- a/Mage.Sets/src/mage/cards/g/Grindstone.java +++ b/Mage.Sets/src/mage/cards/g/Grindstone.java @@ -27,17 +27,12 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -45,6 +40,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GrinningDemon.java b/Mage.Sets/src/mage/cards/g/GrinningDemon.java index 8ac9858356a..c3b046562c5 100644 --- a/Mage.Sets/src/mage/cards/g/GrinningDemon.java +++ b/Mage.Sets/src/mage/cards/g/GrinningDemon.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GrinningIgnus.java b/Mage.Sets/src/mage/cards/g/GrinningIgnus.java index 225cc96eb2a..8e203144e78 100644 --- a/Mage.Sets/src/mage/cards/g/GrinningIgnus.java +++ b/Mage.Sets/src/mage/cards/g/GrinningIgnus.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GrinningTotem.java b/Mage.Sets/src/mage/cards/g/GrinningTotem.java index 5738d938044..93c4440eb66 100644 --- a/Mage.Sets/src/mage/cards/g/GrinningTotem.java +++ b/Mage.Sets/src/mage/cards/g/GrinningTotem.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -41,12 +40,7 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.PhaseStep; -import mage.constants.Zone; +import mage.constants.*; import mage.game.ExileZone; import mage.game.Game; import mage.game.events.GameEvent; @@ -57,6 +51,8 @@ import mage.target.common.TargetOpponent; import mage.target.targetpointer.FixedTarget; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author Quercitron diff --git a/Mage.Sets/src/mage/cards/g/GripOfChaos.java b/Mage.Sets/src/mage/cards/g/GripOfChaos.java index 545f620cbac..3c8617e1d6a 100644 --- a/Mage.Sets/src/mage/cards/g/GripOfChaos.java +++ b/Mage.Sets/src/mage/cards/g/GripOfChaos.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.Iterator; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.TriggeredAbilityImpl; @@ -48,6 +45,10 @@ import mage.target.Target; import mage.target.targetpointer.FixedTarget; import mage.util.RandomUtil; +import java.util.Iterator; +import java.util.Set; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/GripOfDesolation.java b/Mage.Sets/src/mage/cards/g/GripOfDesolation.java index 74c1ab19377..27e0a034910 100644 --- a/Mage.Sets/src/mage/cards/g/GripOfDesolation.java +++ b/Mage.Sets/src/mage/cards/g/GripOfDesolation.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.effects.common.ExileTargetEffect; @@ -39,6 +38,8 @@ import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetLandPermanent; import mage.target.targetpointer.SecondTargetPointer; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GripOfPhyresis.java b/Mage.Sets/src/mage/cards/g/GripOfPhyresis.java index 47f1264f5b5..2af84b5d35b 100644 --- a/Mage.Sets/src/mage/cards/g/GripOfPhyresis.java +++ b/Mage.Sets/src/mage/cards/g/GripOfPhyresis.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect; @@ -45,6 +44,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/g/GripOfTheRoil.java b/Mage.Sets/src/mage/cards/g/GripOfTheRoil.java index c157d08016f..53dc25ea23e 100644 --- a/Mage.Sets/src/mage/cards/g/GripOfTheRoil.java +++ b/Mage.Sets/src/mage/cards/g/GripOfTheRoil.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.TapTargetEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/Griptide.java b/Mage.Sets/src/mage/cards/g/Griptide.java index 0ccd9fe416a..54cf1f89425 100644 --- a/Mage.Sets/src/mage/cards/g/Griptide.java +++ b/Mage.Sets/src/mage/cards/g/Griptide.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/Griselbrand.java b/Mage.Sets/src/mage/cards/g/Griselbrand.java index 291174c098a..e6ec0acdd09 100644 --- a/Mage.Sets/src/mage/cards/g/Griselbrand.java +++ b/Mage.Sets/src/mage/cards/g/Griselbrand.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.PayLifeCost; @@ -38,8 +35,12 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki @@ -48,7 +49,7 @@ public class Griselbrand extends CardImpl { public Griselbrand(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/g/GrislyAnglerfish.java b/Mage.Sets/src/mage/cards/g/GrislyAnglerfish.java index 798d4254dde..6223e7c0da9 100644 --- a/Mage.Sets/src/mage/cards/g/GrislyAnglerfish.java +++ b/Mage.Sets/src/mage/cards/g/GrislyAnglerfish.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GrislySalvage.java b/Mage.Sets/src/mage/cards/g/GrislySalvage.java index 93a388c1328..6f9322715db 100644 --- a/Mage.Sets/src/mage/cards/g/GrislySalvage.java +++ b/Mage.Sets/src/mage/cards/g/GrislySalvage.java @@ -27,15 +27,10 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -46,6 +41,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GrislySpectacle.java b/Mage.Sets/src/mage/cards/g/GrislySpectacle.java index be461dde636..8bf2f28817c 100644 --- a/Mage.Sets/src/mage/cards/g/GrislySpectacle.java +++ b/Mage.Sets/src/mage/cards/g/GrislySpectacle.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; @@ -46,6 +45,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GrislyTransformation.java b/Mage.Sets/src/mage/cards/g/GrislyTransformation.java index 8811166182b..10bd8c2c1d6 100644 --- a/Mage.Sets/src/mage/cards/g/GrislyTransformation.java +++ b/Mage.Sets/src/mage/cards/g/GrislyTransformation.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -38,14 +37,12 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.IntimidateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GristleGrinner.java b/Mage.Sets/src/mage/cards/g/GristleGrinner.java index cb96fad59f4..fc6d9a927b2 100644 --- a/Mage.Sets/src/mage/cards/g/GristleGrinner.java +++ b/Mage.Sets/src/mage/cards/g/GristleGrinner.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/Gristleback.java b/Mage.Sets/src/mage/cards/g/Gristleback.java index a63ef91af5f..93987f6bd9c 100644 --- a/Mage.Sets/src/mage/cards/g/Gristleback.java +++ b/Mage.Sets/src/mage/cards/g/Gristleback.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/g/GrixisBattlemage.java b/Mage.Sets/src/mage/cards/g/GrixisBattlemage.java index 48e2607e045..5a21ad94de3 100644 --- a/Mage.Sets/src/mage/cards/g/GrixisBattlemage.java +++ b/Mage.Sets/src/mage/cards/g/GrixisBattlemage.java @@ -27,22 +27,22 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.combat.CantBlockTargetEffect; import mage.abilities.effects.common.DrawDiscardControllerEffect; +import mage.abilities.effects.common.combat.CantBlockTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GrixisCharm.java b/Mage.Sets/src/mage/cards/g/GrixisCharm.java index 9a28611229e..b9593357cab 100644 --- a/Mage.Sets/src/mage/cards/g/GrixisCharm.java +++ b/Mage.Sets/src/mage/cards/g/GrixisCharm.java @@ -27,19 +27,20 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.Mode; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GrixisGrimblade.java b/Mage.Sets/src/mage/cards/g/GrixisGrimblade.java index 2423bd3aa5d..5e4059f3b48 100644 --- a/Mage.Sets/src/mage/cards/g/GrixisGrimblade.java +++ b/Mage.Sets/src/mage/cards/g/GrixisGrimblade.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +44,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.MulticoloredPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GrixisIllusionist.java b/Mage.Sets/src/mage/cards/g/GrixisIllusionist.java index cd2829e6638..b496817eda2 100644 --- a/Mage.Sets/src/mage/cards/g/GrixisIllusionist.java +++ b/Mage.Sets/src/mage/cards/g/GrixisIllusionist.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GrixisPanorama.java b/Mage.Sets/src/mage/cards/g/GrixisPanorama.java index 768d3d98c48..2dd6af9c783 100644 --- a/Mage.Sets/src/mage/cards/g/GrixisPanorama.java +++ b/Mage.Sets/src/mage/cards/g/GrixisPanorama.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -40,6 +36,10 @@ import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -47,6 +47,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author North @@ -57,7 +59,7 @@ public class GrixisPanorama extends CardImpl { static { filter.add(new CardTypePredicate(CardType.LAND)); - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); filter.add(Predicates.or( new SubtypePredicate("Island"), new SubtypePredicate("Swamp"), diff --git a/Mage.Sets/src/mage/cards/g/GrixisSlavedriver.java b/Mage.Sets/src/mage/cards/g/GrixisSlavedriver.java index 42a26885e7f..0c245369ab6 100644 --- a/Mage.Sets/src/mage/cards/g/GrixisSlavedriver.java +++ b/Mage.Sets/src/mage/cards/g/GrixisSlavedriver.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LeavesBattlefieldTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.game.permanent.token.ZombieToken; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/g/GrixisSojourners.java b/Mage.Sets/src/mage/cards/g/GrixisSojourners.java index e1081b1b238..ba33dfe4f48 100644 --- a/Mage.Sets/src/mage/cards/g/GrixisSojourners.java +++ b/Mage.Sets/src/mage/cards/g/GrixisSojourners.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CycleTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.filter.FilterCard; import mage.target.common.TargetCardInASingleGraveyard; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GrizzledAngler.java b/Mage.Sets/src/mage/cards/g/GrizzledAngler.java index 0f00a5174d6..6f3f98d0589 100644 --- a/Mage.Sets/src/mage/cards/g/GrizzledAngler.java +++ b/Mage.Sets/src/mage/cards/g/GrizzledAngler.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.ColorlessPredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GrizzledLeotau.java b/Mage.Sets/src/mage/cards/g/GrizzledLeotau.java index e5344612798..9588ac8e25c 100644 --- a/Mage.Sets/src/mage/cards/g/GrizzledLeotau.java +++ b/Mage.Sets/src/mage/cards/g/GrizzledLeotau.java @@ -27,11 +27,12 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GrizzledOutcasts.java b/Mage.Sets/src/mage/cards/g/GrizzledOutcasts.java index 940fe85d5f6..ce8a1373439 100644 --- a/Mage.Sets/src/mage/cards/g/GrizzledOutcasts.java +++ b/Mage.Sets/src/mage/cards/g/GrizzledOutcasts.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -35,9 +34,10 @@ import mage.abilities.condition.common.NoSpellsWereCastLastTurnCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.TransformAbility; -import mage.cards.k.KrallenhordeWantons; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.k.KrallenhordeWantons; +import mage.constants.CardType; import mage.constants.TargetController; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/g/GrizzlyBears.java b/Mage.Sets/src/mage/cards/g/GrizzlyBears.java index 2236a1d9345..86d3def04e9 100644 --- a/Mage.Sets/src/mage/cards/g/GrizzlyBears.java +++ b/Mage.Sets/src/mage/cards/g/GrizzlyBears.java @@ -27,11 +27,12 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GrizzlyFate.java b/Mage.Sets/src/mage/cards/g/GrizzlyFate.java index c4d920b6fe5..fedaa286997 100644 --- a/Mage.Sets/src/mage/cards/g/GrizzlyFate.java +++ b/Mage.Sets/src/mage/cards/g/GrizzlyFate.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.condition.common.CardsInControllerGraveCondition; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.TimingRule; import mage.game.permanent.token.BearToken; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/Groffskithur.java b/Mage.Sets/src/mage/cards/g/Groffskithur.java index e84cf758478..b3f4f9fcd2b 100644 --- a/Mage.Sets/src/mage/cards/g/Groffskithur.java +++ b/Mage.Sets/src/mage/cards/g/Groffskithur.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesBlockedTriggeredAbility; @@ -39,6 +38,8 @@ import mage.filter.FilterCard; import mage.filter.predicate.mageobject.NamePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GrotagSiegeRunner.java b/Mage.Sets/src/mage/cards/g/GrotagSiegeRunner.java index b34b0438b7e..72eb58893c1 100644 --- a/Mage.Sets/src/mage/cards/g/GrotagSiegeRunner.java +++ b/Mage.Sets/src/mage/cards/g/GrotagSiegeRunner.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -45,6 +44,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GrotagThrasher.java b/Mage.Sets/src/mage/cards/g/GrotagThrasher.java index 15ee4e355ba..7169966f2d5 100644 --- a/Mage.Sets/src/mage/cards/g/GrotagThrasher.java +++ b/Mage.Sets/src/mage/cards/g/GrotagThrasher.java @@ -27,17 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.combat.CantBlockTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GrotesqueHybrid.java b/Mage.Sets/src/mage/cards/g/GrotesqueHybrid.java index d19e45098e2..6baaabd5c73 100644 --- a/Mage.Sets/src/mage/cards/g/GrotesqueHybrid.java +++ b/Mage.Sets/src/mage/cards/g/GrotesqueHybrid.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -45,6 +44,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GrotesqueMutation.java b/Mage.Sets/src/mage/cards/g/GrotesqueMutation.java index 3e11cab2567..68eb57c6299 100644 --- a/Mage.Sets/src/mage/cards/g/GrotesqueMutation.java +++ b/Mage.Sets/src/mage/cards/g/GrotesqueMutation.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GroundAssault.java b/Mage.Sets/src/mage/cards/g/GroundAssault.java index 1e8081b9a19..a5dfc711fa3 100644 --- a/Mage.Sets/src/mage/cards/g/GroundAssault.java +++ b/Mage.Sets/src/mage/cards/g/GroundAssault.java @@ -27,15 +27,16 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterControlledLandPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GroundRift.java b/Mage.Sets/src/mage/cards/g/GroundRift.java index 5403474bbad..2c545cea11c 100644 --- a/Mage.Sets/src/mage/cards/g/GroundRift.java +++ b/Mage.Sets/src/mage/cards/g/GroundRift.java @@ -27,20 +27,20 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.combat.CantBlockTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.StormAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GroundSeal.java b/Mage.Sets/src/mage/cards/g/GroundSeal.java index 2a698d5365f..a00512f2951 100644 --- a/Mage.Sets/src/mage/cards/g/GroundSeal.java +++ b/Mage.Sets/src/mage/cards/g/GroundSeal.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -45,6 +43,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.stack.StackObject; +import java.util.UUID; + /** * @author jeffwadsworth */ diff --git a/Mage.Sets/src/mage/cards/g/Groundbreaker.java b/Mage.Sets/src/mage/cards/g/Groundbreaker.java index 9d6037f89c9..1725bd4665b 100644 --- a/Mage.Sets/src/mage/cards/g/Groundbreaker.java +++ b/Mage.Sets/src/mage/cards/g/Groundbreaker.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.effects.common.SacrificeSourceEffect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/Grounded.java b/Mage.Sets/src/mage/cards/g/Grounded.java index 1692d2fea64..901b9a5e7c5 100644 --- a/Mage.Sets/src/mage/cards/g/Grounded.java +++ b/Mage.Sets/src/mage/cards/g/Grounded.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -36,6 +35,10 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/g/GroundlingPouncer.java b/Mage.Sets/src/mage/cards/g/GroundlingPouncer.java index 7fbc45d40c1..95c7601c40d 100644 --- a/Mage.Sets/src/mage/cards/g/GroundlingPouncer.java +++ b/Mage.Sets/src/mage/cards/g/GroundlingPouncer.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; @@ -50,6 +49,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.game.Game; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GroundshakerSliver.java b/Mage.Sets/src/mage/cards/g/GroundshakerSliver.java index 68e51292e0b..2ef4137ed31 100644 --- a/Mage.Sets/src/mage/cards/g/GroundshakerSliver.java +++ b/Mage.Sets/src/mage/cards/g/GroundshakerSliver.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.filter.StaticFilters; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/Groundskeeper.java b/Mage.Sets/src/mage/cards/g/Groundskeeper.java index ebeac04e5a6..5be3ddee056 100644 --- a/Mage.Sets/src/mage/cards/g/Groundskeeper.java +++ b/Mage.Sets/src/mage/cards/g/Groundskeeper.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.Zone; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/Groundswell.java b/Mage.Sets/src/mage/cards/g/Groundswell.java index 8aee060d6d8..cd0d9a201bb 100644 --- a/Mage.Sets/src/mage/cards/g/Groundswell.java +++ b/Mage.Sets/src/mage/cards/g/Groundswell.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.condition.common.LandfallCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.AddContinuousEffectToGame; @@ -39,6 +38,8 @@ import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; import mage.watchers.common.LandfallWatcher; +import java.util.UUID; + /** * * @author Viserion @@ -54,7 +55,7 @@ public class Groundswell extends CardImpl { this.getSpellAbility().addEffect(new ConditionalOneShotEffect( new AddContinuousEffectToGame(new BoostTargetEffect(4, 4, Duration.EndOfTurn)), new AddContinuousEffectToGame(new BoostTargetEffect(2, 2, Duration.EndOfTurn)), - LandfallCondition.getInstance(), + LandfallCondition.instance, "Target creature gets +2/+2 until end of turn.
Landfall — If you had a land enter the battlefield under your control this turn, that creature gets +4/+4 until end of turn instead")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/cards/g/GroveRumbler.java b/Mage.Sets/src/mage/cards/g/GroveRumbler.java index 5fc2d177db9..9831f4511e5 100644 --- a/Mage.Sets/src/mage/cards/g/GroveRumbler.java +++ b/Mage.Sets/src/mage/cards/g/GroveRumbler.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.LandfallAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -37,6 +36,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GrovetenderDruids.java b/Mage.Sets/src/mage/cards/g/GrovetenderDruids.java index fe4827e235b..9fe2351778c 100644 --- a/Mage.Sets/src/mage/cards/g/GrovetenderDruids.java +++ b/Mage.Sets/src/mage/cards/g/GrovetenderDruids.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility; @@ -43,6 +42,8 @@ import mage.game.Game; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GrowingRanks.java b/Mage.Sets/src/mage/cards/g/GrowingRanks.java index 3a0f6bf65a7..049e5acb3e7 100644 --- a/Mage.Sets/src/mage/cards/g/GrowingRanks.java +++ b/Mage.Sets/src/mage/cards/g/GrowingRanks.java @@ -27,17 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.PopulateEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * @author LevelX2 */ diff --git a/Mage.Sets/src/mage/cards/g/GrowthSpasm.java b/Mage.Sets/src/mage/cards/g/GrowthSpasm.java index 8bf2f7c0c65..60ad63540d3 100644 --- a/Mage.Sets/src/mage/cards/g/GrowthSpasm.java +++ b/Mage.Sets/src/mage/cards/g/GrowthSpasm.java @@ -27,16 +27,17 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.common.FilterBasicLandCard; import mage.game.permanent.token.EldraziSpawnToken; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/Grozoth.java b/Mage.Sets/src/mage/cards/g/Grozoth.java index def98cb16b8..bf65f45bb6d 100644 --- a/Mage.Sets/src/mage/cards/g/Grozoth.java +++ b/Mage.Sets/src/mage/cards/g/Grozoth.java @@ -27,9 +27,9 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,22 +37,19 @@ import mage.abilities.effects.SearchEffect; import mage.abilities.effects.common.continuous.LoseAbilitySourceEffect; import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.TransmuteAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes @@ -96,7 +93,7 @@ class GrozothEffect extends SearchEffect { private static final FilterCard filter = new FilterCard(); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, 9)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, 9)); } public GrozothEffect() { diff --git a/Mage.Sets/src/mage/cards/g/GruesomeDeformity.java b/Mage.Sets/src/mage/cards/g/GruesomeDeformity.java index 3e54aac95a5..11057b519c2 100644 --- a/Mage.Sets/src/mage/cards/g/GruesomeDeformity.java +++ b/Mage.Sets/src/mage/cards/g/GruesomeDeformity.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -38,9 +35,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.IntimidateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Alvin diff --git a/Mage.Sets/src/mage/cards/g/GruesomeDiscovery.java b/Mage.Sets/src/mage/cards/g/GruesomeDiscovery.java index d791fe8115b..244236b051c 100644 --- a/Mage.Sets/src/mage/cards/g/GruesomeDiscovery.java +++ b/Mage.Sets/src/mage/cards/g/GruesomeDiscovery.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.MorbidCondition; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -46,6 +44,9 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.TargetPlayer; +import java.util.List; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GruesomeEncore.java b/Mage.Sets/src/mage/cards/g/GruesomeEncore.java index 162c5f0259f..7f3d488dfd1 100644 --- a/Mage.Sets/src/mage/cards/g/GruesomeEncore.java +++ b/Mage.Sets/src/mage/cards/g/GruesomeEncore.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -51,6 +50,8 @@ import mage.game.events.ZoneChangeEvent; import mage.target.common.TargetCardInOpponentsGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GruesomeSlaughter.java b/Mage.Sets/src/mage/cards/g/GruesomeSlaughter.java index 88085cfc3cc..61a30d61673 100644 --- a/Mage.Sets/src/mage/cards/g/GruesomeSlaughter.java +++ b/Mage.Sets/src/mage/cards/g/GruesomeSlaughter.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -44,6 +43,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorlessPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GruulCharm.java b/Mage.Sets/src/mage/cards/g/GruulCharm.java index c174bd326f6..091a3b543c6 100644 --- a/Mage.Sets/src/mage/cards/g/GruulCharm.java +++ b/Mage.Sets/src/mage/cards/g/GruulCharm.java @@ -27,22 +27,24 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Mode; +import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.effects.common.combat.CantBlockAllEffect; import mage.abilities.effects.common.continuous.GainControlAllEffect; -import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.filter.predicate.other.OwnerPredicate; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GruulCluestone.java b/Mage.Sets/src/mage/cards/g/GruulCluestone.java index 4ffb0a5cc56..831da9de553 100644 --- a/Mage.Sets/src/mage/cards/g/GruulCluestone.java +++ b/Mage.Sets/src/mage/cards/g/GruulCluestone.java @@ -28,9 +28,6 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +38,10 @@ import mage.abilities.mana.GreenManaAbility; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GruulGuildgate.java b/Mage.Sets/src/mage/cards/g/GruulGuildgate.java index f825d1849c2..c3e920667f6 100644 --- a/Mage.Sets/src/mage/cards/g/GruulGuildgate.java +++ b/Mage.Sets/src/mage/cards/g/GruulGuildgate.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.mana.GreenManaAbility; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GruulGuildmage.java b/Mage.Sets/src/mage/cards/g/GruulGuildmage.java index 9f305d3bf7a..9eb476e6b43 100644 --- a/Mage.Sets/src/mage/cards/g/GruulGuildmage.java +++ b/Mage.Sets/src/mage/cards/g/GruulGuildmage.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +36,7 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; @@ -47,6 +45,8 @@ import mage.target.TargetPlayer; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/g/GruulNodorog.java b/Mage.Sets/src/mage/cards/g/GruulNodorog.java index 3ce6d14bbcb..b507162afba 100644 --- a/Mage.Sets/src/mage/cards/g/GruulNodorog.java +++ b/Mage.Sets/src/mage/cards/g/GruulNodorog.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +38,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GruulRagebeast.java b/Mage.Sets/src/mage/cards/g/GruulRagebeast.java index 6531538f6e4..413fc012e6c 100644 --- a/Mage.Sets/src/mage/cards/g/GruulRagebeast.java +++ b/Mage.Sets/src/mage/cards/g/GruulRagebeast.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -49,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GruulScrapper.java b/Mage.Sets/src/mage/cards/g/GruulScrapper.java index c2de880a2dc..d690b15734b 100644 --- a/Mage.Sets/src/mage/cards/g/GruulScrapper.java +++ b/Mage.Sets/src/mage/cards/g/GruulScrapper.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.ManaWasSpentCondition; @@ -41,6 +40,8 @@ import mage.constants.ColoredManaSymbol; import mage.constants.Duration; import mage.watchers.common.ManaSpentToCastWatcher; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/g/GruulSignet.java b/Mage.Sets/src/mage/cards/g/GruulSignet.java index 9a77c868f40..bc294de22aa 100644 --- a/Mage.Sets/src/mage/cards/g/GruulSignet.java +++ b/Mage.Sets/src/mage/cards/g/GruulSignet.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; @@ -37,8 +34,11 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GruulTurf.java b/Mage.Sets/src/mage/cards/g/GruulTurf.java index f8d6e765830..506e266c1ff 100644 --- a/Mage.Sets/src/mage/cards/g/GruulTurf.java +++ b/Mage.Sets/src/mage/cards/g/GruulTurf.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.Mana; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/g/GruulWarChant.java b/Mage.Sets/src/mage/cards/g/GruulWarChant.java index 9f0b2125d3d..45e67e4c33f 100644 --- a/Mage.Sets/src/mage/cards/g/GruulWarChant.java +++ b/Mage.Sets/src/mage/cards/g/GruulWarChant.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; @@ -43,6 +42,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AttackingPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GruulWarPlow.java b/Mage.Sets/src/mage/cards/g/GruulWarPlow.java index b6d7350bf72..80fd7f81ee1 100644 --- a/Mage.Sets/src/mage/cards/g/GruulWarPlow.java +++ b/Mage.Sets/src/mage/cards/g/GruulWarPlow.java @@ -27,21 +27,22 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.MageInt; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; -import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; -import mage.abilities.keyword.TrampleAbility; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; -import mage.filter.common.FilterCreaturePermanent; -import mage.game.permanent.token.Token; + import mage.MageInt; + import mage.abilities.common.SimpleActivatedAbility; + import mage.abilities.common.SimpleStaticAbility; + import mage.abilities.costs.mana.ManaCostsImpl; + import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; + import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; + import mage.abilities.keyword.TrampleAbility; + import mage.cards.CardImpl; + import mage.cards.CardSetInfo; + import mage.constants.CardType; + import mage.constants.Duration; + import mage.constants.Zone; + import mage.filter.common.FilterCreaturePermanent; + import mage.game.permanent.token.Token; + + import java.util.UUID; /** * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GryffVanguard.java b/Mage.Sets/src/mage/cards/g/GryffVanguard.java index b460809617c..f9d20f64570 100644 --- a/Mage.Sets/src/mage/cards/g/GryffVanguard.java +++ b/Mage.Sets/src/mage/cards/g/GryffVanguard.java @@ -27,13 +27,13 @@ */ package mage.cards.g; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/g/GryffsBoon.java b/Mage.Sets/src/mage/cards/g/GryffsBoon.java index a80c666b04f..1b378321e04 100644 --- a/Mage.Sets/src/mage/cards/g/GryffsBoon.java +++ b/Mage.Sets/src/mage/cards/g/GryffsBoon.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -42,16 +41,14 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) diff --git a/Mage.Sets/src/mage/cards/g/GuanYuSaintedWarrior.java b/Mage.Sets/src/mage/cards/g/GuanYuSaintedWarrior.java index 96c5320d8b8..f395fdd7aef 100644 --- a/Mage.Sets/src/mage/cards/g/GuanYuSaintedWarrior.java +++ b/Mage.Sets/src/mage/cards/g/GuanYuSaintedWarrior.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.ShuffleIntoLibrarySourceEffect; @@ -35,6 +34,9 @@ import mage.abilities.keyword.HorsemanshipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -44,7 +46,7 @@ public class GuanYuSaintedWarrior extends CardImpl { public GuanYuSaintedWarrior(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/g/GuanYus1000LiMarch.java b/Mage.Sets/src/mage/cards/g/GuanYus1000LiMarch.java index 0e359f7c147..1f0046143c1 100644 --- a/Mage.Sets/src/mage/cards/g/GuanYus1000LiMarch.java +++ b/Mage.Sets/src/mage/cards/g/GuanYus1000LiMarch.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,6 +34,8 @@ import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.TappedPredicate; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GuardDuty.java b/Mage.Sets/src/mage/cards/g/GuardDuty.java index b4bcc6cc49f..6c0d25efa24 100644 --- a/Mage.Sets/src/mage/cards/g/GuardDuty.java +++ b/Mage.Sets/src/mage/cards/g/GuardDuty.java @@ -28,9 +28,6 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -39,9 +36,15 @@ import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GuardGomazoa.java b/Mage.Sets/src/mage/cards/g/GuardGomazoa.java index 1fd6ca4556b..ea4833060af 100644 --- a/Mage.Sets/src/mage/cards/g/GuardGomazoa.java +++ b/Mage.Sets/src/mage/cards/g/GuardGomazoa.java @@ -27,18 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.PreventCombatDamageToSourceEffect; import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.abilities.common.SimpleStaticAbility; -import mage.constants.Zone; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GuardianAngel.java b/Mage.Sets/src/mage/cards/g/GuardianAngel.java index f183f418b98..7b8c26f1d96 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianAngel.java +++ b/Mage.Sets/src/mage/cards/g/GuardianAngel.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.SpecialAction; @@ -50,6 +49,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author MTGfan diff --git a/Mage.Sets/src/mage/cards/g/GuardianAutomaton.java b/Mage.Sets/src/mage/cards/g/GuardianAutomaton.java index 9a2b20b9821..9996ed3829c 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianAutomaton.java +++ b/Mage.Sets/src/mage/cards/g/GuardianAutomaton.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.abilities.common.DiesTriggeredAbility; -import mage.abilities.effects.common.GainLifeEffect; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GuardianBeast.java b/Mage.Sets/src/mage/cards/g/GuardianBeast.java index 4f30aae14c0..ef0a0fcc57c 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianBeast.java +++ b/Mage.Sets/src/mage/cards/g/GuardianBeast.java @@ -27,8 +27,6 @@ */ package mage.cards.g; -import java.util.Objects; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -37,19 +35,19 @@ import mage.abilities.condition.common.SourceTappedCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.Outcome; import mage.constants.Zone; +import mage.filter.FilterObject; +import mage.filter.FilterStackObject; import mage.filter.common.FilterControlledArtifactPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; -import mage.constants.Outcome; -import mage.filter.FilterObject; -import mage.filter.FilterStackObject; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.game.events.GameEvent; @@ -57,6 +55,9 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.game.stack.StackObject; +import java.util.Objects; +import java.util.UUID; + /** * * @author spjspj diff --git a/Mage.Sets/src/mage/cards/g/GuardianIdol.java b/Mage.Sets/src/mage/cards/g/GuardianIdol.java index e4c23920098..ee314a87456 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianIdol.java +++ b/Mage.Sets/src/mage/cards/g/GuardianIdol.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GuardianLions.java b/Mage.Sets/src/mage/cards/g/GuardianLions.java index a3b0743380f..a3b85979aa0 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianLions.java +++ b/Mage.Sets/src/mage/cards/g/GuardianLions.java @@ -27,12 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GuardianOfCloverdell.java b/Mage.Sets/src/mage/cards/g/GuardianOfCloverdell.java index d3c2187c2f4..3cddb22e3f9 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianOfCloverdell.java +++ b/Mage.Sets/src/mage/cards/g/GuardianOfCloverdell.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +37,7 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; diff --git a/Mage.Sets/src/mage/cards/g/GuardianOfPilgrims.java b/Mage.Sets/src/mage/cards/g/GuardianOfPilgrims.java index 9427a8be5cc..b548ac03766 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianOfPilgrims.java +++ b/Mage.Sets/src/mage/cards/g/GuardianOfPilgrims.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -37,6 +36,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GuardianOfSolitude.java b/Mage.Sets/src/mage/cards/g/GuardianOfSolitude.java index 5cac7174e7c..d4cd517a261 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianOfSolitude.java +++ b/Mage.Sets/src/mage/cards/g/GuardianOfSolitude.java @@ -28,9 +28,6 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -38,10 +35,13 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterSpiritOrArcaneCard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ diff --git a/Mage.Sets/src/mage/cards/g/GuardianOfTazeem.java b/Mage.Sets/src/mage/cards/g/GuardianOfTazeem.java index 8ac488e6c52..54b7b2d09ce 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianOfTazeem.java +++ b/Mage.Sets/src/mage/cards/g/GuardianOfTazeem.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -51,6 +50,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GuardianOfTheAges.java b/Mage.Sets/src/mage/cards/g/GuardianOfTheAges.java index 0f53216b5af..3b662d0a7ce 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianOfTheAges.java +++ b/Mage.Sets/src/mage/cards/g/GuardianOfTheAges.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; @@ -46,6 +45,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Noahsark diff --git a/Mage.Sets/src/mage/cards/g/GuardianOfVituGhazi.java b/Mage.Sets/src/mage/cards/g/GuardianOfVituGhazi.java index 250af724e62..a1242990c8e 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianOfVituGhazi.java +++ b/Mage.Sets/src/mage/cards/g/GuardianOfVituGhazi.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ConvokeAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GuardianSeraph.java b/Mage.Sets/src/mage/cards/g/GuardianSeraph.java index eed36159d0d..ff0ee376810 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianSeraph.java +++ b/Mage.Sets/src/mage/cards/g/GuardianSeraph.java @@ -27,10 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -38,9 +34,14 @@ import mage.abilities.effects.PreventionEffectImpl; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GuardianShieldBearer.java b/Mage.Sets/src/mage/cards/g/GuardianShieldBearer.java index 22f57a3f622..f302d0fd428 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianShieldBearer.java +++ b/Mage.Sets/src/mage/cards/g/GuardianShieldBearer.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GuardianZendikon.java b/Mage.Sets/src/mage/cards/g/GuardianZendikon.java index 24d121fd931..88dc8def3c7 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianZendikon.java +++ b/Mage.Sets/src/mage/cards/g/GuardianZendikon.java @@ -27,9 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesAttachedTriggeredAbility; @@ -41,10 +38,16 @@ import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.permanent.token.Token; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth diff --git a/Mage.Sets/src/mage/cards/g/GuardiansMagemark.java b/Mage.Sets/src/mage/cards/g/GuardiansMagemark.java index dbfcefa2bcc..a87eaa0ec7f 100644 --- a/Mage.Sets/src/mage/cards/g/GuardiansMagemark.java +++ b/Mage.Sets/src/mage/cards/g/GuardiansMagemark.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -36,17 +35,15 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.EnchantedPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Markedagain diff --git a/Mage.Sets/src/mage/cards/g/GuardiansOfAkrasa.java b/Mage.Sets/src/mage/cards/g/GuardiansOfAkrasa.java index d23fa618499..34ce262a2c2 100644 --- a/Mage.Sets/src/mage/cards/g/GuardiansOfAkrasa.java +++ b/Mage.Sets/src/mage/cards/g/GuardiansOfAkrasa.java @@ -28,13 +28,14 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.ExaltedAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GuardiansOfMeletis.java b/Mage.Sets/src/mage/cards/g/GuardiansOfMeletis.java index 77255a04457..d5b412bf7dc 100644 --- a/Mage.Sets/src/mage/cards/g/GuardiansOfMeletis.java +++ b/Mage.Sets/src/mage/cards/g/GuardiansOfMeletis.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GuardiansPledge.java b/Mage.Sets/src/mage/cards/g/GuardiansPledge.java index 02fd123d1c8..5172e9016f4 100644 --- a/Mage.Sets/src/mage/cards/g/GuardiansPledge.java +++ b/Mage.Sets/src/mage/cards/g/GuardiansPledge.java @@ -28,17 +28,17 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author Loki diff --git a/Mage.Sets/src/mage/cards/g/GudulLurker.java b/Mage.Sets/src/mage/cards/g/GudulLurker.java index aeb1192a882..4b21996d7e2 100644 --- a/Mage.Sets/src/mage/cards/g/GudulLurker.java +++ b/Mage.Sets/src/mage/cards/g/GudulLurker.java @@ -27,15 +27,16 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.keyword.MorphAbility; import mage.abilities.keyword.CantBeBlockedSourceAbility; +import mage.abilities.keyword.MorphAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GuerrillaTactics.java b/Mage.Sets/src/mage/cards/g/GuerrillaTactics.java index 782490da4f3..8d42fc98a20 100644 --- a/Mage.Sets/src/mage/cards/g/GuerrillaTactics.java +++ b/Mage.Sets/src/mage/cards/g/GuerrillaTactics.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DiscardedByOpponentTriggerAbility; import mage.abilities.effects.common.DamageTargetEffect; @@ -36,6 +35,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author dustinconrad diff --git a/Mage.Sets/src/mage/cards/g/GuidedStrike.java b/Mage.Sets/src/mage/cards/g/GuidedStrike.java index 3acc1d43496..8d29e88fe21 100644 --- a/Mage.Sets/src/mage/cards/g/GuidedStrike.java +++ b/Mage.Sets/src/mage/cards/g/GuidedStrike.java @@ -27,17 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; -import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; -import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GuildFeud.java b/Mage.Sets/src/mage/cards/g/GuildFeud.java index 917f0b7a374..b6068b3d93a 100644 --- a/Mage.Sets/src/mage/cards/g/GuildFeud.java +++ b/Mage.Sets/src/mage/cards/g/GuildFeud.java @@ -27,16 +27,11 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; @@ -48,6 +43,8 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GuildscornWard.java b/Mage.Sets/src/mage/cards/g/GuildscornWard.java index 3fdc9ac6dfd..a9b2d30704f 100644 --- a/Mage.Sets/src/mage/cards/g/GuildscornWard.java +++ b/Mage.Sets/src/mage/cards/g/GuildscornWard.java @@ -27,12 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; @@ -41,11 +35,14 @@ import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.FilterObject; import mage.filter.predicate.mageobject.MulticoloredPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/Guile.java b/Mage.Sets/src/mage/cards/g/Guile.java index 21e6d4bf06a..b047cd2e77e 100644 --- a/Mage.Sets/src/mage/cards/g/Guile.java +++ b/Mage.Sets/src/mage/cards/g/Guile.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.PutIntoGraveFromAnywhereSourceTriggeredAbility; @@ -49,6 +48,8 @@ import mage.game.stack.Spell; import mage.game.stack.StackObject; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 diff --git a/Mage.Sets/src/mage/cards/g/Guiltfeeder.java b/Mage.Sets/src/mage/cards/g/Guiltfeeder.java index 6b869f8faee..c50aad08316 100644 --- a/Mage.Sets/src/mage/cards/g/Guiltfeeder.java +++ b/Mage.Sets/src/mage/cards/g/Guiltfeeder.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility; import mage.abilities.dynamicvalue.common.CardsInTargetPlayersGraveyardCount; @@ -38,6 +37,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LoneFox diff --git a/Mage.Sets/src/mage/cards/g/GuiseOfFire.java b/Mage.Sets/src/mage/cards/g/GuiseOfFire.java index a4f0e7843da..6f07841823f 100644 --- a/Mage.Sets/src/mage/cards/g/GuiseOfFire.java +++ b/Mage.Sets/src/mage/cards/g/GuiseOfFire.java @@ -27,20 +27,20 @@ */ package mage.cards.g; -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.combat.AttacksIfAbleAttachedEffect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import java.util.UUID; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.combat.AttacksIfAbleAttachedEffect; /** * @author noxx diff --git a/Mage.Sets/src/mage/cards/g/GulfSquid.java b/Mage.Sets/src/mage/cards/g/GulfSquid.java index aa5df77f8a4..6561bfe9311 100644 --- a/Mage.Sets/src/mage/cards/g/GulfSquid.java +++ b/Mage.Sets/src/mage/cards/g/GulfSquid.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,6 +37,8 @@ import mage.constants.CardType; import mage.filter.common.FilterLandPermanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/Guma.java b/Mage.Sets/src/mage/cards/g/Guma.java index aa4a8188dc9..07e73145de1 100644 --- a/Mage.Sets/src/mage/cards/g/Guma.java +++ b/Mage.Sets/src/mage/cards/g/Guma.java @@ -28,13 +28,14 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/Gundark.java b/Mage.Sets/src/mage/cards/g/Gundark.java index 33c27f37e46..26534a169c8 100644 --- a/Mage.Sets/src/mage/cards/g/Gundark.java +++ b/Mage.Sets/src/mage/cards/g/Gundark.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesMonstrousSourceTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -38,6 +37,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/g/GunganCaptain.java b/Mage.Sets/src/mage/cards/g/GunganCaptain.java index 19faa03e27e..5620a58d3f1 100644 --- a/Mage.Sets/src/mage/cards/g/GunganCaptain.java +++ b/Mage.Sets/src/mage/cards/g/GunganCaptain.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToACreatureTriggeredAbility; @@ -37,6 +36,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author Styxo diff --git a/Mage.Sets/src/mage/cards/g/GurmagAngler.java b/Mage.Sets/src/mage/cards/g/GurmagAngler.java index d25de200642..44cba343e60 100644 --- a/Mage.Sets/src/mage/cards/g/GurmagAngler.java +++ b/Mage.Sets/src/mage/cards/g/GurmagAngler.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.DelveAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GurmagDrowner.java b/Mage.Sets/src/mage/cards/g/GurmagDrowner.java index af4e2cfee94..5499e9d7369 100644 --- a/Mage.Sets/src/mage/cards/g/GurmagDrowner.java +++ b/Mage.Sets/src/mage/cards/g/GurmagDrowner.java @@ -27,18 +27,13 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.ExploitCreatureTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.ExploitAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -47,6 +42,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GurmagSwiftwing.java b/Mage.Sets/src/mage/cards/g/GurmagSwiftwing.java index 6f81af50354..a72b210085f 100644 --- a/Mage.Sets/src/mage/cards/g/GurmagSwiftwing.java +++ b/Mage.Sets/src/mage/cards/g/GurmagSwiftwing.java @@ -27,15 +27,16 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/Gush.java b/Mage.Sets/src/mage/cards/g/Gush.java index ce5dc9b0758..4292f005970 100644 --- a/Mage.Sets/src/mage/cards/g/Gush.java +++ b/Mage.Sets/src/mage/cards/g/Gush.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -38,6 +37,8 @@ import mage.filter.common.FilterControlledLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Plopman diff --git a/Mage.Sets/src/mage/cards/g/GustSkimmer.java b/Mage.Sets/src/mage/cards/g/GustSkimmer.java index 276f06a36e4..922e76a72eb 100644 --- a/Mage.Sets/src/mage/cards/g/GustSkimmer.java +++ b/Mage.Sets/src/mage/cards/g/GustSkimmer.java @@ -28,10 +28,6 @@ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,6 +35,11 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/GustWalker.java b/Mage.Sets/src/mage/cards/g/GustWalker.java new file mode 100644 index 00000000000..3734b0c311d --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GustWalker.java @@ -0,0 +1,75 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.g; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.ExertAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author Styxo + */ +public class GustWalker extends CardImpl { + + public GustWalker(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); + + this.subtype.add("Human"); + this.subtype.add("Wizard"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // You may exert Gust Walker as it attacks. When you do, it gets +1/+1 and gains flying until end of turn. + Effect effect = new BoostSourceEffect(1, 1, Duration.EndOfTurn); + effect.setText("it gets +1/+1"); + BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(effect); + effect = new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn); + effect.setText("and gains flying until end of turn"); + ability.addEffect(effect); + this.addAbility(new ExertAbility(ability)); + } + + public GustWalker(final GustWalker card) { + super(card); + } + + @Override + public GustWalker copy() { + return new GustWalker(this); + } +} diff --git a/Mage.Sets/src/mage/cards/g/GustcloakCavalier.java b/Mage.Sets/src/mage/cards/g/GustcloakCavalier.java index 79220e0ff9f..b4f4e17a4c8 100644 --- a/Mage.Sets/src/mage/cards/g/GustcloakCavalier.java +++ b/Mage.Sets/src/mage/cards/g/GustcloakCavalier.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -42,6 +41,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GustcloakHarrier.java b/Mage.Sets/src/mage/cards/g/GustcloakHarrier.java index 4d8b409c26a..26a291c0b5a 100644 --- a/Mage.Sets/src/mage/cards/g/GustcloakHarrier.java +++ b/Mage.Sets/src/mage/cards/g/GustcloakHarrier.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesBlockedTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GustcloakRunner.java b/Mage.Sets/src/mage/cards/g/GustcloakRunner.java index 0b548c5fe59..e88e88ea64a 100644 --- a/Mage.Sets/src/mage/cards/g/GustcloakRunner.java +++ b/Mage.Sets/src/mage/cards/g/GustcloakRunner.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesBlockedTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GustcloakSavior.java b/Mage.Sets/src/mage/cards/g/GustcloakSavior.java index 40771391a17..5a58318cb63 100644 --- a/Mage.Sets/src/mage/cards/g/GustcloakSavior.java +++ b/Mage.Sets/src/mage/cards/g/GustcloakSavior.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesBlockedAllTriggeredAbility; @@ -42,6 +41,8 @@ import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GustcloakSentinel.java b/Mage.Sets/src/mage/cards/g/GustcloakSentinel.java index 5a5883f0cd2..f1da65de9f9 100644 --- a/Mage.Sets/src/mage/cards/g/GustcloakSentinel.java +++ b/Mage.Sets/src/mage/cards/g/GustcloakSentinel.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesBlockedTriggeredAbility; @@ -38,6 +37,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GustcloakSkirmisher.java b/Mage.Sets/src/mage/cards/g/GustcloakSkirmisher.java index d07a9272644..1acbd38613d 100644 --- a/Mage.Sets/src/mage/cards/g/GustcloakSkirmisher.java +++ b/Mage.Sets/src/mage/cards/g/GustcloakSkirmisher.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesBlockedTriggeredAbility; @@ -39,6 +38,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/cards/g/GustriderExuberant.java b/Mage.Sets/src/mage/cards/g/GustriderExuberant.java index 51b395df08b..18aa54d6ce1 100644 --- a/Mage.Sets/src/mage/cards/g/GustriderExuberant.java +++ b/Mage.Sets/src/mage/cards/g/GustriderExuberant.java @@ -27,21 +27,22 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author North @@ -51,7 +52,7 @@ public class GustriderExuberant extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); static { - filter.add(new PowerPredicate(ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public GustriderExuberant(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/g/GutShot.java b/Mage.Sets/src/mage/cards/g/GutShot.java index 3fe09ad40e7..892cceaca82 100644 --- a/Mage.Sets/src/mage/cards/g/GutShot.java +++ b/Mage.Sets/src/mage/cards/g/GutShot.java @@ -27,13 +27,14 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GutlessGhoul.java b/Mage.Sets/src/mage/cards/g/GutlessGhoul.java index 33affc7f9e4..bb3208b42e2 100644 --- a/Mage.Sets/src/mage/cards/g/GutlessGhoul.java +++ b/Mage.Sets/src/mage/cards/g/GutlessGhoul.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,10 +36,13 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -49,7 +51,7 @@ public class GutlessGhoul extends CardImpl { public GutlessGhoul(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); - this.supertype.add("Snow"); + this.addSuperType(SuperType.SNOW); this.subtype.add("Zombie"); this.power = new MageInt(2); this.toughness = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/g/GutterGrime.java b/Mage.Sets/src/mage/cards/g/GutterGrime.java index d9dc8edc9cb..170c8c3ddc7 100644 --- a/Mage.Sets/src/mage/cards/g/GutterGrime.java +++ b/Mage.Sets/src/mage/cards/g/GutterGrime.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -53,6 +52,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.PermanentToken; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author BetaSteward diff --git a/Mage.Sets/src/mage/cards/g/GutterSkulk.java b/Mage.Sets/src/mage/cards/g/GutterSkulk.java index dd4bb0a6363..68e6d4dbc9b 100644 --- a/Mage.Sets/src/mage/cards/g/GutterSkulk.java +++ b/Mage.Sets/src/mage/cards/g/GutterSkulk.java @@ -27,11 +27,12 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/g/Guttersnipe.java b/Mage.Sets/src/mage/cards/g/Guttersnipe.java index a27d4903210..bb6ef710c7c 100644 --- a/Mage.Sets/src/mage/cards/g/Guttersnipe.java +++ b/Mage.Sets/src/mage/cards/g/Guttersnipe.java @@ -28,19 +28,19 @@ package mage.cards.g; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.TargetController; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.DamagePlayersEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GutturalResponse.java b/Mage.Sets/src/mage/cards/g/GutturalResponse.java index 7250aefcb1d..31d78befa21 100644 --- a/Mage.Sets/src/mage/cards/g/GutturalResponse.java +++ b/Mage.Sets/src/mage/cards/g/GutturalResponse.java @@ -27,17 +27,18 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; import mage.ObjectColor; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author North diff --git a/Mage.Sets/src/mage/cards/g/GutwrencherOni.java b/Mage.Sets/src/mage/cards/g/GutwrencherOni.java index 01ff97454ab..6497775e97b 100644 --- a/Mage.Sets/src/mage/cards/g/GutwrencherOni.java +++ b/Mage.Sets/src/mage/cards/g/GutwrencherOni.java @@ -27,11 +27,8 @@ */ package mage.cards.g; -import java.util.UUID; - -import mage.abilities.CountType; -import mage.constants.CardType; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; @@ -39,11 +36,14 @@ import mage.abilities.effects.common.discard.DiscardControllerEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -70,7 +70,7 @@ public class GutwrencherOni extends CardImpl { // At the beginning of your upkeep, discard a card if you don't control an Ogre. this.addAbility(new BeginningOfUpkeepTriggeredAbility(new ConditionalOneShotEffect( new DiscardControllerEffect(1), - new PermanentsOnTheBattlefieldCondition(filter, CountType.EQUAL_TO, 0), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.EQUAL_TO, 0), "discard a card if you don't control an Ogre"), TargetController.YOU, false)); } diff --git a/Mage.Sets/src/mage/cards/g/GuulDrazAssassin.java b/Mage.Sets/src/mage/cards/g/GuulDrazAssassin.java index 714479482f8..37d0321e41c 100644 --- a/Mage.Sets/src/mage/cards/g/GuulDrazAssassin.java +++ b/Mage.Sets/src/mage/cards/g/GuulDrazAssassin.java @@ -28,7 +28,6 @@ package mage.cards.g; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Abilities; import mage.abilities.AbilitiesImpl; @@ -41,6 +40,7 @@ import mage.abilities.keyword.LevelUpAbility; import mage.abilities.keyword.LevelerCardBuilder; import mage.cards.CardSetInfo; import mage.cards.LevelerCard; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/g/GuulDrazOverseer.java b/Mage.Sets/src/mage/cards/g/GuulDrazOverseer.java index 0dd3638f744..11b492abc8c 100644 --- a/Mage.Sets/src/mage/cards/g/GuulDrazOverseer.java +++ b/Mage.Sets/src/mage/cards/g/GuulDrazOverseer.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LandfallAbility; @@ -36,15 +35,13 @@ import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/cards/g/GuulDrazSpecter.java b/Mage.Sets/src/mage/cards/g/GuulDrazSpecter.java index 45f08a5fcd5..5638ecab83b 100644 --- a/Mage.Sets/src/mage/cards/g/GuulDrazSpecter.java +++ b/Mage.Sets/src/mage/cards/g/GuulDrazSpecter.java @@ -27,25 +27,25 @@ */ package mage.cards.g; -import java.util.Set; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.decorator.ConditionalContinuousEffect; -import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.game.Game; +import java.util.Set; +import java.util.UUID; + /** * @author North */ diff --git a/Mage.Sets/src/mage/cards/g/GuulDrazVampire.java b/Mage.Sets/src/mage/cards/g/GuulDrazVampire.java index 682fc11a6c8..86790c3bfd4 100644 --- a/Mage.Sets/src/mage/cards/g/GuulDrazVampire.java +++ b/Mage.Sets/src/mage/cards/g/GuulDrazVampire.java @@ -27,12 +27,11 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; -import mage.abilities.condition.common.TenOrLessLifeCondition; +import mage.abilities.condition.common.XorLessLifeCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; @@ -43,6 +42,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author North @@ -62,7 +63,7 @@ public class GuulDrazVampire extends CardImpl { this.toughness = new MageInt(1); // As long as an opponent has 10 or less life, Guul Draz Vampire gets +2/+1 and has intimidate. (It can't be blocked except by artifact creatures and/or creatures that share a color with it.) - Condition condition = new TenOrLessLifeCondition(TenOrLessLifeCondition.CheckType.AN_OPPONENT); + Condition condition = new XorLessLifeCondition(XorLessLifeCondition.CheckType.AN_OPPONENT, 10); ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(new BoostSourceEffect(2, 1, Duration.WhileOnBattlefield), condition, rule1); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect1); ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(IntimidateAbility.getInstance()), condition, rule2)); diff --git a/Mage.Sets/src/mage/cards/g/GwafaHazidProfiteer.java b/Mage.Sets/src/mage/cards/g/GwafaHazidProfiteer.java index 3bb99f31695..7727a1f9d64 100644 --- a/Mage.Sets/src/mage/cards/g/GwafaHazidProfiteer.java +++ b/Mage.Sets/src/mage/cards/g/GwafaHazidProfiteer.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,11 +37,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.RestrictionEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; @@ -51,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -65,7 +62,7 @@ public class GwafaHazidProfiteer extends CardImpl { public GwafaHazidProfiteer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rogue"); diff --git a/Mage.Sets/src/mage/cards/g/GwendlynDiCorci.java b/Mage.Sets/src/mage/cards/g/GwendlynDiCorci.java index 06869ed052a..c0d4e7b7948 100644 --- a/Mage.Sets/src/mage/cards/g/GwendlynDiCorci.java +++ b/Mage.Sets/src/mage/cards/g/GwendlynDiCorci.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -37,9 +36,12 @@ import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author fireshoes @@ -48,7 +50,7 @@ public class GwendlynDiCorci extends CardImpl { public GwendlynDiCorci(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U}{B}{B}{R}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rogue"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/g/GwyllionHedgeMage.java b/Mage.Sets/src/mage/cards/g/GwyllionHedgeMage.java index f203b1c985e..f21a73b86c4 100644 --- a/Mage.Sets/src/mage/cards/g/GwyllionHedgeMage.java +++ b/Mage.Sets/src/mage/cards/g/GwyllionHedgeMage.java @@ -27,10 +27,9 @@ */ package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.KithkinToken; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -72,13 +73,13 @@ public class GwyllionHedgeMage extends CardImpl { this.toughness = new MageInt(2); // When Gwyllion Hedge-Mage enters the battlefield, if you control two or more Plains, you may create a 1/1 white Kithkin Soldier creature token. - Ability ability = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new KithkinToken()), true), new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1), rule1); + Ability ability = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new KithkinToken()), true), new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1), rule1); this.addAbility(ability); // When Gwyllion Hedge-Mage enters the battlefield, if you control two or more Swamps, you may put a -1/-1 counter on target creature. Ability ability2 = new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance()), true), - new PermanentsOnTheBattlefieldCondition(filter2, CountType.MORE_THAN, 1), + new PermanentsOnTheBattlefieldCondition(filter2, ComparisonType.MORE_THAN, 1), rule2); ability2.addTarget(new TargetCreaturePermanent()); this.addAbility(ability2); diff --git a/Mage.Sets/src/mage/cards/g/GyreSage.java b/Mage.Sets/src/mage/cards/g/GyreSage.java index 6b24695ab5f..722953b8bd9 100644 --- a/Mage.Sets/src/mage/cards/g/GyreSage.java +++ b/Mage.Sets/src/mage/cards/g/GyreSage.java @@ -28,16 +28,17 @@ */ package mage.cards.g; -import java.util.UUID; -import mage.constants.CardType; -import mage.MageInt; -import mage.Mana; -import mage.abilities.dynamicvalue.common.CountersSourceCount; -import mage.abilities.keyword.EvolveAbility; -import mage.abilities.mana.DynamicManaAbility; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.counters.CounterType; + import mage.MageInt; + import mage.Mana; + import mage.abilities.dynamicvalue.common.CountersSourceCount; + import mage.abilities.keyword.EvolveAbility; + import mage.abilities.mana.DynamicManaAbility; + import mage.cards.CardImpl; + import mage.cards.CardSetInfo; + import mage.constants.CardType; + import mage.counters.CounterType; + + import java.util.UUID; /** * diff --git a/Mage.Sets/src/mage/cards/h/HaakonStromgaldScourge.java b/Mage.Sets/src/mage/cards/h/HaakonStromgaldScourge.java index 22226bf2908..f371e06e766 100644 --- a/Mage.Sets/src/mage/cards/h/HaakonStromgaldScourge.java +++ b/Mage.Sets/src/mage/cards/h/HaakonStromgaldScourge.java @@ -28,24 +28,21 @@ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.DiesTriggeredAbility; -import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; +import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.AsThoughEffectImpl; +import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; +import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; -import mage.abilities.effects.common.LoseLifeSourceControllerEffect; + +import java.util.UUID; /** * @@ -55,7 +52,7 @@ public class HaakonStromgaldScourge extends CardImpl { public HaakonStromgaldScourge(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Knight"); diff --git a/Mage.Sets/src/mage/cards/h/HagHedgeMage.java b/Mage.Sets/src/mage/cards/h/HagHedgeMage.java index d93279bb809..e2f114d65dc 100644 --- a/Mage.Sets/src/mage/cards/h/HagHedgeMage.java +++ b/Mage.Sets/src/mage/cards/h/HagHedgeMage.java @@ -30,7 +30,7 @@ package mage.cards.h; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -71,12 +71,12 @@ public class HagHedgeMage extends CardImpl { this.toughness = new MageInt(2); // When Hag Hedge-Mage enters the battlefield, if you control two or more Swamps, you may have target player discard a card. - Ability ability = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new DiscardTargetEffect(1), true), new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1), rule); + Ability ability = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new DiscardTargetEffect(1), true), new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1), rule); ability.addTarget(new TargetPlayer()); this.addAbility(ability); // When Hag Hedge-Mage enters the battlefield, if you control two or more Forests, you may put target card from your graveyard on top of your library. - Ability ability2 = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new PutOnLibraryTargetEffect(true), true), new PermanentsOnTheBattlefieldCondition(filter2, CountType.MORE_THAN, 1), rule2); + Ability ability2 = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new PutOnLibraryTargetEffect(true), true), new PermanentsOnTheBattlefieldCondition(filter2, ComparisonType.MORE_THAN, 1), rule2); ability2.addTarget(new TargetCardInYourGraveyard()); this.addAbility(ability2); } diff --git a/Mage.Sets/src/mage/cards/h/HallOfGemstone.java b/Mage.Sets/src/mage/cards/h/HallOfGemstone.java index 00b1037b673..578a7766685 100644 --- a/Mage.Sets/src/mage/cards/h/HallOfGemstone.java +++ b/Mage.Sets/src/mage/cards/h/HallOfGemstone.java @@ -37,10 +37,7 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.choices.ChoiceColor; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.ManaEvent; @@ -57,7 +54,7 @@ public class HallOfGemstone extends CardImpl { public HallOfGemstone(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{G}{G}"); - this.supertype.add("World"); + addSuperType(SuperType.WORLD); // At the beginning of each player's upkeep, that player chooses a color. Until end of turn, lands tapped for mana produce mana of the chosen color instead of any other color. this.addAbility(new BeginningOfUntapTriggeredAbility(new HallOfGemstoneEffect(), TargetController.ANY, false)); diff --git a/Mage.Sets/src/mage/cards/h/HallOfTheBanditLord.java b/Mage.Sets/src/mage/cards/h/HallOfTheBanditLord.java index abfc3d8bcbb..e0baeb9d0b6 100644 --- a/Mage.Sets/src/mage/cards/h/HallOfTheBanditLord.java +++ b/Mage.Sets/src/mage/cards/h/HallOfTheBanditLord.java @@ -27,9 +27,6 @@ */ package mage.cards.h; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageObject; import mage.Mana; import mage.abilities.Ability; @@ -44,10 +41,7 @@ import mage.abilities.keyword.HasteAbility; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; @@ -56,6 +50,10 @@ import mage.game.stack.Spell; import mage.target.targetpointer.FixedTarget; import mage.watchers.Watcher; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author emerald000 @@ -64,7 +62,7 @@ public class HallOfTheBanditLord extends CardImpl { public HallOfTheBanditLord(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Hall of the Bandit Lord enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); @@ -112,7 +110,7 @@ class HallOfTheBanditLordWatcher extends Watcher { @Override public void watch(GameEvent event, Game game) { - if (event.getType() == EventType.MANA_PAYED) { + if (event.getType() == EventType.MANA_PAID) { MageObject target = game.getObject(event.getTargetId()); if (event.getSourceId() != null && event.getSourceId().equals(this.getSourceId()) diff --git a/Mage.Sets/src/mage/cards/h/HallOfTriumph.java b/Mage.Sets/src/mage/cards/h/HallOfTriumph.java index 082365fce66..bdedf576d6a 100644 --- a/Mage.Sets/src/mage/cards/h/HallOfTriumph.java +++ b/Mage.Sets/src/mage/cards/h/HallOfTriumph.java @@ -36,12 +36,7 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.ChooseColorEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; @@ -54,7 +49,7 @@ public class HallOfTriumph extends CardImpl { public HallOfTriumph(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // As Hall of Triumph enters the battlefield choose a color. this.addAbility(new AsEntersBattlefieldAbility(new ChooseColorEffect(Outcome.Neutral))); diff --git a/Mage.Sets/src/mage/cards/h/HallowedGround.java b/Mage.Sets/src/mage/cards/h/HallowedGround.java index 54b842a7f60..a8e5561eed9 100644 --- a/Mage.Sets/src/mage/cards/h/HallowedGround.java +++ b/Mage.Sets/src/mage/cards/h/HallowedGround.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -35,6 +34,7 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; @@ -42,6 +42,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Styxo @@ -51,7 +53,7 @@ public class HallowedGround extends CardImpl { private static final FilterControlledPermanent filter = new FilterControlledLandPermanent("nonsnow land you control"); static { - filter.add(Predicates.not(new SupertypePredicate("Snow"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.SNOW))); } public HallowedGround(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/h/HammerMage.java b/Mage.Sets/src/mage/cards/h/HammerMage.java index cf57a37f918..206a18feb68 100644 --- a/Mage.Sets/src/mage/cards/h/HammerMage.java +++ b/Mage.Sets/src/mage/cards/h/HammerMage.java @@ -27,9 +27,9 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.costs.common.TapSourceCost; @@ -40,12 +40,13 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LoneFox @@ -95,7 +96,7 @@ class HammerMageEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { FilterArtifactPermanent filter = new FilterArtifactPermanent(); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, source.getManaCostsToPay().getX() + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, source.getManaCostsToPay().getX() + 1)); for(Permanent permanent : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { permanent.destroy(source.getSourceId(), game, false); } diff --git a/Mage.Sets/src/mage/cards/h/HammerOfPurphoros.java b/Mage.Sets/src/mage/cards/h/HammerOfPurphoros.java index e888547026d..5ec84d8a594 100644 --- a/Mage.Sets/src/mage/cards/h/HammerOfPurphoros.java +++ b/Mage.Sets/src/mage/cards/h/HammerOfPurphoros.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,12 +41,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.game.permanent.token.Token; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,7 +58,7 @@ public class HammerOfPurphoros extends CardImpl { public HammerOfPurphoros(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.ARTIFACT},"{1}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Creatures you control have haste. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, diff --git a/Mage.Sets/src/mage/cards/h/HanSolo.java b/Mage.Sets/src/mage/cards/h/HanSolo.java index 3a7475eb246..149b61f960c 100644 --- a/Mage.Sets/src/mage/cards/h/HanSolo.java +++ b/Mage.Sets/src/mage/cards/h/HanSolo.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.effects.Effect; @@ -37,15 +36,14 @@ import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo @@ -61,7 +59,7 @@ public class HanSolo extends CardImpl { public HanSolo(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rogue"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/h/HandToHand.java b/Mage.Sets/src/mage/cards/h/HandToHand.java index 25470bd8db8..cd1ca19333c 100644 --- a/Mage.Sets/src/mage/cards/h/HandToHand.java +++ b/Mage.Sets/src/mage/cards/h/HandToHand.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -35,14 +34,13 @@ import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.abilities.mana.ActivatedManaAbilityImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TurnPhase; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.Optional; +import java.util.UUID; + /** * * @author fireshoes @@ -106,8 +104,8 @@ class HandToHandEffect extends ContinuousRuleModifyingEffectImpl { } } if (event.getType() == GameEvent.EventType.ACTIVATE_ABILITY) { - Ability ability = game.getAbility(event.getTargetId(), event.getSourceId()); - if (ability != null && !(ability instanceof ActivatedManaAbilityImpl)) { + Optional ability = game.getAbility(event.getTargetId(), event.getSourceId()); + if (ability.isPresent() && !(ability.get() instanceof ActivatedManaAbilityImpl)) { return true; } } diff --git a/Mage.Sets/src/mage/cards/h/HannaShipsNavigator.java b/Mage.Sets/src/mage/cards/h/HannaShipsNavigator.java index cd4d59705ba..d6bfbb2c47d 100644 --- a/Mage.Sets/src/mage/cards/h/HannaShipsNavigator.java +++ b/Mage.Sets/src/mage/cards/h/HannaShipsNavigator.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,6 +36,7 @@ import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.FilterCard; @@ -45,6 +45,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.other.OwnerPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +62,7 @@ public class HannaShipsNavigator extends CardImpl { public HannaShipsNavigator(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Artificer"); diff --git a/Mage.Sets/src/mage/cards/h/HanweirMilitiaCaptain.java b/Mage.Sets/src/mage/cards/h/HanweirMilitiaCaptain.java index 81542b800a3..7c9de0f6cbf 100644 --- a/Mage.Sets/src/mage/cards/h/HanweirMilitiaCaptain.java +++ b/Mage.Sets/src/mage/cards/h/HanweirMilitiaCaptain.java @@ -29,7 +29,7 @@ package mage.cards.h; import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -64,7 +64,7 @@ public class HanweirMilitiaCaptain extends CardImpl { this.addAbility(new TransformAbility()); this.addAbility(new ConditionalTriggeredAbility( new BeginningOfUpkeepTriggeredAbility(new TransformSourceEffect(true), TargetController.YOU, false), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 3), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 3), "At the beginning of your upkeep, if you control four or more creatures, transform {this}")); } diff --git a/Mage.Sets/src/mage/cards/h/HanweirTheWrithingTownship.java b/Mage.Sets/src/mage/cards/h/HanweirTheWrithingTownship.java index 744467610c8..e6e1b2c4919 100644 --- a/Mage.Sets/src/mage/cards/h/HanweirTheWrithingTownship.java +++ b/Mage.Sets/src/mage/cards/h/HanweirTheWrithingTownship.java @@ -35,6 +35,7 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardSetInfo; import mage.cards.MeldCard; import mage.constants.CardType; +import mage.constants.SuperType; import mage.game.permanent.token.EldraziHorrorToken; import java.util.UUID; @@ -46,7 +47,7 @@ import java.util.UUID; public class HanweirTheWrithingTownship extends MeldCard { public HanweirTheWrithingTownship(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, ""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Eldrazi"); this.subtype.add("Ooze"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/h/HapatraVizierOfPoisons.java b/Mage.Sets/src/mage/cards/h/HapatraVizierOfPoisons.java new file mode 100644 index 00000000000..88d51b4cba8 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HapatraVizierOfPoisons.java @@ -0,0 +1,136 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.keyword.DeathtouchAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.game.permanent.token.Token; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author Styxo + */ +public class HapatraVizierOfPoisons extends CardImpl { + + public HapatraVizierOfPoisons(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}{G}"); + + addSuperType(SuperType.LEGENDARY); + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Whenever Hapatra, Vizier of Poisons deals combat damage to a player, you may put a -1/-1 counter on target creature. + Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance()), true); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + + // Whenever you put one or more -1/-1 counters on a creature, create a 1/1 green Snake creature token with deathtouch. + this.addAbility(new HapatraVizierOfPoisonsTriggeredAbility(new CreateTokenEffect(new DeathtouchSnakeToken()), false)); + + } + + public HapatraVizierOfPoisons(final HapatraVizierOfPoisons card) { + super(card); + } + + @Override + public HapatraVizierOfPoisons copy() { + return new HapatraVizierOfPoisons(this); + } +} + +class HapatraVizierOfPoisonsTriggeredAbility extends TriggeredAbilityImpl { + + public HapatraVizierOfPoisonsTriggeredAbility(Effect effect, boolean optional) { + super(Zone.BATTLEFIELD, effect, optional); + } + + public HapatraVizierOfPoisonsTriggeredAbility(HapatraVizierOfPoisonsTriggeredAbility ability) { + super(ability); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.COUNTERS_ADDED; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getData().equals(CounterType.M1M1.getName())) { + Permanent permanent = game.getPermanentOrLKIBattlefield(event.getTargetId()); + if (permanent == null) { + permanent = game.getPermanentEntering(event.getTargetId()); + } + return (permanent != null && permanent.isCreature()); + } + return false; + + } + + @Override + public HapatraVizierOfPoisonsTriggeredAbility copy() { + return new HapatraVizierOfPoisonsTriggeredAbility(this); + } + + @Override + public String getRule() { + return "Whenever you put one or more -1/-1 counters on a creature, " + super.getRule(); + } +} + +class DeathtouchSnakeToken extends Token { + + public DeathtouchSnakeToken() { + super("Snake", "1/1 green Snake creature token with deathtouch"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Snake"); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(DeathtouchAbility.getInstance()); + } +} diff --git a/Mage.Sets/src/mage/cards/h/HapatrasMark.java b/Mage.Sets/src/mage/cards/h/HapatrasMark.java new file mode 100644 index 00000000000..f4764c969f0 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HapatrasMark.java @@ -0,0 +1,64 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.effects.common.counter.RemoveAllCountersTargetEffect; +import mage.abilities.keyword.HexproofAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.counters.CounterType; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class HapatrasMark extends CardImpl { + + public HapatrasMark(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}"); + + // Target creature you control gains hexproof until end of turn. Remove all -1/-1 counters from it. + getSpellAbility().addEffect(new GainAbilityTargetEffect(HexproofAbility.getInstance(), Duration.EndOfTurn)); + getSpellAbility().addEffect(new RemoveAllCountersTargetEffect(CounterType.M1M1)); + getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); + } + + public HapatrasMark(final HapatrasMark card) { + super(card); + } + + @Override + public HapatrasMark copy() { + return new HapatrasMark(this); + } +} diff --git a/Mage.Sets/src/mage/cards/h/HarshMentor.java b/Mage.Sets/src/mage/cards/h/HarshMentor.java new file mode 100644 index 00000000000..05e0f599ecf --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HarshMentor.java @@ -0,0 +1,117 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.abilities.mana.ActivatedManaAbilityImpl; +import mage.cards.Card; +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.stack.StackAbility; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author spjspj + */ +public class HarshMentor extends CardImpl { + + public HarshMentor(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); + + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Whenever an opponent activates an ability of an artifact, creature, or land on the battlefield, if it isn't a mana ability, Harsh Mentor deals 2 damage to that player. + this.addAbility(new HarshMentorTriggeredAbility()); + } + + public HarshMentor(final HarshMentor card) { + super(card); + } + + @Override + public HarshMentor copy() { + return new HarshMentor(this); + } +} + +class HarshMentorTriggeredAbility extends TriggeredAbilityImpl { + + HarshMentorTriggeredAbility() { + super(Zone.BATTLEFIELD, new DamageTargetEffect(new StaticValue(2), false, "that player", true)); + } + + HarshMentorTriggeredAbility(final HarshMentorTriggeredAbility ability) { + super(ability); + } + + @Override + public HarshMentorTriggeredAbility copy() { + return new HarshMentorTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.ACTIVATED_ABILITY; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (!event.getPlayerId().equals(getControllerId())) { + Card source = game.getPermanentOrLKIBattlefield(event.getSourceId()); + if (source != null && (source.isArtifact() || source.isCreature() || source.isLand())) { + StackAbility stackAbility = (StackAbility) game.getStack().getStackObject(event.getSourceId()); + if (!(stackAbility.getStackAbility() instanceof ActivatedManaAbilityImpl)) { + for (Effect effect : getEffects()) { + effect.setTargetPointer(new FixedTarget(event.getPlayerId())); + } + return true; + } + } + } + return false; + } + + @Override + public String getRule() { + return "Whenever an opponent activates an ability of an artifact, creature, or land on the battlefield, if it isn't a mana ability, {this} deals 2 damage to that player."; + } +} diff --git a/Mage.Sets/src/mage/cards/h/HarvestSeason.java b/Mage.Sets/src/mage/cards/h/HarvestSeason.java new file mode 100644 index 00000000000..aeaf10646f5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HarvestSeason.java @@ -0,0 +1,109 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.OneShotEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.CardsImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterBasicLandCard; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.game.Game; +import mage.players.Player; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author Styxo + */ +public class HarvestSeason extends CardImpl { + + public HarvestSeason(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{G}"); + + // Search your library for up to X basic land cards, where X is the number of tapped creatures you control, + // and put those card onto the battlefield tapped, then shuffle your library. + this.getSpellAbility().addEffect(new HarvestSeasonEffect()); + + } + + public HarvestSeason(final HarvestSeason card) { + super(card); + } + + @Override + public HarvestSeason copy() { + return new HarvestSeason(this); + } +} + +class HarvestSeasonEffect extends OneShotEffect { + + private static final FilterPermanent filter = new FilterControlledCreaturePermanent("tapped creature you control"); + + static { + filter.add(new TappedPredicate()); + } + + HarvestSeasonEffect() { + super(Outcome.Benefit); + this.staticText = "Search your library for up to X basic land cards, where X is the number of tapped creatures you control," + + " and put those card onto the battlefield tapped, then shuffle your library."; + } + + HarvestSeasonEffect(final HarvestSeasonEffect effect) { + super(effect); + } + + @Override + public HarvestSeasonEffect copy() { + return new HarvestSeasonEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + TargetCardInLibrary target = new TargetCardInLibrary(0, new PermanentsOnBattlefieldCount(filter).calculate(game, source, this), new FilterBasicLandCard()); + if (controller.searchLibrary(target, game)) { + controller.moveCards(new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source, game, true, false, false, null); + } + controller.shuffleLibrary(source, game); + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/cards/h/HauntedPlateMail.java b/Mage.Sets/src/mage/cards/h/HauntedPlateMail.java index fe19288821c..c545393995b 100644 --- a/Mage.Sets/src/mage/cards/h/HauntedPlateMail.java +++ b/Mage.Sets/src/mage/cards/h/HauntedPlateMail.java @@ -30,7 +30,7 @@ package mage.cards.h; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.mana.ManaCostsImpl; @@ -64,7 +64,7 @@ public class HauntedPlateMail extends CardImpl { Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new HauntedPlateMailToken(),"", Duration.EndOfTurn), new ManaCostsImpl("{0}"), - new PermanentsOnTheBattlefieldCondition(new FilterCreaturePermanent(), CountType.EQUAL_TO, 0), + new PermanentsOnTheBattlefieldCondition(new FilterCreaturePermanent(), ComparisonType.EQUAL_TO, 0), "{0}: Until end of turn, Haunted Plate Mail becomes a 4/4 Spirit artifact creature that's no longer an Equipment. Activate this ability only if you control no creatures."); this.addAbility(ability); // Equip {4} diff --git a/Mage.Sets/src/mage/cards/h/HazeOfPollen.java b/Mage.Sets/src/mage/cards/h/HazeOfPollen.java new file mode 100644 index 00000000000..a24500e5c56 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HazeOfPollen.java @@ -0,0 +1,68 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author fireshoes + */ +public class HazeOfPollen extends CardImpl { + + public HazeOfPollen(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}"); + + + // Prevent all combat damage that would be dealt this turn. + Effect effect = new PreventAllDamageByAllPermanentsEffect(Duration.EndOfTurn, true); + effect.setText("Prevent all combat damage that would be dealt this turn"); + getSpellAbility().addEffect(effect); + + // Cycling {3} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{3}"))); + + } + + public HazeOfPollen(final HazeOfPollen card) { + super(card); + } + + @Override + public HazeOfPollen copy() { + return new HazeOfPollen(this); + } +} diff --git a/Mage.Sets/src/mage/cards/h/HazezonTamar.java b/Mage.Sets/src/mage/cards/h/HazezonTamar.java index 11a0dc64729..9775d742acc 100644 --- a/Mage.Sets/src/mage/cards/h/HazezonTamar.java +++ b/Mage.Sets/src/mage/cards/h/HazezonTamar.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -43,6 +42,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -50,6 +50,8 @@ import mage.game.Game; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -65,7 +67,7 @@ public class HazezonTamar extends CardImpl { public HazezonTamar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/h/HazoretTheFervent.java b/Mage.Sets/src/mage/cards/h/HazoretTheFervent.java new file mode 100644 index 00000000000..9da9b9f9890 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HazoretTheFervent.java @@ -0,0 +1,122 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.DiscardCardCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.RestrictionEffect; +import mage.abilities.effects.common.DamagePlayersEffect; +import mage.abilities.keyword.IndestructibleAbility; +import mage.abilities.keyword.HasteAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; + +/** + * + * @author fireshoes + */ +public class HazoretTheFervent extends CardImpl { + + public HazoretTheFervent(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); + + addSuperType(SuperType.LEGENDARY); + this.subtype.add("God"); + this.power = new MageInt(5); + this.toughness = new MageInt(4); + + // Indestructible + this.addAbility(IndestructibleAbility.getInstance()); + + // Haste + this.addAbility(HasteAbility.getInstance()); + + // Hazoret the Fervent can't attack or block unless you have one or fewer cards in hand. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new HazoretTheFerventEffect())); + + // {2}{R}, Discard a card: Hazoret deals 2 damage to each opponent. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamagePlayersEffect(2, TargetController.OPPONENT), new ManaCostsImpl("{2}{R}")); + ability.addCost(new DiscardCardCost()); + this.addAbility(ability); + } + + public HazoretTheFervent(final HazoretTheFervent card) { + super(card); + } + + @Override + public HazoretTheFervent copy() { + return new HazoretTheFervent(this); + } +} + +class HazoretTheFerventEffect extends RestrictionEffect { + + public HazoretTheFerventEffect() { + super(Duration.WhileOnBattlefield); + staticText = "{this} can't attack or block unless you have one or fewer cards in hand"; + } + + public HazoretTheFerventEffect(final HazoretTheFerventEffect effect) { + super(effect); + } + + @Override + public boolean applies(Permanent permanent, Ability source, Game game) { + Player controller = game.getPlayer(source.getControllerId()); + return permanent.getId().equals(source.getSourceId()) && controller.getHand().size() > 1; + } + + @Override + public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game) { + return false; + } + + @Override + public boolean canAttack(Game game) { + return false; + } + + @Override + public HazoretTheFerventEffect copy() { + return new HazoretTheFerventEffect(this); + } +} diff --git a/Mage.Sets/src/mage/cards/h/HazoretsFavor.java b/Mage.Sets/src/mage/cards/h/HazoretsFavor.java new file mode 100644 index 00000000000..3667e49701c --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HazoretsFavor.java @@ -0,0 +1,112 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.DelayedTriggeredAbility; +import mage.abilities.common.BeginningOfCombatTriggeredAbility; +import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.SacrificeTargetEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.HasteAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.TargetController; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author fireshoes + */ +public class HazoretsFavor extends CardImpl { + + public HazoretsFavor(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{R}"); + + // At the beginning of combat on your turn, you may have target creature you control get +2/+0 and gain haste until end of turn. + // If you do, sacrifice it at the beginning of the next end step. + Effect effect = new BoostTargetEffect(2, 0, Duration.EndOfTurn); + effect.setText("you may have target creature you control get +2/+0"); + Ability ability = new BeginningOfCombatTriggeredAbility(effect, TargetController.YOU, true); + effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn); + effect.setText(" and gain haste until end of turn"); + ability.addEffect(effect); + ability.addTarget(new TargetControlledCreaturePermanent()); + ability.addEffect(new HazoretsFavorSacrificeEffect()); + this.addAbility(ability); + } + + public HazoretsFavor(final HazoretsFavor card) { + super(card); + } + + @Override + public HazoretsFavor copy() { + return new HazoretsFavor(this); + } + + private static class HazoretsFavorSacrificeEffect extends OneShotEffect { + + public HazoretsFavorSacrificeEffect() { + super(Outcome.Sacrifice); + this.staticText = "If you do, sacrifice it at the beginning of the next end step"; + } + + public HazoretsFavorSacrificeEffect(final HazoretsFavorSacrificeEffect effect) { + super(effect); + } + + @Override + public HazoretsFavorSacrificeEffect copy() { + return new HazoretsFavorSacrificeEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent creature = game.getPermanent(source.getFirstTarget()); + if (creature != null) { + SacrificeTargetEffect sacrificeEffect = new SacrificeTargetEffect("sacrifice boosted " + creature.getName(), source.getControllerId()); + sacrificeEffect.setTargetPointer(new FixedTarget(creature, game)); + DelayedTriggeredAbility delayedAbility = new AtTheBeginOfNextEndStepDelayedTriggeredAbility(sacrificeEffect); + game.addDelayedTriggeredAbility(delayedAbility, source); + return true; + } + return false; + } + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/h/HazoretsMonument.java b/Mage.Sets/src/mage/cards/h/HazoretsMonument.java new file mode 100644 index 00000000000..5ecd04e9569 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HazoretsMonument.java @@ -0,0 +1,85 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.ObjectColor; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.costs.common.DiscardCardCost; +import mage.abilities.effects.common.DoIfCostPaid; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.FilterSpell; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.filter.predicate.mageobject.ColorPredicate; + +/** + * + * @author fireshoes + */ +public class HazoretsMonument extends CardImpl { + + private static final FilterCard filter = new FilterCard("Red creature spells"); + private static final FilterSpell filter2 = new FilterSpell("a creature spell"); + + static { + filter.add(Predicates.and(new ColorPredicate(ObjectColor.RED), new CardTypePredicate(CardType.CREATURE))); + } + static { + filter2.add(new CardTypePredicate(CardType.CREATURE)); + } + + public HazoretsMonument(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); + + addSuperType(SuperType.LEGENDARY); + + // Red creature spells you cast cost {1} less to cast. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(filter, 1))); + + // Whenever you cast a creature spell, you may discard a card. If you do, draw a card. + this.addAbility(new SpellCastControllerTriggeredAbility(new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new DiscardCardCost()), filter2, false)); + } + + public HazoretsMonument(final HazoretsMonument card) { + super(card); + } + + @Override + public HazoretsMonument copy() { + return new HazoretsMonument(this); + } +} diff --git a/Mage.Sets/src/mage/cards/h/HeWhoHungers.java b/Mage.Sets/src/mage/cards/h/HeWhoHungers.java index bf89115439a..e5ce49d1007 100644 --- a/Mage.Sets/src/mage/cards/h/HeWhoHungers.java +++ b/Mage.Sets/src/mage/cards/h/HeWhoHungers.java @@ -33,8 +33,6 @@ package mage.cards.h; */ -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; @@ -45,6 +43,9 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.SoulshiftAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledPermanent; @@ -65,7 +66,7 @@ public class HeWhoHungers extends CardImpl { public HeWhoHungers(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/h/HeartOfKiran.java b/Mage.Sets/src/mage/cards/h/HeartOfKiran.java index 96741ab7e2c..b4ee81627af 100644 --- a/Mage.Sets/src/mage/cards/h/HeartOfKiran.java +++ b/Mage.Sets/src/mage/cards/h/HeartOfKiran.java @@ -32,16 +32,14 @@ import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.Cost; import mage.abilities.costs.CostImpl; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.AddCardTypeSourceEffect; import mage.abilities.keyword.CrewAbility; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterControlledPlaneswalkerPermanent; import mage.game.Game; @@ -51,7 +49,6 @@ import mage.target.Target; import mage.target.common.TargetControlledPermanent; import java.util.UUID; -import mage.abilities.effects.Effect; /** * @author JRHerlehy @@ -61,7 +58,7 @@ public class HeartOfKiran extends CardImpl { public HeartOfKiran(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vehicle"); this.power = new MageInt(4); this.toughness = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/h/HeartPiercerManticore.java b/Mage.Sets/src/mage/cards/h/HeartPiercerManticore.java new file mode 100644 index 00000000000..393e4d6e5aa --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HeartPiercerManticore.java @@ -0,0 +1,172 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.InfoEffect; +import mage.abilities.effects.common.SendOptionUsedEventEffect; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.permanent.AnotherPredicate; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.Target; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author fireshoes + */ +public class HeartPiercerManticore extends CardImpl { + + public HeartPiercerManticore(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}"); + + this.subtype.add("Manticore"); + this.power = new MageInt(4); + this.toughness = new MageInt(3); + + // When Heart-Piercer Manticore enters the battlefield, you may sacrifice another creature. + Ability firstAbility = new EntersBattlefieldTriggeredAbility(new HeartPiercerManticoreSacrificeEffect(), true); + this.addAbility(firstAbility); + // When you do, Heart-Piercer Manticore deals damage equal to that creature's power to target creature or player. + Ability secondAbility = new HeartPiercerManticoreSacrificeTriggeredAbility(firstAbility.getOriginalId()); + secondAbility.addTarget(new TargetCreatureOrPlayer()); + this.addAbility(secondAbility); + // Embalm {5}{R} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{5}{R}"), this)); + + } + + public HeartPiercerManticore(final HeartPiercerManticore card) { + super(card); + } + + @Override + public HeartPiercerManticore copy() { + return new HeartPiercerManticore(this); + } +} + +class HeartPiercerManticoreSacrificeEffect extends OneShotEffect { + + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another creature"); + + static { + filter.add(new AnotherPredicate()); + } + + public HeartPiercerManticoreSacrificeEffect() { + super(Outcome.Damage); + this.staticText = "you may sacrifice another creature"; + } + + public HeartPiercerManticoreSacrificeEffect(final HeartPiercerManticoreSacrificeEffect effect) { + super(effect); + } + + @Override + public HeartPiercerManticoreSacrificeEffect copy() { + return new HeartPiercerManticoreSacrificeEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + Target target = new TargetControlledCreaturePermanent(1, 1, filter, true); + if (controller.choose(outcome, target, source.getSourceId(), game)) { + Permanent toSacrifice = game.getPermanent(target.getFirstTarget()); + if (toSacrifice != null) { + toSacrifice.sacrifice(source.getSourceId(), game); + return new SendOptionUsedEventEffect(toSacrifice.getPower().getValue()).apply(game, source); + } + } + return true; + } + return false; + } +} + +class HeartPiercerManticoreSacrificeTriggeredAbility extends TriggeredAbilityImpl { + + private final UUID relatedTriggerdAbilityOriginalId; + + public HeartPiercerManticoreSacrificeTriggeredAbility(UUID relatedTriggerdAbilityOriginalId) { + super(Zone.BATTLEFIELD, new InfoEffect("{this} deals damage equal to that creature's power to target creature or player")); + this.relatedTriggerdAbilityOriginalId = relatedTriggerdAbilityOriginalId; + } + + public HeartPiercerManticoreSacrificeTriggeredAbility(final HeartPiercerManticoreSacrificeTriggeredAbility ability) { + super(ability); + this.relatedTriggerdAbilityOriginalId = ability.relatedTriggerdAbilityOriginalId; + } + + @Override + public HeartPiercerManticoreSacrificeTriggeredAbility copy() { + return new HeartPiercerManticoreSacrificeTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.OPTION_USED; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getPlayerId().equals(this.getControllerId()) + && event.getTargetId().equals(relatedTriggerdAbilityOriginalId) + && event.getSourceId().equals(getSourceId())) { + getEffects().clear(); + getEffects().add(new DamageTargetEffect(event.getAmount())); + return true; + } + return false; + } + + @Override + public String getRule() { + return "When you do, {this} deals damage equal to that creature's power to target creature or player."; + } +} diff --git a/Mage.Sets/src/mage/cards/h/HearthCharm.java b/Mage.Sets/src/mage/cards/h/HearthCharm.java index c86cbfb983e..55a817ca0a2 100644 --- a/Mage.Sets/src/mage/cards/h/HearthCharm.java +++ b/Mage.Sets/src/mage/cards/h/HearthCharm.java @@ -27,7 +27,7 @@ */ package mage.cards.h; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; @@ -36,13 +36,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.permanent.AttackingPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -55,7 +56,7 @@ public class HearthCharm extends CardImpl { static { filter1.add(new CardTypePredicate(CardType.ARTIFACT)); filter2.add(new AttackingPredicate()); - filter3.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter3.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public HearthCharm(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/h/HearthKami.java b/Mage.Sets/src/mage/cards/h/HearthKami.java index bb744205446..f61e32677cb 100644 --- a/Mage.Sets/src/mage/cards/h/HearthKami.java +++ b/Mage.Sets/src/mage/cards/h/HearthKami.java @@ -27,9 +27,9 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,13 +38,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author Loki */ @@ -53,7 +54,7 @@ public class HearthKami extends CardImpl { private final UUID originalId; public HearthKami(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); this.subtype.add("Spirit"); this.power = new MageInt(2); @@ -73,7 +74,7 @@ public class HearthKami extends CardImpl { int xValue = ability.getManaCostsToPay().getX(); ability.getTargets().clear(); FilterArtifactPermanent filter = new FilterArtifactPermanent(new StringBuilder("artifact with converted mana cost ").append(xValue).toString()); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, xValue)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue)); Target target = new TargetPermanent(filter); ability.addTarget(target); } diff --git a/Mage.Sets/src/mage/cards/h/HeartlessHidetsugu.java b/Mage.Sets/src/mage/cards/h/HeartlessHidetsugu.java index b2745b6edfa..0e35c4eacfc 100644 --- a/Mage.Sets/src/mage/cards/h/HeartlessHidetsugu.java +++ b/Mage.Sets/src/mage/cards/h/HeartlessHidetsugu.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,10 +36,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -49,7 +51,7 @@ public class HeartlessHidetsugu extends CardImpl { public HeartlessHidetsugu(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Ogre"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/h/HeavenEarth.java b/Mage.Sets/src/mage/cards/h/HeavenEarth.java new file mode 100644 index 00000000000..0dff7803efb --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HeavenEarth.java @@ -0,0 +1,53 @@ +package mage.cards.h; + +import java.util.UUID; +import mage.abilities.dynamicvalue.common.ManacostVariableValue; +import mage.abilities.effects.common.DamageAllEffect; +import mage.abilities.keyword.AftermathAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.SpellAbilityType; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.AbilityPredicate; + +/** + * + * @author Styxo + */ +public class HeavenEarth extends SplitCard { + + private static final FilterCreaturePermanent filterFlying = new FilterCreaturePermanent("creature with flying"); + private static final FilterCreaturePermanent filterWithouFlying = new FilterCreaturePermanent("creature without flying"); + + static { + filterFlying.add(new AbilityPredicate(FlyingAbility.class)); + filterWithouFlying.add(Predicates.not(new AbilityPredicate(FlyingAbility.class))); + } + + public HeavenEarth(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{X}{G}", "{X}{R}{R}", SpellAbilityType.SPLIT_AFTERMATH); + + // Falling + // Falling deals X damage to each creature with flying. + getLeftHalfCard().getSpellAbility().addEffect(new DamageAllEffect(new ManacostVariableValue(), filterFlying)); + + // to + // Earth + // Earth deals X damage to each creature without flying. + ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); + getRightHalfCard().getSpellAbility().addEffect(new DamageAllEffect(new ManacostVariableValue(), filterWithouFlying)); + } + + public HeavenEarth(final HeavenEarth card) { + super(card); + } + + @Override + public HeavenEarth copy() { + return new HeavenEarth(this); + } +} diff --git a/Mage.Sets/src/mage/cards/h/HeidarRimewindMaster.java b/Mage.Sets/src/mage/cards/h/HeidarRimewindMaster.java index 6ba6eb40846..050b0b02bed 100644 --- a/Mage.Sets/src/mage/cards/h/HeidarRimewindMaster.java +++ b/Mage.Sets/src/mage/cards/h/HeidarRimewindMaster.java @@ -27,10 +27,9 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.common.TapSourceCost; @@ -39,11 +38,14 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -53,12 +55,12 @@ public class HeidarRimewindMaster extends CardImpl { private static final FilterControlledPermanent filter = new FilterControlledPermanent("you control four or more snow permanents"); static { - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); } public HeidarRimewindMaster(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(3); @@ -68,7 +70,7 @@ public class HeidarRimewindMaster extends CardImpl { Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new GenericManaCost(2), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 3)); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 3)); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetPermanent()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/h/HekmaSentinels.java b/Mage.Sets/src/mage/cards/h/HekmaSentinels.java new file mode 100644 index 00000000000..bd6bed738c7 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HekmaSentinels.java @@ -0,0 +1,65 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.CycleOrDiscardControllerTriggeredAbility; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author Styxo + */ +public class HekmaSentinels extends CardImpl { + + public HekmaSentinels(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}"); + + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // Whenever you cycle or discard a card, Hekma Sentinels gets +1/+1 until end of turn. + this.addAbility(new CycleOrDiscardControllerTriggeredAbility(new BoostSourceEffect(1, 1, Duration.EndOfTurn))); + } + + public HekmaSentinels(final HekmaSentinels card) { + super(card); + } + + @Override + public HekmaSentinels copy() { + return new HekmaSentinels(this); + } +} diff --git a/Mage.Sets/src/mage/cards/h/HeliodGodOfTheSun.java b/Mage.Sets/src/mage/cards/h/HeliodGodOfTheSun.java index 0ca61244c14..1f817ca9f29 100644 --- a/Mage.Sets/src/mage/cards/h/HeliodGodOfTheSun.java +++ b/Mage.Sets/src/mage/cards/h/HeliodGodOfTheSun.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,13 +40,12 @@ import mage.abilities.keyword.IndestructibleAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,7 +54,7 @@ public class HeliodGodOfTheSun extends CardImpl { public HeliodGodOfTheSun(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.CREATURE},"{3}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/h/HelixPinnacle.java b/Mage.Sets/src/mage/cards/h/HelixPinnacle.java index 666c0de23b5..5a5501bfb6e 100644 --- a/Mage.Sets/src/mage/cards/h/HelixPinnacle.java +++ b/Mage.Sets/src/mage/cards/h/HelixPinnacle.java @@ -53,7 +53,7 @@ public class HelixPinnacle extends CardImpl { static final String rule = "if there are 100 or more tower counters on Helix Pinnacle, you win the game"; public HelixPinnacle(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{G}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{G}"); // Shroud this.addAbility(ShroudAbility.getInstance()); @@ -66,7 +66,7 @@ public class HelixPinnacle extends CardImpl { // At the beginning of your upkeep, if there are 100 or more tower counters on Helix Pinnacle, you win the game. this.addAbility(new ConditionalTriggeredAbility( new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new WinGameSourceControllerEffect(), TargetController.YOU, false), - new SourceHasCounterCondition(CounterType.TOWER, 100), + new SourceHasCounterCondition(CounterType.TOWER, 100, Integer.MAX_VALUE), rule)); } diff --git a/Mage.Sets/src/mage/cards/h/Helldozer.java b/Mage.Sets/src/mage/cards/h/Helldozer.java index 1b6551ab30f..4b50816fcef 100644 --- a/Mage.Sets/src/mage/cards/h/Helldozer.java +++ b/Mage.Sets/src/mage/cards/h/Helldozer.java @@ -101,7 +101,7 @@ class HelldozerEffect extends OneShotEffect { } Permanent landPermanent = (Permanent) game.getLastKnownInformation(landTarget.getId(), Zone.BATTLEFIELD); if (landPermanent != null - && !landPermanent.getSupertype().contains("Basic") + && !landPermanent.isBasic() && helldozer != null) { return helldozer.untap(game); } diff --git a/Mage.Sets/src/mage/cards/h/HellkiteHatchling.java b/Mage.Sets/src/mage/cards/h/HellkiteHatchling.java index 2d6cf010070..dd48741ebaf 100644 --- a/Mage.Sets/src/mage/cards/h/HellkiteHatchling.java +++ b/Mage.Sets/src/mage/cards/h/HellkiteHatchling.java @@ -27,12 +27,9 @@ */ package mage.cards.h; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.condition.Condition; import mage.abilities.condition.common.DevouredCreaturesCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.DevourEffect.DevourFactor; @@ -42,6 +39,10 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +import java.util.UUID; /** * @@ -62,11 +63,11 @@ public class HellkiteHatchling extends CardImpl { // Hellkite Hatchling has flying and trample if it devoured a creature. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new GainAbilitySourceEffect(FlyingAbility.getInstance()), - new DevouredCreaturesCondition(Condition.ComparisonType.GreaterThan, 0), + new DevouredCreaturesCondition(ComparisonType.MORE_THAN, 0), "{this} has flying if it devoured a creature"))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new GainAbilitySourceEffect(TrampleAbility.getInstance()), - new DevouredCreaturesCondition(Condition.ComparisonType.GreaterThan, 0), + new DevouredCreaturesCondition(ComparisonType.MORE_THAN, 0), "{this} has trample if it devoured a creature"))); } diff --git a/Mage.Sets/src/mage/cards/h/HellkiteTyrant.java b/Mage.Sets/src/mage/cards/h/HellkiteTyrant.java index 774aa00c0ee..f989cb8b28a 100644 --- a/Mage.Sets/src/mage/cards/h/HellkiteTyrant.java +++ b/Mage.Sets/src/mage/cards/h/HellkiteTyrant.java @@ -31,7 +31,7 @@ import java.util.List; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -83,7 +83,7 @@ public class HellkiteTyrant extends CardImpl { TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new WinGameSourceControllerEffect(), TargetController.YOU, false); this.addAbility(new ConditionalTriggeredAbility( ability, - new PermanentsOnTheBattlefieldCondition(new FilterArtifactPermanent(), CountType.MORE_THAN, 19), + new PermanentsOnTheBattlefieldCondition(new FilterArtifactPermanent(), ComparisonType.MORE_THAN, 19), "At the beginning of your upkeep, if you control twenty or more artifacts, you win the game.")); } diff --git a/Mage.Sets/src/mage/cards/h/HelmOfKaldra.java b/Mage.Sets/src/mage/cards/h/HelmOfKaldra.java index ee9c3ba07e1..2374e42f4c7 100644 --- a/Mage.Sets/src/mage/cards/h/HelmOfKaldra.java +++ b/Mage.Sets/src/mage/cards/h/HelmOfKaldra.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -45,16 +44,15 @@ import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledArtifactPermanent; import mage.filter.predicate.mageobject.NamePredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 @@ -73,7 +71,7 @@ public class HelmOfKaldra extends CardImpl { public HelmOfKaldra(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Equipment"); // Equipped creature has first strike, trample, and haste. @@ -173,7 +171,7 @@ class KaldraToken extends Token { public KaldraToken() { super("Kaldra", "legendary 4/4 colorless Avatar creature token named Kaldra"); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); subtype.add("Avatar"); power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/h/Helvault.java b/Mage.Sets/src/mage/cards/h/Helvault.java index 82f9bd39747..119f1cccdc3 100644 --- a/Mage.Sets/src/mage/cards/h/Helvault.java +++ b/Mage.Sets/src/mage/cards/h/Helvault.java @@ -27,10 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,11 +35,17 @@ import mage.abilities.effects.common.ExileTargetForSourceEffect; import mage.abilities.effects.common.ReturnFromExileForSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -58,7 +60,7 @@ public class Helvault extends CardImpl { public Helvault(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {1}, {tap}: Exile target creature you control. SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetForSourceEffect(), new GenericManaCost(1)); diff --git a/Mage.Sets/src/mage/cards/h/HeroesPodium.java b/Mage.Sets/src/mage/cards/h/HeroesPodium.java index dc9f3c4e894..ad6209235c5 100644 --- a/Mage.Sets/src/mage/cards/h/HeroesPodium.java +++ b/Mage.Sets/src/mage/cards/h/HeroesPodium.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -37,15 +36,8 @@ import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.cards.*; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; @@ -54,6 +46,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author LevelX2 @@ -63,12 +57,12 @@ public class HeroesPodium extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Each legendary creature you control"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public HeroesPodium(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Each legendary creature you control gets +1/+1 for each other legendary creature you control. DynamicValue xValue = new HeroesPodiumLegendaryCount(); @@ -96,7 +90,7 @@ class HeroesPodiumLegendaryCount implements DynamicValue { private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("other legendary creature you control"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } @Override @@ -128,7 +122,7 @@ class HeroesPodiumEffect extends OneShotEffect { private static final FilterCreatureCard filter = new FilterCreatureCard("a legendary creature card"); static { - filter.add(new SupertypePredicate(("Legendary"))); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public HeroesPodiumEffect() { diff --git a/Mage.Sets/src/mage/cards/h/HerosBlade.java b/Mage.Sets/src/mage/cards/h/HerosBlade.java index 3526b617215..71abb37d83c 100644 --- a/Mage.Sets/src/mage/cards/h/HerosBlade.java +++ b/Mage.Sets/src/mage/cards/h/HerosBlade.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -36,16 +35,14 @@ import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +52,7 @@ public class HerosBlade extends CardImpl { private static final FilterPermanent filter = new FilterCreaturePermanent("a legendary creature"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); filter.add(new ControllerPredicate(TargetController.YOU)); } diff --git a/Mage.Sets/src/mage/cards/h/HerosDemise.java b/Mage.Sets/src/mage/cards/h/HerosDemise.java index 0ad305fb1a1..e6cf5e14539 100644 --- a/Mage.Sets/src/mage/cards/h/HerosDemise.java +++ b/Mage.Sets/src/mage/cards/h/HerosDemise.java @@ -27,15 +27,17 @@ */ package mage.cards.h; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki @@ -45,7 +47,7 @@ public class HerosDemise extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("legendary creature"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public HerosDemise(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/h/HerosDownfall.java b/Mage.Sets/src/mage/cards/h/HerosDownfall.java index f356d6f6992..528d41d7541 100644 --- a/Mage.Sets/src/mage/cards/h/HerosDownfall.java +++ b/Mage.Sets/src/mage/cards/h/HerosDownfall.java @@ -32,11 +32,7 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.FilterPermanent; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.target.Target; -import mage.target.TargetPermanent; +import mage.target.common.TargetCreatureOrPlaneswalker; /** * @@ -44,19 +40,13 @@ import mage.target.TargetPermanent; */ public class HerosDownfall extends CardImpl { - private static final FilterPermanent filter = new FilterPermanent("creature or planeswalker"); - static { - filter.add(Predicates.or(new CardTypePredicate(CardType.CREATURE), new CardTypePredicate(CardType.PLANESWALKER))); - } - public HerosDownfall(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{B}{B}"); // Destroy target creature or planeswalker. this.getSpellAbility().addEffect(new DestroyTargetEffect()); - Target target = new TargetPermanent(filter); - this.getSpellAbility().addTarget(target); + this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker()); } public HerosDownfall(final HerosDownfall card) { diff --git a/Mage.Sets/src/mage/cards/h/HibernationsEnd.java b/Mage.Sets/src/mage/cards/h/HibernationsEnd.java index 9fb08364881..4186307d617 100644 --- a/Mage.Sets/src/mage/cards/h/HibernationsEnd.java +++ b/Mage.Sets/src/mage/cards/h/HibernationsEnd.java @@ -27,8 +27,8 @@ */ package mage.cards.h; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; @@ -39,7 +39,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -50,6 +49,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LoneFox @@ -129,7 +130,7 @@ class HibernationsEndEffect extends OneShotEffect { if (sourcePermanent != null && player != null) { int newConvertedCost = sourcePermanent.getCounters(game).getCount("age"); FilterCard filter = new FilterCard("creature card with converted mana cost " + newConvertedCost); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, newConvertedCost)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, newConvertedCost)); filter.add(new CardTypePredicate(CardType.CREATURE)); TargetCardInLibrary target = new TargetCardInLibrary(filter); return new SearchLibraryPutInPlayEffect(target).apply(game, source); diff --git a/Mage.Sets/src/mage/cards/h/HiddenDragonslayer.java b/Mage.Sets/src/mage/cards/h/HiddenDragonslayer.java index 0e0f16c099b..a1637ab7cdd 100644 --- a/Mage.Sets/src/mage/cards/h/HiddenDragonslayer.java +++ b/Mage.Sets/src/mage/cards/h/HiddenDragonslayer.java @@ -27,9 +27,9 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; @@ -39,12 +39,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -54,7 +55,7 @@ public class HiddenDragonslayer extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 4 or greater an opponent controls"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); filter.add(new ControllerPredicate(TargetController.OPPONENT)); } diff --git a/Mage.Sets/src/mage/cards/h/HideSeek.java b/Mage.Sets/src/mage/cards/h/HideSeek.java index 169f4f5c98a..5a7a79386ea 100644 --- a/Mage.Sets/src/mage/cards/h/HideSeek.java +++ b/Mage.Sets/src/mage/cards/h/HideSeek.java @@ -25,7 +25,6 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.h; import java.util.UUID; @@ -37,6 +36,7 @@ import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SpellAbilityType; import mage.constants.Zone; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.game.Game; @@ -52,7 +52,7 @@ import mage.target.common.TargetOpponent; public class HideSeek extends SplitCard { public HideSeek(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}{W}","{W}{B}",false); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}{W}", "{W}{B}", SpellAbilityType.SPLIT); // Hide // Put target artifact or enchantment on the bottom of its owner's library. diff --git a/Mage.Sets/src/mage/cards/h/HieroglyphicIllumination.java b/Mage.Sets/src/mage/cards/h/HieroglyphicIllumination.java new file mode 100644 index 00000000000..977d061378b --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HieroglyphicIllumination.java @@ -0,0 +1,63 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class HieroglyphicIllumination extends CardImpl { + + public HieroglyphicIllumination(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{U}"); + + // Draw two cards. + getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2)); + + // Cycling {U} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{U}"))); + + } + + public HieroglyphicIllumination(final HieroglyphicIllumination card) { + super(card); + } + + @Override + public HieroglyphicIllumination copy() { + return new HieroglyphicIllumination(this); + } +} diff --git a/Mage.Sets/src/mage/cards/h/HighlandWeald.java b/Mage.Sets/src/mage/cards/h/HighlandWeald.java index 854ffe6b970..68b1f7ef2f8 100644 --- a/Mage.Sets/src/mage/cards/h/HighlandWeald.java +++ b/Mage.Sets/src/mage/cards/h/HighlandWeald.java @@ -35,6 +35,7 @@ import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; /** * @@ -44,7 +45,7 @@ public class HighlandWeald extends CardImpl { public HighlandWeald(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Snow"); + this.addSuperType(SuperType.SNOW); // Highland Weald enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); diff --git a/Mage.Sets/src/mage/cards/h/HigureTheStillWind.java b/Mage.Sets/src/mage/cards/h/HigureTheStillWind.java index 3b80c30a4cb..ebe5d198421 100644 --- a/Mage.Sets/src/mage/cards/h/HigureTheStillWind.java +++ b/Mage.Sets/src/mage/cards/h/HigureTheStillWind.java @@ -27,9 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -41,6 +38,8 @@ import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.abilities.keyword.NinjutsuAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterCreaturePermanent; @@ -48,6 +47,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +58,7 @@ public class HigureTheStillWind extends CardImpl { private static final FilterCard filter = new FilterCard("Ninja card"); private static final FilterCreaturePermanent filterCreature = new FilterCreaturePermanent("Ninja creature"); static { - filter.add((new SubtypePredicate("Ninja"))); + filter.add(new SubtypePredicate("Ninja")); filterCreature.add((new SubtypePredicate("Ninja"))); } @@ -65,7 +66,7 @@ public class HigureTheStillWind extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); this.subtype.add("Human"); this.subtype.add("Ninja"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.power = new MageInt(3); this.toughness = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/h/HikariTwilightGuardian.java b/Mage.Sets/src/mage/cards/h/HikariTwilightGuardian.java index 7f129705a71..aa765634c7d 100644 --- a/Mage.Sets/src/mage/cards/h/HikariTwilightGuardian.java +++ b/Mage.Sets/src/mage/cards/h/HikariTwilightGuardian.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.Effect; @@ -36,8 +35,11 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterSpiritOrArcaneCard; +import java.util.UUID; + /** * * @author Loki @@ -48,7 +50,7 @@ public class HikariTwilightGuardian extends CardImpl { public HikariTwilightGuardian(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/h/HinterlandHarbor.java b/Mage.Sets/src/mage/cards/h/HinterlandHarbor.java index 81725368c4f..50b816f6bd8 100644 --- a/Mage.Sets/src/mage/cards/h/HinterlandHarbor.java +++ b/Mage.Sets/src/mage/cards/h/HinterlandHarbor.java @@ -28,7 +28,7 @@ package mage.cards.h; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; @@ -60,7 +60,7 @@ public class HinterlandHarbor extends CardImpl { public HinterlandHarbor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0)); String abilityText = "tapped unless you control a Forest or an Island"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new GreenManaAbility()); diff --git a/Mage.Sets/src/mage/cards/h/HiredMuscle.java b/Mage.Sets/src/mage/cards/h/HiredMuscle.java index 964645e6611..b12ea5d24d9 100644 --- a/Mage.Sets/src/mage/cards/h/HiredMuscle.java +++ b/Mage.Sets/src/mage/cards/h/HiredMuscle.java @@ -44,6 +44,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterSpiritOrArcaneCard; @@ -93,7 +94,7 @@ class Scarmaker extends Token { Scarmaker() { super("Scarmaker", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setBlack(true); subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/h/HisokaMinamoSensei.java b/Mage.Sets/src/mage/cards/h/HisokaMinamoSensei.java index f858769a3d8..af67d55df05 100644 --- a/Mage.Sets/src/mage/cards/h/HisokaMinamoSensei.java +++ b/Mage.Sets/src/mage/cards/h/HisokaMinamoSensei.java @@ -42,6 +42,7 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.game.Game; @@ -58,7 +59,7 @@ public class HisokaMinamoSensei extends CardImpl { public HisokaMinamoSensei(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/h/HitRun.java b/Mage.Sets/src/mage/cards/h/HitRun.java index b0c0db9cbbe..a0b2f3c12d9 100644 --- a/Mage.Sets/src/mage/cards/h/HitRun.java +++ b/Mage.Sets/src/mage/cards/h/HitRun.java @@ -37,6 +37,7 @@ import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; +import mage.constants.SpellAbilityType; import mage.filter.common.FilterAttackingCreature; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; @@ -55,7 +56,7 @@ import mage.target.targetpointer.FixedTarget; public class HitRun extends SplitCard { public HitRun(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{B}{R}","{3}{R}{G}",false); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{B}{R}", "{3}{R}{G}", SpellAbilityType.SPLIT); // Hit // Target player sacrifices an artifact or creature. Hit deals damage to that player equal to that permanent's converted mana cost. diff --git a/Mage.Sets/src/mage/cards/h/HixusPrisonWarden.java b/Mage.Sets/src/mage/cards/h/HixusPrisonWarden.java index 71bf5f2eb86..be852ee90f2 100644 --- a/Mage.Sets/src/mage/cards/h/HixusPrisonWarden.java +++ b/Mage.Sets/src/mage/cards/h/HixusPrisonWarden.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -42,6 +41,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.DamagedPlayerEvent; @@ -50,6 +50,8 @@ import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,7 +60,7 @@ public class HixusPrisonWarden extends CardImpl { public HixusPrisonWarden(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/h/HokoriDustDrinker.java b/Mage.Sets/src/mage/cards/h/HokoriDustDrinker.java index bcc724718d9..b817e76543e 100644 --- a/Mage.Sets/src/mage/cards/h/HokoriDustDrinker.java +++ b/Mage.Sets/src/mage/cards/h/HokoriDustDrinker.java @@ -27,11 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -40,8 +35,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.Duration; -import mage.constants.TargetController; +import mage.constants.*; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; @@ -50,6 +44,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * @author LevelX2 */ @@ -57,7 +53,7 @@ public class HokoriDustDrinker extends CardImpl { public HokoriDustDrinker(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/h/HollowbornBarghest.java b/Mage.Sets/src/mage/cards/h/HollowbornBarghest.java index 1bf6c02d656..fffdf87a875 100644 --- a/Mage.Sets/src/mage/cards/h/HollowbornBarghest.java +++ b/Mage.Sets/src/mage/cards/h/HollowbornBarghest.java @@ -30,7 +30,7 @@ package mage.cards.h; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -66,7 +66,7 @@ public class HollowbornBarghest extends CardImpl { this.toughness = new MageInt(6); // At the beginning of your upkeep, if you have no cards in hand, each opponent loses 2 life. - Condition condition = new CardsInHandCondition(CountType.EQUAL_TO, 0); + Condition condition = new CardsInHandCondition(ComparisonType.EQUAL_TO, 0); TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new HollowbornBarghestEffect(), TargetController.YOU, false); this.addAbility(new ConditionalTriggeredAbility(ability, condition, rule)); diff --git a/Mage.Sets/src/mage/cards/h/HomaridSpawningBed.java b/Mage.Sets/src/mage/cards/h/HomaridSpawningBed.java index f0e561f4325..9e260a8eb72 100644 --- a/Mage.Sets/src/mage/cards/h/HomaridSpawningBed.java +++ b/Mage.Sets/src/mage/cards/h/HomaridSpawningBed.java @@ -85,6 +85,6 @@ class CamaridToken extends Token { this.getToughness().modifyBaseValue(1); this.color.setBlue(true); this.getSubtype(null).add("Camarid"); - this.getCardType().add(CardType.CREATURE); + this.addCardType(CardType.CREATURE); } } \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/h/HomuraHumanAscendant.java b/Mage.Sets/src/mage/cards/h/HomuraHumanAscendant.java index d1e72db9ee9..e9a250abca0 100644 --- a/Mage.Sets/src/mage/cards/h/HomuraHumanAscendant.java +++ b/Mage.Sets/src/mage/cards/h/HomuraHumanAscendant.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CantBlockAbility; @@ -48,16 +47,15 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -66,7 +64,7 @@ public class HomuraHumanAscendant extends CardImpl { public HomuraHumanAscendant(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Monk"); @@ -111,7 +109,7 @@ class HomuraReturnFlippedSourceEffect extends OneShotEffect { Card sourceCard = game.getCard(source.getSourceId()); Player controller = game.getPlayer(source.getControllerId()); if (sourceCard != null && controller != null && game.getState().getZone(source.getSourceId()) == Zone.GRAVEYARD) { - ContinuousEffect effect = new ConditionalContinuousEffect(new CopyTokenEffect(flipToken), FlippedCondition.getInstance(), ""); + ContinuousEffect effect = new ConditionalContinuousEffect(new CopyTokenEffect(flipToken), FlippedCondition.instance, ""); game.addEffect(effect, source); controller.moveCards(sourceCard, Zone.BATTLEFIELD, source, game); Permanent permanent = game.getPermanent(source.getSourceId()); @@ -134,7 +132,7 @@ class HomurasEssence2 extends Token { HomurasEssence2() { super("Homura's Essence", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.ENCHANTMENT); color.setRed(true); // Creatures you control get +2/+2 and have flying and "{R}: This creature gets +1/+0 until end of turn." diff --git a/Mage.Sets/src/mage/cards/h/HondenOfCleansingFire.java b/Mage.Sets/src/mage/cards/h/HondenOfCleansingFire.java index 97bc6dd8d56..b605484bf52 100644 --- a/Mage.Sets/src/mage/cards/h/HondenOfCleansingFire.java +++ b/Mage.Sets/src/mage/cards/h/HondenOfCleansingFire.java @@ -28,18 +28,19 @@ package mage.cards.h; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * @author Loki */ @@ -53,7 +54,7 @@ public class HondenOfCleansingFire extends CardImpl { public HondenOfCleansingFire(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Shrine"); diff --git a/Mage.Sets/src/mage/cards/h/HondenOfInfiniteRage.java b/Mage.Sets/src/mage/cards/h/HondenOfInfiniteRage.java index d7095c83765..ffdaf406ff5 100644 --- a/Mage.Sets/src/mage/cards/h/HondenOfInfiniteRage.java +++ b/Mage.Sets/src/mage/cards/h/HondenOfInfiniteRage.java @@ -28,20 +28,21 @@ package mage.cards.h; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki @@ -56,7 +57,7 @@ public class HondenOfInfiniteRage extends CardImpl { public HondenOfInfiniteRage (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Shrine"); diff --git a/Mage.Sets/src/mage/cards/h/HondenOfLifesWeb.java b/Mage.Sets/src/mage/cards/h/HondenOfLifesWeb.java index 24bf21e84dd..254cef86d7e 100644 --- a/Mage.Sets/src/mage/cards/h/HondenOfLifesWeb.java +++ b/Mage.Sets/src/mage/cards/h/HondenOfLifesWeb.java @@ -28,19 +28,20 @@ package mage.cards.h; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.SpiritToken; +import java.util.UUID; + /** * @author Loki */ @@ -54,7 +55,7 @@ public class HondenOfLifesWeb extends CardImpl { public HondenOfLifesWeb(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Shrine"); this.addAbility(new BeginningOfUpkeepTriggeredAbility(new CreateTokenEffect(new SpiritToken(), new PermanentsOnBattlefieldCount(filter)), TargetController.YOU, false)); diff --git a/Mage.Sets/src/mage/cards/h/HondenOfNightsReach.java b/Mage.Sets/src/mage/cards/h/HondenOfNightsReach.java index d0f377658c6..193b7fcf2c7 100644 --- a/Mage.Sets/src/mage/cards/h/HondenOfNightsReach.java +++ b/Mage.Sets/src/mage/cards/h/HondenOfNightsReach.java @@ -28,20 +28,21 @@ package mage.cards.h; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * @author Loki */ @@ -55,7 +56,7 @@ public class HondenOfNightsReach extends CardImpl { public HondenOfNightsReach(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Shrine"); diff --git a/Mage.Sets/src/mage/cards/h/HondenOfSeeingWinds.java b/Mage.Sets/src/mage/cards/h/HondenOfSeeingWinds.java index 624f0a6a4a0..5021fedeee7 100644 --- a/Mage.Sets/src/mage/cards/h/HondenOfSeeingWinds.java +++ b/Mage.Sets/src/mage/cards/h/HondenOfSeeingWinds.java @@ -28,18 +28,19 @@ package mage.cards.h; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * @author Loki */ @@ -53,7 +54,7 @@ public class HondenOfSeeingWinds extends CardImpl { public HondenOfSeeingWinds(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Shrine"); diff --git a/Mage.Sets/src/mage/cards/h/HonedKhopesh.java b/Mage.Sets/src/mage/cards/h/HonedKhopesh.java new file mode 100644 index 00000000000..58d31141657 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HonedKhopesh.java @@ -0,0 +1,67 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continuous.BoostEquippedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; + +/** + * + * @author Styxo + */ +public class HonedKhopesh extends CardImpl { + + public HonedKhopesh(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}"); + + this.subtype.add("Equipment"); + + // Equipped creature gets +1/+1. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1))); + + // Equip {1} + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + } + + public HonedKhopesh(final HonedKhopesh card) { + super(card); + } + + @Override + public HonedKhopesh copy() { + return new HonedKhopesh(this); + } +} diff --git a/Mage.Sets/src/mage/cards/h/HonorWornShaku.java b/Mage.Sets/src/mage/cards/h/HonorWornShaku.java index 18ff7441776..d03103cd5f3 100644 --- a/Mage.Sets/src/mage/cards/h/HonorWornShaku.java +++ b/Mage.Sets/src/mage/cards/h/HonorWornShaku.java @@ -28,9 +28,6 @@ package mage.cards.h; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; @@ -38,6 +35,8 @@ import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.SupertypePredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * @author Loki */ @@ -54,15 +55,15 @@ public class HonorWornShaku extends CardImpl { static { filter.add(Predicates.not(new TappedPredicate())); - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public HonorWornShaku(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); this.addAbility(new ColorlessManaAbility()); Ability ability = new SimpleActivatedAbility( Zone.BATTLEFIELD, - new UntapSourceEffect(), + new UntapSourceEffect(), new TapTargetCost(new TargetControlledPermanent(filter))); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/h/HonoredCropCaptain.java b/Mage.Sets/src/mage/cards/h/HonoredCropCaptain.java new file mode 100644 index 00000000000..a948ede3328 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HonoredCropCaptain.java @@ -0,0 +1,67 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.effects.common.continuous.BoostAllEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.filter.common.FilterAttackingCreature; + +/** + * + * @author Styxo + */ +public class HonoredCropCaptain extends CardImpl { + + public HonoredCropCaptain(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}{W}"); + + this.subtype.add("Human"); + this.subtype.add("Warrior"); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // Whenever Honored Crop-Captain attacks, other attacking creatures get +1/+0 until end of turn. + this.addAbility(new AttacksTriggeredAbility(new BoostAllEffect(1, 0, Duration.EndOfTurn, new FilterAttackingCreature(), true), false)); + + } + + public HonoredCropCaptain(final HonoredCropCaptain card) { + super(card); + } + + @Override + public HonoredCropCaptain copy() { + return new HonoredCropCaptain(this); + } +} diff --git a/Mage.Sets/src/mage/cards/h/HonoredHydra.java b/Mage.Sets/src/mage/cards/h/HonoredHydra.java new file mode 100644 index 00000000000..f1d215c703f --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HonoredHydra.java @@ -0,0 +1,69 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.TrampleAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class HonoredHydra extends CardImpl { + + public HonoredHydra(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{G}"); + + this.subtype.add("Snake"); + this.subtype.add("Hydra"); + this.power = new MageInt(6); + this.toughness = new MageInt(6); + + // Trample + this.addAbility(TrampleAbility.getInstance()); + + // Embalm {3}{G} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{3}{G}"), this)); + + } + + public HonoredHydra(final HonoredHydra card) { + super(card); + } + + @Override + public HonoredHydra copy() { + return new HonoredHydra(this); + } +} diff --git a/Mage.Sets/src/mage/cards/h/HoodedBrawler.java b/Mage.Sets/src/mage/cards/h/HoodedBrawler.java new file mode 100644 index 00000000000..b23dab89290 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HoodedBrawler.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.keyword.ExertAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author fireshoes + */ +public class HoodedBrawler extends CardImpl { + + public HoodedBrawler(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); + + this.subtype.add("Naga"); + this.subtype.add("Warrior"); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // You may exert Hooded Brawler as it attacks. When you do, it gets +2/+2 until end of turn. + this.addAbility(new ExertAbility(new BecomesExertSourceTriggeredAbility(new BoostSourceEffect(2, 2, Duration.EndOfTurn)))); + } + + public HoodedBrawler(final HoodedBrawler card) { + super(card); + } + + @Override + public HoodedBrawler copy() { + return new HoodedBrawler(this); + } +} diff --git a/Mage.Sets/src/mage/cards/h/HopeOfGhirapur.java b/Mage.Sets/src/mage/cards/h/HopeOfGhirapur.java index 937c63f2359..ec384254cd5 100644 --- a/Mage.Sets/src/mage/cards/h/HopeOfGhirapur.java +++ b/Mage.Sets/src/mage/cards/h/HopeOfGhirapur.java @@ -42,11 +42,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPlayer; import mage.filter.predicate.Predicate; import mage.game.Game; @@ -66,7 +62,7 @@ public class HopeOfGhirapur extends CardImpl { public HopeOfGhirapur(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{1}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Thopter"); this.power = new MageInt(1); this.toughness = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/h/HordeOfNotions.java b/Mage.Sets/src/mage/cards/h/HordeOfNotions.java index 0dd44e827af..606aaebb9c6 100644 --- a/Mage.Sets/src/mage/cards/h/HordeOfNotions.java +++ b/Mage.Sets/src/mage/cards/h/HordeOfNotions.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -48,6 +48,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -62,7 +64,7 @@ public class HordeOfNotions extends CardImpl { public HordeOfNotions(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{U}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); this.power = new MageInt(5); this.toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/h/HorobiDeathsWail.java b/Mage.Sets/src/mage/cards/h/HorobiDeathsWail.java index c01b48a6b28..cdb3a520ffc 100644 --- a/Mage.Sets/src/mage/cards/h/HorobiDeathsWail.java +++ b/Mage.Sets/src/mage/cards/h/HorobiDeathsWail.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -36,6 +35,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -43,6 +43,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX @@ -51,7 +53,7 @@ public class HorobiDeathsWail extends CardImpl { public HorobiDeathsWail(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/h/HorriblyAwry.java b/Mage.Sets/src/mage/cards/h/HorriblyAwry.java index 5eacb57555c..71861240d8b 100644 --- a/Mage.Sets/src/mage/cards/h/HorriblyAwry.java +++ b/Mage.Sets/src/mage/cards/h/HorriblyAwry.java @@ -27,19 +27,20 @@ */ package mage.cards.h; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.common.CounterTargetWithReplacementEffect; import mage.abilities.keyword.DevoidAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreatureSpell; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 @@ -49,7 +50,7 @@ public class HorriblyAwry extends CardImpl { private static final FilterCreatureSpell filter = new FilterCreatureSpell("creature spell with converted mana cost 4 or less"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 5)); } public HorriblyAwry(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/h/HorrorOfTheBrokenLands.java b/Mage.Sets/src/mage/cards/h/HorrorOfTheBrokenLands.java new file mode 100644 index 00000000000..413a3030c85 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HorrorOfTheBrokenLands.java @@ -0,0 +1,70 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.CycleOrDiscardControllerTriggeredAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author Styxo + */ +public class HorrorOfTheBrokenLands extends CardImpl { + + public HorrorOfTheBrokenLands(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}"); + + this.subtype.add("Horror"); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // Whenever you cycle or discard another card, Horror of the Broken Lands gets +2/+1 until end of turn. + this.addAbility(new CycleOrDiscardControllerTriggeredAbility(new BoostSourceEffect(2, 1, Duration.EndOfTurn))); + + // Cycling {B} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{B}"))); + + } + + public HorrorOfTheBrokenLands(final HorrorOfTheBrokenLands card) { + super(card); + } + + @Override + public HorrorOfTheBrokenLands copy() { + return new HorrorOfTheBrokenLands(this); + } +} diff --git a/Mage.Sets/src/mage/cards/h/HowltoothHollow.java b/Mage.Sets/src/mage/cards/h/HowltoothHollow.java index 4dd3bfa5bb6..7a230979842 100644 --- a/Mage.Sets/src/mage/cards/h/HowltoothHollow.java +++ b/Mage.Sets/src/mage/cards/h/HowltoothHollow.java @@ -29,7 +29,7 @@ package mage.cards.h; import java.util.UUID; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.condition.common.CardsInHandCondition; import mage.abilities.costs.common.TapSourceCost; @@ -62,7 +62,7 @@ public class HowltoothHollow extends CardImpl { Zone.BATTLEFIELD, new HideawayPlayEffect(), new ManaCostsImpl("{B}"), - new CardsInHandCondition(CountType.EQUAL_TO, 0, null, TargetController.ANY)); + new CardsInHandCondition(ComparisonType.EQUAL_TO, 0, null, TargetController.ANY)); ability.addCost(new TapSourceCost()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/h/HuaTuoHonoredPhysician.java b/Mage.Sets/src/mage/cards/h/HuaTuoHonoredPhysician.java index d332ad10cce..96695c170c0 100644 --- a/Mage.Sets/src/mage/cards/h/HuaTuoHonoredPhysician.java +++ b/Mage.Sets/src/mage/cards/h/HuaTuoHonoredPhysician.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -37,10 +36,13 @@ import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -49,14 +51,14 @@ public class HuaTuoHonoredPhysician extends CardImpl { public HuaTuoHonoredPhysician(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.power = new MageInt(1); this.toughness = new MageInt(2); // {tap}: Put target creature card from your graveyard on top of your library. Activate this ability only during your turn, before attackers are declared. - Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard"))); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/h/HuangZhongShuGeneral.java b/Mage.Sets/src/mage/cards/h/HuangZhongShuGeneral.java index f2be9107291..d78e67dacd6 100644 --- a/Mage.Sets/src/mage/cards/h/HuangZhongShuGeneral.java +++ b/Mage.Sets/src/mage/cards/h/HuangZhongShuGeneral.java @@ -27,15 +27,17 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantBeBlockedByMoreThanOneSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes @@ -44,7 +46,7 @@ public class HuangZhongShuGeneral extends CardImpl { public HuangZhongShuGeneral(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/h/HumbleTheBrute.java b/Mage.Sets/src/mage/cards/h/HumbleTheBrute.java index 1c3f75e9093..6649cbf9ae3 100644 --- a/Mage.Sets/src/mage/cards/h/HumbleTheBrute.java +++ b/Mage.Sets/src/mage/cards/h/HumbleTheBrute.java @@ -27,17 +27,18 @@ */ package mage.cards.h; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.keyword.InvestigateEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -47,7 +48,7 @@ public class HumbleTheBrute extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 4 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public HumbleTheBrute(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/h/HundingGjornersen.java b/Mage.Sets/src/mage/cards/h/HundingGjornersen.java index 0da745e2400..dd7b07703f6 100644 --- a/Mage.Sets/src/mage/cards/h/HundingGjornersen.java +++ b/Mage.Sets/src/mage/cards/h/HundingGjornersen.java @@ -27,12 +27,14 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.RampageAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -42,7 +44,7 @@ public class HundingGjornersen extends CardImpl { public HundingGjornersen(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/h/HyenaPack.java b/Mage.Sets/src/mage/cards/h/HyenaPack.java new file mode 100644 index 00000000000..91111a56d3c --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HyenaPack.java @@ -0,0 +1,58 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.h; + +import java.util.UUID; +import mage.MageInt; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class HyenaPack extends CardImpl { + + public HyenaPack(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}"); + + this.subtype.add("Hyena"); + this.power = new MageInt(3); + this.toughness = new MageInt(4); + } + + public HyenaPack(final HyenaPack card) { + super(card); + } + + @Override + public HyenaPack copy() { + return new HyenaPack(this); + } +} diff --git a/Mage.Sets/src/mage/cards/h/HythoniaTheCruel.java b/Mage.Sets/src/mage/cards/h/HythoniaTheCruel.java index 97fa23f8d84..fcc98c527a0 100644 --- a/Mage.Sets/src/mage/cards/h/HythoniaTheCruel.java +++ b/Mage.Sets/src/mage/cards/h/HythoniaTheCruel.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesMonstrousSourceTriggeredAbility; import mage.abilities.effects.common.DestroyAllEffect; @@ -36,10 +35,13 @@ import mage.abilities.keyword.MonstrosityAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +55,7 @@ public class HythoniaTheCruel extends CardImpl { public HythoniaTheCruel(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Gorgon"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/i/IG88B.java b/Mage.Sets/src/mage/cards/i/IG88B.java index c76b73ce406..303400c55c1 100644 --- a/Mage.Sets/src/mage/cards/i/IG88B.java +++ b/Mage.Sets/src/mage/cards/i/IG88B.java @@ -27,7 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -39,11 +38,14 @@ import mage.abilities.keyword.RepairAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Styxo @@ -52,7 +54,7 @@ public class IG88B extends CardImpl { public IG88B(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{1}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Droid"); this.subtype.add("Hunter"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/i/IbHalfheartGoblinTactician.java b/Mage.Sets/src/mage/cards/i/IbHalfheartGoblinTactician.java index 69c81978910..7221d443b1a 100644 --- a/Mage.Sets/src/mage/cards/i/IbHalfheartGoblinTactician.java +++ b/Mage.Sets/src/mage/cards/i/IbHalfheartGoblinTactician.java @@ -27,9 +27,6 @@ */ package mage.cards.i; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesBlockedAllTriggeredAbility; @@ -39,10 +36,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -54,6 +48,10 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.GoblinToken; import mage.target.common.TargetControlledPermanent; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 @@ -72,7 +70,7 @@ public class IbHalfheartGoblinTactician extends CardImpl { public IbHalfheartGoblinTactician(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Advisor"); diff --git a/Mage.Sets/src/mage/cards/i/IceCave.java b/Mage.Sets/src/mage/cards/i/IceCave.java new file mode 100644 index 00000000000..228e2d6d4d0 --- /dev/null +++ b/Mage.Sets/src/mage/cards/i/IceCave.java @@ -0,0 +1,116 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.i; + +import mage.abilities.Ability; +import mage.abilities.common.SpellCastAllTriggeredAbility; +import mage.abilities.effects.OneShotEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SetTargetPointer; +import mage.constants.Zone; +import mage.filter.FilterSpell; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.game.stack.Spell; +import mage.players.Player; +import mage.abilities.costs.Cost; +import mage.abilities.costs.mana.ManaCostsImpl; + +import java.util.UUID; + +/** + * + * @author ThomasLerner + */ +public class IceCave extends CardImpl { + + public IceCave(UUID ownerId, CardSetInfo setInfo) { + super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{U}{U}"); + + + // Whenever a player casts a spell, any other player may pay that spell's mana cost. If a player does, counter the spell. (Mana cost includes color.) + this.addAbility(new SpellCastAllTriggeredAbility(Zone.BATTLEFIELD, new IceCaveEffect(), new FilterSpell(), false, SetTargetPointer.SPELL)); + } + + public IceCave(final IceCave card) { + super(card); + } + + @Override + public IceCave copy() { + return new IceCave(this); + } +} + +class IceCaveEffect extends OneShotEffect { + + public IceCaveEffect() { + super(Outcome.AIDontUseIt); + this.staticText = "any other player may pay that spell's mana cost. If a player does, counter the spell"; + } + + public IceCaveEffect(final IceCaveEffect effect) { + super(effect); + } + + @Override + public IceCaveEffect copy() { + return new IceCaveEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); + Spell spell = (Spell) game.getStack().getStackObject(targetPointer.getFirst(game, source)); + if(sourcePermanent != null && spell != null && controller != null) { + Player spellController = game.getPlayer(spell.getControllerId()); + Cost cost = new ManaCostsImpl(spell.getSpellAbility().getManaCosts().getText()); + if(spellController != null) { + for (UUID playerId : game.getState().getPlayersInRange(source.getControllerId(), game)) { + Player player = game.getPlayer(playerId); + if(player != null && player != spellController) { + cost.clearPaid(); + if(cost.canPay(source, source.getSourceId(), player.getId(), game) + && player.chooseUse(outcome, "Pay " + cost.getText() + " to counter " + spell.getIdName() + '?', source, game)) { + if(cost.pay(source, game, source.getSourceId(), playerId, false, null)) { + game.informPlayers(player.getLogName() + " pays" + cost.getText() + " to counter " + spell.getIdName() + '.'); + game.getStack().counter(spell.getId(), source.getSourceId(), game); + return true; + } + } + } + } + } + } + return true; + } +} diff --git a/Mage.Sets/src/mage/cards/i/Icequake.java b/Mage.Sets/src/mage/cards/i/Icequake.java index 63cc1d419d0..2104a04d2a4 100644 --- a/Mage.Sets/src/mage/cards/i/Icequake.java +++ b/Mage.Sets/src/mage/cards/i/Icequake.java @@ -89,7 +89,7 @@ class IcequakeEffect extends OneShotEffect { Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source)); if (permanent != null && controller != null) { permanent.destroy(source.getSourceId(), game, false); - if (permanent.getSupertype().contains("Snow")) { + if (permanent.isSnow()) { controller.damage(1, source.getSourceId(), game, false, true); } return true; diff --git a/Mage.Sets/src/mage/cards/i/IhsansShade.java b/Mage.Sets/src/mage/cards/i/IhsansShade.java index 14d6eaf59d2..9e06a4af1cd 100644 --- a/Mage.Sets/src/mage/cards/i/IhsansShade.java +++ b/Mage.Sets/src/mage/cards/i/IhsansShade.java @@ -27,13 +27,15 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -43,7 +45,7 @@ public class IhsansShade extends CardImpl { public IhsansShade(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Shade"); this.subtype.add("Knight"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/i/IizukaTheRuthless.java b/Mage.Sets/src/mage/cards/i/IizukaTheRuthless.java index 318e09bb594..1388dea06d8 100644 --- a/Mage.Sets/src/mage/cards/i/IizukaTheRuthless.java +++ b/Mage.Sets/src/mage/cards/i/IizukaTheRuthless.java @@ -27,9 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,12 +37,16 @@ import mage.abilities.keyword.BushidoAbility; import mage.abilities.keyword.DoubleStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki @@ -60,7 +61,7 @@ public class IizukaTheRuthless extends CardImpl { public IizukaTheRuthless(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Samurai"); diff --git a/Mage.Sets/src/mage/cards/i/IkraShidiqiTheUsurper.java b/Mage.Sets/src/mage/cards/i/IkraShidiqiTheUsurper.java index 7178ddbb70e..990defb38a1 100644 --- a/Mage.Sets/src/mage/cards/i/IkraShidiqiTheUsurper.java +++ b/Mage.Sets/src/mage/cards/i/IkraShidiqiTheUsurper.java @@ -27,7 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.GainLifeEffect; @@ -36,6 +35,7 @@ import mage.abilities.keyword.PartnerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.DamagedEvent; @@ -43,6 +43,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author spjspj @@ -52,7 +54,7 @@ public class IkraShidiqiTheUsurper extends CardImpl { public IkraShidiqiTheUsurper(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Naga"); this.subtype.add("Wizard"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/i/IllicitAuction.java b/Mage.Sets/src/mage/cards/i/IllicitAuction.java index 965bf1613fa..32b4742e69b 100644 --- a/Mage.Sets/src/mage/cards/i/IllicitAuction.java +++ b/Mage.Sets/src/mage/cards/i/IllicitAuction.java @@ -27,10 +27,15 @@ */ package mage.cards.i; +import java.util.HashMap; +import java.util.Map; import java.util.Objects; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.common.continuous.GainControlTargetEffect; +import mage.abilities.keyword.DoubleStrikeAbility; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -49,7 +54,7 @@ import mage.target.common.TargetCreaturePermanent; public class IllicitAuction extends CardImpl { public IllicitAuction(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{R}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}{R}"); // Each player may bid life for control of target creature. You start the bidding with a bid of 0. In turn order, each player may top the high bid. The bidding ends if the high bid stands. The high bidder loses life equal to the high bid and gains control of the creature. this.getSpellAbility().addEffect(new IllicitAuctionEffect()); @@ -68,12 +73,12 @@ public class IllicitAuction extends CardImpl { // effect is based on GainControlTargetEffect class IllicitAuctionEffect extends GainControlTargetEffect { - + public IllicitAuctionEffect() { super(Duration.EndOfGame); this.staticText = "Each player may bid life for control of target creature. You start the bidding with a bid of 0. In turn order, each player may top the high bid. The bidding ends if the high bid stands. The high bidder loses life equal to the high bid and gains control of the creature."; } - + public IllicitAuctionEffect(final IllicitAuctionEffect effect) { super(effect); } @@ -82,24 +87,32 @@ class IllicitAuctionEffect extends GainControlTargetEffect { public IllicitAuctionEffect copy() { return new IllicitAuctionEffect(this); } - + @Override public void init(Ability source, Game game) { Player controller = game.getPlayer(source.getControllerId()); Permanent targetCreature = game.getPermanent(source.getFirstTarget()); - if (controller != null && targetCreature != null) { + if (controller != null + && targetCreature != null) { PlayerList playerList = game.getPlayerList().copy(); playerList.setCurrent(game.getActivePlayerId()); - + Player winner = game.getPlayer(game.getActivePlayerId()); int highBid = 0; - game.informPlayers(winner.getLogName()+ " has bet 0 lifes"); - + game.informPlayers(winner.getLogName() + " has bet 0 lifes"); Player currentPlayer = playerList.getNextInRange(controller, game); while (!Objects.equals(currentPlayer, winner)) { String text = winner.getLogName() + " has bet " + highBid + " life" + (highBid > 1 ? "s" : "") + ". Top the bid?"; - if (currentPlayer.chooseUse(Outcome.Detriment, text, source, game)) { - int newBid = currentPlayer.getAmount(highBid + 1, Integer.MAX_VALUE, "Choose bid", game); + if (currentPlayer.chooseUse(Outcome.GainControl, text, source, game)) { + int newBid = 0; + if (!currentPlayer.isHuman()) {//AI will evaluate the creature and bid + CreatureEvaluator eval = new CreatureEvaluator(); + int computerLife = currentPlayer.getLife(); + int creatureValue = eval.evaluate(targetCreature, game); + newBid = Math.max(creatureValue % 2, computerLife - 100); + } else { + newBid = currentPlayer.getAmount(highBid + 1, Integer.MAX_VALUE, "Choose bid", game); + } if (newBid > highBid) { highBid = newBid; winner = currentPlayer; @@ -108,12 +121,34 @@ class IllicitAuctionEffect extends GainControlTargetEffect { } currentPlayer = playerList.getNextInRange(controller, game); } - + game.informPlayers(winner.getLogName() + " won the auction with a bid of " + highBid + " life" + (highBid > 1 ? "s" : "")); winner.loseLife(highBid, game, false); super.controllingPlayerId = winner.getId(); - } + } super.init(source, game); } - } + +class CreatureEvaluator { + + private Map values = new HashMap<>(); + + public int evaluate(Permanent creature, Game game) { + if (!values.containsKey(creature.getId())) { + int value = 0; + if (creature.canAttack(game)) + value += 2; + value += creature.getPower().getValue(); + value += creature.getToughness().getValue(); + value += creature.getAbilities().getEvasionAbilities().size(); + value += creature.getAbilities().getProtectionAbilities().size(); + value += creature.getAbilities().containsKey(FirstStrikeAbility.getInstance().getId())?1:0; + value += creature.getAbilities().containsKey(DoubleStrikeAbility.getInstance().getId())?2:0; + value += creature.getAbilities().containsKey(TrampleAbility.getInstance().getId())?1:0; + values.put(creature.getId(), value); + } + return values.get(creature.getId()); + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/i/IllusionReality.java b/Mage.Sets/src/mage/cards/i/IllusionReality.java index b203fb8b3d7..2b6b4d6138d 100644 --- a/Mage.Sets/src/mage/cards/i/IllusionReality.java +++ b/Mage.Sets/src/mage/cards/i/IllusionReality.java @@ -34,6 +34,7 @@ import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SpellAbilityType; import mage.target.Target; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetSpellOrPermanent; @@ -42,11 +43,10 @@ import mage.target.common.TargetSpellOrPermanent; * * @author LevelX2 */ - public class IllusionReality extends SplitCard { public IllusionReality(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{U}","{2}{G}",false); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{U}", "{2}{G}", SpellAbilityType.SPLIT); // Illusion // Target spell or permanent becomes the color of your choice until end of turn. diff --git a/Mage.Sets/src/mage/cards/i/IllusoryWrappings.java b/Mage.Sets/src/mage/cards/i/IllusoryWrappings.java new file mode 100644 index 00000000000..9c0d08c281f --- /dev/null +++ b/Mage.Sets/src/mage/cards/i/IllusoryWrappings.java @@ -0,0 +1,75 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.i; + +import java.util.UUID; +import mage.target.common.TargetCreaturePermanent; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.continuous.SetPowerToughnessEnchantedEffect; +import mage.constants.Outcome; +import mage.target.TargetPermanent; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +/** + * + * @author Styxo + */ +public class IllusoryWrappings extends CardImpl { + + public IllusoryWrappings(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{U}"); + + this.subtype.add("Aura"); + + // Enchant creature + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // Enchanted creature has base power and toughness 0/2. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessEnchantedEffect())); + + } + + public IllusoryWrappings(final IllusoryWrappings card) { + super(card); + } + + @Override + public IllusoryWrappings copy() { + return new IllusoryWrappings(this); + } +} diff --git a/Mage.Sets/src/mage/cards/i/ImaginaryPet.java b/Mage.Sets/src/mage/cards/i/ImaginaryPet.java index cb532b84be5..ca2be425c73 100644 --- a/Mage.Sets/src/mage/cards/i/ImaginaryPet.java +++ b/Mage.Sets/src/mage/cards/i/ImaginaryPet.java @@ -29,7 +29,7 @@ package mage.cards.i; import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.CardsInHandCondition; @@ -54,7 +54,7 @@ public class ImaginaryPet extends CardImpl { // At the beginning of your upkeep, if you have a card in hand, return Imaginary Pet to its owner's hand. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new ReturnToHandSourceEffect(true), TargetController.YOU, false); - this.addAbility(new ConditionalTriggeredAbility(ability, new CardsInHandCondition(CountType.MORE_THAN, 0), + this.addAbility(new ConditionalTriggeredAbility(ability, new CardsInHandCondition(ComparisonType.MORE_THAN, 0), "At the beginning of your upkeep, if you have a card in hand, return {this} to its owner's hand.")); } diff --git a/Mage.Sets/src/mage/cards/i/ImperialRecruiter.java b/Mage.Sets/src/mage/cards/i/ImperialRecruiter.java index 9bb344cc5f9..54d22093be5 100644 --- a/Mage.Sets/src/mage/cards/i/ImperialRecruiter.java +++ b/Mage.Sets/src/mage/cards/i/ImperialRecruiter.java @@ -27,18 +27,19 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -48,7 +49,7 @@ public class ImperialRecruiter extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("a creature card with power 2 or less"); static{ - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public ImperialRecruiter(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/i/Imperiosaur.java b/Mage.Sets/src/mage/cards/i/Imperiosaur.java index 368c34856e9..fc74d498571 100644 --- a/Mage.Sets/src/mage/cards/i/Imperiosaur.java +++ b/Mage.Sets/src/mage/cards/i/Imperiosaur.java @@ -27,16 +27,18 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.abilities.StaticAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -45,7 +47,7 @@ public class Imperiosaur extends CardImpl { private static final FilterLandPermanent filter = new FilterLandPermanent(); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public Imperiosaur(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/i/ImprisonedInTheMoon.java b/Mage.Sets/src/mage/cards/i/ImprisonedInTheMoon.java index 1b3f3cf3eee..1afecae365a 100644 --- a/Mage.Sets/src/mage/cards/i/ImprisonedInTheMoon.java +++ b/Mage.Sets/src/mage/cards/i/ImprisonedInTheMoon.java @@ -130,7 +130,7 @@ class BecomesColorlessLandEffect extends ContinuousEffectImpl { case TypeChangingEffects_4: boolean isLand = permanent.isLand(); permanent.getCardType().clear(); - permanent.getCardType().add(CardType.LAND); + permanent.addCardType(CardType.LAND); if (!isLand) { permanent.getSubtype(game).clear(); } diff --git a/Mage.Sets/src/mage/cards/i/InOketrasName.java b/Mage.Sets/src/mage/cards/i/InOketrasName.java new file mode 100644 index 00000000000..dc237e7b8c5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/i/InOketrasName.java @@ -0,0 +1,70 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.i; + +import java.util.UUID; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; + +/** + * + * @author fireshoes + */ +public class InOketrasName extends CardImpl { + + private static final FilterCreaturePermanent filterZombies = new FilterCreaturePermanent("Zombies"); + private static final FilterCreaturePermanent filterNotZombies = new FilterCreaturePermanent("Other creatures"); + + static { + filterZombies.add(new SubtypePredicate("Zombie")); + filterNotZombies.add(Predicates.not(new SubtypePredicate("Zombie"))); + } + + public InOketrasName(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}"); + + // Zombies you control get +2/+1 until end of turn. Other creatures you control get +1/+1 until end of turn. + getSpellAbility().addEffect(new BoostControlledEffect(2, 1, Duration.EndOfTurn, filterZombies)); + getSpellAbility().addEffect(new BoostControlledEffect(1, 1, Duration.EndOfTurn, filterNotZombies)); + } + + public InOketrasName(final InOketrasName card) { + super(card); + } + + @Override + public InOketrasName copy() { + return new InOketrasName(this); + } +} diff --git a/Mage.Sets/src/mage/cards/i/InTheEyeOfChaos.java b/Mage.Sets/src/mage/cards/i/InTheEyeOfChaos.java index 2b23466076b..04299ed5eff 100644 --- a/Mage.Sets/src/mage/cards/i/InTheEyeOfChaos.java +++ b/Mage.Sets/src/mage/cards/i/InTheEyeOfChaos.java @@ -34,10 +34,7 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; @@ -57,7 +54,7 @@ public class InTheEyeOfChaos extends CardImpl { public InTheEyeOfChaos(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{U}"); - this.supertype.add("World"); + addSuperType(SuperType.WORLD); // Whenever a player casts an instant spell, counter it unless that player pays {X}, where X is its converted mana cost. diff --git a/Mage.Sets/src/mage/cards/i/InameAsOne.java b/Mage.Sets/src/mage/cards/i/InameAsOne.java index 95355f2cf2b..c582af12e13 100644 --- a/Mage.Sets/src/mage/cards/i/InameAsOne.java +++ b/Mage.Sets/src/mage/cards/i/InameAsOne.java @@ -27,7 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -45,6 +44,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; @@ -54,6 +54,8 @@ import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * * @author LevelX2 @@ -68,7 +70,7 @@ public class InameAsOne extends CardImpl { public InameAsOne(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{8}{B}{B}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(8); this.toughness = new MageInt(8); @@ -76,7 +78,7 @@ public class InameAsOne extends CardImpl { // When Iname as One enters the battlefield, if you cast it from your hand, you may search your library for a Spirit permanent card, put it onto the battlefield, then shuffle your library. this.addAbility(new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, filter)), true), - new CastFromHandSourceCondition(), + CastFromHandSourceCondition.instance, "When {this} enters the battlefield, if you cast it from your hand, you may search your library for a Spirit permanent card, put it onto the battlefield, then shuffle your library."), new CastFromHandWatcher()); diff --git a/Mage.Sets/src/mage/cards/i/InameDeathAspect.java b/Mage.Sets/src/mage/cards/i/InameDeathAspect.java index 808d84c9fca..3b63f1687fe 100644 --- a/Mage.Sets/src/mage/cards/i/InameDeathAspect.java +++ b/Mage.Sets/src/mage/cards/i/InameDeathAspect.java @@ -37,8 +37,9 @@ import mage.cards.CardSetInfo; import mage.cards.CardsImpl; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.common.FilterCreatureCard; +import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.players.Player; @@ -52,7 +53,7 @@ public class InameDeathAspect extends CardImpl { public InameDeathAspect(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(4); @@ -72,7 +73,7 @@ public class InameDeathAspect extends CardImpl { class InameDeathAspectEffect extends SearchEffect { - private static final FilterCreatureCard filter = new FilterCreatureCard(); + private static final FilterCard filter = new FilterCard(); static { filter.add(new SubtypePredicate("Spirit")); diff --git a/Mage.Sets/src/mage/cards/i/InameLifeAspect.java b/Mage.Sets/src/mage/cards/i/InameLifeAspect.java index 9fdc825ecb1..8d984058ac0 100644 --- a/Mage.Sets/src/mage/cards/i/InameLifeAspect.java +++ b/Mage.Sets/src/mage/cards/i/InameLifeAspect.java @@ -27,7 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -40,12 +39,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Loki @@ -60,7 +62,7 @@ public class InameLifeAspect extends CardImpl { public InameLifeAspect(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/i/IndomitableCreativity.java b/Mage.Sets/src/mage/cards/i/IndomitableCreativity.java index 61325514eda..cbbf3d80927 100644 --- a/Mage.Sets/src/mage/cards/i/IndomitableCreativity.java +++ b/Mage.Sets/src/mage/cards/i/IndomitableCreativity.java @@ -143,12 +143,12 @@ class IndomitableCreativityEffect extends OneShotEffect { cards.add(card); } - if (card.isCreature() || card.isArtifact()) { - controllerOfDestroyedCreature.moveCards(card, Zone.BATTLEFIELD, source, game); - } - if (!cards.isEmpty()) { revealCards.addAll(cards); + if (card.isCreature() || card.isArtifact()) { + controllerOfDestroyedCreature.moveCards(card, Zone.EXILED, source, game); + controllerOfDestroyedCreature.moveCards(card, Zone.BATTLEFIELD, source, game); + } Set cardsToShuffle = cards.getCards(game); cardsToShuffle.remove(card); library.addAll(cardsToShuffle, game); diff --git a/Mage.Sets/src/mage/cards/i/InfernalKirin.java b/Mage.Sets/src/mage/cards/i/InfernalKirin.java index 3051106b598..e92e8840e96 100644 --- a/Mage.Sets/src/mage/cards/i/InfernalKirin.java +++ b/Mage.Sets/src/mage/cards/i/InfernalKirin.java @@ -27,7 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -38,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterSpiritOrArcaneCard; import mage.game.Game; @@ -46,6 +46,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +56,7 @@ public class InfernalKirin extends CardImpl { public InfernalKirin(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Kirin"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/i/InitiateOfBlood.java b/Mage.Sets/src/mage/cards/i/InitiateOfBlood.java index 525a567cb68..22d7b8c46a8 100644 --- a/Mage.Sets/src/mage/cards/i/InitiateOfBlood.java +++ b/Mage.Sets/src/mage/cards/i/InitiateOfBlood.java @@ -29,6 +29,7 @@ */ package mage.cards.i; +import mage.constants.SuperType; import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; @@ -98,7 +99,7 @@ class GokaTheUnjust extends Token { GokaTheUnjust() { super("Goka the Unjust", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setRed(true); subtype.add("Ogre"); diff --git a/Mage.Sets/src/mage/cards/i/InitiatesCompanion.java b/Mage.Sets/src/mage/cards/i/InitiatesCompanion.java new file mode 100644 index 00000000000..522ff492bb5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/i/InitiatesCompanion.java @@ -0,0 +1,77 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.i; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; +import mage.abilities.effects.common.UntapTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.FilterPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.target.TargetPermanent; + +/** + * + * @author fireshoes + */ +public class InitiatesCompanion extends CardImpl { + + private static final FilterPermanent filter = new FilterPermanent("creature or land"); + + static { + filter.add(Predicates.or(new CardTypePredicate(CardType.CREATURE), + new CardTypePredicate(CardType.LAND))); + } + + public InitiatesCompanion(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}"); + + this.subtype.add("Cat"); + this.power = new MageInt(3); + this.toughness = new MageInt(1); + + // Whenever Initiate's Companion deals combat damage to a player, untap target creature or land. + Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(new UntapTargetEffect(), false); + ability.addTarget(new TargetPermanent(filter)); + this.addAbility(ability); + } + + public InitiatesCompanion(final InitiatesCompanion card) { + super(card); + } + + @Override + public InitiatesCompanion copy() { + return new InitiatesCompanion(this); + } +} diff --git a/Mage.Sets/src/mage/cards/i/InkEyesServantOfOni.java b/Mage.Sets/src/mage/cards/i/InkEyesServantOfOni.java index 191fff6146b..22a804e47dc 100644 --- a/Mage.Sets/src/mage/cards/i/InkEyesServantOfOni.java +++ b/Mage.Sets/src/mage/cards/i/InkEyesServantOfOni.java @@ -27,7 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -41,6 +40,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -49,6 +49,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +61,7 @@ public class InkEyesServantOfOni extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}"); this.subtype.add("Rat"); this.subtype.add("Ninja"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.power = new MageInt(5); this.toughness = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/i/InquisitionOfKozilek.java b/Mage.Sets/src/mage/cards/i/InquisitionOfKozilek.java index 31045a1e2f2..3355c019e9e 100644 --- a/Mage.Sets/src/mage/cards/i/InquisitionOfKozilek.java +++ b/Mage.Sets/src/mage/cards/i/InquisitionOfKozilek.java @@ -28,19 +28,20 @@ package mage.cards.i; -import java.util.UUID; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.effects.common.discard.DiscardCardYouChooseTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -51,7 +52,7 @@ public class InquisitionOfKozilek extends CardImpl { static { filter.add(Predicates.not(new CardTypePredicate(CardType.LAND))); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public InquisitionOfKozilek(UUID ownerId, CardSetInfo setInfo){ diff --git a/Mage.Sets/src/mage/cards/i/InspiringVantage.java b/Mage.Sets/src/mage/cards/i/InspiringVantage.java index d7a0ee12711..32353b18e90 100644 --- a/Mage.Sets/src/mage/cards/i/InspiringVantage.java +++ b/Mage.Sets/src/mage/cards/i/InspiringVantage.java @@ -29,7 +29,7 @@ package mage.cards.i; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; @@ -53,7 +53,7 @@ public class InspiringVantage extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); // Inspiring Vantage enters the battlefield tapped unless you control two or fewer other lands. - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.FEWER_THAN, 3)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.FEWER_THAN, 3)); String abilityText = "tapped unless you control fewer than 3 lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); diff --git a/Mage.Sets/src/mage/cards/i/InsultInjury.java b/Mage.Sets/src/mage/cards/i/InsultInjury.java new file mode 100644 index 00000000000..b4721e71740 --- /dev/null +++ b/Mage.Sets/src/mage/cards/i/InsultInjury.java @@ -0,0 +1,127 @@ +package mage.cards.i; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.ReplacementEffectImpl; +import mage.abilities.effects.common.continuous.DamageCantBePreventedEffect; +import mage.abilities.keyword.AftermathAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.SpellAbilityType; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.TargetPlayer; +import mage.target.common.TargetCreaturePermanent; + +/** + * @author Stravant + */ +public class InsultInjury extends SplitCard { + + public InsultInjury(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.SORCERY}, "{2}{R}", "{2}{R}", SpellAbilityType.SPLIT_AFTERMATH); + + // Insult + // Damage can't be prevented this turn. If a source you control would deal damage this turn it deals + // double that damage instead. + getLeftHalfCard().getSpellAbility().addEffect(new DamageCantBePreventedEffect(Duration.EndOfTurn, "Damage can't be prevented this turn.", true, false)); + getLeftHalfCard().getSpellAbility().addEffect(new InsultDoubleDamageEffect()); + + // to + // Injury + // Injury deals 2 damage to target creature and 2 damage to target player. + ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); + getRightHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); + getRightHalfCard().getSpellAbility().addTarget(new TargetPlayer()); + getRightHalfCard().getSpellAbility().addEffect(new InjuryEffect()); + } + + public InsultInjury(final InsultInjury card) { + super(card); + } + + @Override + public InsultInjury copy() { + return new InsultInjury(this); + } +} + +class InsultDoubleDamageEffect extends ReplacementEffectImpl { + + public InsultDoubleDamageEffect() { + super(Duration.EndOfTurn, Outcome.Damage); + staticText = "If a source you control would deal damage this turn, it deals double that damage to that creature or player instead."; + } + + public InsultDoubleDamageEffect(final InsultDoubleDamageEffect effect) { + super(effect); + } + + @Override + public InsultDoubleDamageEffect copy() { + return new InsultDoubleDamageEffect(this); + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.DAMAGE_CREATURE + || event.getType() == GameEvent.EventType.DAMAGE_PLAYER + || event.getType() == GameEvent.EventType.DAMAGE_PLANESWALKER; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + return game.getControllerId(event.getSourceId()).equals(source.getControllerId()); + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + event.setAmount(event.getAmount() * 2); + return false; + } +} + +class InjuryEffect extends OneShotEffect { + + InjuryEffect() { + super(Outcome.Damage); + this.staticText = "{this} deals 2 damage to target creature and 2 damage to target player"; + } + + InjuryEffect(final InjuryEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent permanent = game.getPermanent(source.getTargets().get(0).getFirstTarget()); + Player player = game.getPlayer(source.getTargets().get(1).getFirstTarget()); + + if (permanent != null) { + permanent.damage(2, source.getSourceId(), game, false, true); + } + + if (player != null) { + player.damage(2, source.getSourceId(), game, false, true); + } + + return true; + } + + @Override + public InjuryEffect copy() { + return new InjuryEffect(this); + } +} diff --git a/Mage.Sets/src/mage/cards/i/IntetTheDreamer.java b/Mage.Sets/src/mage/cards/i/IntetTheDreamer.java index a8dfc60f0e2..e4c8e2a8456 100644 --- a/Mage.Sets/src/mage/cards/i/IntetTheDreamer.java +++ b/Mage.Sets/src/mage/cards/i/IntetTheDreamer.java @@ -27,9 +27,6 @@ */ package mage.cards.i; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -43,16 +40,16 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.ExileZone; import mage.game.Game; import mage.players.Player; import mage.util.CardUtil; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author fireshoes @@ -63,7 +60,7 @@ public class IntetTheDreamer extends CardImpl { public IntetTheDreamer(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(6); this.toughness = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/i/IntoTheNorth.java b/Mage.Sets/src/mage/cards/i/IntoTheNorth.java index 99d5a51053b..0a6e1fe43d8 100644 --- a/Mage.Sets/src/mage/cards/i/IntoTheNorth.java +++ b/Mage.Sets/src/mage/cards/i/IntoTheNorth.java @@ -27,16 +27,18 @@ */ package mage.cards.i; -import java.util.UUID; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.common.FilterLandCard; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -46,7 +48,7 @@ public class IntoTheNorth extends CardImpl { private static final FilterLandCard filter = new FilterLandCard("snow land card"); static { - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); } public IntoTheNorth(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/i/IntrepidHero.java b/Mage.Sets/src/mage/cards/i/IntrepidHero.java index c34b3c63a95..0a9e72eff72 100644 --- a/Mage.Sets/src/mage/cards/i/IntrepidHero.java +++ b/Mage.Sets/src/mage/cards/i/IntrepidHero.java @@ -27,21 +27,22 @@ */ package mage.cards.i; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -51,7 +52,7 @@ public class IntrepidHero extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 4 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN,3)); } public IntrepidHero(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/i/InventorsFair.java b/Mage.Sets/src/mage/cards/i/InventorsFair.java index 7d0fd296654..b2d76ff9c64 100644 --- a/Mage.Sets/src/mage/cards/i/InventorsFair.java +++ b/Mage.Sets/src/mage/cards/i/InventorsFair.java @@ -27,7 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -41,6 +40,7 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterArtifactPermanent; @@ -50,6 +50,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes @@ -64,7 +66,7 @@ public class InventorsFair extends CardImpl { public InventorsFair(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // At the beginning of your upkeep, if you control three or more artifacts, you gain 1 life. this.addAbility(new InventorsFairAbility()); diff --git a/Mage.Sets/src/mage/cards/i/InvertTheSkies.java b/Mage.Sets/src/mage/cards/i/InvertTheSkies.java index 7dd5b30f4bf..cc0aa0eaf79 100644 --- a/Mage.Sets/src/mage/cards/i/InvertTheSkies.java +++ b/Mage.Sets/src/mage/cards/i/InvertTheSkies.java @@ -27,51 +27,58 @@ */ package mage.cards.i; -import java.util.Set; import java.util.UUID; -import mage.abilities.Ability; import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.common.ManaWasSpentCondition; import mage.abilities.decorator.ConditionalContinuousEffect; -import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.InfoEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.effects.common.continuous.LoseAbilityAllEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.filter.common.FilterCreaturePermanent; -import mage.game.Game; -import mage.game.permanent.Permanent; +import mage.constants.TargetController; +import mage.filter.FilterPermanent; +import mage.filter.predicate.mageobject.AbilityPredicate; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.filter.predicate.permanent.ControllerPredicate; import mage.watchers.common.ManaSpentToCastWatcher; /** * * @author jeffwadsworth - + * */ public class InvertTheSkies extends CardImpl { - public InvertTheSkies(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{G/U}"); + private static final FilterPermanent filter = new FilterPermanent(); + static { + filter.add(new ControllerPredicate(TargetController.OPPONENT)); + filter.add(new AbilityPredicate(FlyingAbility.class)); + filter.add(new CardTypePredicate(CardType.CREATURE)); + } + + public InvertTheSkies(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{G/U}"); // Creatures your opponents control lose flying until end of turn if {G} was spent to cast Invert the Skies, and creatures you control gain flying until end of turn if {U} was spent to cast it. this.getSpellAbility().addEffect(new ConditionalContinuousEffect( - new InvertTheSkiesEffect(), + new LoseAbilityAllEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, filter), new LockedInCondition(new ManaWasSpentCondition(ColoredManaSymbol.G)), "Creatures your opponents control lose flying until end of turn if {G} was spent to cast {this},")); + this.getSpellAbility().addEffect(new ConditionalContinuousEffect( new GainAbilityControlledEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new LockedInCondition(new ManaWasSpentCondition(ColoredManaSymbol.U)), "and creatures you control gain flying until end of turn if {U} was spent to cast it")); + this.getSpellAbility().addEffect(new InfoEffect("(Do both if {G}{U} was spent.)")); this.getSpellAbility().addWatcher(new ManaSpentToCastWatcher()); + } public InvertTheSkies(final InvertTheSkies card) { @@ -83,33 +90,3 @@ public class InvertTheSkies extends CardImpl { return new InvertTheSkies(this); } } - -class InvertTheSkiesEffect extends ContinuousEffectImpl { - - private static FilterCreaturePermanent filter = new FilterCreaturePermanent(); - - public InvertTheSkiesEffect() { - super(Duration.EndOfTurn, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.LoseAbility); - } - - public InvertTheSkiesEffect(final InvertTheSkiesEffect effect) { - super(effect); - } - - @Override - public InvertTheSkiesEffect copy() { - return new InvertTheSkiesEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Set opponents = game.getOpponents(source.getControllerId()); - for (Permanent perm: game.getBattlefield().getActivePermanents(filter, source.getControllerId(), game)) { - if (opponents.contains(perm.getControllerId())) { - perm.getAbilities().remove(FlyingAbility.getInstance()); - } - } - return true; - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/i/IonaShieldOfEmeria.java b/Mage.Sets/src/mage/cards/i/IonaShieldOfEmeria.java index 2a020287a4c..f4e2e9a7d44 100644 --- a/Mage.Sets/src/mage/cards/i/IonaShieldOfEmeria.java +++ b/Mage.Sets/src/mage/cards/i/IonaShieldOfEmeria.java @@ -27,7 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.ObjectColor; @@ -40,13 +39,12 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +53,7 @@ public class IonaShieldOfEmeria extends CardImpl { public IonaShieldOfEmeria(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{W}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/i/IriniSengir.java b/Mage.Sets/src/mage/cards/i/IriniSengir.java index 6137f6bef9f..4d575555366 100644 --- a/Mage.Sets/src/mage/cards/i/IriniSengir.java +++ b/Mage.Sets/src/mage/cards/i/IriniSengir.java @@ -27,7 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -35,11 +34,14 @@ import mage.abilities.effects.common.cost.SpellsCostIncreasementAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterEnchantmentCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -54,7 +56,7 @@ public class IriniSengir extends CardImpl { public IriniSengir(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.subtype.add("Dwarf"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/i/IroasGodOfVictory.java b/Mage.Sets/src/mage/cards/i/IroasGodOfVictory.java index 986d92e9b09..7093e746b89 100644 --- a/Mage.Sets/src/mage/cards/i/IroasGodOfVictory.java +++ b/Mage.Sets/src/mage/cards/i/IroasGodOfVictory.java @@ -27,7 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.DevotionCount; @@ -39,16 +38,14 @@ import mage.abilities.keyword.IndestructibleAbility; import mage.abilities.keyword.MenaceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledCreatureInPlay; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AttackingPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -64,7 +61,7 @@ public class IroasGodOfVictory extends CardImpl { public IroasGodOfVictory(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.CREATURE},"{2}{R}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/i/IronclawBuzzardiers.java b/Mage.Sets/src/mage/cards/i/IronclawBuzzardiers.java index 72ee4a5a4c9..79e3dde1283 100644 --- a/Mage.Sets/src/mage/cards/i/IronclawBuzzardiers.java +++ b/Mage.Sets/src/mage/cards/i/IronclawBuzzardiers.java @@ -27,8 +27,8 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -40,10 +40,11 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author dustinconrad @@ -52,7 +53,7 @@ public class IronclawBuzzardiers extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 1)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 1)); } public IronclawBuzzardiers(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/i/IronclawOrcs.java b/Mage.Sets/src/mage/cards/i/IronclawOrcs.java index d81084d76c8..87d4477fb10 100644 --- a/Mage.Sets/src/mage/cards/i/IronclawOrcs.java +++ b/Mage.Sets/src/mage/cards/i/IronclawOrcs.java @@ -27,18 +27,19 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantBlockCreaturesSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author dustinconrad @@ -47,7 +48,7 @@ public class IronclawOrcs extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 1)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 1)); } public IronclawOrcs(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/i/IrrigatedFarmland.java b/Mage.Sets/src/mage/cards/i/IrrigatedFarmland.java new file mode 100644 index 00000000000..83afd63f0ab --- /dev/null +++ b/Mage.Sets/src/mage/cards/i/IrrigatedFarmland.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.i; + +import java.util.UUID; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.CyclingAbility; +import mage.abilities.mana.BlueManaAbility; +import mage.abilities.mana.WhiteManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class IrrigatedFarmland extends CardImpl { + + public IrrigatedFarmland(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + this.subtype.add("Plains"); + this.subtype.add("Island"); + + // ({T}: Add {W} or {U} to your mana pool.) + this.addAbility(new WhiteManaAbility()); + this.addAbility(new BlueManaAbility()); + + // Irrigated Farmland enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + + } + + public IrrigatedFarmland(final IrrigatedFarmland card) { + super(card); + } + + @Override + public IrrigatedFarmland copy() { + return new IrrigatedFarmland(this); + } +} diff --git a/Mage.Sets/src/mage/cards/i/IsamaruHoundofKonda.java b/Mage.Sets/src/mage/cards/i/IsamaruHoundofKonda.java index ede4696d6ff..39990148fc7 100644 --- a/Mage.Sets/src/mage/cards/i/IsamaruHoundofKonda.java +++ b/Mage.Sets/src/mage/cards/i/IsamaruHoundofKonda.java @@ -33,6 +33,7 @@ import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.SuperType; /** * @@ -42,7 +43,7 @@ public class IsamaruHoundofKonda extends CardImpl { public IsamaruHoundofKonda (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Hound"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/i/IsaoEnlightenedBushi.java b/Mage.Sets/src/mage/cards/i/IsaoEnlightenedBushi.java index 204da008b1c..728e13015b3 100644 --- a/Mage.Sets/src/mage/cards/i/IsaoEnlightenedBushi.java +++ b/Mage.Sets/src/mage/cards/i/IsaoEnlightenedBushi.java @@ -27,9 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.CantBeCounteredAbility; @@ -39,11 +36,15 @@ import mage.abilities.effects.common.RegenerateTargetEffect; import mage.abilities.keyword.BushidoAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki @@ -58,7 +59,7 @@ public class IsaoEnlightenedBushi extends CardImpl { public IsaoEnlightenedBushi(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Samurai"); diff --git a/Mage.Sets/src/mage/cards/i/IshaiOjutaiDragonspeaker.java b/Mage.Sets/src/mage/cards/i/IshaiOjutaiDragonspeaker.java index 24558f7f200..43135085019 100644 --- a/Mage.Sets/src/mage/cards/i/IshaiOjutaiDragonspeaker.java +++ b/Mage.Sets/src/mage/cards/i/IshaiOjutaiDragonspeaker.java @@ -27,7 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastOpponentTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -36,8 +35,11 @@ import mage.abilities.keyword.PartnerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Styxo @@ -47,7 +49,7 @@ public class IshaiOjutaiDragonspeaker extends CardImpl { public IshaiOjutaiDragonspeaker(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Bird"); this.subtype.add("Monk"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/i/IshiIshiAkkiCrackshot.java b/Mage.Sets/src/mage/cards/i/IshiIshiAkkiCrackshot.java index bf31f27e9c0..4bd147f62fa 100644 --- a/Mage.Sets/src/mage/cards/i/IshiIshiAkkiCrackshot.java +++ b/Mage.Sets/src/mage/cards/i/IshiIshiAkkiCrackshot.java @@ -27,19 +27,17 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastOpponentTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.SetTargetPointer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterSpiritOrArcaneCard; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +52,7 @@ public class IshiIshiAkkiCrackshot extends CardImpl { public IshiIshiAkkiCrackshot(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/i/IshkanahGrafwidow.java b/Mage.Sets/src/mage/cards/i/IshkanahGrafwidow.java index 648acec363d..1c6e79ee1ac 100644 --- a/Mage.Sets/src/mage/cards/i/IshkanahGrafwidow.java +++ b/Mage.Sets/src/mage/cards/i/IshkanahGrafwidow.java @@ -27,7 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -42,12 +41,15 @@ import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.SpiderToken; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author fireshoes @@ -62,7 +64,7 @@ public class IshkanahGrafwidow extends CardImpl { public IshkanahGrafwidow(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spider"); this.power = new MageInt(3); this.toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/i/IslandFishJasconius.java b/Mage.Sets/src/mage/cards/i/IslandFishJasconius.java index 980280e3312..27f72f37be7 100644 --- a/Mage.Sets/src/mage/cards/i/IslandFishJasconius.java +++ b/Mage.Sets/src/mage/cards/i/IslandFishJasconius.java @@ -27,8 +27,8 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,9 +43,10 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -73,7 +74,7 @@ public class IslandFishJasconius extends CardImpl { // When you control no Islands, sacrifice Island Fish Jasconius. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Island", "no Islands"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Island", "no Islands"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/i/IslebackSpawn.java b/Mage.Sets/src/mage/cards/i/IslebackSpawn.java index 1aca6db08b8..4331779ca96 100644 --- a/Mage.Sets/src/mage/cards/i/IslebackSpawn.java +++ b/Mage.Sets/src/mage/cards/i/IslebackSpawn.java @@ -27,10 +27,9 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.condition.Condition; import mage.abilities.condition.common.CardsInAnyLibraryCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +60,7 @@ public class IslebackSpawn extends CardImpl { // Isleback Spawn gets +4/+8 as long as a library has twenty or fewer cards in it. this.addAbility(new SimpleStaticAbility(Zone.ALL, new ConditionalContinuousEffect( new BoostSourceEffect(4,8, Duration.EndOfGame), - new CardsInAnyLibraryCondition(Condition.ComparisonType.LessThan, 21), + new CardsInAnyLibraryCondition(ComparisonType.FEWER_THAN, 21), "{this} gets +4/+8 as long as a library has twenty or fewer cards in it"))); } diff --git a/Mage.Sets/src/mage/cards/i/IsochronScepter.java b/Mage.Sets/src/mage/cards/i/IsochronScepter.java index 99335309324..41cda253d07 100644 --- a/Mage.Sets/src/mage/cards/i/IsochronScepter.java +++ b/Mage.Sets/src/mage/cards/i/IsochronScepter.java @@ -27,8 +27,8 @@ */ package mage.cards.i; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,7 +40,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -51,6 +50,8 @@ import mage.target.TargetCard; import mage.util.CardUtil; import org.apache.log4j.Logger; +import java.util.UUID; + /** * * @author LevelX2 @@ -86,7 +87,7 @@ class IsochronScepterImprintEffect extends OneShotEffect { static { filter.add(new CardTypePredicate(CardType.INSTANT)); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); } public IsochronScepterImprintEffect() { diff --git a/Mage.Sets/src/mage/cards/i/IsolatedChapel.java b/Mage.Sets/src/mage/cards/i/IsolatedChapel.java index 5feab6da620..b7c2a199477 100644 --- a/Mage.Sets/src/mage/cards/i/IsolatedChapel.java +++ b/Mage.Sets/src/mage/cards/i/IsolatedChapel.java @@ -28,7 +28,7 @@ package mage.cards.i; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; @@ -60,7 +60,7 @@ public class IsolatedChapel extends CardImpl { public IsolatedChapel(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Plains or a Swamp"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new WhiteManaAbility()); diff --git a/Mage.Sets/src/mage/cards/i/IsperiaSupremeJudge.java b/Mage.Sets/src/mage/cards/i/IsperiaSupremeJudge.java index 7c8eadcd8f4..db87ecc19bd 100644 --- a/Mage.Sets/src/mage/cards/i/IsperiaSupremeJudge.java +++ b/Mage.Sets/src/mage/cards/i/IsperiaSupremeJudge.java @@ -27,15 +27,16 @@ */ package mage.cards.i; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AttacksAllTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -47,7 +48,7 @@ public class IsperiaSupremeJudge extends CardImpl { public IsperiaSupremeJudge(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}{U}{U}"); this.subtype.add("Sphinx"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); diff --git a/Mage.Sets/src/mage/cards/i/IsperiaTheInscrutable.java b/Mage.Sets/src/mage/cards/i/IsperiaTheInscrutable.java index 2411c75d20d..a3030b8774f 100644 --- a/Mage.Sets/src/mage/cards/i/IsperiaTheInscrutable.java +++ b/Mage.Sets/src/mage/cards/i/IsperiaTheInscrutable.java @@ -41,6 +41,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -56,7 +57,7 @@ public class IsperiaTheInscrutable extends CardImpl { public IsperiaTheInscrutable(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}{U}{U}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Sphinx"); this.power = new MageInt(3); this.toughness = new MageInt(6); @@ -66,7 +67,7 @@ public class IsperiaTheInscrutable extends CardImpl { // Whenever Isperia the Inscrutable deals combat damage to a player, name a card. That player reveals his or her hand. If he or she reveals the named card, search your library for a creature card with flying, reveal it, put it into your hand, then shuffle your library. Effect effect1 = new NameACardEffect(NameACardEffect.TypeOfName.ALL); - Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(effect1, true, true); + Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(effect1, false, true); Effect effect2 = new IsperiaTheInscrutableEffect(); ability.addEffect(effect2); this.addAbility(ability); @@ -105,6 +106,7 @@ class IsperiaTheInscrutableEffect extends OneShotEffect { Player player = game.getPlayer(getTargetPointer().getFirst(game, source)); Object object = (String) game.getState().getValue(source.getSourceId().toString() + NameACardEffect.INFO_KEY); if (player != null && object instanceof String) { + player.revealCards(player.getLogName() + " hand", player.getHand(), game, true); String namedCard = (String) object; for (Card card : player.getHand().getCards(game)) { if (card != null && card.getName().equals(namedCard)) { diff --git a/Mage.Sets/src/mage/cards/i/IthHighArcanist.java b/Mage.Sets/src/mage/cards/i/IthHighArcanist.java index da3ca1d82a2..1eddda68916 100644 --- a/Mage.Sets/src/mage/cards/i/IthHighArcanist.java +++ b/Mage.Sets/src/mage/cards/i/IthHighArcanist.java @@ -43,6 +43,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetAttackingCreature; @@ -54,7 +55,7 @@ public class IthHighArcanist extends CardImpl { public IthHighArcanist(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/i/IvoryCraneNetsuke.java b/Mage.Sets/src/mage/cards/i/IvoryCraneNetsuke.java index ba5703c8572..6859d99db0d 100644 --- a/Mage.Sets/src/mage/cards/i/IvoryCraneNetsuke.java +++ b/Mage.Sets/src/mage/cards/i/IvoryCraneNetsuke.java @@ -29,7 +29,7 @@ package mage.cards.i; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.CardsInHandCondition; @@ -52,7 +52,7 @@ public class IvoryCraneNetsuke extends CardImpl { // At the beginning of your upkeep, if you have seven or more cards in hand, you gain 4 life. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new GainLifeEffect(4), TargetController.YOU, false); - CardsInHandCondition condition = new CardsInHandCondition(CountType.MORE_THAN, 6); + CardsInHandCondition condition = new CardsInHandCondition(ComparisonType.MORE_THAN, 6); this.addAbility(new ConditionalTriggeredAbility(ability, condition, "At the beginning of your upkeep, if you have seven or more cards in hand, you gain 4 life.")); } diff --git a/Mage.Sets/src/mage/cards/i/IwamoriOfTheOpenFist.java b/Mage.Sets/src/mage/cards/i/IwamoriOfTheOpenFist.java index c05d1e723cc..1622d083f0a 100644 --- a/Mage.Sets/src/mage/cards/i/IwamoriOfTheOpenFist.java +++ b/Mage.Sets/src/mage/cards/i/IwamoriOfTheOpenFist.java @@ -27,19 +27,15 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.TrampleAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -49,6 +45,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +55,7 @@ public class IwamoriOfTheOpenFist extends CardImpl { public IwamoriOfTheOpenFist(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Monk"); @@ -85,7 +83,7 @@ class IwamoriOfTheOpenFistEffect extends OneShotEffect { private static final FilterCard filter = new FilterCard("legendary creature card"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); filter.add(new CardTypePredicate(CardType.CREATURE)); } diff --git a/Mage.Sets/src/mage/cards/i/IxidorRealitySculptor.java b/Mage.Sets/src/mage/cards/i/IxidorRealitySculptor.java index 2adf33e4373..eae3f6c0e25 100644 --- a/Mage.Sets/src/mage/cards/i/IxidorRealitySculptor.java +++ b/Mage.Sets/src/mage/cards/i/IxidorRealitySculptor.java @@ -27,7 +27,6 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,16 +36,15 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.other.FaceDownPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author cg5 @@ -64,7 +62,7 @@ public class IxidorRealitySculptor extends CardImpl { public IxidorRealitySculptor(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/i/IzzetGuildmage.java b/Mage.Sets/src/mage/cards/i/IzzetGuildmage.java index 558b15f8c7a..24f808ef39e 100644 --- a/Mage.Sets/src/mage/cards/i/IzzetGuildmage.java +++ b/Mage.Sets/src/mage/cards/i/IzzetGuildmage.java @@ -27,9 +27,9 @@ */ package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CopyTargetSpellEffect; @@ -38,13 +38,14 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,10 +57,10 @@ public class IzzetGuildmage extends CardImpl { static { filterInstant.add(new CardTypePredicate(CardType.INSTANT)); - filterInstant.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 3)); + filterInstant.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); filterInstant.add(new ControllerPredicate(TargetController.YOU)); filterSorcery.add(new CardTypePredicate(CardType.SORCERY)); - filterSorcery.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 3)); + filterSorcery.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); filterSorcery.add(new ControllerPredicate(TargetController.YOU)); } diff --git a/Mage.Sets/src/mage/cards/j/JabbaTheHutt.java b/Mage.Sets/src/mage/cards/j/JabbaTheHutt.java index bd38d7661ea..a6d1544d136 100644 --- a/Mage.Sets/src/mage/cards/j/JabbaTheHutt.java +++ b/Mage.Sets/src/mage/cards/j/JabbaTheHutt.java @@ -27,7 +27,6 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; @@ -42,6 +41,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterOpponentsCreaturePermanent; @@ -53,6 +53,8 @@ import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetOpponentsCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo @@ -67,7 +69,7 @@ public class JabbaTheHutt extends CardImpl { public JabbaTheHutt(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Hutt"); this.subtype.add("Rogue"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/j/JaceVrynsProdigy.java b/Mage.Sets/src/mage/cards/j/JaceVrynsProdigy.java index 48133439643..c66fc52e6a9 100644 --- a/Mage.Sets/src/mage/cards/j/JaceVrynsProdigy.java +++ b/Mage.Sets/src/mage/cards/j/JaceVrynsProdigy.java @@ -27,7 +27,6 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Gender; @@ -42,8 +41,11 @@ import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,7 +54,7 @@ public class JaceVrynsProdigy extends CardImpl { public JaceVrynsProdigy(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(0); diff --git a/Mage.Sets/src/mage/cards/j/JacquesLeVert.java b/Mage.Sets/src/mage/cards/j/JacquesLeVert.java index 6120886109d..ed54c355202 100644 --- a/Mage.Sets/src/mage/cards/j/JacquesLeVert.java +++ b/Mage.Sets/src/mage/cards/j/JacquesLeVert.java @@ -36,6 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; @@ -54,7 +55,7 @@ public class JacquesLeVert extends CardImpl { public JacquesLeVert(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}{G}{W}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/j/JaliraMasterPolymorphist.java b/Mage.Sets/src/mage/cards/j/JaliraMasterPolymorphist.java index b176ab36d96..81553a7661b 100644 --- a/Mage.Sets/src/mage/cards/j/JaliraMasterPolymorphist.java +++ b/Mage.Sets/src/mage/cards/j/JaliraMasterPolymorphist.java @@ -27,7 +27,6 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +37,7 @@ import mage.abilities.effects.common.RevealCardsFromLibraryUntilEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreatureCard; @@ -46,6 +46,8 @@ import mage.filter.predicate.mageobject.SupertypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,12 +59,12 @@ public class JaliraMasterPolymorphist extends CardImpl { static { filterPermanent.add(new AnotherPredicate()); - filterCard.add(Predicates.not(new SupertypePredicate("Legendary"))); + filterCard.add(Predicates.not(new SupertypePredicate(SuperType.LEGENDARY))); } public JaliraMasterPolymorphist(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/j/JangoFett.java b/Mage.Sets/src/mage/cards/j/JangoFett.java index 20a11148bd8..17c7ef45802 100644 --- a/Mage.Sets/src/mage/cards/j/JangoFett.java +++ b/Mage.Sets/src/mage/cards/j/JangoFett.java @@ -27,7 +27,6 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -41,10 +40,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerIdPredicate; +import mage.filter.predicate.permanent.CounterPredicate; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; @@ -52,7 +53,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetOpponentsCreaturePermanent; -import mage.filter.predicate.permanent.CounterPredicate; + +import java.util.UUID; /** * @@ -62,7 +64,7 @@ public class JangoFett extends CardImpl { public JangoFett(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Hunter"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/j/JarJarBinks.java b/Mage.Sets/src/mage/cards/j/JarJarBinks.java index 947ecd4df3a..bc0ba826359 100644 --- a/Mage.Sets/src/mage/cards/j/JarJarBinks.java +++ b/Mage.Sets/src/mage/cards/j/JarJarBinks.java @@ -27,9 +27,9 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.common.CantBlockAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -38,13 +38,7 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; -import mage.filter.Filter; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; @@ -54,6 +48,8 @@ import mage.target.Target; import mage.target.TargetPermanent; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Styxo @@ -62,7 +58,7 @@ public class JarJarBinks extends CardImpl { public JarJarBinks(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Gungan"); this.power = new MageInt(0); this.toughness = new MageInt(1); @@ -185,7 +181,7 @@ class JarJarBinksTapEffect extends OneShotEffect { } if (multipleExist) { FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("one of the creatures with the highest power"); - filter.add(new PowerPredicate(Filter.ComparisonType.Equal, highestPower)); + filter.add(new PowerPredicate(ComparisonType.EQUAL_TO, highestPower)); Target target = new TargetPermanent(filter); target.setNotTarget(true); if (target.canChoose(source.getSourceId(), source.getControllerId(), game)) { diff --git a/Mage.Sets/src/mage/cards/j/JaradGolgariLichLord.java b/Mage.Sets/src/mage/cards/j/JaradGolgariLichLord.java index 96bbd8f1a4a..296096d681a 100644 --- a/Mage.Sets/src/mage/cards/j/JaradGolgariLichLord.java +++ b/Mage.Sets/src/mage/cards/j/JaradGolgariLichLord.java @@ -27,9 +27,6 @@ */ package mage.cards.j; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -44,7 +41,9 @@ import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledPermanent; @@ -54,6 +53,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -72,7 +73,7 @@ public class JaradGolgariLichLord extends CardImpl { public JaradGolgariLichLord(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{B}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Elf"); diff --git a/Mage.Sets/src/mage/cards/j/JarethLeonineTitan.java b/Mage.Sets/src/mage/cards/j/JarethLeonineTitan.java index 5047e91f163..48dc5dba6c2 100644 --- a/Mage.Sets/src/mage/cards/j/JarethLeonineTitan.java +++ b/Mage.Sets/src/mage/cards/j/JarethLeonineTitan.java @@ -27,7 +27,6 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BlocksTriggeredAbility; @@ -39,8 +38,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -49,7 +51,7 @@ public class JarethLeonineTitan extends CardImpl { public JarethLeonineTitan(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Cat"); this.subtype.add("Giant"); diff --git a/Mage.Sets/src/mage/cards/j/JasmineBoreal.java b/Mage.Sets/src/mage/cards/j/JasmineBoreal.java index 93848240574..2caf36856be 100644 --- a/Mage.Sets/src/mage/cards/j/JasmineBoreal.java +++ b/Mage.Sets/src/mage/cards/j/JasmineBoreal.java @@ -27,11 +27,13 @@ */ package mage.cards.j; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -41,7 +43,7 @@ public class JasmineBoreal extends CardImpl { public JasmineBoreal(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/j/JayaBallardTaskMage.java b/Mage.Sets/src/mage/cards/j/JayaBallardTaskMage.java index 3432637ed4c..56004758cde 100644 --- a/Mage.Sets/src/mage/cards/j/JayaBallardTaskMage.java +++ b/Mage.Sets/src/mage/cards/j/JayaBallardTaskMage.java @@ -27,7 +27,6 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -41,10 +40,7 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; @@ -54,6 +50,8 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCreatureOrPlayer; import mage.watchers.common.DamagedByWatcher; +import java.util.UUID; + /** * * @author LevelX2 @@ -68,7 +66,7 @@ public class JayaBallardTaskMage extends CardImpl { public JayaBallardTaskMage(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Spellshaper"); diff --git a/Mage.Sets/src/mage/cards/j/JazalGoldmane.java b/Mage.Sets/src/mage/cards/j/JazalGoldmane.java index 84a1a8f3112..f8c81c1259f 100644 --- a/Mage.Sets/src/mage/cards/j/JazalGoldmane.java +++ b/Mage.Sets/src/mage/cards/j/JazalGoldmane.java @@ -27,7 +27,6 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,9 +38,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterAttackingCreature; +import java.util.UUID; + /** * * @author LevelX2 @@ -50,7 +52,7 @@ public class JazalGoldmane extends CardImpl { public JazalGoldmane(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Cat"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/j/JediEnclave.java b/Mage.Sets/src/mage/cards/j/JediEnclave.java index 0b4c7b096cd..487da2a49c3 100644 --- a/Mage.Sets/src/mage/cards/j/JediEnclave.java +++ b/Mage.Sets/src/mage/cards/j/JediEnclave.java @@ -37,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicate; @@ -92,7 +93,7 @@ public class JediEnclave extends CardImpl { subtypePredicates.add(new SubtypePredicate("Plains")); subtypePredicates.add(new SubtypePredicate("Island")); filter.add(Predicates.or(subtypePredicates)); - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); TargetCardInLibrary target = new TargetCardInLibrary(filter); addEffect(new SearchLibraryPutInPlayEffect(target, true, true, Outcome.PutLandInPlay)); } diff --git a/Mage.Sets/src/mage/cards/j/JeditOjanen.java b/Mage.Sets/src/mage/cards/j/JeditOjanen.java index 987a606eca1..52f0df46a9a 100644 --- a/Mage.Sets/src/mage/cards/j/JeditOjanen.java +++ b/Mage.Sets/src/mage/cards/j/JeditOjanen.java @@ -27,11 +27,13 @@ */ package mage.cards.j; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -41,7 +43,7 @@ public class JeditOjanen extends CardImpl { public JeditOjanen(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Cat"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/j/JeditOjanenOfEfrava.java b/Mage.Sets/src/mage/cards/j/JeditOjanenOfEfrava.java index 17b5a080c14..f5cef06c098 100644 --- a/Mage.Sets/src/mage/cards/j/JeditOjanenOfEfrava.java +++ b/Mage.Sets/src/mage/cards/j/JeditOjanenOfEfrava.java @@ -27,7 +27,6 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -35,8 +34,11 @@ import mage.abilities.keyword.ForestwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author fireshoes @@ -45,7 +47,7 @@ public class JeditOjanenOfEfrava extends CardImpl { public JeditOjanenOfEfrava(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Cat"); this.subtype.add("Warrior"); this.power = new MageInt(5); @@ -78,7 +80,7 @@ class CatWarriorToken extends Token { this.color.setGreen(true); this.getSubtype(null).add("Cat"); this.getSubtype(null).add("Warrior"); - this.getCardType().add(CardType.CREATURE); + this.addCardType(CardType.CREATURE); this.addAbility(new ForestwalkAbility()); } } \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/j/JelevaNephaliasScourge.java b/Mage.Sets/src/mage/cards/j/JelevaNephaliasScourge.java index 497ce7e5df7..c397716dbb9 100644 --- a/Mage.Sets/src/mage/cards/j/JelevaNephaliasScourge.java +++ b/Mage.Sets/src/mage/cards/j/JelevaNephaliasScourge.java @@ -41,6 +41,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.WatcherScope; import mage.filter.common.FilterInstantOrSorceryCard; import mage.game.ExileZone; @@ -61,7 +62,7 @@ public class JelevaNephaliasScourge extends CardImpl { public JelevaNephaliasScourge(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/j/JenaraAsuraOfWar.java b/Mage.Sets/src/mage/cards/j/JenaraAsuraOfWar.java index b502e096be9..d1db47a4f6e 100644 --- a/Mage.Sets/src/mage/cards/j/JenaraAsuraOfWar.java +++ b/Mage.Sets/src/mage/cards/j/JenaraAsuraOfWar.java @@ -28,9 +28,6 @@ package mage.cards.j; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,8 +35,13 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Loki @@ -49,7 +51,7 @@ public class JenaraAsuraOfWar extends CardImpl { public JenaraAsuraOfWar (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{W}{U}"); this.subtype.add("Angel"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); diff --git a/Mage.Sets/src/mage/cards/j/JerrardOfTheClosedFist.java b/Mage.Sets/src/mage/cards/j/JerrardOfTheClosedFist.java index 28adb1ef308..1096f02ea15 100644 --- a/Mage.Sets/src/mage/cards/j/JerrardOfTheClosedFist.java +++ b/Mage.Sets/src/mage/cards/j/JerrardOfTheClosedFist.java @@ -27,11 +27,13 @@ */ package mage.cards.j; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -41,7 +43,7 @@ public class JerrardOfTheClosedFist extends CardImpl { public JerrardOfTheClosedFist(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Knight"); diff --git a/Mage.Sets/src/mage/cards/j/JeskaWarriorAdept.java b/Mage.Sets/src/mage/cards/j/JeskaWarriorAdept.java index 5eb43837f82..c7e47f19679 100644 --- a/Mage.Sets/src/mage/cards/j/JeskaWarriorAdept.java +++ b/Mage.Sets/src/mage/cards/j/JeskaWarriorAdept.java @@ -27,7 +27,6 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +37,12 @@ import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LoneFox @@ -49,7 +51,7 @@ public class JeskaWarriorAdept extends CardImpl { public JeskaWarriorAdept(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Barbarian"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/j/JhoiraOfTheGhitu.java b/Mage.Sets/src/mage/cards/j/JhoiraOfTheGhitu.java index 7781c9216fb..e5655bd785a 100644 --- a/Mage.Sets/src/mage/cards/j/JhoiraOfTheGhitu.java +++ b/Mage.Sets/src/mage/cards/j/JhoiraOfTheGhitu.java @@ -45,6 +45,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterNonlandCard; @@ -60,7 +61,7 @@ public class JhoiraOfTheGhitu extends CardImpl { public JhoiraOfTheGhitu(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/j/JinGitaxiasCoreAugur.java b/Mage.Sets/src/mage/cards/j/JinGitaxiasCoreAugur.java index bc2efd5231c..7ebc4358882 100644 --- a/Mage.Sets/src/mage/cards/j/JinGitaxiasCoreAugur.java +++ b/Mage.Sets/src/mage/cards/j/JinGitaxiasCoreAugur.java @@ -48,7 +48,7 @@ public class JinGitaxiasCoreAugur extends CardImpl { public JinGitaxiasCoreAugur(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{8}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Praetor"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/j/JiwariTheEarthAflame.java b/Mage.Sets/src/mage/cards/j/JiwariTheEarthAflame.java index ce829776f51..8dd578398ae 100644 --- a/Mage.Sets/src/mage/cards/j/JiwariTheEarthAflame.java +++ b/Mage.Sets/src/mage/cards/j/JiwariTheEarthAflame.java @@ -27,7 +27,6 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,12 +40,15 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -61,7 +63,7 @@ public class JiwariTheEarthAflame extends CardImpl { public JiwariTheEarthAflame(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/j/JolraelEmpressOfBeasts.java b/Mage.Sets/src/mage/cards/j/JolraelEmpressOfBeasts.java index df390904d69..7d27f38ffa3 100644 --- a/Mage.Sets/src/mage/cards/j/JolraelEmpressOfBeasts.java +++ b/Mage.Sets/src/mage/cards/j/JolraelEmpressOfBeasts.java @@ -27,7 +27,6 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,10 +37,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BecomesCreatureAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.FilterPermanent; import mage.filter.common.FilterLandPermanent; @@ -52,6 +48,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +58,7 @@ public class JolraelEmpressOfBeasts extends CardImpl { public JolraelEmpressOfBeasts(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Spellshaper"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/j/JorKadeenThePrevailer.java b/Mage.Sets/src/mage/cards/j/JorKadeenThePrevailer.java index bdf8083a415..029dee55829 100644 --- a/Mage.Sets/src/mage/cards/j/JorKadeenThePrevailer.java +++ b/Mage.Sets/src/mage/cards/j/JorKadeenThePrevailer.java @@ -27,7 +27,6 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.MetalcraftCondition; @@ -38,9 +37,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -51,7 +53,7 @@ public class JorKadeenThePrevailer extends CardImpl { public JorKadeenThePrevailer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/j/JoriEnRuinDiver.java b/Mage.Sets/src/mage/cards/j/JoriEnRuinDiver.java index ae19815c901..758842f1b15 100644 --- a/Mage.Sets/src/mage/cards/j/JoriEnRuinDiver.java +++ b/Mage.Sets/src/mage/cards/j/JoriEnRuinDiver.java @@ -27,19 +27,21 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.watchers.common.CastSpellLastTurnWatcher; +import java.util.UUID; + /** * * @author fireshoes @@ -48,7 +50,7 @@ public class JoriEnRuinDiver extends CardImpl { public JoriEnRuinDiver(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Merfolk"); this.subtype.add("Wizard"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/j/Joven.java b/Mage.Sets/src/mage/cards/j/Joven.java index 16303eb5076..1f54fa6592e 100644 --- a/Mage.Sets/src/mage/cards/j/Joven.java +++ b/Mage.Sets/src/mage/cards/j/Joven.java @@ -27,7 +27,6 @@ */ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,11 +36,14 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetPermanent; + +import java.util.UUID; /** * * @author fireshoes @@ -56,7 +58,7 @@ public class Joven extends CardImpl { public Joven(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rogue"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/j/JuganTheRisingStar.java b/Mage.Sets/src/mage/cards/j/JuganTheRisingStar.java index 551b1427b57..9da42c9bd90 100644 --- a/Mage.Sets/src/mage/cards/j/JuganTheRisingStar.java +++ b/Mage.Sets/src/mage/cards/j/JuganTheRisingStar.java @@ -28,7 +28,6 @@ package mage.cards.j; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -37,9 +36,12 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanentAmount; +import java.util.UUID; + /** * @author LevelX */ @@ -47,7 +49,7 @@ public class JuganTheRisingStar extends CardImpl { public JuganTheRisingStar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/j/JundPanorama.java b/Mage.Sets/src/mage/cards/j/JundPanorama.java index 056992933c0..e99774d7711 100644 --- a/Mage.Sets/src/mage/cards/j/JundPanorama.java +++ b/Mage.Sets/src/mage/cards/j/JundPanorama.java @@ -28,10 +28,6 @@ package mage.cards.j; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,6 +37,10 @@ import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -48,6 +48,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -58,7 +60,7 @@ public class JundPanorama extends CardImpl { static { filter.add(new CardTypePredicate(CardType.LAND)); - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); filter.add(Predicates.or( new SubtypePredicate("Swamp"), new SubtypePredicate("Mountain"), diff --git a/Mage.Sets/src/mage/cards/j/JungleVillage.java b/Mage.Sets/src/mage/cards/j/JungleVillage.java index 61d83ad065f..31ae6d1200d 100644 --- a/Mage.Sets/src/mage/cards/j/JungleVillage.java +++ b/Mage.Sets/src/mage/cards/j/JungleVillage.java @@ -27,8 +27,6 @@ */ package mage.cards.j; -import java.util.ArrayList; -import java.util.UUID; import mage.MageObject; import mage.abilities.ActivatedAbilityImpl; import mage.abilities.costs.common.SacrificeSourceCost; @@ -39,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicate; @@ -48,6 +47,9 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.ArrayList; +import java.util.UUID; + /** * * @author Styxo @@ -91,7 +93,7 @@ public class JungleVillage extends CardImpl { subtypePredicates.add(new SubtypePredicate("Mountain")); subtypePredicates.add(new SubtypePredicate("Forest")); filter.add(Predicates.or(subtypePredicates)); - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); TargetCardInLibrary target = new TargetCardInLibrary(filter); addEffect(new SearchLibraryPutInPlayEffect(target, true, true, Outcome.PutLandInPlay)); } diff --git a/Mage.Sets/src/mage/cards/j/JuntuStakes.java b/Mage.Sets/src/mage/cards/j/JuntuStakes.java index 0467b1df0a5..f9e1bc3945a 100644 --- a/Mage.Sets/src/mage/cards/j/JuntuStakes.java +++ b/Mage.Sets/src/mage/cards/j/JuntuStakes.java @@ -27,7 +27,7 @@ */ package mage.cards.j; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; import mage.cards.CardImpl; @@ -36,10 +36,11 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author LoneFox @@ -49,7 +50,7 @@ public class JuntuStakes extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures with power 1 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 2)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 2)); } public JuntuStakes(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/j/JushiApprentice.java b/Mage.Sets/src/mage/cards/j/JushiApprentice.java index 595df877fd7..a923723e74f 100644 --- a/Mage.Sets/src/mage/cards/j/JushiApprentice.java +++ b/Mage.Sets/src/mage/cards/j/JushiApprentice.java @@ -27,13 +27,9 @@ */ package mage.cards.j; -import java.util.UUID; - -import mage.abilities.CountType; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.condition.common.CardsInHandCondition; import mage.abilities.costs.common.TapSourceCost; @@ -45,9 +41,14 @@ import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.effects.common.FlipSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.game.permanent.token.Token; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 @@ -67,7 +68,7 @@ public class JushiApprentice extends CardImpl { // {2}{U}, {tap}: Draw a card. If you have nine or more cards in hand, flip Jushi Apprentice. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{2}{U}")); ability.addCost(new TapSourceCost()); - ability.addEffect(new ConditionalOneShotEffect(new FlipSourceEffect(new TomoyaTheRevealer()), new CardsInHandCondition(CountType.MORE_THAN, 8), + ability.addEffect(new ConditionalOneShotEffect(new FlipSourceEffect(new TomoyaTheRevealer()), new CardsInHandCondition(ComparisonType.MORE_THAN, 8), "If you have nine or more cards in hand, flip {this}")); this.addAbility(ability); } @@ -86,7 +87,7 @@ class TomoyaTheRevealer extends Token { TomoyaTheRevealer() { super("Tomoya the Revealer", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setBlue(true); subtype.add("Human"); diff --git a/Mage.Sets/src/mage/cards/k/KaaliaOfTheVast.java b/Mage.Sets/src/mage/cards/k/KaaliaOfTheVast.java index 8ef906ed087..416f6df89d6 100644 --- a/Mage.Sets/src/mage/cards/k/KaaliaOfTheVast.java +++ b/Mage.Sets/src/mage/cards/k/KaaliaOfTheVast.java @@ -38,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.Predicates; @@ -57,7 +58,7 @@ public class KaaliaOfTheVast extends CardImpl { public KaaliaOfTheVast(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); diff --git a/Mage.Sets/src/mage/cards/k/KaervekTheMerciless.java b/Mage.Sets/src/mage/cards/k/KaervekTheMerciless.java index a929ca0b7ad..e711a881bf1 100644 --- a/Mage.Sets/src/mage/cards/k/KaervekTheMerciless.java +++ b/Mage.Sets/src/mage/cards/k/KaervekTheMerciless.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -35,10 +34,7 @@ import mage.abilities.common.SpellCastOpponentTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterSpell; import mage.game.Game; import mage.game.permanent.Permanent; @@ -46,6 +42,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -55,7 +53,7 @@ public class KaervekTheMerciless extends CardImpl { public KaervekTheMerciless(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/k/KagemaroFirstToSuffer.java b/Mage.Sets/src/mage/cards/k/KagemaroFirstToSuffer.java index 30a057645c1..d8f34e46dc2 100644 --- a/Mage.Sets/src/mage/cards/k/KagemaroFirstToSuffer.java +++ b/Mage.Sets/src/mage/cards/k/KagemaroFirstToSuffer.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,9 +42,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +56,7 @@ public class KagemaroFirstToSuffer extends CardImpl { public KagemaroFirstToSuffer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/k/KahoMinamoHistorian.java b/Mage.Sets/src/mage/cards/k/KahoMinamoHistorian.java index 1a1620da811..f9d00b41f68 100644 --- a/Mage.Sets/src/mage/cards/k/KahoMinamoHistorian.java +++ b/Mage.Sets/src/mage/cards/k/KahoMinamoHistorian.java @@ -27,25 +27,21 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.SearchEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -55,6 +51,8 @@ import mage.target.common.TargetCardInExile; import mage.target.common.TargetCardInLibrary; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 @@ -63,7 +61,7 @@ public class KahoMinamoHistorian extends CardImpl { public KahoMinamoHistorian(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(2); @@ -150,7 +148,7 @@ class KahoMinamoHistorianCastEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { FilterCard filter = new FilterCard(); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, source.getManaCostsToPay().getX())); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, source.getManaCostsToPay().getX())); TargetCardInExile target = new TargetCardInExile(filter, CardUtil.getCardExileZoneId(game, source)); Cards cards = game.getExile().getExileZone(CardUtil.getCardExileZoneId(game, source)); if (!cards.isEmpty() && controller.choose(Outcome.PlayForFree, cards, target, game)) { diff --git a/Mage.Sets/src/mage/cards/k/KalemneDiscipleOfIroas.java b/Mage.Sets/src/mage/cards/k/KalemneDiscipleOfIroas.java index fa24d788b9e..82fa188348b 100644 --- a/Mage.Sets/src/mage/cards/k/KalemneDiscipleOfIroas.java +++ b/Mage.Sets/src/mage/cards/k/KalemneDiscipleOfIroas.java @@ -27,9 +27,9 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -42,15 +42,17 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes @@ -61,12 +63,12 @@ public class KalemneDiscipleOfIroas extends CardImpl { static { filterSpell.add(new CardTypePredicate(CardType.CREATURE)); - filterSpell.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 4)); + filterSpell.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 4)); } public KalemneDiscipleOfIroas(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Giant"); this.subtype.add("Soldier"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/k/KalitasBloodchiefOfGhet.java b/Mage.Sets/src/mage/cards/k/KalitasBloodchiefOfGhet.java index 70e6be220ab..c8803fd7102 100644 --- a/Mage.Sets/src/mage/cards/k/KalitasBloodchiefOfGhet.java +++ b/Mage.Sets/src/mage/cards/k/KalitasBloodchiefOfGhet.java @@ -38,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; @@ -54,7 +55,7 @@ public class KalitasBloodchiefOfGhet extends CardImpl { public KalitasBloodchiefOfGhet(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/k/KalitasTraitorOfGhet.java b/Mage.Sets/src/mage/cards/k/KalitasTraitorOfGhet.java index f1a68420e7a..aae6f58ee21 100644 --- a/Mage.Sets/src/mage/cards/k/KalitasTraitorOfGhet.java +++ b/Mage.Sets/src/mage/cards/k/KalitasTraitorOfGhet.java @@ -28,6 +28,7 @@ package mage.cards.k; import java.util.UUID; + import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,10 +41,7 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; @@ -59,7 +57,6 @@ import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; /** - * * @author fireshoes */ public class KalitasTraitorOfGhet extends CardImpl { @@ -73,8 +70,8 @@ public class KalitasTraitorOfGhet extends CardImpl { } public KalitasTraitorOfGhet(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); - this.supertype.add("Legendary"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{B}"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.subtype.add("Warrior"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/k/KamahlFistOfKrosa.java b/Mage.Sets/src/mage/cards/k/KamahlFistOfKrosa.java index 2317c60154a..79a35673231 100644 --- a/Mage.Sets/src/mage/cards/k/KamahlFistOfKrosa.java +++ b/Mage.Sets/src/mage/cards/k/KamahlFistOfKrosa.java @@ -27,9 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,10 +36,15 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.game.permanent.token.Token; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author Backfir3 @@ -51,7 +53,7 @@ public class KamahlFistOfKrosa extends CardImpl { public KamahlFistOfKrosa(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Druid"); diff --git a/Mage.Sets/src/mage/cards/k/KamahlPitFighter.java b/Mage.Sets/src/mage/cards/k/KamahlPitFighter.java index dbd755dc4b2..4560b91e591 100644 --- a/Mage.Sets/src/mage/cards/k/KamahlPitFighter.java +++ b/Mage.Sets/src/mage/cards/k/KamahlPitFighter.java @@ -27,9 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +35,13 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki @@ -49,7 +50,7 @@ public class KamahlPitFighter extends CardImpl { public KamahlPitFighter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Barbarian"); diff --git a/Mage.Sets/src/mage/cards/k/KambalConsulOfAllocation.java b/Mage.Sets/src/mage/cards/k/KambalConsulOfAllocation.java index 5905aa670c6..15d89a8ee5b 100644 --- a/Mage.Sets/src/mage/cards/k/KambalConsulOfAllocation.java +++ b/Mage.Sets/src/mage/cards/k/KambalConsulOfAllocation.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastOpponentTriggeredAbility; @@ -38,11 +37,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SetTargetPointer; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author emerald000 @@ -56,7 +58,7 @@ public class KambalConsulOfAllocation extends CardImpl { public KambalConsulOfAllocation(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/k/KamiOfTheCrescentMoon.java b/Mage.Sets/src/mage/cards/k/KamiOfTheCrescentMoon.java index 3005a3c3107..b89e0607e45 100644 --- a/Mage.Sets/src/mage/cards/k/KamiOfTheCrescentMoon.java +++ b/Mage.Sets/src/mage/cards/k/KamiOfTheCrescentMoon.java @@ -27,14 +27,16 @@ */ package mage.cards.k; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TargetController; import mage.MageInt; import mage.abilities.common.BeginningOfDrawTriggeredAbility; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.TargetController; + +import java.util.UUID; /** * @@ -44,7 +46,7 @@ public class KamiOfTheCrescentMoon extends CardImpl { public KamiOfTheCrescentMoon(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/k/KangeeAerieKeeper.java b/Mage.Sets/src/mage/cards/k/KangeeAerieKeeper.java index 344d6975a09..a71db140996 100644 --- a/Mage.Sets/src/mage/cards/k/KangeeAerieKeeper.java +++ b/Mage.Sets/src/mage/cards/k/KangeeAerieKeeper.java @@ -47,6 +47,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; @@ -69,7 +70,7 @@ public class KangeeAerieKeeper extends CardImpl { public KangeeAerieKeeper(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Bird"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java b/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java index 9fab0792f1e..aa7c8372c9e 100644 --- a/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java +++ b/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.SpellAbility; @@ -39,15 +38,7 @@ import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.game.events.GameEvent; @@ -57,6 +48,8 @@ import mage.target.targetpointer.FixedTarget; import mage.util.CardUtil; import mage.watchers.Watcher; +import java.util.UUID; + /** * * @author emerald000 @@ -65,7 +58,7 @@ public class KaradorGhostChieftain extends CardImpl { public KaradorGhostChieftain(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Centaur"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/k/Karakas.java b/Mage.Sets/src/mage/cards/k/Karakas.java index aa897aa1721..281f8d80550 100644 --- a/Mage.Sets/src/mage/cards/k/Karakas.java +++ b/Mage.Sets/src/mage/cards/k/Karakas.java @@ -27,9 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -37,25 +34,29 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author Plopman */ public class Karakas extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("legendary creature"); - static{ - filter.add(new SupertypePredicate("Legendary")); + + static { + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } - + public Karakas(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {W} to your mana pool. this.addAbility(new WhiteManaAbility()); diff --git a/Mage.Sets/src/mage/cards/k/KarametraGodOfHarvests.java b/Mage.Sets/src/mage/cards/k/KarametraGodOfHarvests.java index d417a9881b2..d12b34eec2d 100644 --- a/Mage.Sets/src/mage/cards/k/KarametraGodOfHarvests.java +++ b/Mage.Sets/src/mage/cards/k/KarametraGodOfHarvests.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -40,6 +39,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.ColoredManaSymbol; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.StaticFilters; @@ -47,6 +47,8 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -63,7 +65,7 @@ public class KarametraGodOfHarvests extends CardImpl { public KarametraGodOfHarvests(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{3}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/k/KariZevSkyshipRaider.java b/Mage.Sets/src/mage/cards/k/KariZevSkyshipRaider.java index d9ac3f53f1b..ffc7b7177ae 100644 --- a/Mage.Sets/src/mage/cards/k/KariZevSkyshipRaider.java +++ b/Mage.Sets/src/mage/cards/k/KariZevSkyshipRaider.java @@ -39,6 +39,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.game.Game; import mage.game.permanent.token.Token; import mage.players.Player; @@ -52,7 +53,7 @@ public class KariZevSkyshipRaider extends CardImpl { public KariZevSkyshipRaider(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Pirate"); this.power = new MageInt(1); @@ -111,11 +112,11 @@ class RagavanToken extends Token { RagavanToken() { super("Ragavan", "legendary 2/1 red Monkey creature token named Ragavan"); this.setOriginalExpansionSetCode("AER"); - this.getSupertype().add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.getPower().modifyBaseValue(2); this.getToughness().modifyBaseValue(1); this.color.setRed(true); this.getSubtype(null).add("Monkey"); - this.getCardType().add(CardType.CREATURE); + this.addCardType(CardType.CREATURE); } } \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/k/KarlovOfTheGhostCouncil.java b/Mage.Sets/src/mage/cards/k/KarlovOfTheGhostCouncil.java index 78ae2905edc..18ecdde8ef2 100644 --- a/Mage.Sets/src/mage/cards/k/KarlovOfTheGhostCouncil.java +++ b/Mage.Sets/src/mage/cards/k/KarlovOfTheGhostCouncil.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.GainLifeControllerTriggeredAbility; @@ -39,10 +38,13 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -51,7 +53,7 @@ public class KarlovOfTheGhostCouncil extends CardImpl { public KarlovOfTheGhostCouncil(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.subtype.add("Advisor"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/k/KarnLiberated.java b/Mage.Sets/src/mage/cards/k/KarnLiberated.java index d6ef1c1179e..6d7c6867f39 100644 --- a/Mage.Sets/src/mage/cards/k/KarnLiberated.java +++ b/Mage.Sets/src/mage/cards/k/KarnLiberated.java @@ -57,7 +57,6 @@ import mage.game.permanent.PermanentImpl; import mage.players.Player; import mage.target.TargetPermanent; import mage.target.TargetPlayer; -import mage.util.CardUtil; /** * @@ -68,7 +67,7 @@ public class KarnLiberated extends CardImpl { private UUID exileId = UUID.randomUUID(); public KarnLiberated(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.PLANESWALKER},"{7}"); + super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{7}"); this.subtype.add("Karn"); this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(6)); @@ -121,7 +120,7 @@ class KarnLiberatedEffect extends OneShotEffect { for (ExileZone zone : game.getExile().getExileZones()) { if (zone.getId().equals(exileId)) { for (Card card : zone.getCards(game)) { - if (!card.getSubtype(game).contains("Aura") && CardUtil.isPermanentCard(card)) { + if (!card.getSubtype(game).contains("Aura") && card.isPermanent()) { cards.add(card); } } @@ -153,7 +152,7 @@ class KarnLiberatedEffect extends OneShotEffect { } for (Card card : cards) { game.getState().setZone(card.getId(), Zone.EXILED); - if (CardUtil.isPermanentCard(card) && !card.getSubtype(game).contains("Aura")) { + if (card.isPermanent() && !card.getSubtype(game).contains("Aura")) { game.getExile().add(exileId, sourceObject.getIdName(), card); } } @@ -221,13 +220,19 @@ class KarnLiberatedDelayedEffect extends OneShotEffect { // since the beginning of the first turn. They can attack and their activated abilities with {T} in the cost can be activated. Cards cards = new CardsImpl(); // needed because putOntoTheBattlefield removes from exile cards.addAll(exile); - controller.moveCards(cards, Zone.BATTLEFIELD, source, game); - for (Card card : cards.getCards(game)) { - Permanent permanent = game.getPermanent(card.getId()); - ((PermanentImpl) permanent).removeSummoningSickness(); + if (!cards.isEmpty()) { + controller.moveCards(cards, Zone.BATTLEFIELD, source, game); + for (Card card : cards.getCards(game)) { + if (card != null) { + Permanent permanent = game.getPermanent(card.getId()); + if (permanent != null) { + ((PermanentImpl) permanent).removeSummoningSickness(); + } + } + } } - return true; } + return true; } return false; } diff --git a/Mage.Sets/src/mage/cards/k/KarnSilverGolem.java b/Mage.Sets/src/mage/cards/k/KarnSilverGolem.java index 0b7ca302e57..2ff48d34422 100644 --- a/Mage.Sets/src/mage/cards/k/KarnSilverGolem.java +++ b/Mage.Sets/src/mage/cards/k/KarnSilverGolem.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; @@ -37,12 +36,7 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -50,6 +44,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -64,7 +60,7 @@ public class KarnSilverGolem extends CardImpl { public KarnSilverGolem(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{5}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Golem"); this.power = new MageInt(4); this.toughness = new MageInt(4); @@ -114,7 +110,7 @@ class KarnSilverGolemEffect extends ContinuousEffectImpl { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { if (!artifact.isCreature()) { - artifact.getCardType().add(CardType.CREATURE); + artifact.addCardType(CardType.CREATURE); } } break; diff --git a/Mage.Sets/src/mage/cards/k/KaronaFalseGod.java b/Mage.Sets/src/mage/cards/k/KaronaFalseGod.java index af47e2a10e5..c90e50cde75 100644 --- a/Mage.Sets/src/mage/cards/k/KaronaFalseGod.java +++ b/Mage.Sets/src/mage/cards/k/KaronaFalseGod.java @@ -43,11 +43,7 @@ import mage.cards.CardSetInfo; import mage.cards.repository.CardRepository; import mage.choices.Choice; import mage.choices.ChoiceImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; @@ -63,7 +59,7 @@ public class KaronaFalseGod extends CardImpl { public KaronaFalseGod(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{U}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Avatar"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/k/KarplusanWolverine.java b/Mage.Sets/src/mage/cards/k/KarplusanWolverine.java index 7edc71d66ff..e1242e549ae 100644 --- a/Mage.Sets/src/mage/cards/k/KarplusanWolverine.java +++ b/Mage.Sets/src/mage/cards/k/KarplusanWolverine.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesBlockedTriggeredAbility; @@ -35,8 +34,11 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes @@ -45,7 +47,7 @@ public class KarplusanWolverine extends CardImpl { public KarplusanWolverine(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Wolverine"); this.subtype.add("Beast"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/k/KarrthusTyrantOfJund.java b/Mage.Sets/src/mage/cards/k/KarrthusTyrantOfJund.java index 71686348176..97b7998584f 100644 --- a/Mage.Sets/src/mage/cards/k/KarrthusTyrantOfJund.java +++ b/Mage.Sets/src/mage/cards/k/KarrthusTyrantOfJund.java @@ -41,12 +41,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -70,7 +65,7 @@ public class KarrthusTyrantOfJund extends CardImpl { public KarrthusTyrantOfJund(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(7); this.toughness = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/k/KasetoOrochiArchmage.java b/Mage.Sets/src/mage/cards/k/KasetoOrochiArchmage.java index 3a79e55ca6e..07634706793 100644 --- a/Mage.Sets/src/mage/cards/k/KasetoOrochiArchmage.java +++ b/Mage.Sets/src/mage/cards/k/KasetoOrochiArchmage.java @@ -28,6 +28,7 @@ package mage.cards.k; import java.util.UUID; + import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,23 +38,19 @@ import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; /** - * * @author fireshoes */ public class KasetoOrochiArchmage extends CardImpl { public KasetoOrochiArchmage(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{U}"); - this.supertype.add("Legendary"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{U}"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Snake"); this.subtype.add("Wizard"); this.power = new MageInt(2); @@ -97,7 +94,7 @@ class KasetoEffect extends OneShotEffect { if (permanent != null) { game.addEffect(new CantBeBlockedTargetEffect(Duration.EndOfTurn), source); if (permanent.getSubtype(game).contains("Snake")) { - game.addEffect(new BoostTargetEffect(2,2,Duration.EndOfTurn), source); + game.addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn), source); } return true; } diff --git a/Mage.Sets/src/mage/cards/k/KashiTribeElite.java b/Mage.Sets/src/mage/cards/k/KashiTribeElite.java index 74624c7a756..31514f4c63d 100644 --- a/Mage.Sets/src/mage/cards/k/KashiTribeElite.java +++ b/Mage.Sets/src/mage/cards/k/KashiTribeElite.java @@ -27,9 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToACreatureTriggeredAbility; @@ -40,12 +37,16 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** * * @author LevelX @@ -55,7 +56,7 @@ public class KashiTribeElite extends CardImpl { private static final FilterControlledPermanent filter = new FilterControlledPermanent("Legendary Snakes"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); filter.add(new SubtypePredicate("Snake")); } diff --git a/Mage.Sets/src/mage/cards/k/KasimirTheLoneWolf.java b/Mage.Sets/src/mage/cards/k/KasimirTheLoneWolf.java index ca5ef66d45f..624d518174f 100644 --- a/Mage.Sets/src/mage/cards/k/KasimirTheLoneWolf.java +++ b/Mage.Sets/src/mage/cards/k/KasimirTheLoneWolf.java @@ -27,11 +27,13 @@ */ package mage.cards.k; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -41,7 +43,7 @@ public class KasimirTheLoneWolf extends CardImpl { public KasimirTheLoneWolf(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/k/KatakiWarsWage.java b/Mage.Sets/src/mage/cards/k/KatakiWarsWage.java index e5fa00d5396..19e631fc7c2 100644 --- a/Mage.Sets/src/mage/cards/k/KatakiWarsWage.java +++ b/Mage.Sets/src/mage/cards/k/KatakiWarsWage.java @@ -57,7 +57,7 @@ public class KatakiWarsWage extends CardImpl { public KatakiWarsWage(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/k/KavuLair.java b/Mage.Sets/src/mage/cards/k/KavuLair.java index 703edba0864..ca01442cd6f 100644 --- a/Mage.Sets/src/mage/cards/k/KavuLair.java +++ b/Mage.Sets/src/mage/cards/k/KavuLair.java @@ -27,7 +27,7 @@ */ package mage.cards.k; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.cards.CardImpl; @@ -35,10 +35,11 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SetTargetPointer; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -48,7 +49,7 @@ public class KavuLair extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 4 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public KavuLair(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/k/KavuRunner.java b/Mage.Sets/src/mage/cards/k/KavuRunner.java index 34377c280ff..f3cb9324948 100644 --- a/Mage.Sets/src/mage/cards/k/KavuRunner.java +++ b/Mage.Sets/src/mage/cards/k/KavuRunner.java @@ -30,7 +30,7 @@ package mage.cards.k; import java.util.UUID; import mage.MageInt; import mage.ObjectColor; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -70,7 +70,7 @@ public class KavuRunner extends CardImpl { // Kavu Runner has haste as long as no opponent controls a white or blue creature. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(HasteAbility.getInstance(), - Duration.WhileOnBattlefield), new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0, false)), + Duration.WhileOnBattlefield), new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0, false)), "{this} has haste as long as no opponent controls a white or blue creature"))); } diff --git a/Mage.Sets/src/mage/cards/k/Kaysa.java b/Mage.Sets/src/mage/cards/k/Kaysa.java index e0d8dc095ad..28eda5f9df5 100644 --- a/Mage.Sets/src/mage/cards/k/Kaysa.java +++ b/Mage.Sets/src/mage/cards/k/Kaysa.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -36,10 +35,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +56,7 @@ public class Kaysa extends CardImpl { public Kaysa(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Druid"); diff --git a/Mage.Sets/src/mage/cards/k/KazuulTyrantOfTheCliffs.java b/Mage.Sets/src/mage/cards/k/KazuulTyrantOfTheCliffs.java index d72354ef415..945c3b41878 100644 --- a/Mage.Sets/src/mage/cards/k/KazuulTyrantOfTheCliffs.java +++ b/Mage.Sets/src/mage/cards/k/KazuulTyrantOfTheCliffs.java @@ -27,8 +27,6 @@ */ package mage.cards.k; -import java.util.Objects; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -39,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -48,6 +47,9 @@ import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.Objects; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -56,7 +58,7 @@ public class KazuulTyrantOfTheCliffs extends CardImpl { public KazuulTyrantOfTheCliffs(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Ogre"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/k/KeeperOfKeys.java b/Mage.Sets/src/mage/cards/k/KeeperOfKeys.java index 04bcaf8d692..bed95415d12 100644 --- a/Mage.Sets/src/mage/cards/k/KeeperOfKeys.java +++ b/Mage.Sets/src/mage/cards/k/KeeperOfKeys.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -43,6 +42,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -64,7 +65,7 @@ public class KeeperOfKeys extends CardImpl { // At the beginning of your upkeep, if you're the monarch, creatures you control can't be blocked this turn. this.addAbility(new ConditionalTriggeredAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new CantBeBlockedAllEffect(new FilterControlledCreaturePermanent("creatures you control"), Duration.EndOfTurn), - TargetController.YOU, false), MonarchIsSourceControllerCondition.getInstance(), + TargetController.YOU, false), MonarchIsSourceControllerCondition.instance, "At the beginning of your upkeep, if you're the monarch, creatures you control can't be blocked this turn.")); } diff --git a/Mage.Sets/src/mage/cards/k/KefnetTheMindful.java b/Mage.Sets/src/mage/cards/k/KefnetTheMindful.java new file mode 100644 index 00000000000..619f592b0b0 --- /dev/null +++ b/Mage.Sets/src/mage/cards/k/KefnetTheMindful.java @@ -0,0 +1,164 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.k; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.RestrictionEffect; +import mage.abilities.effects.common.ReturnToHandChosenControlledPermanentEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.SuperType; +import mage.constants.Zone; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; + +/** + * + * @author jeffwadsworth + */ +public class KefnetTheMindful extends CardImpl { + + public KefnetTheMindful(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add("God"); + this.power = new MageInt(5); + this.toughness = new MageInt(5); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Indestructible + this.addAbility(IndestructibleAbility.getInstance()); + + // Kefnet the Mindful can't attack or block unless you have seven or more cards in your hand. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new KefnetTheMindfulRestrictionEffect())); + + // {3}{U}: Draw a card, then you may return a land you control to its owner's hand. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KefnetTheMindfulEffect(), new ManaCostsImpl("{3}{U}")); + this.addAbility(ability); + + } + + public KefnetTheMindful(final KefnetTheMindful card) { + super(card); + } + + @Override + public KefnetTheMindful copy() { + return new KefnetTheMindful(this); + } +} + +class KefnetTheMindfulRestrictionEffect extends RestrictionEffect { + + public KefnetTheMindfulRestrictionEffect() { + super(Duration.WhileOnBattlefield); + staticText = "{this} can't attack or block unless you have seven or more cards in your hand"; + } + + public KefnetTheMindfulRestrictionEffect(final KefnetTheMindfulRestrictionEffect effect) { + super(effect); + } + + @Override + public KefnetTheMindfulRestrictionEffect copy() { + return new KefnetTheMindfulRestrictionEffect(this); + } + + @Override + public boolean canAttack(Game game) { + return false; + } + + @Override + public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game) { + return false; + } + + @Override + public boolean applies(Permanent permanent, Ability source, Game game) { + if (permanent.getId().equals(source.getSourceId())) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + return (controller.getHand().size() < 7); + } + return true; + } // do not apply to other creatures. + return false; + } +} + +class KefnetTheMindfulEffect extends OneShotEffect { + + KefnetTheMindfulEffect() { + super(Outcome.Benefit); + staticText = "Draw a card, then you may return a land you control to its owner's hand"; + } + + KefnetTheMindfulEffect(final KefnetTheMindfulEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + FilterControlledPermanent filterControlledLand = new FilterControlledPermanent("land you control"); + filterControlledLand.add(new CardTypePredicate(CardType.LAND)); + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + controller.drawCards(1, game); + if (controller.chooseUse(Outcome.AIDontUseIt, "Do you want to return a land you control to its owner's hand?", null, "Yes", "No", source, game)) { + Effect effect = new ReturnToHandChosenControlledPermanentEffect(filterControlledLand); + effect.apply(game, source); + } + return true; + } + return false; + } + + @Override + public KefnetTheMindfulEffect copy() { + return new KefnetTheMindfulEffect(this); + } +} diff --git a/Mage.Sets/src/mage/cards/k/KefnetsMonument.java b/Mage.Sets/src/mage/cards/k/KefnetsMonument.java new file mode 100644 index 00000000000..2f59203ca9a --- /dev/null +++ b/Mage.Sets/src/mage/cards/k/KefnetsMonument.java @@ -0,0 +1,95 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.k; + +import java.util.UUID; +import mage.ObjectColor; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; +import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.FilterSpell; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.filter.predicate.mageobject.ColorPredicate; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class KefnetsMonument extends CardImpl { + + private static final FilterCard filter = new FilterCard("Blue creature spells"); + private static final FilterSpell filter2 = new FilterSpell("a creature spell"); + private static final FilterCreaturePermanent filter3 = new FilterCreaturePermanent("creature an opponent controls"); + + static { + filter.add(Predicates.and(new ColorPredicate(ObjectColor.BLUE), new CardTypePredicate(CardType.CREATURE))); + } + static { + filter2.add(new CardTypePredicate(CardType.CREATURE)); + } + static { + filter3.add(new ControllerPredicate(TargetController.OPPONENT)); + } + + + public KefnetsMonument(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); + + addSuperType(SuperType.LEGENDARY); + + // Blue creature spells you cast cost {1} less to cast. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(filter, 1))); + + // Whenever you cast a creature spell, target creature an opponent controls doesn't untap during its controller's next untap step. + Ability ability = new SpellCastControllerTriggeredAbility(new DontUntapInControllersNextUntapStepTargetEffect(), filter2, false); + ability.addTarget(new TargetCreaturePermanent(filter3)); + this.addAbility(ability); + } + + public KefnetsMonument(final KefnetsMonument card) { + super(card); + } + + @Override + public KefnetsMonument copy() { + return new KefnetsMonument(this); + } +} diff --git a/Mage.Sets/src/mage/cards/k/KeiTakahashi.java b/Mage.Sets/src/mage/cards/k/KeiTakahashi.java index c32fd8aefa5..69537eca1ac 100644 --- a/Mage.Sets/src/mage/cards/k/KeiTakahashi.java +++ b/Mage.Sets/src/mage/cards/k/KeiTakahashi.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +36,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -48,7 +50,7 @@ public class KeiTakahashi extends CardImpl { public KeiTakahashi(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/k/KeigaTheTideStar.java b/Mage.Sets/src/mage/cards/k/KeigaTheTideStar.java index 9d2798b0b8f..f298ce4010c 100644 --- a/Mage.Sets/src/mage/cards/k/KeigaTheTideStar.java +++ b/Mage.Sets/src/mage/cards/k/KeigaTheTideStar.java @@ -28,9 +28,6 @@ package mage.cards.k; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -38,9 +35,13 @@ import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ @@ -48,7 +49,7 @@ public class KeigaTheTideStar extends CardImpl { public KeigaTheTideStar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/k/KeldonNecropolis.java b/Mage.Sets/src/mage/cards/k/KeldonNecropolis.java index 893db65236f..4c9605b0d9e 100644 --- a/Mage.Sets/src/mage/cards/k/KeldonNecropolis.java +++ b/Mage.Sets/src/mage/cards/k/KeldonNecropolis.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -38,11 +37,14 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Plopman @@ -51,7 +53,7 @@ public class KeldonNecropolis extends CardImpl { public KeldonNecropolis(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/k/KembaKhaRegent.java b/Mage.Sets/src/mage/cards/k/KembaKhaRegent.java index 4b8714597c7..92f101e9796 100644 --- a/Mage.Sets/src/mage/cards/k/KembaKhaRegent.java +++ b/Mage.Sets/src/mage/cards/k/KembaKhaRegent.java @@ -27,18 +27,19 @@ */ package mage.cards.k; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.TargetController; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.dynamicvalue.common.EquipmentAttachedCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.TargetController; import mage.game.permanent.token.CatToken; +import java.util.UUID; + /** * * @author Loki, North @@ -47,7 +48,7 @@ public class KembaKhaRegent extends CardImpl { public KembaKhaRegent(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Cat"); this.subtype.add("Cleric"); diff --git a/Mage.Sets/src/mage/cards/k/KentaroTheSmilingCat.java b/Mage.Sets/src/mage/cards/k/KentaroTheSmilingCat.java index 27b9d5e4d6d..bfcaab96b90 100644 --- a/Mage.Sets/src/mage/cards/k/KentaroTheSmilingCat.java +++ b/Mage.Sets/src/mage/cards/k/KentaroTheSmilingCat.java @@ -27,8 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; - import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -41,17 +39,14 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.keyword.BushidoAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * @author LevelX2 */ @@ -59,7 +54,7 @@ public class KentaroTheSmilingCat extends CardImpl { public KentaroTheSmilingCat(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Samurai"); diff --git a/Mage.Sets/src/mage/cards/k/KeranosGodOfStorms.java b/Mage.Sets/src/mage/cards/k/KeranosGodOfStorms.java index e3e612c468b..167a26e335b 100644 --- a/Mage.Sets/src/mage/cards/k/KeranosGodOfStorms.java +++ b/Mage.Sets/src/mage/cards/k/KeranosGodOfStorms.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; @@ -44,6 +43,7 @@ import mage.cards.CardSetInfo; import mage.cards.CardsImpl; import mage.constants.CardType; import mage.constants.ColoredManaSymbol; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -53,6 +53,8 @@ import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; import mage.watchers.common.CardsAmountDrawnThisTurnWatcher; +import java.util.UUID; + /** * * @author LevelX2 @@ -62,7 +64,7 @@ public class KeranosGodOfStorms extends CardImpl { public KeranosGodOfStorms(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.CREATURE},"{3}{U}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/k/KhenraCharioteer.java b/Mage.Sets/src/mage/cards/k/KhenraCharioteer.java new file mode 100644 index 00000000000..4241a738884 --- /dev/null +++ b/Mage.Sets/src/mage/cards/k/KhenraCharioteer.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.k; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.filter.common.FilterControlledCreaturePermanent; + +/** + * + * @author Styxo + */ +public class KhenraCharioteer extends CardImpl { + + public KhenraCharioteer(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}{G}"); + + this.subtype.add("Jackal"); + this.subtype.add("Warrior"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Trample + this.addAbility(TrampleAbility.getInstance()); + + // Other creatures you control have trample. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield, new FilterControlledCreaturePermanent("creatures"), true))); + + } + + public KhenraCharioteer(final KhenraCharioteer card) { + super(card); + } + + @Override + public KhenraCharioteer copy() { + return new KhenraCharioteer(this); + } +} diff --git a/Mage.Sets/src/mage/cards/k/KherKeep.java b/Mage.Sets/src/mage/cards/k/KherKeep.java index f4a96e92412..318995d19f4 100644 --- a/Mage.Sets/src/mage/cards/k/KherKeep.java +++ b/Mage.Sets/src/mage/cards/k/KherKeep.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +37,12 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 @@ -49,7 +51,7 @@ public class KherKeep extends CardImpl { public KherKeep(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/k/KheruBloodsucker.java b/Mage.Sets/src/mage/cards/k/KheruBloodsucker.java index b4c610bfce9..bbd7f0d24d2 100644 --- a/Mage.Sets/src/mage/cards/k/KheruBloodsucker.java +++ b/Mage.Sets/src/mage/cards/k/KheruBloodsucker.java @@ -27,9 +27,9 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -44,7 +44,6 @@ import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.Filter.ComparisonType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterCreaturePermanent; @@ -53,6 +52,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author emerald000 @@ -65,7 +66,7 @@ public class KheruBloodsucker extends CardImpl { static { anotherFilter.add(new AnotherPredicate()); toughnessFilter.add(new ControllerPredicate(TargetController.YOU)); - toughnessFilter.add(new ToughnessPredicate(ComparisonType.GreaterThan, 3)); + toughnessFilter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 3)); } public KheruBloodsucker(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/k/KiAdiMundi.java b/Mage.Sets/src/mage/cards/k/KiAdiMundi.java index cf19b2b3902..d04304dbc4a 100644 --- a/Mage.Sets/src/mage/cards/k/KiAdiMundi.java +++ b/Mage.Sets/src/mage/cards/k/KiAdiMundi.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -36,12 +35,15 @@ import mage.abilities.keyword.MeditateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author Styxo @@ -57,7 +59,7 @@ public class KiAdiMundi extends CardImpl { public KiAdiMundi(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Cerean"); this.subtype.add("Jedi"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/k/KikiJikiMirrorBreaker.java b/Mage.Sets/src/mage/cards/k/KikiJikiMirrorBreaker.java index 74aec5ab29d..2aa53b60785 100644 --- a/Mage.Sets/src/mage/cards/k/KikiJikiMirrorBreaker.java +++ b/Mage.Sets/src/mage/cards/k/KikiJikiMirrorBreaker.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; @@ -50,6 +50,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jonubuu @@ -59,12 +61,12 @@ public class KikiJikiMirrorBreaker extends CardImpl { private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("nonlegendary creature you control"); static { - filter.add(Predicates.not(new SupertypePredicate("Legendary"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.LEGENDARY))); } public KikiJikiMirrorBreaker(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/k/KikuNightsFlower.java b/Mage.Sets/src/mage/cards/k/KikuNightsFlower.java index fb20ab94fbf..c148a55e7c0 100644 --- a/Mage.Sets/src/mage/cards/k/KikuNightsFlower.java +++ b/Mage.Sets/src/mage/cards/k/KikuNightsFlower.java @@ -28,10 +28,6 @@ package mage.cards.k; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,11 +36,16 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX @@ -53,7 +54,7 @@ public class KikuNightsFlower extends CardImpl { public KikuNightsFlower (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Assassin"); diff --git a/Mage.Sets/src/mage/cards/k/KillingGlare.java b/Mage.Sets/src/mage/cards/k/KillingGlare.java index dfe6a990d83..2755730dd32 100644 --- a/Mage.Sets/src/mage/cards/k/KillingGlare.java +++ b/Mage.Sets/src/mage/cards/k/KillingGlare.java @@ -27,19 +27,20 @@ */ package mage.cards.k; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.SpellAbility; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -66,7 +67,7 @@ public class KillingGlare extends CardImpl { int xValue = ability.getManaCostsToPay().getX(); ability.getTargets().clear(); FilterCreaturePermanent filter = new FilterCreaturePermanent(new StringBuilder("creature with power ").append(xValue).append(" or less").toString()); - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, xValue + 1)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, xValue + 1)); ability.addTarget(new TargetCreaturePermanent(filter)); } } diff --git a/Mage.Sets/src/mage/cards/k/KingMacarTheGoldCursed.java b/Mage.Sets/src/mage/cards/k/KingMacarTheGoldCursed.java index eeaf04e813c..17ab8f8599c 100644 --- a/Mage.Sets/src/mage/cards/k/KingMacarTheGoldCursed.java +++ b/Mage.Sets/src/mage/cards/k/KingMacarTheGoldCursed.java @@ -37,6 +37,7 @@ import mage.abilities.keyword.InspiredAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.game.permanent.token.GoldToken; import mage.target.common.TargetCreaturePermanent; @@ -48,7 +49,7 @@ public class KingMacarTheGoldCursed extends CardImpl { public KingMacarTheGoldCursed(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/k/KingsAssassin.java b/Mage.Sets/src/mage/cards/k/KingsAssassin.java index a3a2fc57386..3ad0aae465b 100644 --- a/Mage.Sets/src/mage/cards/k/KingsAssassin.java +++ b/Mage.Sets/src/mage/cards/k/KingsAssassin.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -63,7 +64,7 @@ public class KingsAssassin extends CardImpl { // {tap}: Destroy target tapped creature. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new DestroyTargetEffect(), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new DestroyTargetEffect(), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/k/KiraGreatGlassSpinner.java b/Mage.Sets/src/mage/cards/k/KiraGreatGlassSpinner.java index 1aea9d014c3..1ac7af667b3 100644 --- a/Mage.Sets/src/mage/cards/k/KiraGreatGlassSpinner.java +++ b/Mage.Sets/src/mage/cards/k/KiraGreatGlassSpinner.java @@ -40,10 +40,7 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.events.GameEvent; @@ -61,7 +58,7 @@ public class KiraGreatGlassSpinner extends CardImpl { public KiraGreatGlassSpinner(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{U}"); this.subtype.add("Spirit"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.power = new MageInt(2); this.toughness = new MageInt(2); @@ -72,8 +69,10 @@ public class KiraGreatGlassSpinner extends CardImpl { // Creatures you control have "Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability." Effect effect = new CounterTargetEffect(); effect.setText("counter that spell or ability"); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(new KiraGreatGlassSpinnerAbility(effect), Duration.WhileOnBattlefield, new FilterCreaturePermanent("creatures"))), - new CreatureWasTargetedThisTurnWatcher()); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, + new GainAbilityControlledEffect(new KiraGreatGlassSpinnerAbility(effect), Duration.WhileOnBattlefield, + new FilterCreaturePermanent("creatures"))), + new KiraGreatGlassSpinnerWatcher()); } @@ -112,7 +111,7 @@ class KiraGreatGlassSpinnerAbility extends TriggeredAbilityImpl { if (event.getTargetId().equals(this.getSourceId())) { Permanent permanent = game.getPermanent(event.getTargetId()); if (permanent != null && permanent.isCreature()) { - CreatureWasTargetedThisTurnWatcher watcher = (CreatureWasTargetedThisTurnWatcher) game.getState().getWatchers().get("CreatureWasTargetedThisTurn"); + KiraGreatGlassSpinnerWatcher watcher = (KiraGreatGlassSpinnerWatcher) game.getState().getWatchers().get(KiraGreatGlassSpinnerWatcher.class.getName()); if (watcher != null && watcher.notMoreThanOnceTargetedThisTurn(permanent, game)) { for (Effect effect : getEffects()) { effect.setTargetPointer(new FixedTarget(event.getSourceId())); @@ -131,15 +130,15 @@ class KiraGreatGlassSpinnerAbility extends TriggeredAbilityImpl { } -class CreatureWasTargetedThisTurnWatcher extends Watcher { +class KiraGreatGlassSpinnerWatcher extends Watcher { private final Map creaturesTargeted = new HashMap<>(); - public CreatureWasTargetedThisTurnWatcher() { - super("CreatureWasTargetedThisTurn", WatcherScope.GAME); + public KiraGreatGlassSpinnerWatcher() { + super(KiraGreatGlassSpinnerWatcher.class.getName(), WatcherScope.GAME); } - public CreatureWasTargetedThisTurnWatcher(final CreatureWasTargetedThisTurnWatcher watcher) { + public KiraGreatGlassSpinnerWatcher(final KiraGreatGlassSpinnerWatcher watcher) { super(watcher); this.creaturesTargeted.putAll(creaturesTargeted); } @@ -148,7 +147,7 @@ class CreatureWasTargetedThisTurnWatcher extends Watcher { public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.TARGETED) { Permanent permanent = game.getPermanent(event.getTargetId()); - if (permanent != null && permanent.isCreature()) { + if (permanent != null) { MageObjectReference mor = new MageObjectReference(permanent, game); int amount = 0; if (creaturesTargeted.containsKey(mor)) { @@ -173,7 +172,7 @@ class CreatureWasTargetedThisTurnWatcher extends Watcher { } @Override - public CreatureWasTargetedThisTurnWatcher copy() { - return new CreatureWasTargetedThisTurnWatcher(this); + public KiraGreatGlassSpinnerWatcher copy() { + return new KiraGreatGlassSpinnerWatcher(this); } } diff --git a/Mage.Sets/src/mage/cards/k/KitesailApprentice.java b/Mage.Sets/src/mage/cards/k/KitesailApprentice.java index 61403d4b251..7c8a554da8e 100644 --- a/Mage.Sets/src/mage/cards/k/KitesailApprentice.java +++ b/Mage.Sets/src/mage/cards/k/KitesailApprentice.java @@ -27,9 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.EquippedSourceCondition; @@ -39,9 +36,12 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki @@ -60,9 +60,9 @@ public class KitesailApprentice extends CardImpl { this.power = new MageInt(1); this.toughness = new MageInt(1); - ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), EquippedSourceCondition.getInstance(), rule1); + ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), EquippedSourceCondition.instance, rule1); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect1)); - ConditionalContinuousEffect effect2 = new ConditionalContinuousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()), EquippedSourceCondition.getInstance(), rule2); + ConditionalContinuousEffect effect2 = new ConditionalContinuousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()), EquippedSourceCondition.instance, rule2); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect2)); } diff --git a/Mage.Sets/src/mage/cards/k/KitsuneBonesetter.java b/Mage.Sets/src/mage/cards/k/KitsuneBonesetter.java index 6e867b6a2bf..66e5dce8f85 100644 --- a/Mage.Sets/src/mage/cards/k/KitsuneBonesetter.java +++ b/Mage.Sets/src/mage/cards/k/KitsuneBonesetter.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.condition.common.MoreCardsInHandThanOpponentsCondition; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +61,7 @@ public class KitsuneBonesetter extends CardImpl { Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn, 3), new TapSourceCost(), - new MoreCardsInHandThanOpponentsCondition() + MoreCardsInHandThanOpponentsCondition.instance ); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/k/KitsuneHealer.java b/Mage.Sets/src/mage/cards/k/KitsuneHealer.java index 5c3dc8a4dac..9fd707d6981 100644 --- a/Mage.Sets/src/mage/cards/k/KitsuneHealer.java +++ b/Mage.Sets/src/mage/cards/k/KitsuneHealer.java @@ -39,6 +39,7 @@ import mage.abilities.effects.common.PreventDamageToTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; @@ -53,7 +54,7 @@ public class KitsuneHealer extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("legendary creature"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public KitsuneHealer(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/k/KitsuneMystic.java b/Mage.Sets/src/mage/cards/k/KitsuneMystic.java index 72dc2e28fb6..975b60c9797 100644 --- a/Mage.Sets/src/mage/cards/k/KitsuneMystic.java +++ b/Mage.Sets/src/mage/cards/k/KitsuneMystic.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.OnEventTriggeredAbility; @@ -41,9 +40,10 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterEnchantmentPermanent; -import mage.filter.predicate.Predicate; +import mage.filter.predicate.mageobject.AttachmentAttachedToCardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.game.events.GameEvent; @@ -52,6 +52,8 @@ import mage.game.permanent.token.Token; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -95,7 +97,7 @@ class AutumnTailKitsuneSage extends Token { AutumnTailKitsuneSage() { super("Autumn-Tail, Kitsune Sage", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setWhite(true); subtype.add("Fox"); @@ -111,31 +113,6 @@ class AutumnTailKitsuneSage extends Token { } } -class AttachmentAttachedToCardTypePredicate implements Predicate { - - private final CardType cardType; - - public AttachmentAttachedToCardTypePredicate(CardType cardType) { - this.cardType = cardType; - } - - @Override - public boolean apply(Permanent input, Game game) { - if (input.getAttachedTo() != null) { - Permanent attachedTo = game.getPermanent(input.getAttachedTo()); - if (attachedTo != null && attachedTo.getCardType().contains(cardType)) { - return true; - } - } - return false; - } - - @Override - public String toString() { - return "AttachmentAttachedToCardType(" + cardType + ')'; - } -} - class AutumnTailEffect extends OneShotEffect { public AutumnTailEffect() { diff --git a/Mage.Sets/src/mage/cards/k/KiyomaroFirstToStand.java b/Mage.Sets/src/mage/cards/k/KiyomaroFirstToStand.java index 2bbee234f8b..b5c38f4e81e 100644 --- a/Mage.Sets/src/mage/cards/k/KiyomaroFirstToStand.java +++ b/Mage.Sets/src/mage/cards/k/KiyomaroFirstToStand.java @@ -30,7 +30,7 @@ package mage.cards.k; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; @@ -48,6 +48,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -61,7 +62,7 @@ public class KiyomaroFirstToStand extends CardImpl { public KiyomaroFirstToStand(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(0); this.toughness = new MageInt(0); @@ -71,7 +72,7 @@ public class KiyomaroFirstToStand extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(xValue, Duration.EndOfGame))); // As long as you have four or more cards in hand, Kiyomaro has vigilance. - Condition condition = new CardsInHandCondition(CountType.MORE_THAN,3); + Condition condition = new CardsInHandCondition(ComparisonType.MORE_THAN,3); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new GainAbilitySourceEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield), condition, "As long as you have four or more cards in hand, {this} has vigilance")); @@ -80,7 +81,7 @@ public class KiyomaroFirstToStand extends CardImpl { // Whenever Kiyomaro deals damage, if you have seven or more cards in hand, you gain 7 life. this.addAbility(new ConditionalTriggeredAbility( new KiyomaroFirstToStandDealsDamageTriggeredAbility(), - new CardsInHandCondition(CountType.MORE_THAN, 6), + new CardsInHandCondition(ComparisonType.MORE_THAN, 6), "Whenever {this} deals damage, if you have seven or more cards in hand, you gain 7 life" )); } diff --git a/Mage.Sets/src/mage/cards/k/KnollspineInvocation.java b/Mage.Sets/src/mage/cards/k/KnollspineInvocation.java index 18655c2cca6..f4eb268c679 100644 --- a/Mage.Sets/src/mage/cards/k/KnollspineInvocation.java +++ b/Mage.Sets/src/mage/cards/k/KnollspineInvocation.java @@ -27,8 +27,8 @@ */ package mage.cards.k; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.Cost; import mage.abilities.costs.common.DiscardTargetCost; @@ -39,13 +39,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author anonymous @@ -73,7 +74,7 @@ public class KnollspineInvocation extends CardImpl { DiscardTargetCost discardCost = (DiscardTargetCost) cost; discardCost.getTargets().clear(); FilterCard adjustedFilter = filter.copy(); // don't use it directly, it's static!!!! - adjustedFilter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, xValue)); + adjustedFilter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue)); discardCost.addTarget(new TargetCardInHand(adjustedFilter)); return; } diff --git a/Mage.Sets/src/mage/cards/k/KodamaOfTheCenterTree.java b/Mage.Sets/src/mage/cards/k/KodamaOfTheCenterTree.java index b4e290e2a97..0e9217453f1 100644 --- a/Mage.Sets/src/mage/cards/k/KodamaOfTheCenterTree.java +++ b/Mage.Sets/src/mage/cards/k/KodamaOfTheCenterTree.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -37,10 +36,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +57,7 @@ public class KodamaOfTheCenterTree extends CardImpl { public KodamaOfTheCenterTree(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(0); diff --git a/Mage.Sets/src/mage/cards/k/KodamaOfTheNorthTree.java b/Mage.Sets/src/mage/cards/k/KodamaOfTheNorthTree.java index 0cc8870d2c8..19019471802 100644 --- a/Mage.Sets/src/mage/cards/k/KodamaOfTheNorthTree.java +++ b/Mage.Sets/src/mage/cards/k/KodamaOfTheNorthTree.java @@ -28,13 +28,15 @@ package mage.cards.k; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.ShroudAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -44,7 +46,7 @@ public class KodamaOfTheNorthTree extends CardImpl { public KodamaOfTheNorthTree (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/k/KodamaOfTheSouthTree.java b/Mage.Sets/src/mage/cards/k/KodamaOfTheSouthTree.java index 959f3f2cef3..50370f58378 100644 --- a/Mage.Sets/src/mage/cards/k/KodamaOfTheSouthTree.java +++ b/Mage.Sets/src/mage/cards/k/KodamaOfTheSouthTree.java @@ -28,9 +28,6 @@ package mage.cards.k; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -39,10 +36,14 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterSpiritOrArcaneCard; +import java.util.UUID; + /** * @author Loki */ @@ -52,7 +53,7 @@ public class KodamaOfTheSouthTree extends CardImpl { public KodamaOfTheSouthTree(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/k/KokushoTheEveningStar.java b/Mage.Sets/src/mage/cards/k/KokushoTheEveningStar.java index 442ae0997ff..b16486f5cae 100644 --- a/Mage.Sets/src/mage/cards/k/KokushoTheEveningStar.java +++ b/Mage.Sets/src/mage/cards/k/KokushoTheEveningStar.java @@ -28,9 +28,6 @@ package mage.cards.k; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; @@ -38,9 +35,13 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.game.Game; +import java.util.UUID; + /** * @author Loki */ @@ -48,7 +49,7 @@ public class KokushoTheEveningStar extends CardImpl { public KokushoTheEveningStar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/k/KolaghanTheStormsFury.java b/Mage.Sets/src/mage/cards/k/KolaghanTheStormsFury.java index a1983daa446..7f01ab59191 100644 --- a/Mage.Sets/src/mage/cards/k/KolaghanTheStormsFury.java +++ b/Mage.Sets/src/mage/cards/k/KolaghanTheStormsFury.java @@ -35,10 +35,7 @@ import mage.abilities.keyword.DashAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.SetTargetPointer; -import mage.constants.TargetController; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; @@ -58,7 +55,7 @@ public class KolaghanTheStormsFury extends CardImpl { public KolaghanTheStormsFury(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(4); this.toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/k/KondaLordOfEiganjo.java b/Mage.Sets/src/mage/cards/k/KondaLordOfEiganjo.java index 768d7974235..5c92c841f2a 100644 --- a/Mage.Sets/src/mage/cards/k/KondaLordOfEiganjo.java +++ b/Mage.Sets/src/mage/cards/k/KondaLordOfEiganjo.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.BushidoAbility; import mage.abilities.keyword.IndestructibleAbility; @@ -35,6 +34,9 @@ import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @author Loki @@ -43,7 +45,7 @@ public class KondaLordOfEiganjo extends CardImpl { public KondaLordOfEiganjo(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Samurai"); diff --git a/Mage.Sets/src/mage/cards/k/KondasBanner.java b/Mage.Sets/src/mage/cards/k/KondasBanner.java index 04b1bbe2281..4ef27f1d2f3 100644 --- a/Mage.Sets/src/mage/cards/k/KondasBanner.java +++ b/Mage.Sets/src/mage/cards/k/KondasBanner.java @@ -29,7 +29,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.AttachableToRestrictedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -38,10 +37,7 @@ import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; @@ -49,7 +45,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.Target; import mage.target.common.TargetControlledCreaturePermanent; -import mage.util.CardUtil; + +import java.util.UUID; /** * @@ -60,12 +57,12 @@ public class KondasBanner extends CardImpl { private static final FilterControlledCreaturePermanent legendaryFilter = new FilterControlledCreaturePermanent("legendary creatures"); static { - legendaryFilter.add(new SupertypePredicate("Legendary")); + legendaryFilter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public KondasBanner(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Equipment"); Target target = new TargetControlledCreaturePermanent(1, 1, legendaryFilter, false); @@ -114,7 +111,7 @@ class KondasBannerTypeBoostEffect extends BoostAllEffect { Permanent equipedCreature = game.getPermanent(equipment.getAttachedTo()); if (equipedCreature != null) { for (Permanent perm : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { - if (CardUtil.shareSubtypes(perm, equipedCreature, game)) { + if (perm.shareSubtypes(equipedCreature, game)) { perm.addPower(power.calculate(game, source, this)); perm.addToughness(toughness.calculate(game, source, this)); diff --git a/Mage.Sets/src/mage/cards/k/KondasHatamoto.java b/Mage.Sets/src/mage/cards/k/KondasHatamoto.java index 6ddb8736051..7e3dd2855b4 100644 --- a/Mage.Sets/src/mage/cards/k/KondasHatamoto.java +++ b/Mage.Sets/src/mage/cards/k/KondasHatamoto.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -40,11 +39,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** * * @author LevelX @@ -56,7 +58,7 @@ public class KondasHatamoto extends CardImpl { private static final String rule2 = "As long as you control a legendary Samurai, {this} has vigilance"; static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); filter.add(new SubtypePredicate("Samurai")); } diff --git a/Mage.Sets/src/mage/cards/k/KongmingSleepingDragon.java b/Mage.Sets/src/mage/cards/k/KongmingSleepingDragon.java index 79d2697990f..6f826dead58 100644 --- a/Mage.Sets/src/mage/cards/k/KongmingSleepingDragon.java +++ b/Mage.Sets/src/mage/cards/k/KongmingSleepingDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -35,8 +34,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -45,7 +47,7 @@ public class KongmingSleepingDragon extends CardImpl { public KongmingSleepingDragon(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); diff --git a/Mage.Sets/src/mage/cards/k/KorHaven.java b/Mage.Sets/src/mage/cards/k/KorHaven.java index b41792b5a1a..132fb5ae7dc 100644 --- a/Mage.Sets/src/mage/cards/k/KorHaven.java +++ b/Mage.Sets/src/mage/cards/k/KorHaven.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,9 +38,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetAttackingCreature; +import java.util.UUID; + /** * * @author emerald000 @@ -50,7 +52,7 @@ public class KorHaven extends CardImpl { public KorHaven(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/k/KorLineSlinger.java b/Mage.Sets/src/mage/cards/k/KorLineSlinger.java index da43060293e..0658a2278aa 100644 --- a/Mage.Sets/src/mage/cards/k/KorLineSlinger.java +++ b/Mage.Sets/src/mage/cards/k/KorLineSlinger.java @@ -27,23 +27,23 @@ */ package mage.cards.k; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author North */ public class KorLineSlinger extends CardImpl { @@ -51,11 +51,11 @@ public class KorLineSlinger extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 3 or less"); static { - filter.add(new PowerPredicate(ComparisonType.LessThan, 4)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 4)); } public KorLineSlinger(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); this.subtype.add("Kor"); this.subtype.add("Scout"); diff --git a/Mage.Sets/src/mage/cards/k/KorScythemaster.java b/Mage.Sets/src/mage/cards/k/KorScythemaster.java index 4befcda12a8..d84c3a09437 100644 --- a/Mage.Sets/src/mage/cards/k/KorScythemaster.java +++ b/Mage.Sets/src/mage/cards/k/KorScythemaster.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.SourceAttackingCondition; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes @@ -54,7 +55,7 @@ public class KorScythemaster extends CardImpl { this.toughness = new MageInt(1); // Kor Scythemaster has first strike as long as its attacking. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()), SourceAttackingCondition.getInstance(), "{this} has first strike as long as it's attacking"))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()), SourceAttackingCondition.instance, "{this} has first strike as long as it's attacking"))); } public KorScythemaster(final KorScythemaster card) { diff --git a/Mage.Sets/src/mage/cards/k/KorlashHeirToBlackblade.java b/Mage.Sets/src/mage/cards/k/KorlashHeirToBlackblade.java index f725e53fbdd..d8d589df0ba 100644 --- a/Mage.Sets/src/mage/cards/k/KorlashHeirToBlackblade.java +++ b/Mage.Sets/src/mage/cards/k/KorlashHeirToBlackblade.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.abilityword.GrandeurAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterControlledPermanent; @@ -49,6 +49,8 @@ import mage.filter.common.FilterLandCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author emerald000 @@ -64,7 +66,7 @@ public class KorlashHeirToBlackblade extends CardImpl { public KorlashHeirToBlackblade(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/k/KoskunFalls.java b/Mage.Sets/src/mage/cards/k/KoskunFalls.java index 0c9d83eb779..bc3bd3971d9 100644 --- a/Mage.Sets/src/mage/cards/k/KoskunFalls.java +++ b/Mage.Sets/src/mage/cards/k/KoskunFalls.java @@ -38,6 +38,7 @@ import mage.abilities.effects.common.combat.CantAttackYouUnlessPayManaAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; @@ -59,7 +60,7 @@ public class KoskunFalls extends CardImpl { public KoskunFalls(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{B}{B}"); - this.supertype.add("World"); + addSuperType(SuperType.WORLD); // At the beginning of your upkeep, sacrifice Koskun Falls unless you tap an untapped creature you control. Effect effect = new SacrificeSourceUnlessPaysEffect(new TapTargetCost(new TargetControlledCreaturePermanent(1, 1, filterCreature, true))); diff --git a/Mage.Sets/src/mage/cards/k/KothophedSoulHoarder.java b/Mage.Sets/src/mage/cards/k/KothophedSoulHoarder.java index 2831cec1d70..4a28d614852 100644 --- a/Mage.Sets/src/mage/cards/k/KothophedSoulHoarder.java +++ b/Mage.Sets/src/mage/cards/k/KothophedSoulHoarder.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -40,6 +39,7 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.FilterPermanent; @@ -49,6 +49,8 @@ import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -63,7 +65,7 @@ public class KothophedSoulHoarder extends CardImpl { public KothophedSoulHoarder(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.power = new MageInt(6); this.toughness = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/k/KozilekButcherOfTruth.java b/Mage.Sets/src/mage/cards/k/KozilekButcherOfTruth.java index cde154abb2d..0b7a08c72f3 100644 --- a/Mage.Sets/src/mage/cards/k/KozilekButcherOfTruth.java +++ b/Mage.Sets/src/mage/cards/k/KozilekButcherOfTruth.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.PutIntoGraveFromAnywhereSourceTriggeredAbility; import mage.abilities.effects.common.CastSourceTriggeredAbility; @@ -37,6 +36,9 @@ import mage.abilities.keyword.AnnihilatorAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -46,7 +48,7 @@ public class KozilekButcherOfTruth extends CardImpl { public KozilekButcherOfTruth(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{10}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Eldrazi"); this.power = new MageInt(12); this.toughness = new MageInt(12); diff --git a/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java b/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java index a69f7b124ba..28b7a1366f7 100644 --- a/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java +++ b/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java @@ -27,12 +27,9 @@ */ package mage.cards.k; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.condition.common.CardsInHandCondition; import mage.abilities.costs.Cost; @@ -47,8 +44,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -59,6 +56,10 @@ import mage.players.Player; import mage.target.TargetSpell; import mage.target.common.TargetCardInHand; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 @@ -67,7 +68,7 @@ public class KozilekTheGreatDistortion extends CardImpl { public KozilekTheGreatDistortion(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{8}{C}{C}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Eldrazi"); this.power = new MageInt(12); this.toughness = new MageInt(12); @@ -75,7 +76,7 @@ public class KozilekTheGreatDistortion extends CardImpl { // When you cast Kozilek, the Great Distortion, if you have fewer than seven cards in hand, draw cards equal to the difference. this.addAbility(new ConditionalTriggeredAbility( new CastSourceTriggeredAbility(new KozilekDrawEffect(), false), - new CardsInHandCondition(CountType.FEWER_THAN, 7), + new CardsInHandCondition(ComparisonType.FEWER_THAN, 7), "When you cast {this}, if you have fewer than seven cards in hand, draw cards equal to the difference.")); // Menace this.addAbility(new MenaceAbility()); @@ -144,7 +145,7 @@ class KozilekDiscardCost extends CostImpl { return false; } FilterCard filter = new FilterCard("card with converted mana cost of " + targetSpell.getConvertedManaCost()); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, targetSpell.getConvertedManaCost())); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, targetSpell.getConvertedManaCost())); TargetCardInHand target = new TargetCardInHand(filter); this.getTargets().clear(); this.getTargets().add(target); diff --git a/Mage.Sets/src/mage/cards/k/KozileksReturn.java b/Mage.Sets/src/mage/cards/k/KozileksReturn.java index 69011238a9f..dafa3a0b05d 100644 --- a/Mage.Sets/src/mage/cards/k/KozileksReturn.java +++ b/Mage.Sets/src/mage/cards/k/KozileksReturn.java @@ -27,7 +27,7 @@ */ package mage.cards.k; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.costs.common.ExileSourceFromGraveCost; import mage.abilities.effects.common.DamageAllEffect; @@ -37,13 +37,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterSpell; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -55,7 +56,7 @@ public class KozileksReturn extends CardImpl { static { filter.add(new SubtypePredicate("Eldrazi")); filter.add(new CardTypePredicate(CardType.CREATURE)); - filter.add(new ConvertedManaCostPredicate(ComparisonType.GreaterThan, 6)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 6)); } public KozileksReturn(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/k/KrarksThumb.java b/Mage.Sets/src/mage/cards/k/KrarksThumb.java index eac2364d634..f3e32dab75a 100644 --- a/Mage.Sets/src/mage/cards/k/KrarksThumb.java +++ b/Mage.Sets/src/mage/cards/k/KrarksThumb.java @@ -33,10 +33,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; @@ -50,7 +47,7 @@ public class KrarksThumb extends CardImpl { public KrarksThumb(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // If you would flip a coin, instead flip two coins and ignore one. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new KrarksThumbEffect())); diff --git a/Mage.Sets/src/mage/cards/k/KraumLudevicsOpus.java b/Mage.Sets/src/mage/cards/k/KraumLudevicsOpus.java index 03dc443a9f3..67dde9e079d 100644 --- a/Mage.Sets/src/mage/cards/k/KraumLudevicsOpus.java +++ b/Mage.Sets/src/mage/cards/k/KraumLudevicsOpus.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -37,12 +36,15 @@ import mage.abilities.keyword.PartnerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.watchers.common.CastSpellLastTurnWatcher; +import java.util.UUID; + /** * * @author Styxo @@ -52,7 +54,7 @@ public class KraumLudevicsOpus extends CardImpl { public KraumLudevicsOpus(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Horror"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/k/KrenkoMobBoss.java b/Mage.Sets/src/mage/cards/k/KrenkoMobBoss.java index b9393700443..aee626317fc 100644 --- a/Mage.Sets/src/mage/cards/k/KrenkoMobBoss.java +++ b/Mage.Sets/src/mage/cards/k/KrenkoMobBoss.java @@ -27,9 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -37,10 +34,15 @@ import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.GoblinToken; +import java.util.UUID; + /** * * @author North @@ -55,7 +57,7 @@ public class KrenkoMobBoss extends CardImpl { public KrenkoMobBoss(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/k/KreshTheBloodbraided.java b/Mage.Sets/src/mage/cards/k/KreshTheBloodbraided.java index 18404963335..5853b4ac0c5 100644 --- a/Mage.Sets/src/mage/cards/k/KreshTheBloodbraided.java +++ b/Mage.Sets/src/mage/cards/k/KreshTheBloodbraided.java @@ -37,6 +37,7 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; @@ -50,7 +51,7 @@ public class KreshTheBloodbraided extends CardImpl { public KreshTheBloodbraided(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/k/KrondTheDawnClad.java b/Mage.Sets/src/mage/cards/k/KrondTheDawnClad.java index 3c1f2796372..e8765707fd1 100644 --- a/Mage.Sets/src/mage/cards/k/KrondTheDawnClad.java +++ b/Mage.Sets/src/mage/cards/k/KrondTheDawnClad.java @@ -39,6 +39,7 @@ import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.target.TargetPermanent; /** @@ -49,7 +50,7 @@ public class KrondTheDawnClad extends CardImpl { public KrondTheDawnClad(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{G}{G}{W}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Archon"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/k/KrosanDrover.java b/Mage.Sets/src/mage/cards/k/KrosanDrover.java index f24c02589d2..3ef7d81453a 100644 --- a/Mage.Sets/src/mage/cards/k/KrosanDrover.java +++ b/Mage.Sets/src/mage/cards/k/KrosanDrover.java @@ -27,19 +27,20 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; +import java.util.UUID; + /** * * @author Eirkei @@ -50,7 +51,7 @@ public class KrosanDrover extends CardImpl { static { filter.add(new CardTypePredicate(CardType.CREATURE)); - filter.add(new ConvertedManaCostPredicate(ComparisonType.GreaterThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 5)); } public KrosanDrover(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/k/KrovikanRot.java b/Mage.Sets/src/mage/cards/k/KrovikanRot.java index 69d10e209d3..abcd2a4a3d0 100644 --- a/Mage.Sets/src/mage/cards/k/KrovikanRot.java +++ b/Mage.Sets/src/mage/cards/k/KrovikanRot.java @@ -27,18 +27,19 @@ */ package mage.cards.k; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.RecoverAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -48,7 +49,7 @@ public class KrovikanRot extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public KrovikanRot(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/k/KruphixGodOfHorizons.java b/Mage.Sets/src/mage/cards/k/KruphixGodOfHorizons.java index 7465d7bf698..273983123a3 100644 --- a/Mage.Sets/src/mage/cards/k/KruphixGodOfHorizons.java +++ b/Mage.Sets/src/mage/cards/k/KruphixGodOfHorizons.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -39,14 +38,12 @@ import mage.abilities.effects.common.continuous.MaximumHandSizeControllerEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +52,7 @@ public class KruphixGodOfHorizons extends CardImpl { public KruphixGodOfHorizons(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.CREATURE},"{3}{G}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/k/KukemssaSerpent.java b/Mage.Sets/src/mage/cards/k/KukemssaSerpent.java index 476a7b6aced..9ee5ce3e49f 100644 --- a/Mage.Sets/src/mage/cards/k/KukemssaSerpent.java +++ b/Mage.Sets/src/mage/cards/k/KukemssaSerpent.java @@ -27,9 +27,9 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -44,7 +44,6 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -52,6 +51,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -83,7 +84,7 @@ public class KukemssaSerpent extends CardImpl { // When you control no Islands, sacrifice Kukemssa Serpent. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Island", "no Islands"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Island", "no Islands"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/k/KumanoMasterYamabushi.java b/Mage.Sets/src/mage/cards/k/KumanoMasterYamabushi.java index 54888f85005..949b5bb379e 100644 --- a/Mage.Sets/src/mage/cards/k/KumanoMasterYamabushi.java +++ b/Mage.Sets/src/mage/cards/k/KumanoMasterYamabushi.java @@ -42,6 +42,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; import mage.watchers.common.DamagedByWatcher; @@ -53,7 +54,7 @@ public class KumanoMasterYamabushi extends CardImpl { public KumanoMasterYamabushi(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/k/KuonOgreAscendant.java b/Mage.Sets/src/mage/cards/k/KuonOgreAscendant.java index 2baa771744e..86a11817c97 100644 --- a/Mage.Sets/src/mage/cards/k/KuonOgreAscendant.java +++ b/Mage.Sets/src/mage/cards/k/KuonOgreAscendant.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -38,6 +37,7 @@ import mage.abilities.effects.common.SacrificeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; @@ -45,6 +45,8 @@ import mage.game.Game; import mage.game.permanent.token.Token; import mage.watchers.common.CreaturesDiedWatcher; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +55,7 @@ public class KuonOgreAscendant extends CardImpl { public KuonOgreAscendant(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Ogre"); this.subtype.add("Monk"); @@ -87,7 +89,7 @@ class KuonsEssenceToken extends Token { KuonsEssenceToken() { super("Kuon's Essence", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.ENCHANTMENT); color.setBlack(true); diff --git a/Mage.Sets/src/mage/cards/k/Kurgadon.java b/Mage.Sets/src/mage/cards/k/Kurgadon.java index 2b95c95b9a6..048b08335a1 100644 --- a/Mage.Sets/src/mage/cards/k/Kurgadon.java +++ b/Mage.Sets/src/mage/cards/k/Kurgadon.java @@ -27,19 +27,20 @@ */ package mage.cards.k; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.counters.CounterType; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; +import java.util.UUID; + /** * * @author Backfir3 @@ -50,7 +51,7 @@ public class Kurgadon extends CardImpl { static { filterSpell.add(new CardTypePredicate(CardType.CREATURE)); - filterSpell.add(new ConvertedManaCostPredicate(ComparisonType.GreaterThan, 5)); + filterSpell.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 5)); } public Kurgadon(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/k/KurkeshOnakkeAncient.java b/Mage.Sets/src/mage/cards/k/KurkeshOnakkeAncient.java index 72aff27d39c..a3202dd9a53 100644 --- a/Mage.Sets/src/mage/cards/k/KurkeshOnakkeAncient.java +++ b/Mage.Sets/src/mage/cards/k/KurkeshOnakkeAncient.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -38,10 +37,7 @@ import mage.abilities.mana.ActivatedManaAbilityImpl; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; @@ -49,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.game.stack.StackAbility; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 @@ -57,7 +55,7 @@ public class KurkeshOnakkeAncient extends CardImpl { public KurkeshOnakkeAncient(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Ogre"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/k/KuroPitlord.java b/Mage.Sets/src/mage/cards/k/KuroPitlord.java index 3d88680a738..91044836b27 100644 --- a/Mage.Sets/src/mage/cards/k/KuroPitlord.java +++ b/Mage.Sets/src/mage/cards/k/KuroPitlord.java @@ -50,7 +50,7 @@ public class KuroPitlord extends CardImpl { public KuroPitlord(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{B}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/k/KydeleChosenOfKruphix.java b/Mage.Sets/src/mage/cards/k/KydeleChosenOfKruphix.java index 309e8c6d148..09034063820 100644 --- a/Mage.Sets/src/mage/cards/k/KydeleChosenOfKruphix.java +++ b/Mage.Sets/src/mage/cards/k/KydeleChosenOfKruphix.java @@ -27,11 +27,6 @@ */ package mage.cards.k; -import java.util.HashMap; -import java.util.LinkedHashSet; -import java.util.Map; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -43,11 +38,14 @@ import mage.abilities.mana.DynamicManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.WatcherScope; import mage.game.Game; import mage.game.events.GameEvent; import mage.watchers.Watcher; +import java.util.*; + /** * * @author spjspj @@ -57,7 +55,7 @@ public class KydeleChosenOfKruphix extends CardImpl { public KydeleChosenOfKruphix(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/k/KynaiosAndTiroOfMeletis.java b/Mage.Sets/src/mage/cards/k/KynaiosAndTiroOfMeletis.java index d56c6acce5f..1754da6a4d6 100644 --- a/Mage.Sets/src/mage/cards/k/KynaiosAndTiroOfMeletis.java +++ b/Mage.Sets/src/mage/cards/k/KynaiosAndTiroOfMeletis.java @@ -34,10 +34,7 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; @@ -60,7 +57,7 @@ public class KynaiosAndTiroOfMeletis extends CardImpl { public KynaiosAndTiroOfMeletis(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}{G}{W}{U}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/k/KyokiSanitysEclipse.java b/Mage.Sets/src/mage/cards/k/KyokiSanitysEclipse.java index 8e1d8077a34..4dc2693b8da 100644 --- a/Mage.Sets/src/mage/cards/k/KyokiSanitysEclipse.java +++ b/Mage.Sets/src/mage/cards/k/KyokiSanitysEclipse.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -35,11 +34,14 @@ import mage.abilities.effects.common.ExileFromZoneTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterSpiritOrArcaneCard; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 @@ -48,7 +50,7 @@ public class KyokiSanitysEclipse extends CardImpl { public KyokiSanitysEclipse(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/k/KytheonHeroOfAkros.java b/Mage.Sets/src/mage/cards/k/KytheonHeroOfAkros.java index bceb978d51c..ebd9fdf4ca6 100644 --- a/Mage.Sets/src/mage/cards/k/KytheonHeroOfAkros.java +++ b/Mage.Sets/src/mage/cards/k/KytheonHeroOfAkros.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; @@ -46,11 +45,14 @@ import mage.cards.CardSetInfo; import mage.cards.g.GideonBattleForged; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.watchers.common.AttackedOrBlockedThisCombatWatcher; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +61,7 @@ public class KytheonHeroOfAkros extends CardImpl { public KytheonHeroOfAkros(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/l/LabyrinthGuardian.java b/Mage.Sets/src/mage/cards/l/LabyrinthGuardian.java new file mode 100644 index 00000000000..09a13cb50fb --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LabyrinthGuardian.java @@ -0,0 +1,114 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.l; + +import java.util.UUID; +import mage.MageInt; +import mage.MageObject; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.SacrificeSourceEffect; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.stack.Spell; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author fireshoes + */ +public class LabyrinthGuardian extends CardImpl { + + public LabyrinthGuardian(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}"); + + this.subtype.add("Illusion"); + this.subtype.add("Warrior"); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // When Labyrinth Guardian becomes the target of a spell, sacrifice it. + this.addAbility(new LabyrinthGuardianTriggeredAbility()); + + // Embalm {3}{U} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{3}{U}"), this)); + + } + + public LabyrinthGuardian(final LabyrinthGuardian card) { + super(card); + } + + @Override + public LabyrinthGuardian copy() { + return new LabyrinthGuardian(this); + } +} + +class LabyrinthGuardianTriggeredAbility extends TriggeredAbilityImpl { + + public LabyrinthGuardianTriggeredAbility() { + super(Zone.BATTLEFIELD, new SacrificeSourceEffect(), false); + } + + public LabyrinthGuardianTriggeredAbility(final LabyrinthGuardianTriggeredAbility ability) { + super(ability); + } + + @Override + public LabyrinthGuardianTriggeredAbility copy() { + return new LabyrinthGuardianTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.TARGETED; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + MageObject eventSourceObject = game.getObject(event.getSourceId()); + if (eventSourceObject != null && event.getTargetId().equals(this.getSourceId())&& eventSourceObject instanceof Spell ) { + getEffects().get(0).setTargetPointer(new FixedTarget(event.getPlayerId())); + return true; + } + return false; + } + + @Override + public String getRule() { + return "Whenever {this} becomes the target of a spell, sacrifice it."; + } + +} diff --git a/Mage.Sets/src/mage/cards/l/LadyCaleria.java b/Mage.Sets/src/mage/cards/l/LadyCaleria.java index c01b20e1d90..f459e991682 100644 --- a/Mage.Sets/src/mage/cards/l/LadyCaleria.java +++ b/Mage.Sets/src/mage/cards/l/LadyCaleria.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -36,9 +35,12 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author LoneFox @@ -47,7 +49,7 @@ public class LadyCaleria extends CardImpl { public LadyCaleria(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Archer"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/l/LadyEvangela.java b/Mage.Sets/src/mage/cards/l/LadyEvangela.java index 068905de64a..a2f5d5d9fa0 100644 --- a/Mage.Sets/src/mage/cards/l/LadyEvangela.java +++ b/Mage.Sets/src/mage/cards/l/LadyEvangela.java @@ -39,6 +39,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; @@ -50,7 +51,7 @@ public class LadyEvangela extends CardImpl { public LadyEvangela(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{U}{B}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/l/LadyOrca.java b/Mage.Sets/src/mage/cards/l/LadyOrca.java index d0e09005395..6e8820d75a5 100644 --- a/Mage.Sets/src/mage/cards/l/LadyOrca.java +++ b/Mage.Sets/src/mage/cards/l/LadyOrca.java @@ -27,11 +27,13 @@ */ package mage.cards.l; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -41,7 +43,7 @@ public class LadyOrca extends CardImpl { public LadyOrca(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/l/LadySun.java b/Mage.Sets/src/mage/cards/l/LadySun.java index 64bb00f5b0d..7f47b4e4b3f 100644 --- a/Mage.Sets/src/mage/cards/l/LadySun.java +++ b/Mage.Sets/src/mage/cards/l/LadySun.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -39,11 +38,14 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -57,7 +59,7 @@ public class LadySun extends CardImpl { public LadySun(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{U}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); this.power = new MageInt(1); @@ -67,7 +69,7 @@ public class LadySun extends CardImpl { Effect effect = new ReturnToHandSourceEffect(true); effect.setText("Return Lady Sun"); Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - effect, new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + effect, new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); effect = new ReturnToHandTargetEffect(); effect.setText("and another target creature to their owners' hands"); ability.addTarget(new TargetCreaturePermanent(filter)); diff --git a/Mage.Sets/src/mage/cards/l/LadyZhurongWarriorQueen.java b/Mage.Sets/src/mage/cards/l/LadyZhurongWarriorQueen.java index ad5a763ca2f..cf8da63fe6f 100644 --- a/Mage.Sets/src/mage/cards/l/LadyZhurongWarriorQueen.java +++ b/Mage.Sets/src/mage/cards/l/LadyZhurongWarriorQueen.java @@ -27,12 +27,14 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HorsemanshipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -42,7 +44,7 @@ public class LadyZhurongWarriorQueen extends CardImpl { public LadyZhurongWarriorQueen(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/l/LagonnaBandElder.java b/Mage.Sets/src/mage/cards/l/LagonnaBandElder.java index 5eda146b175..1a3cd7b5560 100644 --- a/Mage.Sets/src/mage/cards/l/LagonnaBandElder.java +++ b/Mage.Sets/src/mage/cards/l/LagonnaBandElder.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -57,7 +57,7 @@ public class LagonnaBandElder extends CardImpl { // When Lagonna-Band Elder enters the battlefield, if you control an enchantment, you gain 3 life. Ability ability = new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new GainLifeEffect(3), false), - new PermanentsOnTheBattlefieldCondition(new FilterEnchantmentPermanent(), CountType.MORE_THAN, 0), + new PermanentsOnTheBattlefieldCondition(new FilterEnchantmentPermanent(), ComparisonType.MORE_THAN, 0), "When Lagonna-Band Elder enters the battlefield, if you control an enchantment, you gain 3 life"); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/l/LambholtPacifist.java b/Mage.Sets/src/mage/cards/l/LambholtPacifist.java index 5abf4cba101..a094ca95145 100644 --- a/Mage.Sets/src/mage/cards/l/LambholtPacifist.java +++ b/Mage.Sets/src/mage/cards/l/LambholtPacifist.java @@ -27,9 +27,9 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -44,12 +44,13 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author fireshoes @@ -91,7 +92,7 @@ class LambholtPacifistEffect extends RestrictionEffect { private static final FilterControlledPermanent filter = new FilterControlledPermanent("a creature with power 4 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public LambholtPacifistEffect() { diff --git a/Mage.Sets/src/mage/cards/l/LamplighterOfSelhoff.java b/Mage.Sets/src/mage/cards/l/LamplighterOfSelhoff.java index 2b25bf8582e..2716a697d19 100644 --- a/Mage.Sets/src/mage/cards/l/LamplighterOfSelhoff.java +++ b/Mage.Sets/src/mage/cards/l/LamplighterOfSelhoff.java @@ -29,7 +29,7 @@ package mage.cards.l; import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -66,7 +66,7 @@ public class LamplighterOfSelhoff extends CardImpl { TriggeredAbility triggeredAbility = new EntersBattlefieldTriggeredAbility(new DrawDiscardControllerEffect(1,1,true)); this.addAbility(new ConditionalTriggeredAbility( triggeredAbility, - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0), "When {this} enters the battlefield, if you control another Zombie, you may a draw card. If you do, discard a card.")); } diff --git a/Mage.Sets/src/mage/cards/l/LandoCalrissian.java b/Mage.Sets/src/mage/cards/l/LandoCalrissian.java index 55ca7cf1159..933ff4978f8 100644 --- a/Mage.Sets/src/mage/cards/l/LandoCalrissian.java +++ b/Mage.Sets/src/mage/cards/l/LandoCalrissian.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.effects.Effect; @@ -39,12 +38,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo @@ -60,7 +62,7 @@ public class LandoCalrissian extends CardImpl { public LandoCalrissian(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rogue"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/l/LastBreath.java b/Mage.Sets/src/mage/cards/l/LastBreath.java index 39980f545c1..291cb377e62 100644 --- a/Mage.Sets/src/mage/cards/l/LastBreath.java +++ b/Mage.Sets/src/mage/cards/l/LastBreath.java @@ -27,8 +27,8 @@ */ package mage.cards.l; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; @@ -36,7 +36,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; @@ -44,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,7 +53,7 @@ public class LastBreath extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public LastBreath(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/l/LatullaKeldonOverseer.java b/Mage.Sets/src/mage/cards/l/LatullaKeldonOverseer.java index 1272e71fd95..25cb74833b8 100644 --- a/Mage.Sets/src/mage/cards/l/LatullaKeldonOverseer.java +++ b/Mage.Sets/src/mage/cards/l/LatullaKeldonOverseer.java @@ -39,6 +39,7 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.target.common.TargetCardInHand; @@ -52,7 +53,7 @@ public class LatullaKeldonOverseer extends CardImpl { public LatullaKeldonOverseer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Spellshaper"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/l/LaviniaOfTheTenth.java b/Mage.Sets/src/mage/cards/l/LaviniaOfTheTenth.java index 66a544476a8..62183bbeceb 100644 --- a/Mage.Sets/src/mage/cards/l/LaviniaOfTheTenth.java +++ b/Mage.Sets/src/mage/cards/l/LaviniaOfTheTenth.java @@ -28,24 +28,25 @@ package mage.cards.l; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DetainAllEffect; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; -import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,14 +57,14 @@ public class LaviniaOfTheTenth extends CardImpl { static { filterDetain.add(new ControllerPredicate(TargetController.OPPONENT)); filterDetain.add(Predicates.not(new CardTypePredicate(CardType.LAND))); - filterDetain.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 5)); + filterDetain.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 5)); } public LaviniaOfTheTenth (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{U}"); this.subtype.add("Human"); this.subtype.add("Soldier"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/l/LayBareTheHeart.java b/Mage.Sets/src/mage/cards/l/LayBareTheHeart.java new file mode 100644 index 00000000000..3603bee7d97 --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LayBareTheHeart.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.l; + +import mage.abilities.effects.common.discard.DiscardCardYouChooseTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.TargetController; +import mage.filter.FilterCard; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.filter.predicate.mageobject.SupertypePredicate; +import mage.target.TargetPlayer; + +import java.util.UUID; + +/** + * + * @author fireshoes + */ +public class LayBareTheHeart extends CardImpl { + + private static final FilterCard filter = new FilterCard("nonlegendary, nonland card"); + + static { + filter.add(Predicates.not(new CardTypePredicate(CardType.LAND))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.LEGENDARY))); + } + + public LayBareTheHeart(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}"); + + // Target opponent reveals his or her hand. You choose a nonlegendary, nonland card from it. That player discards that card. + this.getSpellAbility().addTarget(new TargetPlayer()); + this.getSpellAbility().addEffect(new DiscardCardYouChooseTargetEffect(filter, TargetController.ANY)); + } + + public LayBareTheHeart(final LayBareTheHeart card) { + super(card); + } + + @Override + public LayBareTheHeart copy() { + return new LayBareTheHeart(this); + } +} diff --git a/Mage.Sets/src/mage/cards/l/LayClaim.java b/Mage.Sets/src/mage/cards/l/LayClaim.java new file mode 100644 index 00000000000..f1d4e2efe3c --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LayClaim.java @@ -0,0 +1,79 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.l; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.AttachEffect; +import mage.constants.Outcome; +import mage.target.TargetPermanent; +import mage.abilities.keyword.EnchantAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.ControlEnchantedEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +/** + * + * @author fireshoes + */ +public class LayClaim extends CardImpl { + + public LayClaim(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{5}{U}{U}"); + + this.subtype.add("Aura"); + + // Enchant permanent + TargetPermanent auraTarget = new TargetPermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.GainControl)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // You control enchanted permanent. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ControlEnchantedEffect("permanent"))); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + + } + + public LayClaim(final LayClaim card) { + super(card); + } + + @Override + public LayClaim copy() { + return new LayClaim(this); + } +} diff --git a/Mage.Sets/src/mage/cards/l/LazavDimirMastermind.java b/Mage.Sets/src/mage/cards/l/LazavDimirMastermind.java index 60ca447520a..229874c009e 100644 --- a/Mage.Sets/src/mage/cards/l/LazavDimirMastermind.java +++ b/Mage.Sets/src/mage/cards/l/LazavDimirMastermind.java @@ -38,11 +38,7 @@ import mage.abilities.keyword.HexproofAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.TargetController; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.game.permanent.Permanent; @@ -59,7 +55,7 @@ public class LazavDimirMastermind extends CardImpl { public LazavDimirMastermind(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}{U}{B}{B}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Shapeshifter"); this.power = new MageInt(3); @@ -113,7 +109,7 @@ class LazavDimirMastermindEffect extends OneShotEffect { newBluePrint = new PermanentCard((Card) copyFromCard, source.getControllerId(), game); newBluePrint.assignNewId(); ApplyToPermanent applier = new LazavDimirMastermindApplier(); - applier.apply(game, newBluePrint); + applier.apply(game, newBluePrint, source, lazavDimirMastermind.getId()); CopyEffect copyEffect = new CopyEffect(Duration.Custom, newBluePrint, lazavDimirMastermind.getId()); copyEffect.newId(); copyEffect.setApplier(applier); @@ -130,27 +126,27 @@ class LazavDimirMastermindEffect extends OneShotEffect { class LazavDimirMastermindApplier extends ApplyToPermanent { @Override - public boolean apply(Game game, Permanent permanent) { + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { Ability ability = new PutCardIntoGraveFromAnywhereAllTriggeredAbility( new LazavDimirMastermindEffect(), true, new FilterCreatureCard("a creature card"), TargetController.OPPONENT, SetTargetPointer.CARD); permanent.getAbilities().add(ability); permanent.setName("Lazav, Dimir Mastermind"); - permanent.getSupertype().add("Legendary"); + permanent.addSuperType(SuperType.LEGENDARY); permanent.getAbilities().add(HexproofAbility.getInstance()); return true; } @Override - public boolean apply(Game game, MageObject mageObject) { + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { Ability ability = new PutCardIntoGraveFromAnywhereAllTriggeredAbility( new LazavDimirMastermindEffect(), true, new FilterCreatureCard("a creature card"), TargetController.OPPONENT, SetTargetPointer.CARD); mageObject.getAbilities().add(ability); mageObject.setName("Lazav, Dimir Mastermind"); - mageObject.getSupertype().add("Legendary"); + mageObject.addSuperType(SuperType.LEGENDARY); mageObject.getAbilities().add(HexproofAbility.getInstance()); return true; } diff --git a/Mage.Sets/src/mage/cards/l/LeechriddenSwamp.java b/Mage.Sets/src/mage/cards/l/LeechriddenSwamp.java index e3cf6a3df68..7c67b64c27c 100644 --- a/Mage.Sets/src/mage/cards/l/LeechriddenSwamp.java +++ b/Mage.Sets/src/mage/cards/l/LeechriddenSwamp.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.Mana; import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -76,7 +76,7 @@ public class LeechriddenSwamp extends CardImpl { Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new LeechriddenSwampLoseLifeEffect(), new ManaCostsImpl("{B}"), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1)); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1)); ability.addCost(new TapSourceCost()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/l/LegacyOfTheBeloved.java b/Mage.Sets/src/mage/cards/l/LegacyOfTheBeloved.java index fcb4cee973f..ee013c8a429 100644 --- a/Mage.Sets/src/mage/cards/l/LegacyOfTheBeloved.java +++ b/Mage.Sets/src/mage/cards/l/LegacyOfTheBeloved.java @@ -27,8 +27,8 @@ */ package mage.cards.l; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -38,7 +38,6 @@ import mage.cards.CardsImpl; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; @@ -47,6 +46,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo @@ -99,7 +100,7 @@ class LegacyOfTheBelovedEffect extends OneShotEffect { if (cost instanceof SacrificeTargetCost) { Permanent p = (Permanent) game.getLastKnownInformation(((SacrificeTargetCost) cost).getPermanents().get(0).getId(), Zone.BATTLEFIELD); if (p != null) { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, p.getConvertedManaCost())); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, p.getConvertedManaCost())); TargetCardInLibrary target = new TargetCardInLibrary(0, 2, filter); Player player = game.getPlayer(source.getControllerId()); if (player != null && player.searchLibrary(target, game)) { diff --git a/Mage.Sets/src/mage/cards/l/LegacyWeapon.java b/Mage.Sets/src/mage/cards/l/LegacyWeapon.java index 7c786446519..7c41f1a325c 100644 --- a/Mage.Sets/src/mage/cards/l/LegacyWeapon.java +++ b/Mage.Sets/src/mage/cards/l/LegacyWeapon.java @@ -29,6 +29,7 @@ package mage.cards.l; import java.util.UUID; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.abilities.common.PutIntoGraveFromAnywhereSourceAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -47,7 +48,7 @@ public class LegacyWeapon extends CardImpl { public LegacyWeapon(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{7}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); // {W}{U}{B}{R}{G}: Exile target permanent. SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, diff --git a/Mage.Sets/src/mage/cards/l/LegacysAllure.java b/Mage.Sets/src/mage/cards/l/LegacysAllure.java index bb8778eb8a2..4abefffd51b 100644 --- a/Mage.Sets/src/mage/cards/l/LegacysAllure.java +++ b/Mage.Sets/src/mage/cards/l/LegacysAllure.java @@ -27,8 +27,8 @@ */ package mage.cards.l; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -41,15 +41,15 @@ import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.Counter; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public class LegacysAllure extends CardImpl { @@ -57,7 +57,7 @@ public class LegacysAllure extends CardImpl { private final UUID originalId; public LegacysAllure(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{U}{U}"); // At the beginning of your upkeep, you may put a treasure counter on Legacy's Allure. this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(new Counter("treasure")), TargetController.YOU, true)); @@ -81,7 +81,7 @@ public class LegacysAllure extends CardImpl { if (sourcePermanent != null) { int numbCounters = sourcePermanent.getCounters(game).getCount("treasure"); FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power less than or equal to the number of treasure counters on " + getLogName()); - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, numbCounters + 1)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, numbCounters + 1)); ability.getTargets().clear(); ability.getTargets().add(new TargetCreaturePermanent(filter)); } diff --git a/Mage.Sets/src/mage/cards/l/LegionsOfLimDul.java b/Mage.Sets/src/mage/cards/l/LegionsOfLimDul.java index 4c1948b0894..843a84757c0 100644 --- a/Mage.Sets/src/mage/cards/l/LegionsOfLimDul.java +++ b/Mage.Sets/src/mage/cards/l/LegionsOfLimDul.java @@ -27,16 +27,18 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.LandwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -46,7 +48,7 @@ public class LegionsOfLimDul extends CardImpl { private static final FilterLandPermanent filter = new FilterLandPermanent("snow swamp"); static { - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); filter.add(new SubtypePredicate("Swamp")); } diff --git a/Mage.Sets/src/mage/cards/l/LeoninDenGuard.java b/Mage.Sets/src/mage/cards/l/LeoninDenGuard.java index 81a4c064ad5..bb61febf2d7 100644 --- a/Mage.Sets/src/mage/cards/l/LeoninDenGuard.java +++ b/Mage.Sets/src/mage/cards/l/LeoninDenGuard.java @@ -27,9 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.EquippedSourceCondition; @@ -39,9 +36,12 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki @@ -61,9 +61,9 @@ public class LeoninDenGuard extends CardImpl { this.toughness = new MageInt(3); // As long as Leonin Den-Guard is equipped, it gets +1/+1 and has vigilance. - ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), EquippedSourceCondition.getInstance(), rule1); + ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), EquippedSourceCondition.instance, rule1); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect1)); - ConditionalContinuousEffect effect2 = new ConditionalContinuousEffect(new GainAbilitySourceEffect(VigilanceAbility.getInstance()), EquippedSourceCondition.getInstance(), rule2); + ConditionalContinuousEffect effect2 = new ConditionalContinuousEffect(new GainAbilitySourceEffect(VigilanceAbility.getInstance()), EquippedSourceCondition.instance, rule2); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect2)); } diff --git a/Mage.Sets/src/mage/cards/l/LeoninSquire.java b/Mage.Sets/src/mage/cards/l/LeoninSquire.java index 4e8586ef7e8..698c1e4db45 100644 --- a/Mage.Sets/src/mage/cards/l/LeoninSquire.java +++ b/Mage.Sets/src/mage/cards/l/LeoninSquire.java @@ -27,19 +27,20 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterArtifactCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Plopman @@ -48,7 +49,7 @@ public class LeoninSquire extends CardImpl { private static final FilterArtifactCard filter = new FilterArtifactCard("target artifact card with converted mana cost 1 or less from your graveyard"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 2)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2)); } public LeoninSquire(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/l/LeovoldEmissaryOfTrest.java b/Mage.Sets/src/mage/cards/l/LeovoldEmissaryOfTrest.java index c1132783592..86360cee20f 100644 --- a/Mage.Sets/src/mage/cards/l/LeovoldEmissaryOfTrest.java +++ b/Mage.Sets/src/mage/cards/l/LeovoldEmissaryOfTrest.java @@ -51,7 +51,7 @@ public class LeovoldEmissaryOfTrest extends CardImpl { public LeovoldEmissaryOfTrest(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{G}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Advisor"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/l/LeylineOfSingularity.java b/Mage.Sets/src/mage/cards/l/LeylineOfSingularity.java index 47d13cc68ee..91c380d3683 100644 --- a/Mage.Sets/src/mage/cards/l/LeylineOfSingularity.java +++ b/Mage.Sets/src/mage/cards/l/LeylineOfSingularity.java @@ -35,12 +35,7 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.keyword.LeylineAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -103,9 +98,8 @@ class SetSupertypeAllEffect extends ContinuousEffectImpl { @Override public boolean apply(Game game, Ability source) { for (Permanent permanent: game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { - if (!permanent.getSupertype().contains("Legendary")) { - permanent.getSupertype().add("Legendary"); - } + permanent.addSuperType(SuperType.LEGENDARY); + } return true; } diff --git a/Mage.Sets/src/mage/cards/l/LibraryOfAlexandria.java b/Mage.Sets/src/mage/cards/l/LibraryOfAlexandria.java index b29ae38d4f0..b0f3cd70147 100644 --- a/Mage.Sets/src/mage/cards/l/LibraryOfAlexandria.java +++ b/Mage.Sets/src/mage/cards/l/LibraryOfAlexandria.java @@ -29,7 +29,7 @@ package mage.cards.l; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.CardsInHandCondition; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.decorator.ConditionalActivatedAbility; @@ -55,7 +55,7 @@ public class LibraryOfAlexandria extends CardImpl { Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new TapSourceCost(), - new CardsInHandCondition(CountType.EQUAL_TO, 7), + new CardsInHandCondition(ComparisonType.EQUAL_TO, 7), "")); } diff --git a/Mage.Sets/src/mage/cards/l/LiegeOfTheTangle.java b/Mage.Sets/src/mage/cards/l/LiegeOfTheTangle.java index 117bc4960bf..f3063ea85bc 100644 --- a/Mage.Sets/src/mage/cards/l/LiegeOfTheTangle.java +++ b/Mage.Sets/src/mage/cards/l/LiegeOfTheTangle.java @@ -28,8 +28,6 @@ package mage.cards.l; -import java.util.Iterator; -import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; @@ -39,12 +37,7 @@ import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterLandPermanent; import mage.game.Game; @@ -56,6 +49,9 @@ import mage.game.permanent.token.Token; import mage.target.Target; import mage.target.common.TargetLandPermanent; +import java.util.Iterator; +import java.util.UUID; + /** * * @author Loki @@ -138,7 +134,7 @@ class LiegeOfTheTangleEffect extends ContinuousEffectImpl { switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { - perm.getCardType().addAll(token.getCardType()); + perm.addCardTypes(token.getCardType()); perm.getSubtype(game).addAll(token.getSubtype(game)); } break; diff --git a/Mage.Sets/src/mage/cards/l/LieutenantKirtar.java b/Mage.Sets/src/mage/cards/l/LieutenantKirtar.java index b8c42ab8f83..741289be364 100644 --- a/Mage.Sets/src/mage/cards/l/LieutenantKirtar.java +++ b/Mage.Sets/src/mage/cards/l/LieutenantKirtar.java @@ -38,6 +38,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetAttackingCreature; @@ -49,7 +50,7 @@ public class LieutenantKirtar extends CardImpl { public LieutenantKirtar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Bird"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/l/LifeAndLimb.java b/Mage.Sets/src/mage/cards/l/LifeAndLimb.java index f3024e3fb3c..dc0708ef3dc 100644 --- a/Mage.Sets/src/mage/cards/l/LifeAndLimb.java +++ b/Mage.Sets/src/mage/cards/l/LifeAndLimb.java @@ -100,13 +100,13 @@ class LifeAndLimbEffect extends ContinuousEffectImpl { switch (layer) { case TypeChangingEffects_4: if (!permanent.isCreature()) { - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); } if (!permanent.getSubtype(game).contains("Saproling")) { permanent.getSubtype(game).add("Saproling"); } if (!permanent.isLand()) { - permanent.getCardType().add(CardType.LAND); + permanent.addCardType(CardType.LAND); } if (!permanent.getSubtype(game).contains("Forest")) { permanent.getSubtype(game).add("Forest"); diff --git a/Mage.Sets/src/mage/cards/l/LifeDeath.java b/Mage.Sets/src/mage/cards/l/LifeDeath.java index 28f858db072..8506ce86324 100644 --- a/Mage.Sets/src/mage/cards/l/LifeDeath.java +++ b/Mage.Sets/src/mage/cards/l/LifeDeath.java @@ -38,6 +38,7 @@ import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; +import mage.constants.SpellAbilityType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterCreatureCard; @@ -54,7 +55,7 @@ import mage.target.common.TargetCardInYourGraveyard; public class LifeDeath extends SplitCard { public LifeDeath(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{G}","{1}{B}",false); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{G}", "{1}{B}", SpellAbilityType.SPLIT); // Life // All lands you control become 1/1 creatures until end of turn. They're still lands. diff --git a/Mage.Sets/src/mage/cards/l/Lifeline.java b/Mage.Sets/src/mage/cards/l/Lifeline.java index 6e975658250..d48c2f24fd6 100644 --- a/Mage.Sets/src/mage/cards/l/Lifeline.java +++ b/Mage.Sets/src/mage/cards/l/Lifeline.java @@ -29,7 +29,7 @@ package mage.cards.l; import java.util.UUID; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -63,7 +63,7 @@ private static final FilterCreaturePermanent filter = new FilterCreaturePermanen // Whenever a creature dies, if another creature is on the battlefield, return the first card to the battlefield under its owner's control at the beginning of the next end step. Ability ability = new ConditionalTriggeredAbility( new DiesCreatureTriggeredAbility( Zone.BATTLEFIELD, new LifelineEffect(), false, filter, true), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0, false), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0, false), "Whenever a creature dies, if another creature is on the battlefield, return the first card to the battlefield under its owner's control at the beginning of the next end step."); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/l/Lifespinner.java b/Mage.Sets/src/mage/cards/l/Lifespinner.java index bbd200ca482..76173a3f377 100644 --- a/Mage.Sets/src/mage/cards/l/Lifespinner.java +++ b/Mage.Sets/src/mage/cards/l/Lifespinner.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -36,6 +35,7 @@ import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterPermanentCard; @@ -44,6 +44,8 @@ import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +55,7 @@ public class Lifespinner extends CardImpl { private static final FilterPermanentCard filter = new FilterPermanentCard("legendary Spirit permanent card"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); filter.add(new SubtypePredicate("Spirit")); } diff --git a/Mage.Sets/src/mage/cards/l/LilianaDeathWielder.java b/Mage.Sets/src/mage/cards/l/LilianaDeathWielder.java new file mode 100644 index 00000000000..a1005ab192d --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LilianaDeathWielder.java @@ -0,0 +1,120 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.l; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.LoyaltyAbility; +import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.filter.common.FilterCreatureCard; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.CounterPredicate; +import mage.game.Game; +import mage.players.Player; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class LilianaDeathWielder extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with a -1/-1 counter on it"); + + static { + filter.add(new CounterPredicate(CounterType.M1M1)); + } + + public LilianaDeathWielder(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{5}{B}{B}"); + + this.subtype.add("Liliana"); + + this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(5)); + + // +2: Put a -1/-1 counter on up to one target creature. + LoyaltyAbility ability = new LoyaltyAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance(1)), 2); + ability.addTarget(new TargetCreaturePermanent(0, 1)); + this.addAbility(ability); + + // -3: Destroy target creature with a -1/-1 counter on it. + ability = new LoyaltyAbility(new DestroyTargetEffect(), -3); + ability.addTarget(new TargetCreaturePermanent(filter)); + this.addAbility(ability); + + // -10: Return all creature cards from your graveyard to the battlefield. + this.addAbility(new LoyaltyAbility(new LilianaDeathWielderEffect(), -10)); + } + + public LilianaDeathWielder(final LilianaDeathWielder card) { + super(card); + } + + @Override + public LilianaDeathWielder copy() { + return new LilianaDeathWielder(this); + } +} + +class LilianaDeathWielderEffect extends OneShotEffect { + + public LilianaDeathWielderEffect() { + super(Outcome.PutCreatureInPlay); + this.staticText = "Return all creature cards from your graveyard to the battlefield"; + } + + public LilianaDeathWielderEffect(final LilianaDeathWielderEffect effect) { + super(effect); + } + + @Override + public LilianaDeathWielderEffect copy() { + return new LilianaDeathWielderEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(source.getControllerId()); + if (player != null){ + for (Card card : player.getGraveyard().getCards(new FilterCreatureCard(), game)) { + card.putOntoBattlefield(game, Zone.GRAVEYARD, source.getSourceId(), source.getControllerId()); + } + } + return true; + } +} diff --git a/Mage.Sets/src/mage/cards/l/LilianaDeathsMajesty.java b/Mage.Sets/src/mage/cards/l/LilianaDeathsMajesty.java new file mode 100644 index 00000000000..d8d044b6d4b --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LilianaDeathsMajesty.java @@ -0,0 +1,96 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.l; + +import java.util.UUID; + +import mage.abilities.LoyaltyAbility; +import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.DestroyAllEffect; +import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; +import mage.abilities.effects.common.continuous.BecomesBlackZombieAdditionEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.filter.common.FilterCreatureCard; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.game.permanent.token.ZombieToken; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author JRHerlehy + */ +public class LilianaDeathsMajesty extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("non-Zombie creatures"); + + static { + filter.add(Predicates.not(new SubtypePredicate("Zombie"))); + } + + public LilianaDeathsMajesty(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{3}{B}{B}"); + + this.subtype.add("Liliana"); + + //Starting Loyalty: 5 + this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(5)); + + // +1: Create a 2/2 black Zombie creature token. Put the top two cards of your library into your graveyard. + LoyaltyAbility ability = new LoyaltyAbility(new CreateTokenEffect(new ZombieToken()), 1); + ability.addEffect(new PutTopCardOfLibraryIntoGraveControllerEffect(2)); + this.addAbility(ability); + + // -3: Return target creature card from your graveyard to the battlefield. That creature is a black Zombie in addition to its other colors and types. + ability = new LoyaltyAbility(new ReturnFromGraveyardToBattlefieldTargetEffect(), -3); + ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard"))); + ability.addEffect(new BecomesBlackZombieAdditionEffect()); + this.addAbility(ability); + + // -7: Destroy all non-Zombie creatures. + ability = new LoyaltyAbility(new DestroyAllEffect(filter), -7); + this.addAbility(ability); + } + + public LilianaDeathsMajesty(final LilianaDeathsMajesty card) { + super(card); + } + + @Override + public LilianaDeathsMajesty copy() { + return new LilianaDeathsMajesty(this); + } +} diff --git a/Mage.Sets/src/mage/cards/l/LilianaDefiantNecromancer.java b/Mage.Sets/src/mage/cards/l/LilianaDefiantNecromancer.java index ac433f8daa2..016ff509d3f 100644 --- a/Mage.Sets/src/mage/cards/l/LilianaDefiantNecromancer.java +++ b/Mage.Sets/src/mage/cards/l/LilianaDefiantNecromancer.java @@ -27,8 +27,8 @@ */ package mage.cards.l; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.LoyaltyAbility; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; @@ -43,11 +43,7 @@ import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; -import mage.filter.Filter; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; @@ -59,6 +55,8 @@ import mage.game.command.Emblem; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -68,7 +66,7 @@ public class LilianaDefiantNecromancer extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("nonlegendary creature with converted mana cost X from your graveyard"); static { - filter.add(Predicates.not(new SupertypePredicate("Legendary"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.LEGENDARY))); } UUID ability2Id; @@ -105,7 +103,7 @@ public class LilianaDefiantNecromancer extends CardImpl { } } FilterCard newFilter = filter.copy(); - newFilter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, cmc)); + newFilter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, cmc)); ability.getTargets().clear(); ability.addTarget(new TargetCardInYourGraveyard(newFilter)); } diff --git a/Mage.Sets/src/mage/cards/l/LilianaHereticalHealer.java b/Mage.Sets/src/mage/cards/l/LilianaHereticalHealer.java index a784534fbcf..2b7cc860ba6 100644 --- a/Mage.Sets/src/mage/cards/l/LilianaHereticalHealer.java +++ b/Mage.Sets/src/mage/cards/l/LilianaHereticalHealer.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.Gender; import mage.abilities.common.DiesCreatureTriggeredAbility; @@ -38,6 +37,7 @@ import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -46,6 +46,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.permanent.token.ZombieToken; +import java.util.UUID; + /** * * @author LevelX2 @@ -62,7 +64,7 @@ public class LilianaHereticalHealer extends CardImpl { public LilianaHereticalHealer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/l/LilianasInfluence.java b/Mage.Sets/src/mage/cards/l/LilianasInfluence.java new file mode 100644 index 00000000000..a72273df415 --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LilianasInfluence.java @@ -0,0 +1,74 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.l; + +import java.util.UUID; +import mage.abilities.effects.common.counter.AddCountersAllEffect; +import mage.abilities.effects.common.search.SearchLibraryGraveyardPutInHandEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.counters.CounterType; +import mage.filter.FilterCard; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.NamePredicate; +import mage.filter.predicate.permanent.ControllerPredicate; + +/** + * + * @author fireshoes + */ +public class LilianasInfluence extends CardImpl { + + private final static FilterCard filter = new FilterCard("Liliana, Death Wielder"); + private final static FilterCreaturePermanent filterCreatures = new FilterCreaturePermanent("creature you don't control"); + + static { + filter.add(new NamePredicate("Liliana, Death Wielder")); + filterCreatures.add(new ControllerPredicate(TargetController.NOT_YOU)); + } + + public LilianasInfluence(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{B}{B}"); + + // Put a -1/-1 counter on each creature you don't control. You may search your library and/or graveyard for a card named Liliana, Death Wielder, + // reveal it, and put it into your hand. If you search your library this way, shuffle it. + getSpellAbility().addEffect(new AddCountersAllEffect(CounterType.M1M1.createInstance(1), filterCreatures)); + getSpellAbility().addEffect(new SearchLibraryGraveyardPutInHandEffect(filter)); + } + + public LilianasInfluence(final LilianasInfluence card) { + super(card); + } + + @Override + public LilianasInfluence copy() { + return new LilianasInfluence(this); + } +} diff --git a/Mage.Sets/src/mage/cards/l/LilianasMastery.java b/Mage.Sets/src/mage/cards/l/LilianasMastery.java new file mode 100644 index 00000000000..36979f91662 --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LilianasMastery.java @@ -0,0 +1,74 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.l; + +import java.util.UUID; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.game.permanent.token.ZombieToken; + +/** + * + * @author fireshoes + */ +public class LilianasMastery extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Zombie creatures"); + + static { + filter.add(new SubtypePredicate("Zombie")); + } + + public LilianasMastery(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{B}{B}"); + + // Zombies creatures you control get +1/+1. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, false))); + + // When Liliana's Army enters the battlefield, create two 2/2 black Zombie creature tokens. + this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ZombieToken(), 2))); + } + + public LilianasMastery(final LilianasMastery card) { + super(card); + } + + @Override + public LilianasMastery copy() { + return new LilianasMastery(this); + } +} diff --git a/Mage.Sets/src/mage/cards/l/LimDulTheNecromancer.java b/Mage.Sets/src/mage/cards/l/LimDulTheNecromancer.java index b4d1e84a783..69764d9802b 100644 --- a/Mage.Sets/src/mage/cards/l/LimDulTheNecromancer.java +++ b/Mage.Sets/src/mage/cards/l/LimDulTheNecromancer.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; @@ -41,11 +40,7 @@ import mage.abilities.effects.common.continuous.AddCardSubTypeTargetEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -56,6 +51,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -72,7 +69,7 @@ public class LimDulTheNecromancer extends CardImpl { public LimDulTheNecromancer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/l/LimitsOfSolidarity.java b/Mage.Sets/src/mage/cards/l/LimitsOfSolidarity.java new file mode 100644 index 00000000000..f5a4aa8f27a --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LimitsOfSolidarity.java @@ -0,0 +1,76 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.l; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.UntapTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.effects.common.continuous.GainControlTargetEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.abilities.keyword.HasteAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class LimitsOfSolidarity extends CardImpl { + + public LimitsOfSolidarity(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}"); + + // Gain control of target creature until end of turn. Untap that creature. It gains haste until end of turn. + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addEffect(new GainControlTargetEffect(Duration.EndOfTurn)); + Effect effect = new UntapTargetEffect(); + effect.setText("Untap it"); + this.getSpellAbility().addEffect(effect); + effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn); + effect.setText("It gains haste until end of turn"); + this.getSpellAbility().addEffect(effect); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + + } + + public LimitsOfSolidarity(final LimitsOfSolidarity card) { + super(card); + } + + @Override + public LimitsOfSolidarity copy() { + return new LimitsOfSolidarity(this); + } +} diff --git a/Mage.Sets/src/mage/cards/l/LinSivviDefiantHero.java b/Mage.Sets/src/mage/cards/l/LinSivviDefiantHero.java index dbc0f834527..9d09be812ce 100644 --- a/Mage.Sets/src/mage/cards/l/LinSivviDefiantHero.java +++ b/Mage.Sets/src/mage/cards/l/LinSivviDefiantHero.java @@ -27,9 +27,9 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; @@ -39,11 +39,7 @@ import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -54,6 +50,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes @@ -71,7 +69,7 @@ public class LinSivviDefiantHero extends CardImpl { public LinSivviDefiantHero(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rebel"); this.power = new MageInt(1); @@ -126,7 +124,7 @@ class LinSivviDefiantHeroEffect extends OneShotEffect { int xCost = source.getManaCostsToPay().getX(); FilterPermanentCard filter = new FilterPermanentCard(new StringBuilder("Rebel permanent card with converted mana cost ").append(xCost).append(" or less").toString()); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, xCost + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, xCost + 1)); filter.add(new SubtypePredicate("Rebel")); TargetCardInLibrary target = new TargetCardInLibrary(filter); diff --git a/Mage.Sets/src/mage/cards/l/LinessaZephyrMage.java b/Mage.Sets/src/mage/cards/l/LinessaZephyrMage.java index 11275a9a6bd..5546641ad6c 100644 --- a/Mage.Sets/src/mage/cards/l/LinessaZephyrMage.java +++ b/Mage.Sets/src/mage/cards/l/LinessaZephyrMage.java @@ -27,9 +27,9 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.abilityword.GrandeurAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,8 +40,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -55,6 +55,8 @@ import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 @@ -65,7 +67,7 @@ public class LinessaZephyrMage extends CardImpl { public LinessaZephyrMage(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); @@ -96,7 +98,7 @@ public class LinessaZephyrMage extends CardImpl { int xValue = ability.getManaCostsToPay().getX(); ability.getTargets().clear(); FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with converted mana cost " + xValue); - filter.add(new ConvertedManaCostPredicate(ComparisonType.Equal, xValue)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue)); ability.getTargets().add(new TargetCreaturePermanent(filter)); } } diff --git a/Mage.Sets/src/mage/cards/l/LinvalaKeeperOfSilence.java b/Mage.Sets/src/mage/cards/l/LinvalaKeeperOfSilence.java index 8dce1d64f44..5e7342810b2 100644 --- a/Mage.Sets/src/mage/cards/l/LinvalaKeeperOfSilence.java +++ b/Mage.Sets/src/mage/cards/l/LinvalaKeeperOfSilence.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -37,10 +36,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Loki @@ -49,7 +51,7 @@ public class LinvalaKeeperOfSilence extends CardImpl { public LinvalaKeeperOfSilence(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/l/LinvalaThePreserver.java b/Mage.Sets/src/mage/cards/l/LinvalaThePreserver.java index cb0e2e8cb97..aa656cfc4f2 100644 --- a/Mage.Sets/src/mage/cards/l/LinvalaThePreserver.java +++ b/Mage.Sets/src/mage/cards/l/LinvalaThePreserver.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.OpponentControlsMoreCondition; @@ -39,9 +38,12 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author fireshoes @@ -50,7 +52,7 @@ public class LinvalaThePreserver extends CardImpl { public LinvalaThePreserver(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(5); this.toughness = new MageInt(5); @@ -60,7 +62,7 @@ public class LinvalaThePreserver extends CardImpl { // When Linvala, the Preserver enters the battlefield, if an opponent has more life than you, you gain 5 life. this.addAbility(new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(5), false), - new OpponentHasMoreLifeCondition(), + OpponentHasMoreLifeCondition.instance, "When {this} enters the battlefield, if an opponent has more life than you, you gain 5 life.")); // When Linvala enters the battlefield, if an opponent controls more creatures than you, create a 3/3 white Angel creature token with flying. diff --git a/Mage.Sets/src/mage/cards/l/Liquify.java b/Mage.Sets/src/mage/cards/l/Liquify.java index 3030960f085..be33874a238 100644 --- a/Mage.Sets/src/mage/cards/l/Liquify.java +++ b/Mage.Sets/src/mage/cards/l/Liquify.java @@ -27,17 +27,18 @@ */ package mage.cards.l; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.CounterTargetWithReplacementEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LoneFox @@ -47,7 +48,7 @@ public class Liquify extends CardImpl { private static final FilterSpell filter = new FilterSpell("spell with converted mana cost 3 or less"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public Liquify(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/l/LiuBeiLordOfShu.java b/Mage.Sets/src/mage/cards/l/LiuBeiLordOfShu.java index ee3970a6f23..f00b147a5ea 100644 --- a/Mage.Sets/src/mage/cards/l/LiuBeiLordOfShu.java +++ b/Mage.Sets/src/mage/cards/l/LiuBeiLordOfShu.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -38,11 +37,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.NamePredicate; +import java.util.UUID; + /** * * @author LoneFox @@ -58,7 +60,7 @@ public class LiuBeiLordOfShu extends CardImpl { public LiuBeiLordOfShu(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/l/LivingPlane.java b/Mage.Sets/src/mage/cards/l/LivingPlane.java index 91d6f49743d..f1f0d84a0cc 100644 --- a/Mage.Sets/src/mage/cards/l/LivingPlane.java +++ b/Mage.Sets/src/mage/cards/l/LivingPlane.java @@ -35,6 +35,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; import mage.game.permanent.token.Token; @@ -47,7 +48,7 @@ public class LivingPlane extends CardImpl { public LivingPlane(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}{G}"); - this.supertype.add("World"); + this.addSuperType(SuperType.WORLD); // All lands are 1/1 creatures that are still lands. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesCreatureAllEffect(new LivingPlaneToken(), "lands", new FilterLandPermanent("lands"), Duration.WhileOnBattlefield))); diff --git a/Mage.Sets/src/mage/cards/l/LivonyaSilone.java b/Mage.Sets/src/mage/cards/l/LivonyaSilone.java index d3bac243f90..c0cfd725a90 100644 --- a/Mage.Sets/src/mage/cards/l/LivonyaSilone.java +++ b/Mage.Sets/src/mage/cards/l/LivonyaSilone.java @@ -34,6 +34,7 @@ import mage.abilities.keyword.LandwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; @@ -46,12 +47,12 @@ public class LivonyaSilone extends CardImpl { private static final FilterLandPermanent filter = new FilterLandPermanent("Legendary land"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public LivonyaSilone(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}{G}{G}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/l/LlawanCephalidEmpress.java b/Mage.Sets/src/mage/cards/l/LlawanCephalidEmpress.java index f1bcb71244f..487ac653c31 100644 --- a/Mage.Sets/src/mage/cards/l/LlawanCephalidEmpress.java +++ b/Mage.Sets/src/mage/cards/l/LlawanCephalidEmpress.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.ObjectColor; @@ -39,11 +38,7 @@ import mage.abilities.effects.common.ReturnToHandFromBattlefieldAllEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -53,6 +48,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -69,7 +66,7 @@ public class LlawanCephalidEmpress extends CardImpl { public LlawanCephalidEmpress(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Cephalid"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/l/Lobotomy.java b/Mage.Sets/src/mage/cards/l/Lobotomy.java index 2b5fb885694..ac6f91080e0 100644 --- a/Mage.Sets/src/mage/cards/l/Lobotomy.java +++ b/Mage.Sets/src/mage/cards/l/Lobotomy.java @@ -27,17 +27,13 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; @@ -50,6 +46,8 @@ import mage.target.TargetCard; import mage.target.TargetPlayer; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -79,7 +77,7 @@ class LobotomyEffect extends OneShotEffect { private static final FilterCard filter = new FilterCard("card other than a basic land card"); static { - filter.add(Predicates.not(Predicates.and(new CardTypePredicate(CardType.LAND), new SupertypePredicate("Basic")))); + filter.add(Predicates.not(Predicates.and(new CardTypePredicate(CardType.LAND), new SupertypePredicate(SuperType.BASIC)))); } public LobotomyEffect() { diff --git a/Mage.Sets/src/mage/cards/l/LoneRider.java b/Mage.Sets/src/mage/cards/l/LoneRider.java index e490bb46048..05e68e53d7b 100644 --- a/Mage.Sets/src/mage/cards/l/LoneRider.java +++ b/Mage.Sets/src/mage/cards/l/LoneRider.java @@ -27,13 +27,11 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; -import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.OnEventTriggeredAbility; -import mage.abilities.condition.Condition; -import mage.abilities.condition.IntCompareCondition; +import mage.abilities.condition.common.YouGainedLifeCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.FirstStrikeAbility; @@ -43,10 +41,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.i.ItThatRidesAsOne; import mage.constants.CardType; -import mage.game.Game; import mage.game.events.GameEvent; import mage.watchers.common.PlayerGainedLifeWatcher; +import java.util.UUID; + /** * * @author fireshoes @@ -74,7 +73,7 @@ public class LoneRider extends CardImpl { // At the beginning of the end step, if you gained 3 or more life this turn, transform Lone Rider. this.addAbility(new TransformAbility()); TriggeredAbility triggered = new OnEventTriggeredAbility(GameEvent.EventType.END_TURN_STEP_PRE, "beginning of the end step", true, new TransformSourceEffect(true)); - this.addAbility(new ConditionalTriggeredAbility(triggered, new YouGainedLifeCondition(Condition.ComparisonType.GreaterThan, 2), ruleText), new PlayerGainedLifeWatcher()); + this.addAbility(new ConditionalTriggeredAbility(triggered, new YouGainedLifeCondition(ComparisonType.MORE_THAN, 2), ruleText), new PlayerGainedLifeWatcher()); } public LoneRider(final LoneRider card) { @@ -85,26 +84,4 @@ public class LoneRider extends CardImpl { public LoneRider copy() { return new LoneRider(this); } -} - -class YouGainedLifeCondition extends IntCompareCondition { - - public YouGainedLifeCondition(Condition.ComparisonType type, int value) { - super(type, value); - } - - @Override - protected int getInputValue(Game game, Ability source) { - int gainedLife = 0; - PlayerGainedLifeWatcher watcher = (PlayerGainedLifeWatcher) game.getState().getWatchers().get(PlayerGainedLifeWatcher.class.getName()); - if (watcher != null) { - gainedLife = watcher.getLiveGained(source.getControllerId()); - } - return gainedLife; - } - - @Override - public String toString() { - return "if you gained 3 or more life this turn "; - } -} +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/l/LongRoadHome.java b/Mage.Sets/src/mage/cards/l/LongRoadHome.java index 1dbb18589f0..43a94cfd71e 100644 --- a/Mage.Sets/src/mage/cards/l/LongRoadHome.java +++ b/Mage.Sets/src/mage/cards/l/LongRoadHome.java @@ -58,7 +58,7 @@ import mage.target.common.TargetCreaturePermanent; public class LongRoadHome extends CardImpl { public LongRoadHome(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}"); // Exile target creature. At the beginning of the next end step, return that card to the battlefield under its owner's control with a +1/+1 counter on it. this.getSpellAbility().addEffect(new LongRoadHomeEffect()); @@ -163,7 +163,7 @@ class LongRoadHomeEntersBattlefieldEffect extends ReplacementEffectImpl { public LongRoadHomeEntersBattlefieldEffect(MageObjectReference objectToReturn) { super(Duration.Custom, Outcome.BoostCreature); this.objectToReturn = objectToReturn; - staticText = "that card returns to the battlefield with a +1/+1 counter on it"; + staticText = "that card to the battlefield under its owner's control with a +1/+1 counter on it"; } public LongRoadHomeEntersBattlefieldEffect(LongRoadHomeEntersBattlefieldEffect effect) { @@ -188,7 +188,7 @@ class LongRoadHomeEntersBattlefieldEffect extends ReplacementEffectImpl { public boolean replaceEvent(GameEvent event, Ability source, Game game) { Permanent permanent = ((EntersTheBattlefieldEvent) event).getTarget(); if (permanent != null) { - permanent.addCounters(CounterType.P1P1.createInstance(), source, game); + permanent.addCounters(CounterType.P1P1.createInstance(), source, game, event.getAppliedEffects()); discard(); // use only once } return false; diff --git a/Mage.Sets/src/mage/cards/l/LordOfLineage.java b/Mage.Sets/src/mage/cards/l/LordOfLineage.java index 2f557c675cd..c7c25e6a969 100644 --- a/Mage.Sets/src/mage/cards/l/LordOfLineage.java +++ b/Mage.Sets/src/mage/cards/l/LordOfLineage.java @@ -28,10 +28,6 @@ package mage.cards.l; import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +37,9 @@ import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.Token; @@ -64,7 +63,7 @@ public class LordOfLineage extends CardImpl { this.power = new MageInt(5); this.toughness = new MageInt(5); - // this card is the second face of double-faced card + // this card is the second face of double-faced card Bloodline Keeper this.nightCard = true; this.transformable = true; diff --git a/Mage.Sets/src/mage/cards/l/LordOfTheAccursed.java b/Mage.Sets/src/mage/cards/l/LordOfTheAccursed.java new file mode 100644 index 00000000000..883cc1a266e --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LordOfTheAccursed.java @@ -0,0 +1,84 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.l; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.abilities.effects.common.continuous.GainAbilityAllEffect; +import mage.abilities.keyword.MenaceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; + +/** + * + * @author jonubuu + */ +public class LordOfTheAccursed extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Zombie", "Zombie creatures"); + + public LordOfTheAccursed(UUID ownerId, CardSetInfo setInfo) { + super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); + this.subtype.add("Zombie"); + + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // Other Zombie creatures get +1/+1. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true))); + + //{2}{B}, Tap: All Zombies gain menace until end of turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect( + new MenaceAbility(), + Duration.EndOfTurn, + filter, "All Zombies gains menace until end of turn."), + new ManaCostsImpl("{1}{B}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public LordOfTheAccursed(final LordOfTheAccursed card) { + super(card); + } + + @Override + public LordOfTheAccursed copy() { + return new LordOfTheAccursed(this); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/l/LordOfTresserhorn.java b/Mage.Sets/src/mage/cards/l/LordOfTresserhorn.java index 6548339fda2..f6d1b1aa67b 100644 --- a/Mage.Sets/src/mage/cards/l/LordOfTresserhorn.java +++ b/Mage.Sets/src/mage/cards/l/LordOfTresserhorn.java @@ -41,6 +41,7 @@ import mage.abilities.effects.common.SacrificeControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetOpponent; @@ -53,7 +54,7 @@ public class LordOfTresserhorn extends CardImpl { public LordOfTresserhorn(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{B}{R}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.power = new MageInt(10); diff --git a/Mage.Sets/src/mage/cards/l/LorthosTheTidemaker.java b/Mage.Sets/src/mage/cards/l/LorthosTheTidemaker.java index 9da70d6c6cd..60d1f7b2ff0 100644 --- a/Mage.Sets/src/mage/cards/l/LorthosTheTidemaker.java +++ b/Mage.Sets/src/mage/cards/l/LorthosTheTidemaker.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -38,9 +37,12 @@ import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterPermanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -51,7 +53,7 @@ public class LorthosTheTidemaker extends CardImpl { public LorthosTheTidemaker(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Octopus"); this.power = new MageInt(8); diff --git a/Mage.Sets/src/mage/cards/l/LostLegacy.java b/Mage.Sets/src/mage/cards/l/LostLegacy.java index c92cff3af8f..fc60ec788b4 100644 --- a/Mage.Sets/src/mage/cards/l/LostLegacy.java +++ b/Mage.Sets/src/mage/cards/l/LostLegacy.java @@ -51,7 +51,7 @@ public class LostLegacy extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{B}{B}"); // Name a nonartifact, nonland card. Search target player's graveyard, hand and library for any number of cards with that name and exile them. That player shuffles his or her library, then draws a card for each card exiled from hand this way. - this.getSpellAbility().addEffect((new NameACardEffect(NameACardEffect.TypeOfName.NON_ARTFIACT_AND_NON_LAND_NAME))); + this.getSpellAbility().addEffect((new NameACardEffect(NameACardEffect.TypeOfName.NON_ARTIFACT_AND_NON_LAND_NAME))); this.getSpellAbility().addTarget(new TargetPlayer()); this.getSpellAbility().addEffect(new LostLegacyEffect()); } diff --git a/Mage.Sets/src/mage/cards/l/LovisaColdeyes.java b/Mage.Sets/src/mage/cards/l/LovisaColdeyes.java index 171cab80704..565341cbddb 100644 --- a/Mage.Sets/src/mage/cards/l/LovisaColdeyes.java +++ b/Mage.Sets/src/mage/cards/l/LovisaColdeyes.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -39,11 +38,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LoneFox @@ -58,7 +60,7 @@ public class LovisaColdeyes extends CardImpl { public LovisaColdeyes(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.power = new MageInt(3); this.toughness = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/l/LoyalRetainers.java b/Mage.Sets/src/mage/cards/l/LoyalRetainers.java index c7ffb2726f5..b0b5c76c3de 100644 --- a/Mage.Sets/src/mage/cards/l/LoyalRetainers.java +++ b/Mage.Sets/src/mage/cards/l/LoyalRetainers.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -37,11 +36,14 @@ import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffec import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -51,7 +53,7 @@ public class LoyalRetainers extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("legendary creature card from your graveyard"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public LoyalRetainers(UUID ownerId, CardSetInfo setInfo) { @@ -63,7 +65,7 @@ public class LoyalRetainers extends CardImpl { this.toughness = new MageInt(1); // Sacrifice Loyal Retainers: Return target legendary creature card from your graveyard to the battlefield. Activate this ability only during your turn, before attackers are declared. - Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect(), new SacrificeSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect(), new SacrificeSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCardInYourGraveyard(filter)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/l/LuBuMasterAtArms.java b/Mage.Sets/src/mage/cards/l/LuBuMasterAtArms.java index b046e3de6a2..542385ed554 100644 --- a/Mage.Sets/src/mage/cards/l/LuBuMasterAtArms.java +++ b/Mage.Sets/src/mage/cards/l/LuBuMasterAtArms.java @@ -27,13 +27,15 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.HorsemanshipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -43,7 +45,7 @@ public class LuBuMasterAtArms extends CardImpl { public LuBuMasterAtArms(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/l/LuMengWuGeneral.java b/Mage.Sets/src/mage/cards/l/LuMengWuGeneral.java index 5b52be75989..0d52da54046 100644 --- a/Mage.Sets/src/mage/cards/l/LuMengWuGeneral.java +++ b/Mage.Sets/src/mage/cards/l/LuMengWuGeneral.java @@ -27,12 +27,14 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HorsemanshipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -42,7 +44,7 @@ public class LuMengWuGeneral extends CardImpl { public LuMengWuGeneral(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/l/LuSuWuAdvisor.java b/Mage.Sets/src/mage/cards/l/LuSuWuAdvisor.java index 479a6d525b1..8a78445e6ae 100644 --- a/Mage.Sets/src/mage/cards/l/LuSuWuAdvisor.java +++ b/Mage.Sets/src/mage/cards/l/LuSuWuAdvisor.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -37,8 +36,11 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes @@ -47,7 +49,7 @@ public class LuSuWuAdvisor extends CardImpl { public LuSuWuAdvisor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); this.power = new MageInt(1); @@ -55,7 +57,7 @@ public class LuSuWuAdvisor extends CardImpl { // {tap}: Draw a card. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new DrawCardSourceControllerEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new DrawCardSourceControllerEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/l/LuXunScholarGeneral.java b/Mage.Sets/src/mage/cards/l/LuXunScholarGeneral.java index adc14bc0af8..9539aeffeb9 100644 --- a/Mage.Sets/src/mage/cards/l/LuXunScholarGeneral.java +++ b/Mage.Sets/src/mage/cards/l/LuXunScholarGeneral.java @@ -35,6 +35,7 @@ import mage.abilities.keyword.HorsemanshipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; /** * @@ -44,7 +45,7 @@ public class LuXunScholarGeneral extends CardImpl { public LuXunScholarGeneral(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/l/LudevicNecroAlchemist.java b/Mage.Sets/src/mage/cards/l/LudevicNecroAlchemist.java index bb323aeeaf6..93e646d334f 100644 --- a/Mage.Sets/src/mage/cards/l/LudevicNecroAlchemist.java +++ b/Mage.Sets/src/mage/cards/l/LudevicNecroAlchemist.java @@ -27,8 +27,6 @@ */ package mage.cards.l; -import java.util.Objects; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -37,15 +35,15 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.PartnerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; import mage.players.PlayerList; import mage.watchers.common.PlayerLostLifeWatcher; +import java.util.Objects; +import java.util.UUID; + /** * * @author spjspj @@ -55,7 +53,7 @@ public class LudevicNecroAlchemist extends CardImpl { public LudevicNecroAlchemist(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/l/LukeSkywalker.java b/Mage.Sets/src/mage/cards/l/LukeSkywalker.java index 4c2fbd0a2de..cb0dfa4e72a 100644 --- a/Mage.Sets/src/mage/cards/l/LukeSkywalker.java +++ b/Mage.Sets/src/mage/cards/l/LukeSkywalker.java @@ -43,6 +43,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; @@ -64,7 +65,7 @@ public class LukeSkywalker extends CardImpl { public LukeSkywalker(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{W}{U}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Jedi"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/l/LuxaRiverShrine.java b/Mage.Sets/src/mage/cards/l/LuxaRiverShrine.java new file mode 100644 index 00000000000..acf3e5b15c4 --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LuxaRiverShrine.java @@ -0,0 +1,77 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.l; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.SourceHasCounterCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.decorator.ConditionalActivatedAbility; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.counters.CounterType; + +/** + * + * @author jeffwadsworth + */ +public class LuxaRiverShrine extends CardImpl { + + private static final String rule = "{T}: You gain 2 life. Activate this ability only if there are three or more brick counters on {this}."; + + public LuxaRiverShrine(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); + + // {1}, {T}: You gain 1 life. Put a brick counter on Luxa River Shrine. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(1), new ManaCostsImpl("{1}")); + ability.addCost(new TapSourceCost()); + ability.addEffect(new AddCountersSourceEffect(CounterType.BRICK.createInstance())); + this.addAbility(ability); + + // {T}: You gain 2 life. Activate this ability only if there are three or more brick counters on Luxa River Shrine. + Condition condition = new SourceHasCounterCondition(CounterType.BRICK, 3, Integer.MAX_VALUE); + this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(2), new TapSourceCost(), condition, rule)); + + } + + public LuxaRiverShrine(final LuxaRiverShrine card) { + super(card); + } + + @Override + public LuxaRiverShrine copy() { + return new LuxaRiverShrine(this); + } +} diff --git a/Mage.Sets/src/mage/cards/l/LyzoldaTheBloodWitch.java b/Mage.Sets/src/mage/cards/l/LyzoldaTheBloodWitch.java index 771f28b946c..7e6990978b9 100644 --- a/Mage.Sets/src/mage/cards/l/LyzoldaTheBloodWitch.java +++ b/Mage.Sets/src/mage/cards/l/LyzoldaTheBloodWitch.java @@ -27,7 +27,6 @@ */ package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -43,6 +42,7 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.ColorPredicate; @@ -51,6 +51,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Quercitron @@ -67,7 +69,7 @@ public class LyzoldaTheBloodWitch extends CardImpl { public LyzoldaTheBloodWitch(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); diff --git a/Mage.Sets/src/mage/cards/m/MaChaoWesternWarrior.java b/Mage.Sets/src/mage/cards/m/MaChaoWesternWarrior.java index f3f1ef7798f..8dd4313ac17 100644 --- a/Mage.Sets/src/mage/cards/m/MaChaoWesternWarrior.java +++ b/Mage.Sets/src/mage/cards/m/MaChaoWesternWarrior.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksAloneTriggeredAbility; import mage.abilities.effects.Effect; @@ -37,6 +36,9 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -46,7 +48,7 @@ public class MaChaoWesternWarrior extends CardImpl { public MaChaoWesternWarrior(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/m/MaceWindu.java b/Mage.Sets/src/mage/cards/m/MaceWindu.java index 044ab4cf0f7..b728f4b90e1 100644 --- a/Mage.Sets/src/mage/cards/m/MaceWindu.java +++ b/Mage.Sets/src/mage/cards/m/MaceWindu.java @@ -27,21 +27,23 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.keyword.FlashAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.MeditateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterSpellOrPermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetSpellOrPermanent; +import java.util.UUID; + /** * * @author Styxo @@ -56,7 +58,7 @@ public class MaceWindu extends CardImpl { public MaceWindu(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Jedi"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/m/MadblindMountain.java b/Mage.Sets/src/mage/cards/m/MadblindMountain.java index bfd4650305c..a8193eea99b 100644 --- a/Mage.Sets/src/mage/cards/m/MadblindMountain.java +++ b/Mage.Sets/src/mage/cards/m/MadblindMountain.java @@ -30,7 +30,7 @@ package mage.cards.m; import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.common.TapSourceCost; @@ -71,7 +71,7 @@ public class MadblindMountain extends CardImpl { Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new ShuffleLibrarySourceEffect(), new ManaCostsImpl("{R}"), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1)); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1)); ability.addCost(new TapSourceCost()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/m/MaelstromWanderer.java b/Mage.Sets/src/mage/cards/m/MaelstromWanderer.java index 426d0016d9e..c765e2f10a6 100644 --- a/Mage.Sets/src/mage/cards/m/MaelstromWanderer.java +++ b/Mage.Sets/src/mage/cards/m/MaelstromWanderer.java @@ -29,9 +29,7 @@ package mage.cards.m; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; +import mage.constants.*; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -39,7 +37,6 @@ import mage.abilities.keyword.CascadeAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; @@ -56,7 +53,7 @@ public class MaelstromWanderer extends CardImpl { public MaelstromWanderer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/m/MagaTraitorToMortals.java b/Mage.Sets/src/mage/cards/m/MagaTraitorToMortals.java index 87cb2a28b9a..3b28f85f7c9 100644 --- a/Mage.Sets/src/mage/cards/m/MagaTraitorToMortals.java +++ b/Mage.Sets/src/mage/cards/m/MagaTraitorToMortals.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -38,9 +37,12 @@ import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.counters.CounterType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 @@ -49,7 +51,7 @@ public class MagaTraitorToMortals extends CardImpl { public MagaTraitorToMortals(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{X}{B}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/m/MagetaTheLion.java b/Mage.Sets/src/mage/cards/m/MagetaTheLion.java index 01ae411a254..7b0429d38a3 100644 --- a/Mage.Sets/src/mage/cards/m/MagetaTheLion.java +++ b/Mage.Sets/src/mage/cards/m/MagetaTheLion.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +37,7 @@ import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.FilterPermanent; @@ -45,6 +45,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** * * @author fireshoes @@ -60,7 +62,7 @@ public class MagetaTheLion extends CardImpl { public MagetaTheLion(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Spellshaper"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/m/MagnigothTreefolk.java b/Mage.Sets/src/mage/cards/m/MagnigothTreefolk.java index ce902c85162..f7efecadb5b 100644 --- a/Mage.Sets/src/mage/cards/m/MagnigothTreefolk.java +++ b/Mage.Sets/src/mage/cards/m/MagnigothTreefolk.java @@ -30,7 +30,7 @@ package mage.cards.m; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalContinuousEffect; @@ -69,23 +69,23 @@ public class MagnigothTreefolk extends CardImpl { Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new GainAbilitySourceEffect(new PlainswalkAbility()), - new PermanentsOnTheBattlefieldCondition(filterPlains, CountType.MORE_THAN, 0, true), + new PermanentsOnTheBattlefieldCondition(filterPlains, ComparisonType.MORE_THAN, 0, true), "Domain — For each basic land type among lands you control, {this} has landwalk of that type.")); ability.addEffect(new ConditionalContinuousEffect( new GainAbilitySourceEffect(new IslandwalkAbility(), Duration.WhileOnBattlefield, false, true), - new PermanentsOnTheBattlefieldCondition(filterIsland, CountType.MORE_THAN, 0, true), + new PermanentsOnTheBattlefieldCondition(filterIsland, ComparisonType.MORE_THAN, 0, true), "")); ability.addEffect(new ConditionalContinuousEffect( new GainAbilitySourceEffect(new SwampwalkAbility(), Duration.WhileOnBattlefield, false, true), - new PermanentsOnTheBattlefieldCondition(filterSwamp, CountType.MORE_THAN, 0, true), + new PermanentsOnTheBattlefieldCondition(filterSwamp, ComparisonType.MORE_THAN, 0, true), "")); ability.addEffect(new ConditionalContinuousEffect( new GainAbilitySourceEffect(new MountainwalkAbility(), Duration.WhileOnBattlefield, false, true), - new PermanentsOnTheBattlefieldCondition(filterMountain, CountType.MORE_THAN, 0, true), + new PermanentsOnTheBattlefieldCondition(filterMountain, ComparisonType.MORE_THAN, 0, true), "")); ability.addEffect(new ConditionalContinuousEffect( new GainAbilitySourceEffect(new ForestwalkAbility(), Duration.WhileOnBattlefield, false, true), - new PermanentsOnTheBattlefieldCondition(filterForest, CountType.MORE_THAN, 0, true), + new PermanentsOnTheBattlefieldCondition(filterForest, ComparisonType.MORE_THAN, 0, true), "")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/m/MagusOfTheLibrary.java b/Mage.Sets/src/mage/cards/m/MagusOfTheLibrary.java index 3d4447de07e..123122e3255 100644 --- a/Mage.Sets/src/mage/cards/m/MagusOfTheLibrary.java +++ b/Mage.Sets/src/mage/cards/m/MagusOfTheLibrary.java @@ -29,7 +29,7 @@ package mage.cards.m; import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.CardsInHandCondition; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.decorator.ConditionalActivatedAbility; @@ -61,7 +61,7 @@ public class MagusOfTheLibrary extends CardImpl { Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new TapSourceCost(), - new CardsInHandCondition(CountType.EQUAL_TO, 7), + new CardsInHandCondition(ComparisonType.EQUAL_TO, 7), "")); } diff --git a/Mage.Sets/src/mage/cards/m/MagusOfTheMoon.java b/Mage.Sets/src/mage/cards/m/MagusOfTheMoon.java index b659af86f9e..92460ddf872 100644 --- a/Mage.Sets/src/mage/cards/m/MagusOfTheMoon.java +++ b/Mage.Sets/src/mage/cards/m/MagusOfTheMoon.java @@ -53,7 +53,7 @@ public class MagusOfTheMoon extends CardImpl { private static final FilterLandPermanent filter = new FilterLandPermanent(); static { - filter.add(Predicates.not(new SupertypePredicate("Basic"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); } public MagusOfTheMoon(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/m/MajorTeroh.java b/Mage.Sets/src/mage/cards/m/MajorTeroh.java index 97846c4ba81..95b8b3107e7 100644 --- a/Mage.Sets/src/mage/cards/m/MajorTeroh.java +++ b/Mage.Sets/src/mage/cards/m/MajorTeroh.java @@ -27,9 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -40,10 +37,14 @@ import mage.abilities.effects.common.ExileAllEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +58,7 @@ public class MajorTeroh extends CardImpl { public MajorTeroh(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Bird"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/m/Malfegor.java b/Mage.Sets/src/mage/cards/m/Malfegor.java index e212dedf1eb..ea40ce5e5a0 100644 --- a/Mage.Sets/src/mage/cards/m/Malfegor.java +++ b/Mage.Sets/src/mage/cards/m/Malfegor.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,6 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; @@ -44,6 +44,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -52,7 +54,7 @@ public class Malfegor extends CardImpl { public Malfegor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.subtype.add("Dragon"); diff --git a/Mage.Sets/src/mage/cards/m/ManaEchoes.java b/Mage.Sets/src/mage/cards/m/ManaEchoes.java index bd90a651c77..a8c9c698f2c 100644 --- a/Mage.Sets/src/mage/cards/m/ManaEchoes.java +++ b/Mage.Sets/src/mage/cards/m/ManaEchoes.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; @@ -42,7 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; -import mage.util.CardUtil; + +import java.util.UUID; /** * @@ -91,7 +91,7 @@ class ManaEchoesEffect extends OneShotEffect { if (controller != null && permanent != null) { int foundCreatures = 0; for (Permanent perm : game.getBattlefield().getAllActivePermanents(new FilterCreaturePermanent(), source.getControllerId(), game)) { - if (CardUtil.shareSubtypes(permanent, perm, game)) { + if (permanent.shareSubtypes(perm, game)) { foundCreatures++; } } diff --git a/Mage.Sets/src/mage/cards/m/MangaraOfCorondor.java b/Mage.Sets/src/mage/cards/m/MangaraOfCorondor.java index c6d51f2a9c7..2ec9f4540ae 100644 --- a/Mage.Sets/src/mage/cards/m/MangaraOfCorondor.java +++ b/Mage.Sets/src/mage/cards/m/MangaraOfCorondor.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +36,12 @@ import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Plopman @@ -48,7 +50,7 @@ public class MangaraOfCorondor extends CardImpl { public MangaraOfCorondor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/m/Manglehorn.java b/Mage.Sets/src/mage/cards/m/Manglehorn.java new file mode 100644 index 00000000000..4119ef0a64e --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/Manglehorn.java @@ -0,0 +1,121 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.m; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ReplacementEffectImpl; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.EntersTheBattlefieldEvent; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.target.common.TargetArtifactPermanent; + +/** + * + * @author fireshoes + */ +public class Manglehorn extends CardImpl { + + public Manglehorn(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); + + this.subtype.add("Beast"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // When Manglehorn enters the battlefield, you may destroy target artifact. + Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), true); + ability.addTarget(new TargetArtifactPermanent()); + this.addAbility(ability); + + // Artifacts your opponents control enter the battlefield tapped. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ManglehornTapEffect())); + } + + public Manglehorn(final Manglehorn card) { + super(card); + } + + @Override + public Manglehorn copy() { + return new Manglehorn(this); + } +} + +class ManglehornTapEffect extends ReplacementEffectImpl { + + ManglehornTapEffect() { + super(Duration.WhileOnBattlefield, Outcome.Tap); + staticText = "Artifacts your opponents control enter the battlefield tapped"; + } + + ManglehornTapEffect(final ManglehornTapEffect effect) { + super(effect); + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + Permanent target = ((EntersTheBattlefieldEvent) event).getTarget(); + if (target != null) { + target.setTapped(true); + } + return false; + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + if (game.getOpponents(source.getControllerId()).contains(event.getPlayerId())) { + Permanent permanent = ((EntersTheBattlefieldEvent) event).getTarget(); + if (permanent != null && permanent.isArtifact()) { + return true; + } + } + return false; + } + + @Override + public ManglehornTapEffect copy() { + return new ManglehornTapEffect(this); + } +} diff --git a/Mage.Sets/src/mage/cards/m/MannichiTheFeveredDream.java b/Mage.Sets/src/mage/cards/m/MannichiTheFeveredDream.java index 0c4507c48ef..325c55bf10a 100644 --- a/Mage.Sets/src/mage/cards/m/MannichiTheFeveredDream.java +++ b/Mage.Sets/src/mage/cards/m/MannichiTheFeveredDream.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -36,8 +35,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -46,7 +48,7 @@ public class MannichiTheFeveredDream extends CardImpl { public MannichiTheFeveredDream(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/m/MantaRay.java b/Mage.Sets/src/mage/cards/m/MantaRay.java index b73b4327557..e4cb1a060ca 100644 --- a/Mage.Sets/src/mage/cards/m/MantaRay.java +++ b/Mage.Sets/src/mage/cards/m/MantaRay.java @@ -27,9 +27,9 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,12 +41,13 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -73,7 +74,7 @@ public class MantaRay extends CardImpl { // When you control no Islands, sacrifice Manta Ray. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Island", "no Islands"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Island", "no Islands"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/m/ManticoreOfTheGauntlet.java b/Mage.Sets/src/mage/cards/m/ManticoreOfTheGauntlet.java new file mode 100644 index 00000000000..d8798b8a515 --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/ManticoreOfTheGauntlet.java @@ -0,0 +1,87 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.m; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.counters.CounterType; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetOpponent; +import mage.target.targetpointer.FirstTargetPointer; +import mage.target.targetpointer.SecondTargetPointer; + +import java.util.UUID; + +/** + * + * @author stravant + */ +public class ManticoreOfTheGauntlet extends CardImpl { + + public ManticoreOfTheGauntlet(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}"); + + this.subtype.add("Manticore"); + this.power = new MageInt(5); + this.toughness = new MageInt(4); + + // When Manticore of the Gauntlet enters the battlefield, put a -1/-1 counter on target creature you control. Manticore of the Gauntlet deals 3 damage to target opponent. + Effect counters = new AddCountersTargetEffect(CounterType.M1M1.createInstance()); + counters.setText("put a -1/-1 counter on target creature you control"); + counters.setTargetPointer(new FirstTargetPointer()); + + Effect damage = new DamageTargetEffect(new StaticValue(3), true, "", true); + damage.setText("{this} deals 3 damage to target opponent."); + damage.setTargetPointer(new SecondTargetPointer()); + + Ability ability = new EntersBattlefieldTriggeredAbility(counters); + ability.addEffect(damage); + + ability.addTarget(new TargetControlledCreaturePermanent()); + ability.addTarget(new TargetOpponent()); + + this.addAbility(ability); + } + + public ManticoreOfTheGauntlet(final ManticoreOfTheGauntlet card) { + super(card); + } + + @Override + public ManticoreOfTheGauntlet copy() { + return new ManticoreOfTheGauntlet(this); + } +} diff --git a/Mage.Sets/src/mage/cards/m/MaralenOfTheMornsong.java b/Mage.Sets/src/mage/cards/m/MaralenOfTheMornsong.java index d9e18642bf5..d935f351d7a 100644 --- a/Mage.Sets/src/mage/cards/m/MaralenOfTheMornsong.java +++ b/Mage.Sets/src/mage/cards/m/MaralenOfTheMornsong.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfDrawTriggeredAbility; @@ -37,16 +36,14 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author andyfries @@ -55,7 +52,7 @@ public class MaralenOfTheMornsong extends CardImpl { public MaralenOfTheMornsong(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Wizard"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/m/MarathWillOfTheWild.java b/Mage.Sets/src/mage/cards/m/MarathWillOfTheWild.java index 6831b9686d3..441c18a40e4 100644 --- a/Mage.Sets/src/mage/cards/m/MarathWillOfTheWild.java +++ b/Mage.Sets/src/mage/cards/m/MarathWillOfTheWild.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -49,6 +48,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; @@ -58,6 +58,8 @@ import mage.players.Player; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -66,7 +68,7 @@ public class MarathWillOfTheWild extends CardImpl { public MarathWillOfTheWild(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); this.subtype.add("Beast"); diff --git a/Mage.Sets/src/mage/cards/m/MaraudingMaulhorn.java b/Mage.Sets/src/mage/cards/m/MaraudingMaulhorn.java index f81958e32a9..271bcbb9872 100644 --- a/Mage.Sets/src/mage/cards/m/MaraudingMaulhorn.java +++ b/Mage.Sets/src/mage/cards/m/MaraudingMaulhorn.java @@ -29,7 +29,7 @@ package mage.cards.m; import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalRequirementEffect; import mage.abilities.effects.Effect; @@ -63,7 +63,7 @@ public class MaraudingMaulhorn extends CardImpl { // Marauding Maulhorn attacks each combat if able unless you control a creature named Advocate of the Beast. Effect effect = new ConditionalRequirementEffect( new AttacksIfAbleSourceEffect(Duration.WhileOnBattlefield, true), - new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 1)); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 1)); effect.setText("{this} attacks each combat if able unless you control a creature named Advocate of the Beast"); } diff --git a/Mage.Sets/src/mage/cards/m/MaraxusOfKeld.java b/Mage.Sets/src/mage/cards/m/MaraxusOfKeld.java index 0387b91965a..32bd21b40b8 100644 --- a/Mage.Sets/src/mage/cards/m/MaraxusOfKeld.java +++ b/Mage.Sets/src/mage/cards/m/MaraxusOfKeld.java @@ -27,14 +27,15 @@ */ package mage.cards.m; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; @@ -61,7 +62,7 @@ public class MaraxusOfKeld extends CardImpl { public MaraxusOfKeld(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/m/MarbleTitan.java b/Mage.Sets/src/mage/cards/m/MarbleTitan.java index f7e7f1710f3..e5e11ce5203 100644 --- a/Mage.Sets/src/mage/cards/m/MarbleTitan.java +++ b/Mage.Sets/src/mage/cards/m/MarbleTitan.java @@ -27,8 +27,8 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; import mage.cards.CardImpl; @@ -37,10 +37,11 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author LoneFox @@ -50,7 +51,7 @@ public class MarbleTitan extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures with power 3 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); } public MarbleTitan(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/m/MarchOfTheMachines.java b/Mage.Sets/src/mage/cards/m/MarchOfTheMachines.java index 6a2c374c5fb..fa21b32eb24 100644 --- a/Mage.Sets/src/mage/cards/m/MarchOfTheMachines.java +++ b/Mage.Sets/src/mage/cards/m/MarchOfTheMachines.java @@ -97,7 +97,7 @@ class MarchOfTheMachinesEffect extends ContinuousEffectImpl { for(Permanent permanent : game.getBattlefield().getAllActivePermanents(filter, game)){ if(permanent != null){ affectedObjectList.add(new MageObjectReference(permanent, game)); - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); } } } diff --git a/Mage.Sets/src/mage/cards/m/MarchesaTheBlackRose.java b/Mage.Sets/src/mage/cards/m/MarchesaTheBlackRose.java index e8d41d5a134..471f6500103 100644 --- a/Mage.Sets/src/mage/cards/m/MarchesaTheBlackRose.java +++ b/Mage.Sets/src/mage/cards/m/MarchesaTheBlackRose.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -42,10 +41,7 @@ import mage.abilities.keyword.DethroneAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -55,6 +51,8 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -63,7 +61,7 @@ public class MarchesaTheBlackRose extends CardImpl { public MarchesaTheBlackRose(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/m/MarhaultElsdragon.java b/Mage.Sets/src/mage/cards/m/MarhaultElsdragon.java index 5fd053e0b35..71b9e20853e 100644 --- a/Mage.Sets/src/mage/cards/m/MarhaultElsdragon.java +++ b/Mage.Sets/src/mage/cards/m/MarhaultElsdragon.java @@ -33,6 +33,7 @@ import mage.abilities.keyword.RampageAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; /** * @@ -42,7 +43,7 @@ public class MarhaultElsdragon extends CardImpl { public MarhaultElsdragon(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Warrior"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/m/Marjhan.java b/Mage.Sets/src/mage/cards/m/Marjhan.java index 48b632b6834..d067533a452 100644 --- a/Mage.Sets/src/mage/cards/m/Marjhan.java +++ b/Mage.Sets/src/mage/cards/m/Marjhan.java @@ -27,9 +27,9 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -51,7 +51,6 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.PhaseStep; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterAttackingCreature; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.Predicates; @@ -59,6 +58,8 @@ import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -98,7 +99,7 @@ public class Marjhan extends CardImpl { // When you control no Islands, sacrifice Marjhan. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Island", "no Islands"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Island", "no Islands"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/m/MarkOfSakiko.java b/Mage.Sets/src/mage/cards/m/MarkOfSakiko.java index f54ca0d7f14..27932f60a83 100644 --- a/Mage.Sets/src/mage/cards/m/MarkOfSakiko.java +++ b/Mage.Sets/src/mage/cards/m/MarkOfSakiko.java @@ -123,6 +123,7 @@ class MarkOfSakikoTriggeredAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "Whenever this creature deals combat damage to a player, add that much {G} to your mana pool. Until end of turn, this mana doesn't empty from your mana pool as steps and phases end."; + return "Whenever this creature deals combat damage to a player, add that much {G} to your mana pool. " + + "Until end of turn, this mana doesn't empty from your mana pool as steps and phases end."; } } \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/m/MarkOfTheOni.java b/Mage.Sets/src/mage/cards/m/MarkOfTheOni.java index d53e6376c41..2c22494bac2 100644 --- a/Mage.Sets/src/mage/cards/m/MarkOfTheOni.java +++ b/Mage.Sets/src/mage/cards/m/MarkOfTheOni.java @@ -30,7 +30,7 @@ package mage.cards.m; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -76,7 +76,7 @@ public class MarkOfTheOni extends CardImpl { TargetController.ANY, new PermanentsOnTheBattlefieldCondition( new FilterControlledCreaturePermanent("Demon", "if you control no Demons"), - CountType.FEWER_THAN, 1), + ComparisonType.FEWER_THAN, 1), false)); } diff --git a/Mage.Sets/src/mage/cards/m/MarrowGnawer.java b/Mage.Sets/src/mage/cards/m/MarrowGnawer.java index f2969e06a2e..17a39ed1b87 100644 --- a/Mage.Sets/src/mage/cards/m/MarrowGnawer.java +++ b/Mage.Sets/src/mage/cards/m/MarrowGnawer.java @@ -31,6 +31,7 @@ package mage.cards.m; import java.util.UUID; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; @@ -70,7 +71,7 @@ public class MarrowGnawer extends CardImpl { public MarrowGnawer (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Rat"); this.subtype.add("Rogue"); diff --git a/Mage.Sets/src/mage/cards/m/MartonStromgald.java b/Mage.Sets/src/mage/cards/m/MartonStromgald.java index e2d3a1f4592..2db1ce696ce 100644 --- a/Mage.Sets/src/mage/cards/m/MartonStromgald.java +++ b/Mage.Sets/src/mage/cards/m/MartonStromgald.java @@ -27,19 +27,21 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.BlocksTriggeredAbility; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterAttackingCreature; import mage.filter.common.FilterBlockingCreature; import mage.filter.predicate.permanent.AnotherPredicate; -import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; + +import java.util.UUID; /** * @@ -57,7 +59,7 @@ public class MartonStromgald extends CardImpl { public MartonStromgald(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Knight"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/m/MasakoTheHumorless.java b/Mage.Sets/src/mage/cards/m/MasakoTheHumorless.java index 8d752562f8a..b3457c4549a 100644 --- a/Mage.Sets/src/mage/cards/m/MasakoTheHumorless.java +++ b/Mage.Sets/src/mage/cards/m/MasakoTheHumorless.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -35,14 +34,12 @@ import mage.abilities.effects.AsThoughEffectImpl; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -51,7 +48,7 @@ public class MasakoTheHumorless extends CardImpl { public MasakoTheHumorless(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); diff --git a/Mage.Sets/src/mage/cards/m/MaskOfIntolerance.java b/Mage.Sets/src/mage/cards/m/MaskOfIntolerance.java index 77ad74035b7..5fe49838133 100644 --- a/Mage.Sets/src/mage/cards/m/MaskOfIntolerance.java +++ b/Mage.Sets/src/mage/cards/m/MaskOfIntolerance.java @@ -27,8 +27,8 @@ */ package mage.cards.m; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.IntCompareCondition; @@ -42,6 +42,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.game.Game; +import java.util.UUID; + /** * * @author LoneFox @@ -70,7 +72,7 @@ public class MaskOfIntolerance extends CardImpl { class MaskOfIntoleranceCondition extends IntCompareCondition { public MaskOfIntoleranceCondition() { - super(ComparisonType.GreaterThan, 3); + super(ComparisonType.MORE_THAN, 3); } @Override diff --git a/Mage.Sets/src/mage/cards/m/MasumaroFirstToLive.java b/Mage.Sets/src/mage/cards/m/MasumaroFirstToLive.java index c0bd2d3a208..e48c75820c3 100644 --- a/Mage.Sets/src/mage/cards/m/MasumaroFirstToLive.java +++ b/Mage.Sets/src/mage/cards/m/MasumaroFirstToLive.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -39,8 +38,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -49,7 +51,7 @@ public class MasumaroFirstToLive extends CardImpl { public MasumaroFirstToLive(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(0); diff --git a/Mage.Sets/src/mage/cards/m/MatterReshaper.java b/Mage.Sets/src/mage/cards/m/MatterReshaper.java index 149b042136b..13fab0af68f 100644 --- a/Mage.Sets/src/mage/cards/m/MatterReshaper.java +++ b/Mage.Sets/src/mage/cards/m/MatterReshaper.java @@ -27,10 +27,10 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -40,12 +40,13 @@ import mage.cards.CardsImpl; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes @@ -96,7 +97,7 @@ class MatterReshaperEffect extends OneShotEffect { } controller.revealCards(sourceObject.getIdName(), new CardsImpl(card), game); FilterPermanentCard filter = new FilterPermanentCard("permanent card with converted mana cost 3 or less"); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); if (filter.match(card, game)) { if (controller.chooseUse(Outcome.PutCardInPlay, "Put " + card.getName() + " onto the battlefield (otherwise put in hand)?", source, game)) { card.putOntoBattlefield(game, Zone.LIBRARY, source.getSourceId(), source.getControllerId(), false); diff --git a/Mage.Sets/src/mage/cards/m/MayaelTheAnima.java b/Mage.Sets/src/mage/cards/m/MayaelTheAnima.java index 816e21a7d81..80dee250eae 100644 --- a/Mage.Sets/src/mage/cards/m/MayaelTheAnima.java +++ b/Mage.Sets/src/mage/cards/m/MayaelTheAnima.java @@ -27,21 +27,23 @@ */ package mage.cards.m; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author North @@ -51,12 +53,12 @@ public class MayaelTheAnima extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("a creature card with power 5 or greater"); static { filter.add(new CardTypePredicate(CardType.CREATURE)); - filter.add(new PowerPredicate(ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public MayaelTheAnima(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/m/MayaelsAria.java b/Mage.Sets/src/mage/cards/m/MayaelsAria.java index 966ac022bcc..ae34e0602d6 100644 --- a/Mage.Sets/src/mage/cards/m/MayaelsAria.java +++ b/Mage.Sets/src/mage/cards/m/MayaelsAria.java @@ -27,8 +27,8 @@ */ package mage.cards.m; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -38,13 +38,14 @@ import mage.constants.Outcome; import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -94,7 +95,7 @@ class MayaelsAriaEffect extends OneShotEffect { } // put a +1/+1 counter on each creature you control if you control a creature with power 5 or greater. FilterCreaturePermanent filter = new FilterCreaturePermanent(); - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); if (game.getState().getBattlefield().countAll(filter, controller.getId(), game) > 0) { for (Permanent creature : game.getBattlefield().getAllActivePermanents(new FilterCreaturePermanent(), source.getControllerId(), game)) { creature.addCounters(CounterType.P1P1.createInstance(), source, game); @@ -104,14 +105,14 @@ class MayaelsAriaEffect extends OneShotEffect { // Then you gain 10 life if you control a creature with power 10 or greater. filter = new FilterCreaturePermanent(); - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 9)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 9)); if (game.getState().getBattlefield().countAll(filter, controller.getId(), game) > 0) { controller.gainLife(10, game); } // Then you win the game if you control a creature with power 20 or greater. filter = new FilterCreaturePermanent(); - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 19)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 19)); if (game.getState().getBattlefield().countAll(filter, controller.getId(), game) > 0) { controller.won(game); } diff --git a/Mage.Sets/src/mage/cards/m/MazirekKraulDeathPriest.java b/Mage.Sets/src/mage/cards/m/MazirekKraulDeathPriest.java index 1ec6f9bfc57..b4848a622b5 100644 --- a/Mage.Sets/src/mage/cards/m/MazirekKraulDeathPriest.java +++ b/Mage.Sets/src/mage/cards/m/MazirekKraulDeathPriest.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.TriggeredAbilityImpl; @@ -37,6 +36,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; @@ -44,6 +44,8 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author fireshoes @@ -52,7 +54,7 @@ public class MazirekKraulDeathPriest extends CardImpl { public MazirekKraulDeathPriest(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Insect"); this.subtype.add("Shaman"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/m/MedomaiTheAgeless.java b/Mage.Sets/src/mage/cards/m/MedomaiTheAgeless.java index 96217279389..a01f2186021 100644 --- a/Mage.Sets/src/mage/cards/m/MedomaiTheAgeless.java +++ b/Mage.Sets/src/mage/cards/m/MedomaiTheAgeless.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -42,9 +41,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +55,7 @@ public class MedomaiTheAgeless extends CardImpl { public MedomaiTheAgeless(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Sphinx"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/m/Meekstone.java b/Mage.Sets/src/mage/cards/m/Meekstone.java index 63065cff1af..1fa62f0b4dd 100644 --- a/Mage.Sets/src/mage/cards/m/Meekstone.java +++ b/Mage.Sets/src/mage/cards/m/Meekstone.java @@ -27,7 +27,7 @@ */ package mage.cards.m; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; import mage.cards.CardImpl; @@ -36,10 +36,11 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author Quercitron @@ -49,7 +50,7 @@ public class Meekstone extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures with power 3 or greater"); static { - filter.add(new PowerPredicate(ComparisonType.GreaterThan, 2)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); } public Meekstone(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/m/MeishinTheMindCage.java b/Mage.Sets/src/mage/cards/m/MeishinTheMindCage.java index ab9b3d0a870..ac42abec2d5 100644 --- a/Mage.Sets/src/mage/cards/m/MeishinTheMindCage.java +++ b/Mage.Sets/src/mage/cards/m/MeishinTheMindCage.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.CardsInControllerHandCount; import mage.abilities.dynamicvalue.common.SignInversionDynamicValue; @@ -37,9 +36,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 @@ -48,7 +50,7 @@ public class MeishinTheMindCage extends CardImpl { public MeishinTheMindCage(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{U}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // All creatures get -X/-0, where X is the number of cards in your hand. diff --git a/Mage.Sets/src/mage/cards/m/MelekIzzetParagon.java b/Mage.Sets/src/mage/cards/m/MelekIzzetParagon.java index 463f669222b..51fe4cb0260 100644 --- a/Mage.Sets/src/mage/cards/m/MelekIzzetParagon.java +++ b/Mage.Sets/src/mage/cards/m/MelekIzzetParagon.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; @@ -38,6 +37,7 @@ import mage.abilities.effects.common.continuous.PlayWithTheTopCardRevealedEffect import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; @@ -48,6 +48,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.stack.Spell; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -64,7 +66,7 @@ public class MelekIzzetParagon extends CardImpl { public MelekIzzetParagon(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Weird"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/m/MeliraSylvokOutcast.java b/Mage.Sets/src/mage/cards/m/MeliraSylvokOutcast.java index 5c660b61d81..ff633528864 100644 --- a/Mage.Sets/src/mage/cards/m/MeliraSylvokOutcast.java +++ b/Mage.Sets/src/mage/cards/m/MeliraSylvokOutcast.java @@ -37,12 +37,7 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -58,7 +53,7 @@ public class MeliraSylvokOutcast extends CardImpl { public MeliraSylvokOutcast(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Scout"); diff --git a/Mage.Sets/src/mage/cards/m/MelokuTheCloudedMirror.java b/Mage.Sets/src/mage/cards/m/MelokuTheCloudedMirror.java index 3d3057c3053..3d94028bc5c 100644 --- a/Mage.Sets/src/mage/cards/m/MelokuTheCloudedMirror.java +++ b/Mage.Sets/src/mage/cards/m/MelokuTheCloudedMirror.java @@ -28,9 +28,6 @@ package mage.cards.m; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,11 +37,16 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.game.permanent.token.Token; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * @author Loki */ @@ -54,7 +56,7 @@ public class MelokuTheCloudedMirror extends CardImpl { public MelokuTheCloudedMirror(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Moonfolk"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/m/Memnarch.java b/Mage.Sets/src/mage/cards/m/Memnarch.java index 8f294808108..40186e50719 100644 --- a/Mage.Sets/src/mage/cards/m/Memnarch.java +++ b/Mage.Sets/src/mage/cards/m/Memnarch.java @@ -38,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetArtifactPermanent; @@ -52,7 +53,7 @@ public class Memnarch extends CardImpl { public Memnarch(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{7}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Wizard"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/m/MengHuoBarbarianKing.java b/Mage.Sets/src/mage/cards/m/MengHuoBarbarianKing.java index 7fb7cd86b13..2657a4208e0 100644 --- a/Mage.Sets/src/mage/cards/m/MengHuoBarbarianKing.java +++ b/Mage.Sets/src/mage/cards/m/MengHuoBarbarianKing.java @@ -27,21 +27,19 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -57,7 +55,7 @@ public class MengHuoBarbarianKing extends CardImpl { public MengHuoBarbarianKing(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Barbarian"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/m/MentalMisstep.java b/Mage.Sets/src/mage/cards/m/MentalMisstep.java index ef520c581d1..056fb6cb7dd 100644 --- a/Mage.Sets/src/mage/cards/m/MentalMisstep.java +++ b/Mage.Sets/src/mage/cards/m/MentalMisstep.java @@ -27,16 +27,17 @@ */ package mage.cards.m; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Loki @@ -46,7 +47,7 @@ public class MentalMisstep extends CardImpl { private static final FilterSpell FILTER = new FilterSpell("spell with converted mana cost 1"); static { - FILTER.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, 1)); + FILTER.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, 1)); } public MentalMisstep(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/m/MentorOfTheMeek.java b/Mage.Sets/src/mage/cards/m/MentorOfTheMeek.java index af6541f3a10..970191eaf2d 100644 --- a/Mage.Sets/src/mage/cards/m/MentorOfTheMeek.java +++ b/Mage.Sets/src/mage/cards/m/MentorOfTheMeek.java @@ -27,9 +27,9 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; @@ -39,12 +39,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * @author Loki */ @@ -54,7 +55,7 @@ public class MentorOfTheMeek extends CardImpl { static { filter.add(new AnotherPredicate()); - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public MentorOfTheMeek(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/m/MerchantShip.java b/Mage.Sets/src/mage/cards/m/MerchantShip.java index 7bfb88bc07f..c072eac7829 100644 --- a/Mage.Sets/src/mage/cards/m/MerchantShip.java +++ b/Mage.Sets/src/mage/cards/m/MerchantShip.java @@ -27,8 +27,8 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,9 +39,10 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -60,7 +61,7 @@ public class MerchantShip extends CardImpl { this.addAbility(new AttacksAndIsNotBlockedTriggeredAbility(new GainLifeEffect(2))); // When you control no Islands, sacrifice Merchant Ship. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Island", "no Islands"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Island", "no Islands"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/m/MercilessJavelineer.java b/Mage.Sets/src/mage/cards/m/MercilessJavelineer.java new file mode 100644 index 00000000000..b0fee3a7f17 --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/MercilessJavelineer.java @@ -0,0 +1,88 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.m; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.DiscardCardCost; +import mage.abilities.costs.mana.ManaCostImpl; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.common.combat.CantBlockTargetEffect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author anonymous + */ +public class MercilessJavelineer extends CardImpl { + + public MercilessJavelineer(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{R}"); + + this.subtype.add("Minotaur"); + this.subtype.add("Warrior"); + this.power = new MageInt(4); + this.toughness = new MageInt(2); + + // {2}, Discard a card: Put a -1/-1 counter on target creature. That creature can't block this turn. + Ability ability = + new SimpleActivatedAbility( + Zone.BATTLEFIELD, + new AddCountersTargetEffect( + CounterType.M1M1.createInstance(), + new StaticValue(1), + Outcome.Removal), + new ManaCostsImpl("{2}")); + ability.addEffect( + new CantBlockTargetEffect(Duration.EndOfTurn) + .setText("That creature can't block this turn.")); + ability.addCost(new DiscardCardCost()); + ability.addTarget(new TargetCreaturePermanent()); + addAbility(ability); + } + + public MercilessJavelineer(final MercilessJavelineer card) { + super(card); + } + + @Override + public MercilessJavelineer copy() { + return new MercilessJavelineer(this); + } +} diff --git a/Mage.Sets/src/mage/cards/m/MerenOfClanNelToth.java b/Mage.Sets/src/mage/cards/m/MerenOfClanNelToth.java index a115cefeaba..c7811c15365 100644 --- a/Mage.Sets/src/mage/cards/m/MerenOfClanNelToth.java +++ b/Mage.Sets/src/mage/cards/m/MerenOfClanNelToth.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility; @@ -38,10 +37,7 @@ import mage.abilities.effects.common.counter.AddCountersControllerEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; @@ -52,6 +48,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes @@ -67,7 +65,7 @@ public class MerenOfClanNelToth extends CardImpl { public MerenOfClanNelToth(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Shaman"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/m/MeriekeRiBerit.java b/Mage.Sets/src/mage/cards/m/MeriekeRiBerit.java index e900b981d5c..d819f9d8ed4 100644 --- a/Mage.Sets/src/mage/cards/m/MeriekeRiBerit.java +++ b/Mage.Sets/src/mage/cards/m/MeriekeRiBerit.java @@ -42,10 +42,7 @@ import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.events.GameEvent; @@ -63,7 +60,7 @@ public class MeriekeRiBerit extends CardImpl { public MeriekeRiBerit(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}{U}{B}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.power = new MageInt(1); this.toughness = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/m/MetallicMimic.java b/Mage.Sets/src/mage/cards/m/MetallicMimic.java index bb9c932b8d0..ea93082b975 100644 --- a/Mage.Sets/src/mage/cards/m/MetallicMimic.java +++ b/Mage.Sets/src/mage/cards/m/MetallicMimic.java @@ -123,7 +123,7 @@ class MetallicMimicReplacementEffect extends ReplacementEffectImpl { public boolean replaceEvent(GameEvent event, Ability source, Game game) { Permanent creature = ((EntersTheBattlefieldEvent) event).getTarget(); if (creature != null) { - creature.addCounters(CounterType.P1P1.createInstance(), source, game); + creature.addCounters(CounterType.P1P1.createInstance(), source, game, event.getAppliedEffects()); } return false; } diff --git a/Mage.Sets/src/mage/cards/m/MetallurgicSummonings.java b/Mage.Sets/src/mage/cards/m/MetallurgicSummonings.java index afd975853f0..f237a240e2f 100644 --- a/Mage.Sets/src/mage/cards/m/MetallurgicSummonings.java +++ b/Mage.Sets/src/mage/cards/m/MetallurgicSummonings.java @@ -30,7 +30,7 @@ package mage.cards.m; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.common.ExileSourceCost; @@ -78,7 +78,7 @@ public class MetallurgicSummonings extends CardImpl { // {3}{U}{U}, Exile Metallurgic Summons: Return all instant and sorcery cards from your graveyard to your hand. Activate this ability only if you control six or more artifacts. Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new MetallurgicSummoningsReturnEffect(), new ManaCostsImpl("{3}{U}{U}"), - new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), CountType.MORE_THAN, 5), + new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), ComparisonType.MORE_THAN, 5), "{3}{U}{U}, Exile {this}: Return all instant and sorcery cards from your graveyard to your hand." + " Activate this ability only if you control six or more artifacts."); ability.addCost(new ExileSourceCost()); diff --git a/Mage.Sets/src/mage/cards/m/MiasmicMummy.java b/Mage.Sets/src/mage/cards/m/MiasmicMummy.java new file mode 100644 index 00000000000..6b80b702265 --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/MiasmicMummy.java @@ -0,0 +1,64 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.m; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class MiasmicMummy extends CardImpl { + + public MiasmicMummy(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}"); + + this.subtype.add("Zombie"); + this.subtype.add("Jackal"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // When Miasmic Mummy enters the battlefield, each player discards a card. + this.addAbility(new EntersBattlefieldTriggeredAbility(new DiscardEachPlayerEffect())); + } + + public MiasmicMummy(final MiasmicMummy card) { + super(card); + } + + @Override + public MiasmicMummy copy() { + return new MiasmicMummy(this); + } +} diff --git a/Mage.Sets/src/mage/cards/m/MichikoKondaTruthSeeker.java b/Mage.Sets/src/mage/cards/m/MichikoKondaTruthSeeker.java index 1f5fe4d38d4..8cb83085251 100644 --- a/Mage.Sets/src/mage/cards/m/MichikoKondaTruthSeeker.java +++ b/Mage.Sets/src/mage/cards/m/MichikoKondaTruthSeeker.java @@ -27,19 +27,21 @@ */ package mage.cards.m; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.SacrificeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.game.Game; import mage.game.events.GameEvent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author North @@ -48,7 +50,7 @@ public class MichikoKondaTruthSeeker extends CardImpl { public MichikoKondaTruthSeeker(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); diff --git a/Mage.Sets/src/mage/cards/m/MidnightScavengers.java b/Mage.Sets/src/mage/cards/m/MidnightScavengers.java index 6d015586de9..88b99e44a01 100644 --- a/Mage.Sets/src/mage/cards/m/MidnightScavengers.java +++ b/Mage.Sets/src/mage/cards/m/MidnightScavengers.java @@ -27,9 +27,9 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.InfoEffect; @@ -38,12 +38,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +54,7 @@ public class MidnightScavengers extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("creature card with converted mana cost 3 or less from your graveyard"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public MidnightScavengers(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/m/MightOfTheWild.java b/Mage.Sets/src/mage/cards/m/MightOfTheWild.java index 28cd975da64..caac65840d5 100644 --- a/Mage.Sets/src/mage/cards/m/MightOfTheWild.java +++ b/Mage.Sets/src/mage/cards/m/MightOfTheWild.java @@ -27,7 +27,7 @@ */ package mage.cards.m; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.combat.CantBlockAllEffect; @@ -37,7 +37,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; @@ -46,6 +45,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Styxo @@ -56,7 +57,7 @@ public class MightOfTheWild extends CardImpl { private static final FilterPermanent filterMode2 = new FilterPermanent("artifact or enchantment"); static { - filterMode1.add(new PowerPredicate(Filter.ComparisonType.LessThan, 4)); + filterMode1.add(new PowerPredicate(ComparisonType.FEWER_THAN, 4)); filterMode2.add(Predicates.or(new CardTypePredicate(CardType.ARTIFACT), new CardTypePredicate(CardType.ENCHANTMENT))); } diff --git a/Mage.Sets/src/mage/cards/m/MightyEmergence.java b/Mage.Sets/src/mage/cards/m/MightyEmergence.java index 118ac072064..d3d8f0d1eab 100644 --- a/Mage.Sets/src/mage/cards/m/MightyEmergence.java +++ b/Mage.Sets/src/mage/cards/m/MightyEmergence.java @@ -27,7 +27,7 @@ */ package mage.cards.m; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; @@ -37,10 +37,11 @@ import mage.constants.CardType; import mage.constants.SetTargetPointer; import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author Plopman @@ -50,7 +51,7 @@ public class MightyEmergence extends CardImpl { private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("a creature with power 5 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public MightyEmergence(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/m/MikaeusTheLunarch.java b/Mage.Sets/src/mage/cards/m/MikaeusTheLunarch.java index 6a74796e968..8e418829249 100644 --- a/Mage.Sets/src/mage/cards/m/MikaeusTheLunarch.java +++ b/Mage.Sets/src/mage/cards/m/MikaeusTheLunarch.java @@ -41,6 +41,7 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; @@ -59,7 +60,7 @@ public class MikaeusTheLunarch extends CardImpl { public MikaeusTheLunarch(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{X}{W}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); diff --git a/Mage.Sets/src/mage/cards/m/MikaeusTheUnhallowed.java b/Mage.Sets/src/mage/cards/m/MikaeusTheUnhallowed.java index 4cf5af0f201..50b7374f7f8 100644 --- a/Mage.Sets/src/mage/cards/m/MikaeusTheUnhallowed.java +++ b/Mage.Sets/src/mage/cards/m/MikaeusTheUnhallowed.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +39,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -49,6 +49,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author North @@ -63,7 +65,7 @@ public class MikaeusTheUnhallowed extends CardImpl { public MikaeusTheUnhallowed(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Cleric"); diff --git a/Mage.Sets/src/mage/cards/m/MikokoroCenterOfTheSea.java b/Mage.Sets/src/mage/cards/m/MikokoroCenterOfTheSea.java index 01121b84d6b..c3666b1cd80 100644 --- a/Mage.Sets/src/mage/cards/m/MikokoroCenterOfTheSea.java +++ b/Mage.Sets/src/mage/cards/m/MikokoroCenterOfTheSea.java @@ -27,9 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,8 +35,12 @@ import mage.abilities.effects.common.DrawCardAllEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki @@ -48,7 +49,7 @@ public class MikokoroCenterOfTheSea extends CardImpl { public MikokoroCenterOfTheSea(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {2}, {tap}: Each player draws a card. diff --git a/Mage.Sets/src/mage/cards/m/MillenniumFalcon.java b/Mage.Sets/src/mage/cards/m/MillenniumFalcon.java index 39f75a049a7..80eb3a39c1f 100644 --- a/Mage.Sets/src/mage/cards/m/MillenniumFalcon.java +++ b/Mage.Sets/src/mage/cards/m/MillenniumFalcon.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -38,8 +37,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo @@ -48,7 +50,7 @@ public class MillenniumFalcon extends CardImpl { public MillenniumFalcon(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{3}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Starship"); this.power = new MageInt(5); this.toughness = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/m/MinaAndDennWildborn.java b/Mage.Sets/src/mage/cards/m/MinaAndDennWildborn.java index 020f66adb1b..8fe96857ebc 100644 --- a/Mage.Sets/src/mage/cards/m/MinaAndDennWildborn.java +++ b/Mage.Sets/src/mage/cards/m/MinaAndDennWildborn.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,11 +40,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -56,7 +58,7 @@ public class MinaAndDennWildborn extends CardImpl { public MinaAndDennWildborn(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Ally"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/m/MinamoSchoolAtWatersEdge.java b/Mage.Sets/src/mage/cards/m/MinamoSchoolAtWatersEdge.java index 84919250724..6d30060567d 100644 --- a/Mage.Sets/src/mage/cards/m/MinamoSchoolAtWatersEdge.java +++ b/Mage.Sets/src/mage/cards/m/MinamoSchoolAtWatersEdge.java @@ -40,6 +40,7 @@ import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.ColoredManaSymbol; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; @@ -54,13 +55,13 @@ public class MinamoSchoolAtWatersEdge extends CardImpl { private static final FilterPermanent filter = new FilterPermanent("legendary permanent"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public MinamoSchoolAtWatersEdge (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.addAbility(new BlueManaAbility()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), new ColoredManaCost(ColoredManaSymbol.U)); ability.addCost(new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/m/MinamoSightbender.java b/Mage.Sets/src/mage/cards/m/MinamoSightbender.java index 251f6bfccc6..77edc1260a3 100644 --- a/Mage.Sets/src/mage/cards/m/MinamoSightbender.java +++ b/Mage.Sets/src/mage/cards/m/MinamoSightbender.java @@ -27,9 +27,9 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,13 +39,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -81,7 +82,7 @@ public class MinamoSightbender extends CardImpl { int manaX = ability.getManaCostsToPay().getX(); ability.getTargets().clear(); FilterCreaturePermanent newFilter = new FilterCreaturePermanent(new StringBuilder("creature with power ").append(manaX).append(" or less").toString()); - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, manaX + 1)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, manaX + 1)); Target target = new TargetCreaturePermanent(newFilter); ability.addTarget(target); break; diff --git a/Mage.Sets/src/mage/cards/m/Mindslaver.java b/Mage.Sets/src/mage/cards/m/Mindslaver.java index 7c612043241..5fa739e9d38 100644 --- a/Mage.Sets/src/mage/cards/m/Mindslaver.java +++ b/Mage.Sets/src/mage/cards/m/Mindslaver.java @@ -27,9 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -38,9 +35,13 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.turn.ControlTargetPlayerNextTurnEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author nantuko @@ -49,7 +50,7 @@ public class Mindslaver extends CardImpl { public Mindslaver(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{6}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {4}, {tap}, Sacrifice Mindslaver: You control target player during that player's next turn. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ControlTargetPlayerNextTurnEffect(), new GenericManaCost(4)); diff --git a/Mage.Sets/src/mage/cards/m/MinotaurSureshot.java b/Mage.Sets/src/mage/cards/m/MinotaurSureshot.java new file mode 100644 index 00000000000..25aad4e93b6 --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/MinotaurSureshot.java @@ -0,0 +1,71 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.m; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.keyword.ReachAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +/** + * + * @author fireshoes + */ +public class MinotaurSureshot extends CardImpl { + + public MinotaurSureshot(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); + + this.subtype.add("Minotaur"); + this.subtype.add("Archer"); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // Reach + this.addAbility(ReachAbility.getInstance()); + + // {1}{R}: Minotaur Sureshot gets +1/+0 until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}"))); + } + + public MinotaurSureshot(final MinotaurSureshot card) { + super(card); + } + + @Override + public MinotaurSureshot copy() { + return new MinotaurSureshot(this); + } +} diff --git a/Mage.Sets/src/mage/cards/m/MinotaurTactician.java b/Mage.Sets/src/mage/cards/m/MinotaurTactician.java index 4bf638193c8..36427bc0175 100644 --- a/Mage.Sets/src/mage/cards/m/MinotaurTactician.java +++ b/Mage.Sets/src/mage/cards/m/MinotaurTactician.java @@ -30,7 +30,7 @@ package mage.cards.m; import java.util.UUID; import mage.MageInt; import mage.ObjectColor; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -74,12 +74,12 @@ public class MinotaurTactician extends CardImpl { this.addAbility(HasteAbility.getInstance()); // Minotaur Tactician gets +1/+1 as long as you control a white creature. - Condition conditionWhite = new PermanentsOnTheBattlefieldCondition(filterWhite, CountType.MORE_THAN, 0); + Condition conditionWhite = new PermanentsOnTheBattlefieldCondition(filterWhite, ComparisonType.MORE_THAN, 0); Effect effectWhite = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), conditionWhite, ruleWhite); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effectWhite)); // Minotaur Tactician gets +1/+1 as long as you control a blue creature. - Condition conditionBlue = new PermanentsOnTheBattlefieldCondition(filterBlue, CountType.MORE_THAN, 0); + Condition conditionBlue = new PermanentsOnTheBattlefieldCondition(filterBlue, ComparisonType.MORE_THAN, 0); Effect effectBlue = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), conditionBlue, ruleBlue); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effectBlue)); } diff --git a/Mage.Sets/src/mage/cards/m/Mirari.java b/Mage.Sets/src/mage/cards/m/Mirari.java index f7919a43545..092c2f0cba5 100644 --- a/Mage.Sets/src/mage/cards/m/Mirari.java +++ b/Mage.Sets/src/mage/cards/m/Mirari.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.Effect; @@ -36,6 +35,7 @@ import mage.abilities.effects.common.DoIfCostPaid; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; @@ -47,6 +47,8 @@ import mage.game.stack.Spell; import mage.target.TargetSpell; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +57,7 @@ public class Mirari extends CardImpl { public Mirari(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Whenever you cast an instant or sorcery spell, you may pay {3}. If you do, copy that spell. You may choose new targets for the copy. this.addAbility(new MirariTriggeredAbility()); diff --git a/Mage.Sets/src/mage/cards/m/MirenTheMoaningWell.java b/Mage.Sets/src/mage/cards/m/MirenTheMoaningWell.java index 1f784c9007f..37fec159f8f 100644 --- a/Mage.Sets/src/mage/cards/m/MirenTheMoaningWell.java +++ b/Mage.Sets/src/mage/cards/m/MirenTheMoaningWell.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.Cost; @@ -40,12 +39,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +56,7 @@ public class MirenTheMoaningWell extends CardImpl { public MirenTheMoaningWell(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/m/MirkoVoskMindDrinker.java b/Mage.Sets/src/mage/cards/m/MirkoVoskMindDrinker.java index 1392852eb68..f81725f5311 100644 --- a/Mage.Sets/src/mage/cards/m/MirkoVoskMindDrinker.java +++ b/Mage.Sets/src/mage/cards/m/MirkoVoskMindDrinker.java @@ -28,24 +28,22 @@ package mage.cards.m; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +55,7 @@ public class MirkoVoskMindDrinker extends CardImpl { public MirkoVoskMindDrinker (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{B}"); this.subtype.add("Vampire"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/m/MirriCatWarrior.java b/Mage.Sets/src/mage/cards/m/MirriCatWarrior.java index 76ded6c9b47..678b52fd32e 100644 --- a/Mage.Sets/src/mage/cards/m/MirriCatWarrior.java +++ b/Mage.Sets/src/mage/cards/m/MirriCatWarrior.java @@ -27,14 +27,16 @@ */ package mage.cards.m; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.ForestwalkAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -44,7 +46,7 @@ public class MirriCatWarrior extends CardImpl { public MirriCatWarrior(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Cat"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/m/MirriTheCursed.java b/Mage.Sets/src/mage/cards/m/MirriTheCursed.java index 986bd30481e..92daa95fd8a 100644 --- a/Mage.Sets/src/mage/cards/m/MirriTheCursed.java +++ b/Mage.Sets/src/mage/cards/m/MirriTheCursed.java @@ -27,19 +27,21 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToACreatureTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author fireshoes @@ -48,7 +50,7 @@ public class MirriTheCursed extends CardImpl { public MirriTheCursed(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.subtype.add("Cat"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/m/Mirrorweave.java b/Mage.Sets/src/mage/cards/m/Mirrorweave.java index 0d5f5b6c7c3..0765b98cac9 100644 --- a/Mage.Sets/src/mage/cards/m/Mirrorweave.java +++ b/Mage.Sets/src/mage/cards/m/Mirrorweave.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -35,6 +34,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SupertypePredicate; @@ -45,6 +45,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.util.functions.EmptyApplyToPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -54,7 +56,7 @@ public class Mirrorweave extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nonlegendary creature"); static { - filter.add(Predicates.not(new SupertypePredicate("Legendary"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.LEGENDARY))); } public Mirrorweave(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/m/MishraArtificerProdigy.java b/Mage.Sets/src/mage/cards/m/MishraArtificerProdigy.java index 42f9da0f830..be2467620a5 100644 --- a/Mage.Sets/src/mage/cards/m/MishraArtificerProdigy.java +++ b/Mage.Sets/src/mage/cards/m/MishraArtificerProdigy.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -37,6 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.NamePredicate; @@ -49,6 +49,8 @@ import mage.target.common.TargetCardInHand; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author emerald000 @@ -57,7 +59,7 @@ public class MishraArtificerProdigy extends CardImpl { public MishraArtificerProdigy(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Artificer"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/m/MistformUltimus.java b/Mage.Sets/src/mage/cards/m/MistformUltimus.java index 6e14a3d0b82..390136ef4dd 100644 --- a/Mage.Sets/src/mage/cards/m/MistformUltimus.java +++ b/Mage.Sets/src/mage/cards/m/MistformUltimus.java @@ -32,6 +32,7 @@ import mage.abilities.keyword.ChangelingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import java.util.UUID; @@ -44,13 +45,13 @@ public class MistformUltimus extends CardImpl { public MistformUltimus(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Illusion"); this.power = new MageInt(3); this.toughness = new MageInt(3); // Mistform Ultimus is every creature type. - this.subtype.add(ChangelingAbility.ALL_CREATURE_TYPE); // "All Creature Type" + this.addAbility(ChangelingAbility.getInstance()); } public MistformUltimus(final MistformUltimus card) { diff --git a/Mage.Sets/src/mage/cards/m/MistmeadowSkulk.java b/Mage.Sets/src/mage/cards/m/MistmeadowSkulk.java index d04e728f9c9..3d5b5845ce3 100644 --- a/Mage.Sets/src/mage/cards/m/MistmeadowSkulk.java +++ b/Mage.Sets/src/mage/cards/m/MistmeadowSkulk.java @@ -27,17 +27,18 @@ */ package mage.cards.m; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; +import java.util.UUID; + /** * * @author North @@ -47,7 +48,7 @@ public class MistmeadowSkulk extends CardImpl { private static final FilterCard filter = new FilterCard("converted mana cost 3 or greater"); static { - filter.add(new ConvertedManaCostPredicate(ComparisonType.GreaterThan, 2)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 2)); } public MistmeadowSkulk(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/m/MistveilPlains.java b/Mage.Sets/src/mage/cards/m/MistveilPlains.java index 0c35e13db3a..164176a82d9 100644 --- a/Mage.Sets/src/mage/cards/m/MistveilPlains.java +++ b/Mage.Sets/src/mage/cards/m/MistveilPlains.java @@ -29,7 +29,7 @@ package mage.cards.m; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; @@ -76,7 +76,7 @@ public class MistveilPlains extends CardImpl { Zone.BATTLEFIELD, new MistveilPlainsGraveyardToLibraryEffect(), new ManaCostsImpl("{W}"), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1)); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1)); ability.addTarget(new TargetCardInYourGraveyard()); ability.addCost(new TapSourceCost()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/m/MistveinBorderpost.java b/Mage.Sets/src/mage/cards/m/MistveinBorderpost.java index 38ab7305e3d..d0ef07c1a00 100644 --- a/Mage.Sets/src/mage/cards/m/MistveinBorderpost.java +++ b/Mage.Sets/src/mage/cards/m/MistveinBorderpost.java @@ -28,9 +28,7 @@ package mage.cards.m; -import java.util.UUID; import mage.abilities.Ability; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; @@ -39,11 +37,15 @@ import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki @@ -53,7 +55,7 @@ public class MistveinBorderpost extends CardImpl { private static final FilterControlledPermanent filter = new FilterControlledLandPermanent("a basic land"); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public MistveinBorderpost (UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/m/MizzixOfTheIzmagnus.java b/Mage.Sets/src/mage/cards/m/MizzixOfTheIzmagnus.java index 3308d54e2a9..3c6b28f29ae 100644 --- a/Mage.Sets/src/mage/cards/m/MizzixOfTheIzmagnus.java +++ b/Mage.Sets/src/mage/cards/m/MizzixOfTheIzmagnus.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -39,11 +38,7 @@ import mage.abilities.effects.common.counter.AddCountersControllerEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterInstantOrSorceryCard; import mage.filter.common.FilterInstantOrSorcerySpell; @@ -53,6 +48,8 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author emerald000 @@ -67,7 +64,7 @@ public class MizzixOfTheIzmagnus extends CardImpl { public MizzixOfTheIzmagnus(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Wizard"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/m/MobRule.java b/Mage.Sets/src/mage/cards/m/MobRule.java index e3262fe1b4e..f865ac03a0c 100644 --- a/Mage.Sets/src/mage/cards/m/MobRule.java +++ b/Mage.Sets/src/mage/cards/m/MobRule.java @@ -27,9 +27,8 @@ */ package mage.cards.m; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.ContinuousEffectImpl; @@ -38,18 +37,16 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.filter.Filter.ComparisonType; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.List; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -61,11 +58,11 @@ public class MobRule extends CardImpl { // Choose one // Gain control of all creatures with power 4 or greater until end of turn. Untap those creatures. They gain haste until end of turn. - this.getSpellAbility().addEffect(new MobRuleEffect(ComparisonType.GreaterThan, 3)); + this.getSpellAbility().addEffect(new MobRuleEffect(ComparisonType.MORE_THAN, 3)); // Gain control of all creatures with power 3 or less until end of turn. Untap those creatures. They gain haste until end of turn. Mode mode = new Mode(); - mode.getEffects().add(new MobRuleEffect(ComparisonType.LessThan, 4)); + mode.getEffects().add(new MobRuleEffect(ComparisonType.FEWER_THAN, 4)); this.getSpellAbility().addMode(mode); } @@ -88,7 +85,7 @@ class MobRuleEffect extends OneShotEffect { super(Outcome.GainControl); this.type = type; this.power = power; - if (type == ComparisonType.GreaterThan) { + if (type == ComparisonType.MORE_THAN) { this.staticText = "Gain control of all creatures with power 4 or greater until end of turn. Untap those creatures. They gain haste until end of turn"; } else { this.staticText = "Gain control of all creatures with power 3 or less until end of turn. Untap those creatures. They gain haste until end of turn"; diff --git a/Mage.Sets/src/mage/cards/m/MoggJailer.java b/Mage.Sets/src/mage/cards/m/MoggJailer.java index f55481cb4a1..7054b02eb84 100644 --- a/Mage.Sets/src/mage/cards/m/MoggJailer.java +++ b/Mage.Sets/src/mage/cards/m/MoggJailer.java @@ -27,8 +27,8 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.combat.CantAttackIfDefenderControlsPermanent; @@ -36,27 +36,26 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.permanent.TappedPredicate; -/** - * - * @author BursegSardaukar +import java.util.UUID; +/** + * @author BursegSardaukar */ public class MoggJailer extends CardImpl { static final private FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("untapped creature with power 2 or less"); static { - filter.add(Predicates.and(new PowerPredicate(Filter.ComparisonType.LessThan, 2), Predicates.not(new TappedPredicate()))); + filter.add(Predicates.and(new PowerPredicate(ComparisonType.FEWER_THAN, 2), Predicates.not(new TappedPredicate()))); } - + public MoggJailer(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); this.subtype.add("Goblin"); this.power = new MageInt(2); this.toughness = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/m/MogisGodOfSlaughter.java b/Mage.Sets/src/mage/cards/m/MogisGodOfSlaughter.java index 175418106f7..16aeef28fde 100644 --- a/Mage.Sets/src/mage/cards/m/MogisGodOfSlaughter.java +++ b/Mage.Sets/src/mage/cards/m/MogisGodOfSlaughter.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -44,16 +43,14 @@ import mage.abilities.effects.common.continuous.LoseCreatureTypeSourceEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 @@ -62,7 +59,7 @@ public class MogisGodOfSlaughter extends CardImpl { public MogisGodOfSlaughter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.CREATURE},"{2}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/m/Molder.java b/Mage.Sets/src/mage/cards/m/Molder.java index 4e69726b45a..b5b2d0aa2bf 100644 --- a/Mage.Sets/src/mage/cards/m/Molder.java +++ b/Mage.Sets/src/mage/cards/m/Molder.java @@ -27,8 +27,8 @@ */ package mage.cards.m; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.SpellAbility; import mage.abilities.dynamicvalue.common.ManacostVariableValue; import mage.abilities.effects.common.DestroyTargetEffect; @@ -36,12 +36,13 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -63,7 +64,7 @@ public class Molder extends CardImpl { ability.getTargets().clear(); int xValue = ability.getManaCostsToPay().getX(); FilterArtifactOrEnchantmentPermanent filter = new FilterArtifactOrEnchantmentPermanent("artifact or enchantment with converted mana cost X"); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, xValue)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue)); ability.addTarget(new TargetPermanent(filter)); } } diff --git a/Mage.Sets/src/mage/cards/m/MolimoMaroSorcerer.java b/Mage.Sets/src/mage/cards/m/MolimoMaroSorcerer.java index 5ed6c21819d..ba97b101bb5 100644 --- a/Mage.Sets/src/mage/cards/m/MolimoMaroSorcerer.java +++ b/Mage.Sets/src/mage/cards/m/MolimoMaroSorcerer.java @@ -27,10 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -38,9 +34,15 @@ import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; +import java.util.UUID; + /** * * @author Loki @@ -51,7 +53,7 @@ public class MolimoMaroSorcerer extends CardImpl { public MolimoMaroSorcerer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); this.power = new MageInt(0); diff --git a/Mage.Sets/src/mage/cards/m/MoltenDisaster.java b/Mage.Sets/src/mage/cards/m/MoltenDisaster.java index b8da4da2a71..c923173de3a 100644 --- a/Mage.Sets/src/mage/cards/m/MoltenDisaster.java +++ b/Mage.Sets/src/mage/cards/m/MoltenDisaster.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.KickedCondition; @@ -50,6 +49,9 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.Optional; +import java.util.UUID; + /** * * @author LevelX2 @@ -109,8 +111,8 @@ class MoltenDisasterSplitSecondEffect extends ContinuousRuleModifyingEffectImpl } } if (event.getType() == GameEvent.EventType.ACTIVATE_ABILITY) { - Ability ability = game.getAbility(event.getTargetId(), event.getSourceId()); - if (ability != null && !(ability instanceof ActivatedManaAbilityImpl)) { + Optional ability = game.getAbility(event.getTargetId(), event.getSourceId()); + if (ability.isPresent() && !(ability.get() instanceof ActivatedManaAbilityImpl)) { if (KickedCondition.instance.apply(game, source)) { return true; } diff --git a/Mage.Sets/src/mage/cards/m/MoltenRain.java b/Mage.Sets/src/mage/cards/m/MoltenRain.java index c7e7ae22bdd..bd2b09b2915 100644 --- a/Mage.Sets/src/mage/cards/m/MoltenRain.java +++ b/Mage.Sets/src/mage/cards/m/MoltenRain.java @@ -87,7 +87,7 @@ class MoltenRainEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Permanent permanent = (Permanent) game.getLastKnownInformation(source.getFirstTarget(), Zone.BATTLEFIELD); - if (permanent != null && !permanent.getSupertype().contains("Basic")) { + if (permanent != null && !permanent.isBasic()) { Player player = game.getPlayer(permanent.getControllerId()); if (player != null) { player.damage(2, source.getSourceId(), game, false, true); diff --git a/Mage.Sets/src/mage/cards/m/MomirVigSimicVisionary.java b/Mage.Sets/src/mage/cards/m/MomirVigSimicVisionary.java index a3ade23f04d..52c6fdfd772 100644 --- a/Mage.Sets/src/mage/cards/m/MomirVigSimicVisionary.java +++ b/Mage.Sets/src/mage/cards/m/MomirVigSimicVisionary.java @@ -27,8 +27,6 @@ */ package mage.cards.m; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.ObjectColor; @@ -37,13 +35,10 @@ import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.search.SearchLibraryPutOnLibraryEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.common.FilterCreatureCard; @@ -53,6 +48,9 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.Set; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -72,7 +70,7 @@ public class MomirVigSimicVisionary extends CardImpl { public MomirVigSimicVisionary(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/m/MoonringIsland.java b/Mage.Sets/src/mage/cards/m/MoonringIsland.java index 09145907fca..c978432b12b 100644 --- a/Mage.Sets/src/mage/cards/m/MoonringIsland.java +++ b/Mage.Sets/src/mage/cards/m/MoonringIsland.java @@ -30,7 +30,7 @@ package mage.cards.m; import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.common.TapSourceCost; @@ -72,7 +72,7 @@ public class MoonringIsland extends CardImpl { Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new LookLibraryTopCardTargetPlayerEffect(), new ManaCostsImpl("{U}"), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1)); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1)); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetPlayer()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/m/Morinfen.java b/Mage.Sets/src/mage/cards/m/Morinfen.java index 6b6b05f6e4b..7795113084d 100644 --- a/Mage.Sets/src/mage/cards/m/Morinfen.java +++ b/Mage.Sets/src/mage/cards/m/Morinfen.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.common.PayLifeCost; import mage.abilities.keyword.CumulativeUpkeepAbility; @@ -35,6 +34,9 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -44,7 +46,7 @@ public class Morinfen extends CardImpl { public Morinfen(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Horror"); this.power = new MageInt(5); this.toughness = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/m/Mosstodon.java b/Mage.Sets/src/mage/cards/m/Mosstodon.java index 4cb76b90ecf..a58ce016876 100644 --- a/Mage.Sets/src/mage/cards/m/Mosstodon.java +++ b/Mage.Sets/src/mage/cards/m/Mosstodon.java @@ -27,22 +27,23 @@ */ package mage.cards.m; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -52,7 +53,7 @@ public class Mosstodon extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); static { - filter.add(new PowerPredicate(ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public Mosstodon(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/m/MouthFeed.java b/Mage.Sets/src/mage/cards/m/MouthFeed.java new file mode 100644 index 00000000000..5231431900e --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/MouthFeed.java @@ -0,0 +1,55 @@ +package mage.cards.m; + +import java.util.UUID; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.keyword.AftermathAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.constants.SpellAbilityType; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.mageobject.PowerPredicate; +import mage.game.permanent.token.HippoToken2; + +/** + * @author Stravant + */ +public class MouthFeed extends SplitCard { + + private static final FilterControlledCreaturePermanent filterCreaturesYouControlPower3orGreater + = new FilterControlledCreaturePermanent("creature you control with power 3 or greater."); + + static { + filterCreaturesYouControlPower3orGreater.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); + } + + public MouthFeed(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.SORCERY}, "{2}{G}", "{3}{G}", SpellAbilityType.SPLIT_AFTERMATH); + + // Mouth + // Create a 3/3 green Hippo creature token + getLeftHalfCard().getSpellAbility().addEffect(new CreateTokenEffect(new HippoToken2())); + + // to + // Feed + // Draw a card for each creature you control with power 3 or greater + ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); + Effect draw = new DrawCardSourceControllerEffect(new PermanentsOnBattlefieldCount(filterCreaturesYouControlPower3orGreater)); + getRightHalfCard().getSpellAbility().addEffect(draw); + + } + + public MouthFeed(final MouthFeed card) { + super(card); + } + + @Override + public MouthFeed copy() { + return new MouthFeed(this); + } +} diff --git a/Mage.Sets/src/mage/cards/m/MouthOfRonom.java b/Mage.Sets/src/mage/cards/m/MouthOfRonom.java index 3ac031790c5..077bd9ecad6 100644 --- a/Mage.Sets/src/mage/cards/m/MouthOfRonom.java +++ b/Mage.Sets/src/mage/cards/m/MouthOfRonom.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -38,9 +37,12 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman @@ -49,7 +51,7 @@ public class MouthOfRonom extends CardImpl { public MouthOfRonom(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/m/MoxOpal.java b/Mage.Sets/src/mage/cards/m/MoxOpal.java index 467bd4e43f0..71c552b0010 100644 --- a/Mage.Sets/src/mage/cards/m/MoxOpal.java +++ b/Mage.Sets/src/mage/cards/m/MoxOpal.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.MetalcraftCondition; import mage.abilities.costs.common.TapSourceCost; @@ -37,8 +36,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AbilityWord; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com, Loki @@ -47,7 +49,7 @@ public class MoxOpal extends CardImpl { public MoxOpal(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{0}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); Ability ability = new ActivateIfConditionManaAbility( Zone.BATTLEFIELD, diff --git a/Mage.Sets/src/mage/cards/m/MudbrawlerCohort.java b/Mage.Sets/src/mage/cards/m/MudbrawlerCohort.java index f9b1366fe49..cfd43558c98 100644 --- a/Mage.Sets/src/mage/cards/m/MudbrawlerCohort.java +++ b/Mage.Sets/src/mage/cards/m/MudbrawlerCohort.java @@ -30,7 +30,7 @@ package mage.cards.m; import java.util.UUID; import mage.MageInt; import mage.ObjectColor; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -74,7 +74,7 @@ public class MudbrawlerCohort extends CardImpl { // Haste this.addAbility(HasteAbility.getInstance()); // Mudbrawler Cohort gets +1/+1 as long as you control another red creature. - Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0); + Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0); Effect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), condition, rule); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); } diff --git a/Mage.Sets/src/mage/cards/m/MultaniMaroSorcerer.java b/Mage.Sets/src/mage/cards/m/MultaniMaroSorcerer.java index 0eaa634ce2c..69cef00e959 100644 --- a/Mage.Sets/src/mage/cards/m/MultaniMaroSorcerer.java +++ b/Mage.Sets/src/mage/cards/m/MultaniMaroSorcerer.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.CardsInAllHandsCount; @@ -37,8 +36,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Plopman @@ -47,7 +49,7 @@ public class MultaniMaroSorcerer extends CardImpl { public MultaniMaroSorcerer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); this.power = new MageInt(0); diff --git a/Mage.Sets/src/mage/cards/m/MundaAmbushLeader.java b/Mage.Sets/src/mage/cards/m/MundaAmbushLeader.java index a35cabf2a1a..0a270230020 100644 --- a/Mage.Sets/src/mage/cards/m/MundaAmbushLeader.java +++ b/Mage.Sets/src/mage/cards/m/MundaAmbushLeader.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -40,6 +39,7 @@ import mage.cards.Cards; import mage.cards.CardsImpl; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -47,6 +47,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +57,7 @@ public class MundaAmbushLeader extends CardImpl { public MundaAmbushLeader(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Kor"); this.subtype.add("Ally"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/m/MuzzioVisionaryArchitect.java b/Mage.Sets/src/mage/cards/m/MuzzioVisionaryArchitect.java index 2524b9a5a59..c36d00b2ce7 100644 --- a/Mage.Sets/src/mage/cards/m/MuzzioVisionaryArchitect.java +++ b/Mage.Sets/src/mage/cards/m/MuzzioVisionaryArchitect.java @@ -27,21 +27,16 @@ */ package mage.cards.m; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterArtifactCard; import mage.filter.common.FilterArtifactPermanent; @@ -50,6 +45,9 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetCard; +import java.util.List; +import java.util.UUID; + /** * * @author fireshoes @@ -58,7 +56,7 @@ public class MuzzioVisionaryArchitect extends CardImpl { public MuzzioVisionaryArchitect(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Artificer"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/m/MycosynthLattice.java b/Mage.Sets/src/mage/cards/m/MycosynthLattice.java index aa6cf3f4a72..b55ace064d7 100644 --- a/Mage.Sets/src/mage/cards/m/MycosynthLattice.java +++ b/Mage.Sets/src/mage/cards/m/MycosynthLattice.java @@ -27,9 +27,6 @@ */ package mage.cards.m; -import java.util.List; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.ObjectColor; import mage.abilities.Ability; @@ -40,14 +37,7 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.ManaType; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.command.CommandObject; import mage.game.permanent.Permanent; @@ -55,6 +45,8 @@ import mage.game.stack.Spell; import mage.players.ManaPoolItem; import mage.players.Player; +import java.util.UUID; + /** * @author duncant */ @@ -91,10 +83,7 @@ class PermanentsAreArtifactsEffect extends ContinuousEffectImpl { @Override public boolean apply(Game game, Ability source) { for (Permanent perm : game.getBattlefield().getActivePermanents(source.getControllerId(), game)) { - Set cardType = perm.getCardType(); - if (!cardType.contains(CardType.ARTIFACT)) { - cardType.add(CardType.ARTIFACT); - } + perm.addCardType(CardType.ARTIFACT); } return true; } diff --git a/Mage.Sets/src/mage/cards/m/MyojinOfCleansingFire.java b/Mage.Sets/src/mage/cards/m/MyojinOfCleansingFire.java index a7e449c3002..9dd391390e7 100644 --- a/Mage.Sets/src/mage/cards/m/MyojinOfCleansingFire.java +++ b/Mage.Sets/src/mage/cards/m/MyojinOfCleansingFire.java @@ -27,9 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -45,13 +42,17 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * @author Loki */ @@ -64,7 +65,7 @@ public class MyojinOfCleansingFire extends CardImpl { public MyojinOfCleansingFire(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(4); @@ -73,7 +74,7 @@ public class MyojinOfCleansingFire extends CardImpl { this.getSpellAbility().addWatcher(new CastFromHandWatcher()); // Myojin of Cleansing Fire enters the battlefield with a divinity counter on it if you cast it from your hand. - this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new AddCountersSourceEffect(CounterType.DIVINITY.createInstance()), new CastFromHandSourceCondition(), ""), "{this} enters the battlefield with a divinity counter on it if you cast it from your hand")); + this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new AddCountersSourceEffect(CounterType.DIVINITY.createInstance()), CastFromHandSourceCondition.instance, ""), "{this} enters the battlefield with a divinity counter on it if you cast it from your hand")); // Myojin of Cleansing Fire is indestructible as long as it has a divinity counter on it. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield), new SourceHasCounterCondition(CounterType.DIVINITY), "{this} is indestructible as long as it has a divinity counter on it"))); diff --git a/Mage.Sets/src/mage/cards/m/MyojinOfInfiniteRage.java b/Mage.Sets/src/mage/cards/m/MyojinOfInfiniteRage.java index 650d9e9b0ed..3f39280b9f1 100644 --- a/Mage.Sets/src/mage/cards/m/MyojinOfInfiniteRage.java +++ b/Mage.Sets/src/mage/cards/m/MyojinOfInfiniteRage.java @@ -27,9 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -45,12 +42,16 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterLandPermanent; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * @author LevelX */ @@ -60,7 +61,7 @@ public class MyojinOfInfiniteRage extends CardImpl { public MyojinOfInfiniteRage(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{7}{R}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(7); @@ -69,7 +70,7 @@ public class MyojinOfInfiniteRage extends CardImpl { this.getSpellAbility().addWatcher(new CastFromHandWatcher()); // Myojin of Infinite Rage enters the battlefield with a divinity counter on it if you cast it from your hand. - this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new AddCountersSourceEffect(CounterType.DIVINITY.createInstance()), new CastFromHandSourceCondition(), ""), "{this} enters the battlefield with a divinity counter on it if you cast it from your hand")); + this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new AddCountersSourceEffect(CounterType.DIVINITY.createInstance()), CastFromHandSourceCondition.instance, ""), "{this} enters the battlefield with a divinity counter on it if you cast it from your hand")); // Myojin of Infinite Rage is indestructible as long as it has a divinity counter on it. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield), new SourceHasCounterCondition(CounterType.DIVINITY), "{this} is indestructible as long as it has a divinity counter on it"))); diff --git a/Mage.Sets/src/mage/cards/m/MyojinOfLifesWeb.java b/Mage.Sets/src/mage/cards/m/MyojinOfLifesWeb.java index 02868f33356..60b9b157f9b 100644 --- a/Mage.Sets/src/mage/cards/m/MyojinOfLifesWeb.java +++ b/Mage.Sets/src/mage/cards/m/MyojinOfLifesWeb.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -53,6 +52,8 @@ import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * @author LevelX */ @@ -60,7 +61,7 @@ public class MyojinOfLifesWeb extends CardImpl { public MyojinOfLifesWeb(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{G}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(8); @@ -69,7 +70,7 @@ public class MyojinOfLifesWeb extends CardImpl { this.getSpellAbility().addWatcher(new CastFromHandWatcher()); // Myojin of Life's Web enters the battlefield with a divinity counter on it if you cast it from your hand. - this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new AddCountersSourceEffect(CounterType.DIVINITY.createInstance()), new CastFromHandSourceCondition(), ""), "{this} enters the battlefield with a divinity counter on it if you cast it from your hand")); + this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new AddCountersSourceEffect(CounterType.DIVINITY.createInstance()), CastFromHandSourceCondition.instance, ""), "{this} enters the battlefield with a divinity counter on it if you cast it from your hand")); // Myojin of Life's Web is indestructible as long as it has a divinity counter on it. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield), diff --git a/Mage.Sets/src/mage/cards/m/MyojinOfNightsReach.java b/Mage.Sets/src/mage/cards/m/MyojinOfNightsReach.java index 0efd43f914c..439d9c6291d 100644 --- a/Mage.Sets/src/mage/cards/m/MyojinOfNightsReach.java +++ b/Mage.Sets/src/mage/cards/m/MyojinOfNightsReach.java @@ -27,9 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -47,11 +44,14 @@ import mage.abilities.keyword.IndestructibleAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.counters.CounterType; import mage.game.Game; import mage.players.Player; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * @author LevelX */ @@ -59,7 +59,7 @@ public class MyojinOfNightsReach extends CardImpl { public MyojinOfNightsReach(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(5); @@ -68,7 +68,7 @@ public class MyojinOfNightsReach extends CardImpl { this.getSpellAbility().addWatcher(new CastFromHandWatcher()); // Myojin of Night's Reach enters the battlefield with a divinity counter on it if you cast it from your hand. - this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new AddCountersSourceEffect(CounterType.DIVINITY.createInstance()), new CastFromHandSourceCondition(), ""), "{this} enters the battlefield with a divinity counter on it if you cast it from your hand")); + this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new AddCountersSourceEffect(CounterType.DIVINITY.createInstance()), CastFromHandSourceCondition.instance, ""), "{this} enters the battlefield with a divinity counter on it if you cast it from your hand")); // Myojin of Night's Reach is indestructible as long as it has a divinity counter on it. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield), new SourceHasCounterCondition(CounterType.DIVINITY), "{this} is indestructible as long as it has a divinity counter on it"))); diff --git a/Mage.Sets/src/mage/cards/m/MyojinOfSeeingWinds.java b/Mage.Sets/src/mage/cards/m/MyojinOfSeeingWinds.java index e633c08f21d..006433da0da 100644 --- a/Mage.Sets/src/mage/cards/m/MyojinOfSeeingWinds.java +++ b/Mage.Sets/src/mage/cards/m/MyojinOfSeeingWinds.java @@ -27,9 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; - -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -47,11 +44,14 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.FilterPermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * @author LevelX */ @@ -64,7 +64,7 @@ public class MyojinOfSeeingWinds extends CardImpl { public MyojinOfSeeingWinds(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{7}{U}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(3); @@ -73,12 +73,12 @@ public class MyojinOfSeeingWinds extends CardImpl { this.getSpellAbility().addWatcher(new CastFromHandWatcher()); // Myojin of Seeing Winds enters the battlefield with a divinity counter on it if you cast it from your hand. - this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new AddCountersSourceEffect(CounterType.DIVINITY.createInstance()), new CastFromHandSourceCondition(), ""), "{this} enters the battlefield with a divinity counter on it if you cast it from your hand")); + this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new AddCountersSourceEffect(CounterType.DIVINITY.createInstance()), CastFromHandSourceCondition.instance, ""), "{this} enters the battlefield with a divinity counter on it if you cast it from your hand")); // Myojin of Seeing Winds is indestructible as long as it has a divinity counter on it. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield), new SourceHasCounterCondition(CounterType.DIVINITY), "{this} is indestructible as long as it has a divinity counter on it"))); // Remove a divinity counter from Myojin of Seeing Winds: Draw a card for each permanent you control. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(new PermanentsOnBattlefieldCount(filter, 1)), new RemoveCountersSourceCost(CounterType.DIVINITY.createInstance())); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(new PermanentsOnBattlefieldCount(filter)), new RemoveCountersSourceCost(CounterType.DIVINITY.createInstance())); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/m/MyrIncubator.java b/Mage.Sets/src/mage/cards/m/MyrIncubator.java new file mode 100644 index 00000000000..8c78679d157 --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/MyrIncubator.java @@ -0,0 +1,118 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.m; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.SearchEffect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.CardsImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.game.Game; +import mage.game.permanent.token.MyrToken; +import mage.players.Player; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author jeffwadsworth + */ +public class MyrIncubator extends CardImpl { + + public MyrIncubator(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{6}"); + + // {6}, {tap}, Sacrifice Myr Incubator: Search your library for any number of artifact cards, exile them, then put that many 1/1 colorless Myr artifact creature tokens onto the battlefield. Then shuffle your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MyrIncubatorEffect(), new ManaCostsImpl("{6}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + + } + + public MyrIncubator(final MyrIncubator card) { + super(card); + } + + @Override + public MyrIncubator copy() { + return new MyrIncubator(this); + } +} + +class MyrIncubatorEffect extends SearchEffect { + + private static final FilterCard filter = new FilterCard(); + + static { + filter.add(new CardTypePredicate(CardType.ARTIFACT)); + } + + int tokensToCreate = 0; + + MyrIncubatorEffect() { + super(new TargetCardInLibrary(0, Integer.MAX_VALUE, filter), Outcome.Neutral); + staticText = "Search your library for any number of artifact cards, exile them, then put that many 1/1 colorless Myr artifact creature tokens onto the battlefield. Then shuffle your library"; + } + + MyrIncubatorEffect(final MyrIncubatorEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null + && controller.searchLibrary(target, game)) { + if (!target.getTargets().isEmpty()) { + tokensToCreate = target.getTargets().size(); + controller.moveCards(new CardsImpl(target.getTargets()), Zone.EXILED, source, game); + } + CreateTokenEffect effect = new CreateTokenEffect(new MyrToken(), tokensToCreate); + effect.apply(game, source); + controller.shuffleLibrary(source, game); + return true; + } + return false; + } + + @Override + public MyrIncubatorEffect copy() { + return new MyrIncubatorEffect(this); + } +} diff --git a/Mage.Sets/src/mage/cards/m/MyrServitor.java b/Mage.Sets/src/mage/cards/m/MyrServitor.java index a79e35065b7..50f35f9912e 100644 --- a/Mage.Sets/src/mage/cards/m/MyrServitor.java +++ b/Mage.Sets/src/mage/cards/m/MyrServitor.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.NamePredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -61,7 +62,7 @@ public class MyrServitor extends CardImpl { // At the beginning of your upkeep, if Myr Servitor is on the battlefield, each player returns all cards named Myr Servitor from his or her graveyard to the battlefield. this.addAbility(new ConditionalTriggeredAbility( new BeginningOfUpkeepTriggeredAbility(new MyrServitorReturnEffect(), TargetController.YOU, false), - SourceOnBattlefieldCondition.getInstance(), + SourceOnBattlefieldCondition.instance, "At the beginning of your upkeep, if {this} is on the battlefield, each player returns all cards named Myr Servitor from his or her graveyard to the battlefield" )); diff --git a/Mage.Sets/src/mage/cards/m/MysteriesOfTheDeep.java b/Mage.Sets/src/mage/cards/m/MysteriesOfTheDeep.java index 5ac9903f148..5c4719ea063 100644 --- a/Mage.Sets/src/mage/cards/m/MysteriesOfTheDeep.java +++ b/Mage.Sets/src/mage/cards/m/MysteriesOfTheDeep.java @@ -27,15 +27,16 @@ */ package mage.cards.m; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.condition.common.LandfallCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.watchers.common.LandfallWatcher; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -48,7 +49,7 @@ public class MysteriesOfTheDeep extends CardImpl { // Draw two cards. // Landfall - If you had a land enter the battlefield under your control this turn, draw three cards instead. this.getSpellAbility().addWatcher(new LandfallWatcher()); - this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DrawCardSourceControllerEffect(3), new DrawCardSourceControllerEffect(2), LandfallCondition.getInstance(), "Draw 2 cards. Landfall - If you had a land enter the battlefield under your control this turn, draw three cards instead")); + this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DrawCardSourceControllerEffect(3), new DrawCardSourceControllerEffect(2), LandfallCondition.instance, "Draw 2 cards. Landfall - If you had a land enter the battlefield under your control this turn, draw three cards instead")); } public MysteriesOfTheDeep(final MysteriesOfTheDeep card) { diff --git a/Mage.Sets/src/mage/cards/m/MysticDecree.java b/Mage.Sets/src/mage/cards/m/MysticDecree.java index 83dd8b94da5..ec92f263fa6 100644 --- a/Mage.Sets/src/mage/cards/m/MysticDecree.java +++ b/Mage.Sets/src/mage/cards/m/MysticDecree.java @@ -38,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; @@ -49,12 +50,12 @@ public class MysticDecree extends CardImpl { public MysticDecree(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{U}{U}"); - this.supertype.add("World"); + addSuperType(SuperType.WORLD); // All creatures lose flying and islandwalk. - Effect effect = new LoseAbilityAllEffect(new FilterCreaturePermanent("All creatures"), FlyingAbility.getInstance(), Duration.WhileOnBattlefield); + Effect effect = new LoseAbilityAllEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield, new FilterCreaturePermanent("All creatures")); effect.setText("All creatures lose flying"); - Effect effect2 = new LoseAbilityAllEffect(new FilterCreaturePermanent("all creatures"), new IslandwalkAbility(), Duration.WhileOnBattlefield); + Effect effect2 = new LoseAbilityAllEffect(new IslandwalkAbility(), Duration.WhileOnBattlefield, new FilterCreaturePermanent("all creatures")); effect2.setText("and islandwalk"); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect); ability.addEffect(effect2); diff --git a/Mage.Sets/src/mage/cards/n/NagaOracle.java b/Mage.Sets/src/mage/cards/n/NagaOracle.java new file mode 100644 index 00000000000..ad03cf6e25d --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NagaOracle.java @@ -0,0 +1,83 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.n; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.filter.FilterCard; + +/** + * + * @author stravant + */ +public class NagaOracle extends CardImpl { + + public NagaOracle(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); + + this.subtype.add("Naga"); + this.subtype.add("Cleric"); + this.power = new MageInt(2); + this.toughness = new MageInt(4); + + // When Naga Oracle enters the battlefield, look at the top three cards of your library. Put any number of them into your graveyard + // and the rest back on top of your library in any order. + Effect effect = new LookLibraryAndPickControllerEffect( + /* oh god, Microsoft looks conservative with their function parameters in comparison */ + new StaticValue(3), + false, + new StaticValue(3), + new FilterCard("cards"), + Zone.LIBRARY, + true, + false, + true, + Zone.GRAVEYARD, + false); + effect.setText("look at the top three cards of your library. Put any number of them into your graveyard " + + "and the rest back on top of your library in any order"); + addAbility(new EntersBattlefieldTriggeredAbility(effect)); + } + + public NagaOracle(final NagaOracle card) { + super(card); + } + + @Override + public NagaOracle copy() { + return new NagaOracle(this); + } +} diff --git a/Mage.Sets/src/mage/cards/n/NagaVitalist.java b/Mage.Sets/src/mage/cards/n/NagaVitalist.java new file mode 100644 index 00000000000..a72b71c138e --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NagaVitalist.java @@ -0,0 +1,243 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.n; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import mage.MageInt; +import mage.Mana; +import mage.abilities.Abilities; +import mage.abilities.Ability; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.ManaEffect; +import mage.abilities.mana.ActivatedManaAbilityImpl; +import mage.abilities.mana.ManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.choices.Choice; +import mage.choices.ChoiceColor; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Zone; +import mage.filter.common.FilterControlledLandPermanent; +import mage.filter.common.FilterControlledPermanent; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; + +/** + * + * @author fireshoes + */ +public class NagaVitalist extends CardImpl { + + public NagaVitalist(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}"); + + this.subtype.add("Naga"); + this.subtype.add("Druid"); + this.power = new MageInt(1); + this.toughness = new MageInt(2); + + // {T}: Add to your mana pool one mana of any type that a land you control could produce. + this.addAbility(new NagaVitalistManaAbility()); + } + + public NagaVitalist(final NagaVitalist card) { + super(card); + } + + @Override + public NagaVitalist copy() { + return new NagaVitalist(this); + } +} + +class NagaVitalistManaAbility extends ActivatedManaAbilityImpl { + + public NagaVitalistManaAbility() { + super(Zone.BATTLEFIELD, new NagaVitalistEffect(), new TapSourceCost()); + } + + public NagaVitalistManaAbility(final NagaVitalistManaAbility ability) { + super(ability); + } + + @Override + public NagaVitalistManaAbility copy() { + return new NagaVitalistManaAbility(this); + } + + @Override + public List getNetMana(Game game) { + return ((NagaVitalistEffect) getEffects().get(0)).getNetMana(game, this); + } +} + +class NagaVitalistEffect extends ManaEffect { + + private static final FilterControlledPermanent filter = new FilterControlledLandPermanent(); + + public NagaVitalistEffect() { + super(); + staticText = "Add to your mana pool one mana of any type that a land you control could produce"; + } + + public NagaVitalistEffect(final NagaVitalistEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Mana types = getManaTypes(game, source); + Choice choice = new ChoiceColor(true); + choice.getChoices().clear(); + choice.setMessage("Pick a mana color"); + if (types.getBlack() > 0) { + choice.getChoices().add("Black"); + } + if (types.getRed() > 0) { + choice.getChoices().add("Red"); + } + if (types.getBlue() > 0) { + choice.getChoices().add("Blue"); + } + if (types.getGreen() > 0) { + choice.getChoices().add("Green"); + } + if (types.getWhite() > 0) { + choice.getChoices().add("White"); + } + if (types.getColorless() > 0) { + choice.getChoices().add("Colorless"); + } + if (types.getAny() > 0) { + choice.getChoices().add("Black"); + choice.getChoices().add("Red"); + choice.getChoices().add("Blue"); + choice.getChoices().add("Green"); + choice.getChoices().add("White"); + choice.getChoices().add("Colorless"); + } + if (!choice.getChoices().isEmpty()) { + Player player = game.getPlayer(source.getControllerId()); + if (choice.getChoices().size() == 1) { + choice.setChoice(choice.getChoices().iterator().next()); + } else { + player.choose(outcome, choice, game); + } + if (choice.getChoice() != null) { + Mana mana = new Mana(); + switch (choice.getChoice()) { + case "Black": + mana.setBlack(1); + break; + case "Blue": + mana.setBlue(1); + break; + case "Red": + mana.setRed(1); + break; + case "Green": + mana.setGreen(1); + break; + case "White": + mana.setWhite(1); + break; + case "Colorless": + mana.setColorless(1); + break; + } + checkToFirePossibleEvents(mana, game, source); + player.getManaPool().addMana(mana, game, source); + return true; + } + return false; + } + return true; + } + + public List getNetMana(Game game, Ability source) { + List netManas = new ArrayList<>(); + Mana types = getManaTypes(game, source); + if (types.getAny() > 0) { + netManas.add(new Mana(0, 0, 0, 0, 0, 0, 1, 0)); + return netManas; + } + if (types.getBlack() > 0) { + netManas.add(new Mana(ColoredManaSymbol.B)); + } + if (types.getRed() > 0) { + netManas.add(new Mana(ColoredManaSymbol.R)); + } + if (types.getBlue() > 0) { + netManas.add(new Mana(ColoredManaSymbol.U)); + } + if (types.getGreen() > 0) { + netManas.add(new Mana(ColoredManaSymbol.G)); + } + if (types.getWhite() > 0) { + netManas.add(new Mana(ColoredManaSymbol.W)); + } + if (types.getColorless() > 0) { + netManas.add(Mana.ColorlessMana(1)); + } + return netManas; + } + + private Mana getManaTypes(Game game, Ability source) { + List lands = game.getBattlefield().getActivePermanents(filter, source.getControllerId(), game); + Mana types = new Mana(); + for (Permanent land : lands) { + Abilities manaAbilities = land.getAbilities().getManaAbilities(Zone.BATTLEFIELD); + for (Ability basicAbility : manaAbilities) { + ManaAbility ability = (ManaAbility) basicAbility; + if (!ability.equals(source) && ability.definesMana()) { + for (Mana netMana : ability.getNetMana(game)) { + types.add(netMana); + if (netMana.getAny() > 0) { + return types; + } + } + } + } + } + return types; + } + + @Override + public Mana getMana(Game game, Ability source) { + return null; + } + + @Override + public NagaVitalistEffect copy() { + return new NagaVitalistEffect(this); + } +} diff --git a/Mage.Sets/src/mage/cards/n/NagaoBoundByHonor.java b/Mage.Sets/src/mage/cards/n/NagaoBoundByHonor.java index 0fac6c1fd3a..b1583037d00 100644 --- a/Mage.Sets/src/mage/cards/n/NagaoBoundByHonor.java +++ b/Mage.Sets/src/mage/cards/n/NagaoBoundByHonor.java @@ -37,6 +37,7 @@ import mage.abilities.keyword.BushidoAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -54,7 +55,7 @@ public class NagaoBoundByHonor extends CardImpl { public NagaoBoundByHonor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Samurai"); diff --git a/Mage.Sets/src/mage/cards/n/NantukoShaman.java b/Mage.Sets/src/mage/cards/n/NantukoShaman.java index b47fe10d0d0..2201f3014f7 100644 --- a/Mage.Sets/src/mage/cards/n/NantukoShaman.java +++ b/Mage.Sets/src/mage/cards/n/NantukoShaman.java @@ -29,7 +29,7 @@ package mage.cards.n; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; @@ -66,7 +66,7 @@ public class NantukoShaman extends CardImpl { // When Nantuko Shaman enters the battlefield, if you control no tapped lands, draw a card. Ability ability = new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1)), - new PermanentsOnTheBattlefieldCondition(filter, CountType.EQUAL_TO, 0), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.EQUAL_TO, 0), "When {this} enters the battlefield, if you control no tapped lands, draw a card"); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/n/NarsetEnlightenedMaster.java b/Mage.Sets/src/mage/cards/n/NarsetEnlightenedMaster.java index 2b5a3e1b507..5435f7b8883 100644 --- a/Mage.Sets/src/mage/cards/n/NarsetEnlightenedMaster.java +++ b/Mage.Sets/src/mage/cards/n/NarsetEnlightenedMaster.java @@ -41,11 +41,7 @@ import mage.abilities.keyword.HexproofAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; import mage.target.targetpointer.FixedTarget; @@ -58,7 +54,7 @@ public class NarsetEnlightenedMaster extends CardImpl { public NarsetEnlightenedMaster(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{R}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Monk"); diff --git a/Mage.Sets/src/mage/cards/n/NathOfTheGiltLeaf.java b/Mage.Sets/src/mage/cards/n/NathOfTheGiltLeaf.java index 6bee3e7c4c0..33ee3e1a9da 100644 --- a/Mage.Sets/src/mage/cards/n/NathOfTheGiltLeaf.java +++ b/Mage.Sets/src/mage/cards/n/NathOfTheGiltLeaf.java @@ -38,6 +38,7 @@ import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.game.permanent.token.ElfToken; import mage.target.common.TargetOpponent; @@ -51,7 +52,7 @@ public class NathOfTheGiltLeaf extends CardImpl { public NathOfTheGiltLeaf(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/n/NaturalAffinity.java b/Mage.Sets/src/mage/cards/n/NaturalAffinity.java index e783d374601..cfae01cb44c 100644 --- a/Mage.Sets/src/mage/cards/n/NaturalAffinity.java +++ b/Mage.Sets/src/mage/cards/n/NaturalAffinity.java @@ -99,7 +99,7 @@ class BecomesCreatureAllEffect extends ContinuousEffectImpl { for (Iterator it = affectedObjectList.iterator(); it.hasNext();) { Permanent permanent = it.next().getPermanent(game); if (permanent != null) { - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); } else { it.remove(); } diff --git a/Mage.Sets/src/mage/cards/n/NaturalState.java b/Mage.Sets/src/mage/cards/n/NaturalState.java index c4090f39747..c390da32bec 100644 --- a/Mage.Sets/src/mage/cards/n/NaturalState.java +++ b/Mage.Sets/src/mage/cards/n/NaturalState.java @@ -27,16 +27,17 @@ */ package mage.cards.n; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -46,7 +47,7 @@ public class NaturalState extends CardImpl { private static final FilterArtifactOrEnchantmentPermanent filter = new FilterArtifactOrEnchantmentPermanent("artifact or enchantment with converted mana cost 3 or less"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public NaturalState(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/n/NayaPanorama.java b/Mage.Sets/src/mage/cards/n/NayaPanorama.java index 8d617f45c71..7a670f975cf 100644 --- a/Mage.Sets/src/mage/cards/n/NayaPanorama.java +++ b/Mage.Sets/src/mage/cards/n/NayaPanorama.java @@ -27,10 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -40,6 +36,10 @@ import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -47,6 +47,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author North @@ -58,7 +60,7 @@ public class NayaPanorama extends CardImpl { static { filter.add(new CardTypePredicate(CardType.LAND)); - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); filter.add(Predicates.or( new SubtypePredicate("Mountain"), new SubtypePredicate("Forest"), diff --git a/Mage.Sets/src/mage/cards/n/Necromancy.java b/Mage.Sets/src/mage/cards/n/Necromancy.java index 73390856cb6..0fe2d0e986d 100644 --- a/Mage.Sets/src/mage/cards/n/Necromancy.java +++ b/Mage.Sets/src/mage/cards/n/Necromancy.java @@ -27,7 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,13 +43,7 @@ import mage.abilities.keyword.EnchantAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.DependencyType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.PermanentIdPredicate; @@ -61,6 +54,8 @@ import mage.target.Target; import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -79,7 +74,7 @@ public class Necromancy extends CardImpl { // When Necromancy leaves the battlefield, that creature's controller sacrifices it. Ability ability = new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new NecromancyReAttachEffect(), false), - SourceOnBattlefieldCondition.getInstance(), + SourceOnBattlefieldCondition.instance, "When {this} enters the battlefield, if it's on the battlefield, it becomes an Aura with \"enchant creature put onto the battlefield with {this}.\" Put target creature card from a graveyard onto the battlefield under your control and attach {this} to it."); ability.addTarget(new TargetCardInGraveyard(new FilterCreatureCard("creature card from a graveyard"))); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/n/NecromanticSelection.java b/Mage.Sets/src/mage/cards/n/NecromanticSelection.java index a5740d6c7b7..f60ff6161ed 100644 --- a/Mage.Sets/src/mage/cards/n/NecromanticSelection.java +++ b/Mage.Sets/src/mage/cards/n/NecromanticSelection.java @@ -35,6 +35,7 @@ import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ExileSpellEffect; +import mage.abilities.effects.common.continuous.BecomesBlackZombieAdditionEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -123,7 +124,8 @@ class NecromanticSelectionEffect extends OneShotEffect { Card card = game.getCard(target.getFirstTarget()); if (card != null) { controller.moveCards(card, Zone.BATTLEFIELD, source, game); - ContinuousEffect effect = new NecromanticSelectionContinuousEffect(); + ContinuousEffect effect = new BecomesBlackZombieAdditionEffect(); + effect.setText("It's a black Zombie in addition to its other colors and types"); effect.setTargetPointer(new FixedTarget(card.getId())); game.addEffect(effect, source); } @@ -133,56 +135,3 @@ class NecromanticSelectionEffect extends OneShotEffect { return false; } } - -class NecromanticSelectionContinuousEffect extends ContinuousEffectImpl { - - public NecromanticSelectionContinuousEffect() { - super(Duration.Custom, Outcome.Neutral); - staticText = "It's a black Zombie in addition to its other colors and types"; - } - - public NecromanticSelectionContinuousEffect(final NecromanticSelectionContinuousEffect effect) { - super(effect); - } - - @Override - public NecromanticSelectionContinuousEffect copy() { - return new NecromanticSelectionContinuousEffect(this); - } - - @Override - public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { - Permanent creature = game.getPermanent(targetPointer.getFirst(game, source)); - if (creature != null) { - switch (layer) { - case TypeChangingEffects_4: - if (sublayer == SubLayer.NA) { - if (!creature.getSubtype(game).contains("Zombie")) { - creature.getSubtype(game).add("Zombie"); - } - } - break; - case ColorChangingEffects_5: - if (sublayer == SubLayer.NA) { - creature.getColor(game).setBlack(true); - } - break; - } - return true; - } else { - this.used = true; - } - return false; - } - - @Override - public boolean apply(Game game, Ability source) { - return false; - } - - @Override - public boolean hasLayer(Layer layer) { - return layer == Layer.ColorChangingEffects_5 || layer == Layer.TypeChangingEffects_4; - } - -} diff --git a/Mage.Sets/src/mage/cards/n/NecromanticSummons.java b/Mage.Sets/src/mage/cards/n/NecromanticSummons.java index 025dd705596..a2c07949d2c 100644 --- a/Mage.Sets/src/mage/cards/n/NecromanticSummons.java +++ b/Mage.Sets/src/mage/cards/n/NecromanticSummons.java @@ -30,17 +30,19 @@ package mage.cards.n; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.SpellMasteryCondition; -import mage.abilities.decorator.ConditionalOneShotEffect; -import mage.abilities.effects.Effect; -import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.ReplacementEffectImpl; +import mage.abilities.effects.common.InfoEffect; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.Outcome; import mage.counters.CounterType; import mage.filter.common.FilterCreatureCard; import mage.game.Game; +import mage.game.events.EntersTheBattlefieldEvent; +import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetCardInGraveyard; @@ -51,16 +53,15 @@ import mage.target.common.TargetCardInGraveyard; public class NecromanticSummons extends CardImpl { public NecromanticSummons(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{B}"); + this.getSpellAbility().addEffect(new NecromanticSummoningReplacementEffect());// has to be added before the moving effect // Put target creature card from a graveyard onto the battlefield under your control. this.getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect()); this.getSpellAbility().addTarget(new TargetCardInGraveyard(new FilterCreatureCard("creature card from a graveyard"))); // Spell mastery - If there are two or more instant and/or sorcery cards in your graveyard, that creature enters the battlefield with two additional +1/+1 counters on it. - Effect effect = new ConditionalOneShotEffect(new NecromanticSummoningEffect(), - SpellMasteryCondition.instance, "
Spell mastery - If there are two or more instant and/or sorcery cards in your graveyard, that creature enters the battlefield with two additional +1/+1 counters on it"); - this.getSpellAbility().addEffect(effect); + this.getSpellAbility().addEffect(new InfoEffect("\"
Spell mastery - If there are two or more instant and/or sorcery cards in your graveyard, that creature enters the battlefield with two additional +1/+1 counters on it\"")); } public NecromanticSummons(final NecromanticSummons card) { @@ -73,29 +74,46 @@ public class NecromanticSummons extends CardImpl { } } -class NecromanticSummoningEffect extends OneShotEffect { +class NecromanticSummoningReplacementEffect extends ReplacementEffectImpl { - public NecromanticSummoningEffect() { - super(Outcome.BoostCreature); - this.staticText = "
Spell mastery - If there are two or more instant and/or sorcery cards in your graveyard, that creature enters the battlefield with two additional +1/+1 counters on it"; + NecromanticSummoningReplacementEffect() { + super(Duration.EndOfStep, Outcome.BoostCreature); } - public NecromanticSummoningEffect(final NecromanticSummoningEffect effect) { + NecromanticSummoningReplacementEffect(NecromanticSummoningReplacementEffect effect) { super(effect); } @Override - public NecromanticSummoningEffect copy() { - return new NecromanticSummoningEffect(this); + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + if (event.getTargetId().equals(getTargetPointer().getFirst(game, source))) { + return SpellMasteryCondition.instance.apply(game, source); + } + return false; } @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(source.getFirstTarget()); - if (permanent != null) { - permanent.addCounters(CounterType.P1P1.createInstance(2), source, game); - return true; + return false; + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + Permanent creature = ((EntersTheBattlefieldEvent) event).getTarget(); + if (creature != null) { + creature.addCounters(CounterType.P1P1.createInstance(2), source, game, event.getAppliedEffects()); + discard(); } return false; } + + @Override + public NecromanticSummoningReplacementEffect copy() { + return new NecromanticSummoningReplacementEffect(this); + } } diff --git a/Mage.Sets/src/mage/cards/n/Necroplasm.java b/Mage.Sets/src/mage/cards/n/Necroplasm.java index 9ecbdf7c728..46b29e9af6b 100644 --- a/Mage.Sets/src/mage/cards/n/Necroplasm.java +++ b/Mage.Sets/src/mage/cards/n/Necroplasm.java @@ -27,9 +27,9 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -41,13 +41,14 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; import mage.counters.CounterType; -import mage.filter.Filter.ComparisonType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 @@ -104,7 +105,7 @@ class NecroplasmEffect extends OneShotEffect { if (player != null && sourcePermanent != null) { int numCounters = sourcePermanent.getCounters(game).getCount(CounterType.P1P1); FilterCreaturePermanent filter = new FilterCreaturePermanent(); - filter.add(new ConvertedManaCostPredicate(ComparisonType.Equal, numCounters)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, numCounters)); for (Permanent permanent : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { permanent.destroy(source.getSourceId(), game, false); } diff --git a/Mage.Sets/src/mage/cards/n/NefCropEntangler.java b/Mage.Sets/src/mage/cards/n/NefCropEntangler.java new file mode 100644 index 00000000000..04df91609a9 --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NefCropEntangler.java @@ -0,0 +1,70 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.n; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.keyword.ExertAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author fireshoes + */ +public class NefCropEntangler extends CardImpl { + + public NefCropEntangler(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); + + this.subtype.add("Human"); + this.subtype.add("Warrior"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Trample + this.addAbility(TrampleAbility.getInstance()); + + // You may exert Nef-Crop Entangler as it attacks. When you do, it gets +1/+2 until end of turn. + this.addAbility(new ExertAbility(new BecomesExertSourceTriggeredAbility(new BoostSourceEffect(1, 2, Duration.EndOfTurn)))); + } + + public NefCropEntangler(final NefCropEntangler card) { + super(card); + } + + @Override + public NefCropEntangler copy() { + return new NefCropEntangler(this); + } +} diff --git a/Mage.Sets/src/mage/cards/n/NefaroxOverlordOfGrixis.java b/Mage.Sets/src/mage/cards/n/NefaroxOverlordOfGrixis.java index e7c416896ef..e328b031971 100644 --- a/Mage.Sets/src/mage/cards/n/NefaroxOverlordOfGrixis.java +++ b/Mage.Sets/src/mage/cards/n/NefaroxOverlordOfGrixis.java @@ -27,7 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksAloneTriggeredAbility; import mage.abilities.effects.common.SacrificeEffect; @@ -36,8 +35,11 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -46,7 +48,7 @@ public class NefaroxOverlordOfGrixis extends CardImpl { public NefaroxOverlordOfGrixis(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/n/NehebTheWorthy.java b/Mage.Sets/src/mage/cards/n/NehebTheWorthy.java new file mode 100644 index 00000000000..7336239f8b2 --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NehebTheWorthy.java @@ -0,0 +1,100 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.n; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.constants.ComparisonType; +import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.CardsInHandCondition; +import mage.abilities.decorator.ConditionalContinuousEffect; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.ControllerPredicate; + +/** + * + * @author fireshoes + */ +public class NehebTheWorthy extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Minotaurs"); + + static { + filter.add(new SubtypePredicate("Minotaur")); + filter.add(new ControllerPredicate(TargetController.YOU)); + } + + public NehebTheWorthy(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}{R}"); + + addSuperType(SuperType.LEGENDARY); + this.subtype.add("Minotaur"); + this.subtype.add("Warrior"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // First strike + this.addAbility(FirstStrikeAbility.getInstance()); + + // Other Minotaurs you control have first strike. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield, filter, true))); + + // As long as you have one or fewer cards in hand, Minotaurs you control get +2/+0. + Condition condition = new CardsInHandCondition(ComparisonType.FEWER_THAN, 2); + Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( + new BoostControlledEffect(2, 0, Duration.WhileOnBattlefield, filter), condition, "As long as you have one or fewer cards in hand, Minotaurs you control get +2/+0")); + this.addAbility(ability); + + // Whenever Neheb, the Worthy deals combat damage to a player, each player discards a card. + this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new DiscardEachPlayerEffect(), false)); + } + + public NehebTheWorthy(final NehebTheWorthy card) { + super(card); + } + + @Override + public NehebTheWorthy copy() { + return new NehebTheWorthy(this); + } +} diff --git a/Mage.Sets/src/mage/cards/n/NekoTe.java b/Mage.Sets/src/mage/cards/n/NekoTe.java index b2dbbed4d47..2f335833f7e 100644 --- a/Mage.Sets/src/mage/cards/n/NekoTe.java +++ b/Mage.Sets/src/mage/cards/n/NekoTe.java @@ -27,7 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToACreatureAttachedTriggeredAbility; import mage.abilities.common.DealsDamageToAPlayerAttachedTriggeredAbility; @@ -35,8 +34,8 @@ import mage.abilities.condition.common.SourceOnBattlefieldCondition; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.decorator.ConditionalContinuousRuleModifyingEffect; import mage.abilities.effects.ContinuousRuleModifyingEffect; -import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.effects.common.DontUntapInControllersUntapStepTargetEffect; +import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; @@ -45,6 +44,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,7 +59,7 @@ public class NekoTe extends CardImpl { // Whenever equipped creature deals damage to a creature, tap that creature. That creature doesn't untap during its controller's untap step for as long as Neko-Te remains on the battlefield. ContinuousRuleModifyingEffect skipUntapEffect = new DontUntapInControllersUntapStepTargetEffect(Duration.WhileOnBattlefield); skipUntapEffect.setText("That creature doesn't untap during its controller's untap step for as long as {this} remains on the battlefield"); - ConditionalContinuousRuleModifyingEffect effect = new ConditionalContinuousRuleModifyingEffect(skipUntapEffect, new SourceOnBattlefieldCondition()); + ConditionalContinuousRuleModifyingEffect effect = new ConditionalContinuousRuleModifyingEffect(skipUntapEffect, SourceOnBattlefieldCondition.instance); Ability ability = new DealsDamageToACreatureAttachedTriggeredAbility(new TapTargetEffect("that creature"), false, "equipped creature", false, true); ability.addEffect(effect); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/n/NekusarTheMindrazer.java b/Mage.Sets/src/mage/cards/n/NekusarTheMindrazer.java index ffa28080b11..b2d268635cd 100644 --- a/Mage.Sets/src/mage/cards/n/NekusarTheMindrazer.java +++ b/Mage.Sets/src/mage/cards/n/NekusarTheMindrazer.java @@ -27,7 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfDrawTriggeredAbility; import mage.abilities.common.DrawCardOpponentTriggeredAbility; @@ -37,8 +36,11 @@ import mage.abilities.effects.common.DrawCardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 @@ -47,7 +49,7 @@ public class NekusarTheMindrazer extends CardImpl { public NekusarTheMindrazer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/n/NemataGroveGuardian.java b/Mage.Sets/src/mage/cards/n/NemataGroveGuardian.java index 62bc6faee33..124cb07626e 100644 --- a/Mage.Sets/src/mage/cards/n/NemataGroveGuardian.java +++ b/Mage.Sets/src/mage/cards/n/NemataGroveGuardian.java @@ -27,9 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -38,7 +35,9 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterCreaturePermanent; @@ -46,6 +45,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.SaprolingToken; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki @@ -61,7 +62,7 @@ public class NemataGroveGuardian extends CardImpl { public NemataGroveGuardian(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Treefolk"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/n/NemesisOfMortals.java b/Mage.Sets/src/mage/cards/n/NemesisOfMortals.java index 439c37eb9a1..1ef69472349 100644 --- a/Mage.Sets/src/mage/cards/n/NemesisOfMortals.java +++ b/Mage.Sets/src/mage/cards/n/NemesisOfMortals.java @@ -30,22 +30,15 @@ package mage.cards.n; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.SpellAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; -import mage.abilities.effects.common.cost.CostModificationEffectImpl; +import mage.abilities.effects.common.cost.SourceCostReductionForEachCardInGraveyardEffect; import mage.abilities.keyword.MonstrosityAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; -import mage.game.Game; -import mage.players.Player; -import mage.util.CardUtil; /** * @@ -54,17 +47,17 @@ import mage.util.CardUtil; public class NemesisOfMortals extends CardImpl { public NemesisOfMortals(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}{G}"); this.subtype.add("Snake"); this.power = new MageInt(5); this.toughness = new MageInt(5); // Nemesis of Mortals costs {1} less to cast for each creature card in your graveyard. - Ability ability = new SimpleStaticAbility(Zone.ALL, new NemesisOfMortalsCostReductionEffect()); + Ability ability = new SimpleStaticAbility(Zone.ALL, new SourceCostReductionForEachCardInGraveyardEffect(new FilterCreatureCard())); ability.setRuleAtTheTop(true); this.addAbility(ability); - + // {7}{G}{G}: Monstrosity 5. This ability costs {1} less to activate for each creature card in your graveyard. ability = new MonstrosityAbility("{7}{G}{G}", 5); for (Effect effect : ability.getEffects()) { @@ -82,41 +75,3 @@ public class NemesisOfMortals extends CardImpl { return new NemesisOfMortals(this); } } - -class NemesisOfMortalsCostReductionEffect extends CostModificationEffectImpl { - - NemesisOfMortalsCostReductionEffect() { - super(Duration.WhileOnStack, Outcome.Benefit, CostModificationType.REDUCE_COST); - staticText = "{this} costs {1} less to cast for each creature card in your graveyard"; - } - - NemesisOfMortalsCostReductionEffect(NemesisOfMortalsCostReductionEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source, Ability abilityToModify) { - Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { - int reductionAmount = controller.getGraveyard().count(new FilterCreatureCard(), game); - CardUtil.reduceCost(abilityToModify, reductionAmount); - return true; - } - return false; - } - - @Override - public boolean applies(Ability abilityToModify, Ability source, Game game) { - if (((abilityToModify instanceof SpellAbility) || (abilityToModify instanceof MonstrosityAbility)) - && abilityToModify.getSourceId().equals(source.getSourceId())) { - return true; - } - return false; - } - - @Override - public NemesisOfMortalsCostReductionEffect copy() { - return new NemesisOfMortalsCostReductionEffect(this); - } -} - diff --git a/Mage.Sets/src/mage/cards/n/NemesisTrap.java b/Mage.Sets/src/mage/cards/n/NemesisTrap.java index 4c243bf8fad..e3618c5c020 100644 --- a/Mage.Sets/src/mage/cards/n/NemesisTrap.java +++ b/Mage.Sets/src/mage/cards/n/NemesisTrap.java @@ -30,7 +30,7 @@ package mage.cards.n; import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -72,7 +72,7 @@ public class NemesisTrap extends CardImpl { this.subtype.add("Trap"); // If a white creature is attacking, you may pay {B}{B} rather than pay Nemesis Trap's mana cost. - this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl("{B}{B}"), new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0, false))); + this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl("{B}{B}"), new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0, false))); // Exile target attacking creature. Create a token that's a copy of that creature. Exile it at the beginning of the next end step. this.getSpellAbility().addEffect(new NemesisTrapEffect()); diff --git a/Mage.Sets/src/mage/cards/n/NestOfScarabs.java b/Mage.Sets/src/mage/cards/n/NestOfScarabs.java new file mode 100644 index 00000000000..b844353245c --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NestOfScarabs.java @@ -0,0 +1,122 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.n; + +import java.util.UUID; + +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.dynamicvalue.common.EffectKeyValue; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.game.permanent.token.Token; + +/** + * + * @author stravant + */ +public class NestOfScarabs extends CardImpl { + + public NestOfScarabs(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}"); + + // Whenever you put one or more -1/-1 counters on a creature, create that many 1/1 black Insect tokens. + this.addAbility(new NestOfScarabsTriggeredAbility()); + + } + + public NestOfScarabs(final NestOfScarabs card) { + super(card); + } + + @Override + public NestOfScarabs copy() { + return new NestOfScarabs(this); + } +} + +class NestOfScarabsTriggeredAbility extends TriggeredAbilityImpl { + + NestOfScarabsTriggeredAbility() { + super(Zone.BATTLEFIELD, new CreateTokenEffect(new BlackInsectToken(), new EffectKeyValue("countersAdded"))); + } + + NestOfScarabsTriggeredAbility(final NestOfScarabsTriggeredAbility ability) { + super(ability); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.COUNTERS_ADDED; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + boolean weAreDoingIt = getControllerId().equals(game.getControllerId(event.getSourceId())); + boolean isM1M1Counters = event.getData().equals(CounterType.M1M1.getName()); + if (weAreDoingIt && isM1M1Counters) { + Permanent permanent = game.getPermanentOrLKIBattlefield(event.getTargetId()); + if (permanent == null) { + permanent = game.getPermanentEntering(event.getTargetId()); + } + if (permanent.isCreature()) { + getEffects().forEach(effect -> effect.setValue("countersAdded", event.getAmount())); + return true; + } + } + return false; + } + + @Override + public NestOfScarabsTriggeredAbility copy() { + return new NestOfScarabsTriggeredAbility(this); + } + + @Override + public String getRule() { + return "Whenever you put one or more -1/-1 counters on a creature, create that many 1/1 black Insect tokens."; + } +} + +class BlackInsectToken extends Token { + BlackInsectToken() { + super("Insect", "1/1 black Insect token"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add("Insect"); + power = new MageInt(1); + toughness = new MageInt(1); + } +} diff --git a/Mage.Sets/src/mage/cards/n/NetherVoid.java b/Mage.Sets/src/mage/cards/n/NetherVoid.java index 25c2a1a67d8..2e271a8043b 100644 --- a/Mage.Sets/src/mage/cards/n/NetherVoid.java +++ b/Mage.Sets/src/mage/cards/n/NetherVoid.java @@ -35,6 +35,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SetTargetPointer; +import mage.constants.SuperType; import mage.filter.FilterSpell; /** @@ -45,7 +46,7 @@ public class NetherVoid extends CardImpl { public NetherVoid(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{B}"); - this.supertype.add("World"); + addSuperType(SuperType.WORLD); // Whenever a player casts a spell, counter it unless that player pays {3}. this.addAbility(new SpellCastAllTriggeredAbility(new CounterUnlessPaysEffect(new GenericManaCost(3)), new FilterSpell("a spell"), false, SetTargetPointer.SPELL)); diff --git a/Mage.Sets/src/mage/cards/n/NeverReturn.java b/Mage.Sets/src/mage/cards/n/NeverReturn.java new file mode 100644 index 00000000000..3fa5d9af014 --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NeverReturn.java @@ -0,0 +1,74 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.n; + +import java.util.UUID; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.effects.common.ExileTargetEffect; +import mage.abilities.keyword.AftermathAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.SpellAbilityType; +import mage.game.permanent.token.ZombieToken; +import mage.target.common.TargetCardInGraveyard; +import mage.target.common.TargetCreatureOrPlaneswalker; + +/** + * + * @author fireshoes + */ +public class NeverReturn extends SplitCard { + + public NeverReturn(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.SORCERY}, "{1}{B}{B}", "{3}{B}", SpellAbilityType.SPLIT_AFTERMATH); + + // Never + // Destroy target creature or planeswalker. + getLeftHalfCard().getSpellAbility().addEffect(new DestroyTargetEffect()); + getLeftHalfCard().getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker()); + + // Return + // Exile target card from a graveyard. Create a 2/2 black Zombie creature token. + ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); + getRightHalfCard().getSpellAbility().addEffect(new ExileTargetEffect()); + getRightHalfCard().getSpellAbility().addTarget(new TargetCardInGraveyard()); + getRightHalfCard().getSpellAbility().addEffect(new CreateTokenEffect(new ZombieToken())); + } + + public NeverReturn(final NeverReturn card) { + super(card); + } + + @Override + public NeverReturn copy() { + return new NeverReturn(this); + } +} diff --git a/Mage.Sets/src/mage/cards/n/NewPerspectives.java b/Mage.Sets/src/mage/cards/n/NewPerspectives.java new file mode 100644 index 00000000000..fdd28604a6b --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NewPerspectives.java @@ -0,0 +1,127 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.n; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.CardsInHandCondition; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.decorator.ConditionalReplacementEffect; +import mage.abilities.effects.ReplacementEffectImpl; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.CostEvent; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.players.Player; + +/** + * + * @author LevelX2 + */ +public class NewPerspectives extends CardImpl { + + public NewPerspectives(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{5}{U}"); + + // When New Perspectives enters the battlefield, draw three cards. + this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(3), false)); + + // As long as you have seven or more cards in hand, you may pay {0} rather than pay cycling costs. + Condition condition = new CardsInHandCondition(ComparisonType.MORE_THAN, 6); + Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, + new ConditionalReplacementEffect( + new PerspectivesReplaceCylcingCosts(), condition)); + this.addAbility(ability); + } + + public NewPerspectives(final NewPerspectives card) { + super(card); + } + + @Override + public NewPerspectives copy() { + return new NewPerspectives(this); + } +} + +class PerspectivesReplaceCylcingCosts extends ReplacementEffectImpl { + + public PerspectivesReplaceCylcingCosts() { + super(Duration.WhileOnBattlefield, Outcome.Benefit); + staticText = "As long as you have seven or more cards in hand, you may pay {0} rather than pay cycling costs"; + } + + public PerspectivesReplaceCylcingCosts(final PerspectivesReplaceCylcingCosts effect) { + super(effect); + } + + @Override + public PerspectivesReplaceCylcingCosts copy() { + return new PerspectivesReplaceCylcingCosts(this); + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + if (event.getType() == EventType.CAN_PAY_CYCLE_COST) { + ((CostEvent) event).setCost(new ManaCostsImpl<>("{0}")); + return false; + } + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null && controller.chooseUse(outcome, "Pay {0} rather than normal cycling costs?", source, game)) { + ((CostEvent) event).setCost(new ManaCostsImpl<>("{0}")); + } + return false; + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == EventType.PAY_CYCLE_COST || event.getType() == EventType.CAN_PAY_CYCLE_COST; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + return event.getPlayerId().equals(source.getControllerId()); + } + +} diff --git a/Mage.Sets/src/mage/cards/n/NezumiGraverobber.java b/Mage.Sets/src/mage/cards/n/NezumiGraverobber.java index 6a8cc57a566..e905db2ec95 100644 --- a/Mage.Sets/src/mage/cards/n/NezumiGraverobber.java +++ b/Mage.Sets/src/mage/cards/n/NezumiGraverobber.java @@ -27,7 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -41,6 +40,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; @@ -51,6 +51,8 @@ import mage.target.Target; import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCardInOpponentsGraveyard; +import java.util.UUID; + /** * @author Loki */ @@ -120,7 +122,7 @@ class NighteyesTheDesecratorToken extends Token { NighteyesTheDesecratorToken() { super("Nighteyes the Desecrator", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setBlack(true); subtype.add("Rat"); diff --git a/Mage.Sets/src/mage/cards/n/NezumiShortfang.java b/Mage.Sets/src/mage/cards/n/NezumiShortfang.java index 6f23cd95262..148c8111ea2 100644 --- a/Mage.Sets/src/mage/cards/n/NezumiShortfang.java +++ b/Mage.Sets/src/mage/cards/n/NezumiShortfang.java @@ -27,15 +27,9 @@ */ package mage.cards.n; -import java.util.UUID; - -import mage.abilities.CountType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.condition.Condition; @@ -43,15 +37,18 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.abilities.effects.common.FlipSourceEffect; +import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * @author LevelX2 */ @@ -73,7 +70,7 @@ public class NezumiShortfang extends CardImpl { ability.addTarget(new TargetOpponent()); ability.addEffect(new ConditionalOneShotEffect( new FlipSourceEffect(new StabwhiskerTheOdious()), - new CardsInTargetOpponentHandCondition(CountType.FEWER_THAN, 1), + new CardsInTargetOpponentHandCondition(ComparisonType.FEWER_THAN, 1), "Then if that player has no cards in hand, flip {this}")); this.addAbility(ability); } @@ -92,7 +89,7 @@ class StabwhiskerTheOdious extends Token { StabwhiskerTheOdious() { super("Stabwhisker the Odious", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setBlack(true); subtype.add("Rat"); @@ -139,19 +136,19 @@ class StabwhiskerLoseLifeEffect extends OneShotEffect { class CardsInTargetOpponentHandCondition implements Condition { private Condition condition; - private CountType type; + private ComparisonType type; private int count; public CardsInTargetOpponentHandCondition() { - this(CountType.EQUAL_TO, 0); + this(ComparisonType.EQUAL_TO, 0); } - public CardsInTargetOpponentHandCondition(CountType type, int count) { + public CardsInTargetOpponentHandCondition(ComparisonType type, int count) { this.type = type; this.count = count; } - public CardsInTargetOpponentHandCondition(CountType type, int count, Condition conditionToDecorate) { + public CardsInTargetOpponentHandCondition(ComparisonType type, int count, Condition conditionToDecorate) { this(type, count); this.condition = conditionToDecorate; } @@ -163,7 +160,7 @@ class CardsInTargetOpponentHandCondition implements Condition { if (opponent == null) { return false; } - conditionApplies = CountType.compare(opponent.getHand().size(), type, count); + conditionApplies = ComparisonType.compare(opponent.getHand().size(), type, count); //If a decorated condition exists, check it as well and apply them together. if (this.condition != null) { diff --git a/Mage.Sets/src/mage/cards/n/NicolBolas.java b/Mage.Sets/src/mage/cards/n/NicolBolas.java index 3ad55a640c6..b445e1cc609 100644 --- a/Mage.Sets/src/mage/cards/n/NicolBolas.java +++ b/Mage.Sets/src/mage/cards/n/NicolBolas.java @@ -38,6 +38,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; /** @@ -48,7 +49,7 @@ public class NicolBolas extends CardImpl { public NicolBolas(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}{B}{B}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elder"); this.subtype.add("Dragon"); diff --git a/Mage.Sets/src/mage/cards/n/NightDay.java b/Mage.Sets/src/mage/cards/n/NightDay.java index 47d9ba373b2..19d3f0da575 100644 --- a/Mage.Sets/src/mage/cards/n/NightDay.java +++ b/Mage.Sets/src/mage/cards/n/NightDay.java @@ -25,7 +25,6 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.n; import java.util.Iterator; @@ -35,12 +34,13 @@ import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.continuous.BoostTargetEffect; -import mage.constants.CardType; import mage.cards.CardSetInfo; import mage.cards.SplitCard; +import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Layer; import mage.constants.Outcome; +import mage.constants.SpellAbilityType; import mage.constants.SubLayer; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -52,15 +52,14 @@ import mage.target.common.TargetCreaturePermanent; * * @author LevelX2 */ - public class NightDay extends SplitCard { public NightDay(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{B}","{2}{W}",false); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}", "{2}{W}", SpellAbilityType.SPLIT); // Night // Target creature gets -1/-1 until end of turn. - getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(-1,-1,Duration.EndOfTurn)); + getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(-1, -1, Duration.EndOfTurn)); getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); // Day diff --git a/Mage.Sets/src/mage/cards/n/NightDealings.java b/Mage.Sets/src/mage/cards/n/NightDealings.java index 41dcfba7e6c..8e4dad060cd 100644 --- a/Mage.Sets/src/mage/cards/n/NightDealings.java +++ b/Mage.Sets/src/mage/cards/n/NightDealings.java @@ -28,6 +28,7 @@ package mage.cards.n; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.Cost; @@ -39,7 +40,6 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.common.FilterNonlandCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; @@ -52,13 +52,12 @@ import java.util.Objects; import java.util.UUID; /** - * * @author Loki */ public class NightDealings extends CardImpl { public NightDealings(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{B}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}{B}"); // Whenever a source you control deals damage to another player, put that many theft counters on Night Dealings. this.addAbility((new NightDealingsTriggeredAbility())); @@ -180,7 +179,7 @@ public class NightDealings extends CardImpl { } FilterNonlandCard filter = new FilterNonlandCard("nonland card with converted mana cost X = " + cmc); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, cmc)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, cmc)); TargetCardInLibrary target = new TargetCardInLibrary(filter); if (player.searchLibrary(target, game)) { diff --git a/Mage.Sets/src/mage/cards/n/NightOfSoulsBetrayal.java b/Mage.Sets/src/mage/cards/n/NightOfSoulsBetrayal.java index 2c1ff28199a..a94a5a62273 100644 --- a/Mage.Sets/src/mage/cards/n/NightOfSoulsBetrayal.java +++ b/Mage.Sets/src/mage/cards/n/NightOfSoulsBetrayal.java @@ -28,17 +28,18 @@ package mage.cards.n; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author Loki @@ -48,7 +49,7 @@ public class NightOfSoulsBetrayal extends CardImpl { public NightOfSoulsBetrayal (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(-1, -1, Duration.WhileOnBattlefield, filter, false))); } diff --git a/Mage.Sets/src/mage/cards/n/Nihilith.java b/Mage.Sets/src/mage/cards/n/Nihilith.java index 6762ed66354..51cf55c2022 100644 --- a/Mage.Sets/src/mage/cards/n/Nihilith.java +++ b/Mage.Sets/src/mage/cards/n/Nihilith.java @@ -27,7 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.PutCardIntoGraveFromAnywhereAllTriggeredAbility; import mage.abilities.condition.common.SuspendedCondition; @@ -45,6 +44,8 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.FilterCard; +import java.util.UUID; + /** * * @author LevelX2 @@ -67,7 +68,7 @@ public class Nihilith extends CardImpl { this.addAbility(new ConditionalTriggeredAbility( new PutCardIntoGraveFromAnywhereAllTriggeredAbility(Zone.EXILED, new RemoveCounterSourceEffect(CounterType.TIME.createInstance()), true, new FilterCard(), TargetController.OPPONENT, SetTargetPointer.NONE), - SuspendedCondition.getInstance(), + SuspendedCondition.instance, "Whenever a card is put into an opponent's graveyard from anywhere, if {this} is suspended, you may remove a time counter from {this}." )); diff --git a/Mage.Sets/src/mage/cards/n/NimbleBladeKhenra.java b/Mage.Sets/src/mage/cards/n/NimbleBladeKhenra.java new file mode 100644 index 00000000000..ecc07a4f4e0 --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NimbleBladeKhenra.java @@ -0,0 +1,64 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.n; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.ProwessAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class NimbleBladeKhenra extends CardImpl { + + public NimbleBladeKhenra(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); + + this.subtype.add("Jackal"); + this.subtype.add("Warrior"); + this.power = new MageInt(1); + this.toughness = new MageInt(3); + + // Prowess + this.addAbility(new ProwessAbility()); + + } + + public NimbleBladeKhenra(final NimbleBladeKhenra card) { + super(card); + } + + @Override + public NimbleBladeKhenra copy() { + return new NimbleBladeKhenra(this); + } +} diff --git a/Mage.Sets/src/mage/cards/n/NinThePainArtist.java b/Mage.Sets/src/mage/cards/n/NinThePainArtist.java index 8ae64afb505..c40adb36c68 100644 --- a/Mage.Sets/src/mage/cards/n/NinThePainArtist.java +++ b/Mage.Sets/src/mage/cards/n/NinThePainArtist.java @@ -27,7 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,12 +37,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 @@ -52,7 +54,7 @@ public class NinThePainArtist extends CardImpl { public NinThePainArtist(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vedalken"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java b/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java index 11d0b19ddf6..02ad58399da 100644 --- a/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java +++ b/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java @@ -40,12 +40,7 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterLandPermanent; import mage.game.Game; import mage.game.permanent.Permanent; @@ -132,12 +127,12 @@ class NissaSageAnimistToken extends Token { NissaSageAnimistToken() { super("Ashaya, the Awoken World", "legendary 4/4 green Elemental creature token named Ashaya, the Awoken World"); this.setOriginalExpansionSetCode("ORI"); - this.getSupertype().add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.getPower().modifyBaseValue(4); this.getToughness().modifyBaseValue(4); this.color.setGreen(true); this.getSubtype(null).add("Elemental"); - this.getCardType().add(CardType.CREATURE); + this.addCardType(CardType.CREATURE); } } @@ -165,7 +160,7 @@ class NissaSageAnimistMinusSevenEffect extends ContinuousEffectImpl { switch (layer) { case TypeChangingEffects_4: if (!permanent.isCreature()) { - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); } if (!permanent.getSubtype(game).contains("Elemental")) { permanent.getSubtype(game).add("Elemental"); diff --git a/Mage.Sets/src/mage/cards/n/NissaStewardOfElements.java b/Mage.Sets/src/mage/cards/n/NissaStewardOfElements.java new file mode 100644 index 00000000000..c6d6e592056 --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NissaStewardOfElements.java @@ -0,0 +1,155 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.n; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.LoyaltyAbility; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.dynamicvalue.common.CountersSourceCount; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.EntersBattlefieldWithXCountersEffect; +import mage.abilities.effects.common.UntapTargetEffect; +import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect; +import mage.abilities.effects.keyword.ScryEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.HasteAbility; +import mage.cards.*; +import mage.constants.*; +import mage.counters.CounterType; +import mage.filter.common.FilterControlledLandPermanent; +import mage.filter.common.FilterPermanentCard; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; +import mage.game.Game; +import mage.game.permanent.token.Token; +import mage.players.Player; +import mage.target.TargetPermanent; + +/** + * + * @author fireshoes + */ +public class NissaStewardOfElements extends CardImpl { + + public NissaStewardOfElements(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{X}{G}{U}"); + + this.subtype.add("Nissa"); + + Ability abilityETB = new EntersBattlefieldAbility(new EntersBattlefieldWithXCountersEffect(CounterType.LOYALTY.createInstance())); + abilityETB.setRuleVisible(false); + this.addAbility(abilityETB); + + // +2: Scry 2. + this.addAbility(new LoyaltyAbility(new ScryEffect(2), 2)); + + // 0: Look at the top card of your library. If it's a land card or a creature card with converted mana cost less than or equal + // to the number of loyalty counters on Nissa, Steward of Elements, you may put that card onto the battlefield. + this.addAbility(new LoyaltyAbility(new NissaStewardOfElementsEffect(), 0)); + + // -6: Untap up to two target lands you control. They become 5/5 Elemental creatures with flying and haste until end of turn. They're still lands. + Effect effect = new UntapTargetEffect(); + effect.setText("Untap up to two target lands you control"); + LoyaltyAbility ability = new LoyaltyAbility(effect, -6); + effect = new BecomesCreatureTargetEffect(new NissaStewardOfElementsToken(), false, true, Duration.EndOfTurn); + effect.setText("They become 5/5 Elemental creatures with flying and haste until end of turn. They're still lands"); + ability.addEffect(effect); + ability.addTarget(new TargetPermanent(0, 2, new FilterControlledLandPermanent(), false)); + this.addAbility(ability); + } + + public NissaStewardOfElements(final NissaStewardOfElements card) { + super(card); + } + + @Override + public NissaStewardOfElements copy() { + return new NissaStewardOfElements(this); + } +} + +class NissaStewardOfElementsEffect extends OneShotEffect { + + public NissaStewardOfElementsEffect() { + super(Outcome.PutCardInPlay); + this.staticText = "look at the top card of your library. If it's a land card or a creature card with converted mana cost less than or equal " + + "to the number of loyalty counters on {this}, you may put that card onto the battlefield"; + } + + public NissaStewardOfElementsEffect(final NissaStewardOfElementsEffect effect) { + super(effect); + } + + @Override + public NissaStewardOfElementsEffect copy() { + return new NissaStewardOfElementsEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(source.getControllerId()); + if (player == null) { + return false; + } + int count = 1 + new CountersSourceCount(CounterType.LOYALTY).calculate(game, source, this); + FilterPermanentCard filter = new FilterPermanentCard(); + filter.add(Predicates.or(new CardTypePredicate(CardType.CREATURE), + new CardTypePredicate(CardType.LAND))); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, count)); + Card card = player.getLibrary().getFromTop(game); + if (card != null) { + Cards cards = new CardsImpl(); + cards.add(card); + player.lookAtCards("Nissa, Steward of Elements", cards, game); + if (filter.match(card, game)) { + String message = "Put " + card.getName() + " onto the battlefield?"; + if (player.chooseUse(outcome, message, source, game)) { + return card.putOntoBattlefield(game, Zone.LIBRARY, source.getSourceId(), source.getControllerId(), false); + } + } + } + return true; + } +} + +class NissaStewardOfElementsToken extends Token { + + public NissaStewardOfElementsToken() { + super("", "5/5 Elemental creature with flying and haste"); + this.cardType.add(CardType.CREATURE); + this.subtype.add("Elemental"); + this.power = new MageInt(5); + this.toughness = new MageInt(5); + this.addAbility(FlyingAbility.getInstance()); + this.addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage.Sets/src/mage/cards/n/NissaVastwoodSeer.java b/Mage.Sets/src/mage/cards/n/NissaVastwoodSeer.java index 644aab496bd..99e5abe8673 100644 --- a/Mage.Sets/src/mage/cards/n/NissaVastwoodSeer.java +++ b/Mage.Sets/src/mage/cards/n/NissaVastwoodSeer.java @@ -27,9 +27,8 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.Gender; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,12 +40,15 @@ import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author emerald000 @@ -55,13 +57,13 @@ public class NissaVastwoodSeer extends CardImpl { private static final FilterCard filter = new FilterCard("basic Forest card"); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); filter.add(new SubtypePredicate("Forest")); } public NissaVastwoodSeer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Scout"); this.power = new MageInt(2); @@ -77,7 +79,7 @@ public class NissaVastwoodSeer extends CardImpl { this.addAbility(new TransformAbility()); this.addAbility(new ConditionalTriggeredAbility( new EntersBattlefieldControlledTriggeredAbility(new ExileAndReturnTransformedSourceEffect(Gender.FEMALE), new FilterLandPermanent()), - new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.MORE_THAN, 6, true), + new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.MORE_THAN, 6, true), "Whenever a land enters the battlefield under your control, if you control seven or more lands, exile {this}, then return her to the battlefield transformed under her owner's control.")); } diff --git a/Mage.Sets/src/mage/cards/n/NivMizzetDracogenius.java b/Mage.Sets/src/mage/cards/n/NivMizzetDracogenius.java index 507b0df9e45..3087e8d2689 100644 --- a/Mage.Sets/src/mage/cards/n/NivMizzetDracogenius.java +++ b/Mage.Sets/src/mage/cards/n/NivMizzetDracogenius.java @@ -27,9 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToAPlayerTriggeredAbility; @@ -40,8 +37,13 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 @@ -50,7 +52,7 @@ public class NivMizzetDracogenius extends CardImpl { public NivMizzetDracogenius(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/n/NivMizzetTheFiremind.java b/Mage.Sets/src/mage/cards/n/NivMizzetTheFiremind.java index c2a4ffc77f5..041e83d63d9 100644 --- a/Mage.Sets/src/mage/cards/n/NivMizzetTheFiremind.java +++ b/Mage.Sets/src/mage/cards/n/NivMizzetTheFiremind.java @@ -27,9 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DrawCardControllerTriggeredAbility; @@ -40,9 +37,13 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki @@ -51,7 +52,7 @@ public class NivMizzetTheFiremind extends CardImpl { public NivMizzetTheFiremind(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/n/NoContest.java b/Mage.Sets/src/mage/cards/n/NoContest.java index 1c6ce88e9c9..798459dc025 100644 --- a/Mage.Sets/src/mage/cards/n/NoContest.java +++ b/Mage.Sets/src/mage/cards/n/NoContest.java @@ -27,15 +27,13 @@ */ package mage.cards.n; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.common.FightTargetsEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; @@ -44,14 +42,16 @@ import mage.game.stack.Spell; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.Set; +import java.util.UUID; + /** - * * @author Styxo */ public class NoContest extends CardImpl { public NoContest(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{G}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}"); // Target creature you control fights target creature with power less than its power. this.getSpellAbility().addEffect(new FightTargetsEffect()); @@ -91,7 +91,7 @@ class TargetCreatureWithLessPowerPermanent extends TargetPermanent { } // now check, if another creature has less power and can be targeted FilterCreaturePermanent checkFilter = new FilterCreaturePermanent(); - checkFilter.add(new PowerPredicate(Filter.ComparisonType.LessThan, maxPower)); + checkFilter.add(new PowerPredicate(ComparisonType.FEWER_THAN, maxPower)); for (Permanent permanent : game.getBattlefield().getActivePermanents(checkFilter, sourceControllerId, sourceId, game)) { if (permanent.canBeTargetedBy(sourceCard, sourceControllerId, game)) { return true; @@ -109,7 +109,7 @@ class TargetCreatureWithLessPowerPermanent extends TargetPermanent { int power = firstTarget.getPower().getValue(); // overwrite the filter with the power predicate filter = new FilterCreaturePermanent("creature with power less than " + power); - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, power)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, power)); } } return super.possibleTargets(sourceId, sourceControllerId, game); diff --git a/Mage.Sets/src/mage/cards/n/NoggleHedgeMage.java b/Mage.Sets/src/mage/cards/n/NoggleHedgeMage.java index cd9d54126bb..45c270e3468 100644 --- a/Mage.Sets/src/mage/cards/n/NoggleHedgeMage.java +++ b/Mage.Sets/src/mage/cards/n/NoggleHedgeMage.java @@ -30,7 +30,7 @@ package mage.cards.n; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -72,12 +72,12 @@ public class NoggleHedgeMage extends CardImpl { this.toughness = new MageInt(2); // When Noggle Hedge-Mage enters the battlefield, if you control two or more Islands, you may tap two target permanents. - Ability ability = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new TapTargetEffect(), true), new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1), rule); + Ability ability = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new TapTargetEffect(), true), new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1), rule); ability.addTarget(new TargetPermanent(2, new FilterPermanent())); this.addAbility(ability); // When Noggle Hedge-Mage enters the battlefield, if you control two or more Mountains, you may have Noggle Hedge-Mage deal 2 damage to target player. - Ability ability2 = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2), true), new PermanentsOnTheBattlefieldCondition(filter2, CountType.MORE_THAN, 1), rule2); + Ability ability2 = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2), true), new PermanentsOnTheBattlefieldCondition(filter2, ComparisonType.MORE_THAN, 1), rule2); ability2.addTarget(new TargetPlayer()); this.addAbility(ability2); } diff --git a/Mage.Sets/src/mage/cards/n/NorinTheWary.java b/Mage.Sets/src/mage/cards/n/NorinTheWary.java index 85ae0869774..be2244663d8 100644 --- a/Mage.Sets/src/mage/cards/n/NorinTheWary.java +++ b/Mage.Sets/src/mage/cards/n/NorinTheWary.java @@ -27,18 +27,20 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.ExileReturnBattlefieldOwnerNextEndStepSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author LevelX2 @@ -47,7 +49,7 @@ public class NorinTheWary extends CardImpl { public NorinTheWary(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/n/NorwoodPriestess.java b/Mage.Sets/src/mage/cards/n/NorwoodPriestess.java index fd26904e923..98a5e17ed8d 100644 --- a/Mage.Sets/src/mage/cards/n/NorwoodPriestess.java +++ b/Mage.Sets/src/mage/cards/n/NorwoodPriestess.java @@ -27,7 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -65,7 +66,7 @@ public class NorwoodPriestess extends CardImpl { Zone.BATTLEFIELD, new PutPermanentOnBattlefieldEffect(filter), new TapSourceCost(), - MyTurnBeforeAttackersDeclaredCondition.getInstance() + MyTurnBeforeAttackersDeclaredCondition.instance )); } diff --git a/Mage.Sets/src/mage/cards/n/NotOfThisWorld.java b/Mage.Sets/src/mage/cards/n/NotOfThisWorld.java index 69d7fe6d386..298e2becf48 100644 --- a/Mage.Sets/src/mage/cards/n/NotOfThisWorld.java +++ b/Mage.Sets/src/mage/cards/n/NotOfThisWorld.java @@ -27,10 +27,8 @@ */ package mage.cards.n; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.effects.common.CounterTargetEffect; @@ -53,14 +51,17 @@ import mage.target.Target; import mage.target.TargetObject; import mage.target.Targets; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** - * * @author Rafbill */ public class NotOfThisWorld extends CardImpl { public NotOfThisWorld(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.TRIBAL,CardType.INSTANT},"{7}"); + super(ownerId, setInfo, new CardType[]{CardType.TRIBAL, CardType.INSTANT}, "{7}"); this.subtype.add("Eldrazi"); // Counter target spell or ability that targets a permanent you control. @@ -132,7 +133,7 @@ class TargetStackObjectTargetingControlledPermanent extends TargetObject { @Override public Set possibleTargets(UUID sourceId, UUID sourceControllerId, - Game game) { + Game game) { return possibleTargets(sourceControllerId, game); } @@ -169,7 +170,7 @@ class NotOfThisWorldCondition implements Condition { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature you control with power 7 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 6)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 6)); filter.add(new ControllerPredicate(TargetController.YOU)); } diff --git a/Mage.Sets/src/mage/cards/n/NoxiousDragon.java b/Mage.Sets/src/mage/cards/n/NoxiousDragon.java index 288739b6d20..2879510b4f3 100644 --- a/Mage.Sets/src/mage/cards/n/NoxiousDragon.java +++ b/Mage.Sets/src/mage/cards/n/NoxiousDragon.java @@ -27,20 +27,21 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -50,7 +51,7 @@ public class NoxiousDragon extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with converted mana cost 3 or less"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public NoxiousDragon(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/n/NoyanDarRoilShaper.java b/Mage.Sets/src/mage/cards/n/NoyanDarRoilShaper.java index 00b915636f6..876d5989444 100644 --- a/Mage.Sets/src/mage/cards/n/NoyanDarRoilShaper.java +++ b/Mage.Sets/src/mage/cards/n/NoyanDarRoilShaper.java @@ -27,7 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -42,6 +41,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.counters.CounterType; import mage.filter.FilterSpell; import mage.filter.common.FilterControlledLandPermanent; @@ -53,6 +53,8 @@ import mage.target.Target; import mage.target.common.TargetControlledPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes @@ -69,7 +71,7 @@ public class NoyanDarRoilShaper extends CardImpl { public NoyanDarRoilShaper(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Merfolk"); this.subtype.add("Ally"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/n/NumotTheDevastator.java b/Mage.Sets/src/mage/cards/n/NumotTheDevastator.java index 5a94d9b0d1c..f8e74fb52bf 100644 --- a/Mage.Sets/src/mage/cards/n/NumotTheDevastator.java +++ b/Mage.Sets/src/mage/cards/n/NumotTheDevastator.java @@ -27,7 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -39,9 +38,12 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterLandPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -50,7 +52,7 @@ public class NumotTheDevastator extends CardImpl { public NumotTheDevastator(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/n/NuteGunray.java b/Mage.Sets/src/mage/cards/n/NuteGunray.java index 28f05fd15c6..fe8898854cf 100644 --- a/Mage.Sets/src/mage/cards/n/NuteGunray.java +++ b/Mage.Sets/src/mage/cards/n/NuteGunray.java @@ -27,7 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; @@ -41,6 +40,7 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterArtifactPermanent; import mage.filter.common.FilterControlledArtifactPermanent; @@ -49,6 +49,8 @@ import mage.filter.predicate.permanent.TokenPredicate; import mage.game.permanent.token.DroidToken; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Styxo @@ -63,7 +65,7 @@ public class NuteGunray extends CardImpl { public NuteGunray(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Neimidian"); this.subtype.add("Advisor"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/n/NykthosShrineToNyx.java b/Mage.Sets/src/mage/cards/n/NykthosShrineToNyx.java index 98b71829194..1b0126f06e0 100644 --- a/Mage.Sets/src/mage/cards/n/NykthosShrineToNyx.java +++ b/Mage.Sets/src/mage/cards/n/NykthosShrineToNyx.java @@ -27,25 +27,27 @@ */ package mage.cards.n; -import java.util.List; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.dynamicvalue.common.DevotionCount; import mage.abilities.effects.common.ManaEffect; -import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.ActivatedManaAbilityImpl; +import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.choices.ChoiceColor; import mage.constants.CardType; import mage.constants.ColoredManaSymbol; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +56,7 @@ public class NykthosShrineToNyx extends CardImpl { public NykthosShrineToNyx(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/n/NyleaGodOfTheHunt.java b/Mage.Sets/src/mage/cards/n/NyleaGodOfTheHunt.java index cd8a07bfc32..8db5c245402 100644 --- a/Mage.Sets/src/mage/cards/n/NyleaGodOfTheHunt.java +++ b/Mage.Sets/src/mage/cards/n/NyleaGodOfTheHunt.java @@ -27,7 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,13 +41,12 @@ import mage.abilities.keyword.IndestructibleAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +55,7 @@ public class NyleaGodOfTheHunt extends CardImpl { public NyleaGodOfTheHunt(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.CREATURE},"{3}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/o/ONaginata.java b/Mage.Sets/src/mage/cards/o/ONaginata.java index 34c592ac63f..64f0a3b52c6 100644 --- a/Mage.Sets/src/mage/cards/o/ONaginata.java +++ b/Mage.Sets/src/mage/cards/o/ONaginata.java @@ -27,8 +27,8 @@ */ package mage.cards.o; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.AttachableToRestrictedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -43,12 +43,13 @@ import mage.constants.AttachmentType; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.Target; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,7 +59,7 @@ public class ONaginata extends CardImpl { private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature with 3 or more power"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); } public ONaginata(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/o/OashraCultivator.java b/Mage.Sets/src/mage/cards/o/OashraCultivator.java new file mode 100644 index 00000000000..886602ac54b --- /dev/null +++ b/Mage.Sets/src/mage/cards/o/OashraCultivator.java @@ -0,0 +1,76 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.o; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.filter.common.FilterBasicLandCard; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author fireshoes + */ +public class OashraCultivator extends CardImpl { + + public OashraCultivator(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}"); + + this.subtype.add("Human"); + this.subtype.add("Druid"); + this.power = new MageInt(0); + this.toughness = new MageInt(3); + + // {2}{G}, {T}, Sacrifice Oashra Cultivator: Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(new FilterBasicLandCard()), true), + new ManaCostsImpl("{2}{G}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + public OashraCultivator(final OashraCultivator card) { + super(card); + } + + @Override + public OashraCultivator copy() { + return new OashraCultivator(this); + } +} diff --git a/Mage.Sets/src/mage/cards/o/OathOfAjani.java b/Mage.Sets/src/mage/cards/o/OathOfAjani.java index 096a6b1a0cb..e5fa9494738 100644 --- a/Mage.Sets/src/mage/cards/o/OathOfAjani.java +++ b/Mage.Sets/src/mage/cards/o/OathOfAjani.java @@ -34,6 +34,7 @@ import mage.abilities.effects.common.counter.AddCountersAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; @@ -49,7 +50,7 @@ public class OathOfAjani extends CardImpl { public OathOfAjani(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // When Oath of Ajani enters the battlefield, put a +1/+1 counter on each creature you control. this.addAbility(new EntersBattlefieldTriggeredAbility(new AddCountersAllEffect(CounterType.P1P1.createInstance(), new FilterControlledCreaturePermanent()))); diff --git a/Mage.Sets/src/mage/cards/o/OathOfChandra.java b/Mage.Sets/src/mage/cards/o/OathOfChandra.java index 1d9a1105deb..680cac01ef8 100644 --- a/Mage.Sets/src/mage/cards/o/OathOfChandra.java +++ b/Mage.Sets/src/mage/cards/o/OathOfChandra.java @@ -27,9 +27,6 @@ */ package mage.cards.o; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,11 +37,7 @@ import mage.abilities.effects.common.DamagePlayersEffect; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; @@ -53,6 +46,11 @@ import mage.game.events.ZoneChangeEvent; import mage.target.common.TargetCreaturePermanent; import mage.watchers.Watcher; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; +import mage.abilities.effects.Effect; + /** * * @author LevelX2 @@ -67,10 +65,12 @@ public class OathOfChandra extends CardImpl { public OathOfChandra(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // When Oath of Chandra enters the battlefield, it deals 3 damage to target creature an opponent controls. - Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(3), false); + Effect effect = new DamageTargetEffect(3); + effect.setText("it deals 3 damage to target creature an opponent controls"); + Ability ability = new EntersBattlefieldTriggeredAbility(effect, false); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); // At the beginning of each end step, if a planeswalker entered the battlefield under your control this turn, Oath of Chandra deals 2 damage to each opponent. diff --git a/Mage.Sets/src/mage/cards/o/OathOfGideon.java b/Mage.Sets/src/mage/cards/o/OathOfGideon.java index a427024e578..8967fbfd158 100644 --- a/Mage.Sets/src/mage/cards/o/OathOfGideon.java +++ b/Mage.Sets/src/mage/cards/o/OathOfGideon.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -35,10 +34,7 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.game.Game; import mage.game.events.EntersTheBattlefieldEvent; @@ -46,6 +42,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.game.permanent.token.KorAllyToken; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +52,7 @@ public class OathOfGideon extends CardImpl { public OathOfGideon(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // When Oath of Gideon enters the battlefield, create two 1/1 Kor Ally creature tokens. this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new KorAllyToken(), 2), false)); diff --git a/Mage.Sets/src/mage/cards/o/OathOfJace.java b/Mage.Sets/src/mage/cards/o/OathOfJace.java index 96ea501cae8..343895aa4aa 100644 --- a/Mage.Sets/src/mage/cards/o/OathOfJace.java +++ b/Mage.Sets/src/mage/cards/o/OathOfJace.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -37,11 +36,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterPlaneswalkerPermanent; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -50,7 +52,7 @@ public class OathOfJace extends CardImpl { public OathOfJace(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // When Oath of Jace enters the battlefield, draw three cards, then discard two cards. this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawDiscardControllerEffect(3, 2), false)); diff --git a/Mage.Sets/src/mage/cards/o/OathOfLiliana.java b/Mage.Sets/src/mage/cards/o/OathOfLiliana.java index b3c4969f1b7..8b300454fa9 100644 --- a/Mage.Sets/src/mage/cards/o/OathOfLiliana.java +++ b/Mage.Sets/src/mage/cards/o/OathOfLiliana.java @@ -27,9 +27,6 @@ */ package mage.cards.o; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -39,10 +36,7 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.SacrificeOpponentsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.TargetController; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.game.events.GameEvent; @@ -50,6 +44,10 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.token.ZombieToken; import mage.watchers.Watcher; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author fireshoes @@ -58,7 +56,7 @@ public class OathOfLiliana extends CardImpl { public OathOfLiliana(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // When Oath of Liliana enters the battlefield, each opponent sacrifices a creature. this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeOpponentsEffect(new FilterControlledCreaturePermanent("a creature")), false)); diff --git a/Mage.Sets/src/mage/cards/o/OathOfNissa.java b/Mage.Sets/src/mage/cards/o/OathOfNissa.java index 285da1163be..c4e93abb267 100644 --- a/Mage.Sets/src/mage/cards/o/OathOfNissa.java +++ b/Mage.Sets/src/mage/cards/o/OathOfNissa.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -35,17 +34,8 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.AsThoughEffectImpl; import mage.abilities.effects.AsThoughManaEffect; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.ManaType; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.cards.*; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -54,6 +44,8 @@ import mage.players.ManaPoolItem; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author LevelX2 @@ -62,7 +54,7 @@ public class OathOfNissa extends CardImpl { public OathOfNissa(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // When Oath of Nissa enters the battlefield, look at the top three cards of your library. You may reveal a creature, land, or planeswalker card from among them and put it into your hand. Put the rest on the bottom of your library in any order. this.addAbility(new EntersBattlefieldTriggeredAbility(new OathOfNissaEffect())); diff --git a/Mage.Sets/src/mage/cards/o/OathkeeperTakenosDaisho.java b/Mage.Sets/src/mage/cards/o/OathkeeperTakenosDaisho.java index e9aadaefd5a..b5cb61ddb0c 100644 --- a/Mage.Sets/src/mage/cards/o/OathkeeperTakenosDaisho.java +++ b/Mage.Sets/src/mage/cards/o/OathkeeperTakenosDaisho.java @@ -42,10 +42,7 @@ import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; @@ -64,7 +61,7 @@ public class OathkeeperTakenosDaisho extends CardImpl { public OathkeeperTakenosDaisho(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Equipment"); // Equipped creature gets +3/+1. diff --git a/Mage.Sets/src/mage/cards/o/ObNixilisTheFallen.java b/Mage.Sets/src/mage/cards/o/ObNixilisTheFallen.java index 1993f06c40f..3ba20355b77 100644 --- a/Mage.Sets/src/mage/cards/o/ObNixilisTheFallen.java +++ b/Mage.Sets/src/mage/cards/o/ObNixilisTheFallen.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LandfallAbility; @@ -36,9 +35,12 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.counters.CounterType; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki @@ -47,7 +49,7 @@ public class ObNixilisTheFallen extends CardImpl { public ObNixilisTheFallen(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/o/ObNixilisUnshackled.java b/Mage.Sets/src/mage/cards/o/ObNixilisUnshackled.java index 29c1344144e..a9f444204d6 100644 --- a/Mage.Sets/src/mage/cards/o/ObNixilisUnshackled.java +++ b/Mage.Sets/src/mage/cards/o/ObNixilisUnshackled.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -39,6 +38,7 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.FilterPermanent; @@ -49,6 +49,8 @@ import mage.game.events.GameEvent.EventType; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author emerald000 @@ -57,7 +59,7 @@ public class ObNixilisUnshackled extends CardImpl { public ObNixilisUnshackled(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/o/OboroPalaceInTheClouds.java b/Mage.Sets/src/mage/cards/o/OboroPalaceInTheClouds.java index dc69a42180d..94fa4c632d1 100644 --- a/Mage.Sets/src/mage/cards/o/OboroPalaceInTheClouds.java +++ b/Mage.Sets/src/mage/cards/o/OboroPalaceInTheClouds.java @@ -27,17 +27,18 @@ */ package mage.cards.o; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Loki @@ -46,7 +47,7 @@ public class OboroPalaceInTheClouds extends CardImpl { public OboroPalaceInTheClouds(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {U} to your mana pool. this.addAbility(new BlueManaAbility()); // {1}: Return Oboro, Palace in the Clouds to its owner's hand. diff --git a/Mage.Sets/src/mage/cards/o/ObzedatGhostCouncil.java b/Mage.Sets/src/mage/cards/o/ObzedatGhostCouncil.java index cc9189ba600..bdbd1d85f9b 100644 --- a/Mage.Sets/src/mage/cards/o/ObzedatGhostCouncil.java +++ b/Mage.Sets/src/mage/cards/o/ObzedatGhostCouncil.java @@ -28,7 +28,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -44,11 +43,7 @@ import mage.abilities.keyword.HasteAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; @@ -56,6 +51,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Plopman @@ -66,7 +63,7 @@ public class ObzedatGhostCouncil extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{W}{B}{B}"); this.subtype.add("Spirit"); this.subtype.add("Advisor"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.power = new MageInt(5); this.toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/o/OddsEnds.java b/Mage.Sets/src/mage/cards/o/OddsEnds.java index bdbfc26aad8..e7e0fd23916 100644 --- a/Mage.Sets/src/mage/cards/o/OddsEnds.java +++ b/Mage.Sets/src/mage/cards/o/OddsEnds.java @@ -25,18 +25,18 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.o; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CopyTargetSpellEffect; import mage.abilities.effects.common.SacrificeEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SpellAbilityType; import mage.filter.FilterSpell; import mage.filter.common.FilterAttackingCreature; import mage.filter.predicate.Predicates; @@ -46,15 +46,10 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.TargetSpell; -/** - * - * @author LevelX2 - */ - - public class OddsEnds extends SplitCard { private static final FilterSpell filter = new FilterSpell("instant or sorcery spell"); + static { filter.add(Predicates.or( new CardTypePredicate(CardType.INSTANT), @@ -62,7 +57,7 @@ public class OddsEnds extends SplitCard { } public OddsEnds(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{U}{R}","{3}{R}{W}",false); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{U}{R}", "{3}{R}{W}", SpellAbilityType.SPLIT); // Odds // Flip a coin. If it comes up heads, counter target instant or sorcery spell. If it comes up tails, copy that spell and you may choose new targets for the copy. diff --git a/Mage.Sets/src/mage/cards/o/OdricLunarchMarshal.java b/Mage.Sets/src/mage/cards/o/OdricLunarchMarshal.java index 00edf9e6a9f..565593208ed 100644 --- a/Mage.Sets/src/mage/cards/o/OdricLunarchMarshal.java +++ b/Mage.Sets/src/mage/cards/o/OdricLunarchMarshal.java @@ -27,35 +27,21 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; -import mage.abilities.keyword.DeathtouchAbility; -import mage.abilities.keyword.DoubleStrikeAbility; -import mage.abilities.keyword.FirstStrikeAbility; -import mage.abilities.keyword.FlyingAbility; -import mage.abilities.keyword.HasteAbility; -import mage.abilities.keyword.HexproofAbility; -import mage.abilities.keyword.IndestructibleAbility; -import mage.abilities.keyword.LifelinkAbility; -import mage.abilities.keyword.MenaceAbility; -import mage.abilities.keyword.ReachAbility; -import mage.abilities.keyword.SkulkAbility; -import mage.abilities.keyword.TrampleAbility; -import mage.abilities.keyword.VigilanceAbility; +import mage.abilities.keyword.*; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.game.Game; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -64,7 +50,7 @@ public class OdricLunarchMarshal extends CardImpl { public OdricLunarchMarshal(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/o/OdricMasterTactician.java b/Mage.Sets/src/mage/cards/o/OdricMasterTactician.java index eaf5a41f107..f1e79dc62ce 100644 --- a/Mage.Sets/src/mage/cards/o/OdricMasterTactician.java +++ b/Mage.Sets/src/mage/cards/o/OdricMasterTactician.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -35,15 +34,14 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.players.Player; +import java.util.UUID; + /** * @author noxx */ @@ -51,7 +49,7 @@ public class OdricMasterTactician extends CardImpl { public OdricMasterTactician(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/o/OhranViper.java b/Mage.Sets/src/mage/cards/o/OhranViper.java index b5dd4237a45..a1b1044d8b0 100644 --- a/Mage.Sets/src/mage/cards/o/OhranViper.java +++ b/Mage.Sets/src/mage/cards/o/OhranViper.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToACreatureTriggeredAbility; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -38,6 +37,9 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -47,7 +49,7 @@ public class OhranViper extends CardImpl { public OhranViper(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{G}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Snake"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/o/OhranYeti.java b/Mage.Sets/src/mage/cards/o/OhranYeti.java index f4e9efab9b6..f3c52a8b826 100644 --- a/Mage.Sets/src/mage/cards/o/OhranYeti.java +++ b/Mage.Sets/src/mage/cards/o/OhranYeti.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,11 +37,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -52,12 +54,12 @@ public class OhranYeti extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("snow creature"); static { - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); } public OhranYeti(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Yeti"); this.power = new MageInt(3); this.toughness = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/o/OjutaiSoulOfWinter.java b/Mage.Sets/src/mage/cards/o/OjutaiSoulOfWinter.java index 2176967a2b4..00fb9514297 100644 --- a/Mage.Sets/src/mage/cards/o/OjutaiSoulOfWinter.java +++ b/Mage.Sets/src/mage/cards/o/OjutaiSoulOfWinter.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksAllTriggeredAbility; @@ -39,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SetTargetPointer; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; @@ -47,6 +47,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -64,7 +66,7 @@ public class OjutaiSoulOfWinter extends CardImpl { public OjutaiSoulOfWinter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(5); this.toughness = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/o/OjutaisCommand.java b/Mage.Sets/src/mage/cards/o/OjutaisCommand.java index 18edb0a4843..4e2d82ac9d2 100644 --- a/Mage.Sets/src/mage/cards/o/OjutaisCommand.java +++ b/Mage.Sets/src/mage/cards/o/OjutaisCommand.java @@ -27,7 +27,7 @@ */ package mage.cards.o; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -36,7 +36,6 @@ import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffec import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.FilterSpell; import mage.filter.common.FilterCreatureCard; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetSpell; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +54,7 @@ public class OjutaisCommand extends CardImpl { private static final FilterCard filter = new FilterCreatureCard("creature card with converted mana cost 2 or less from your graveyard"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); } private static final FilterSpell filter2 = new FilterSpell("creature spell"); diff --git a/Mage.Sets/src/mage/cards/o/OketraTheTrue.java b/Mage.Sets/src/mage/cards/o/OketraTheTrue.java new file mode 100644 index 00000000000..42adc84d253 --- /dev/null +++ b/Mage.Sets/src/mage/cards/o/OketraTheTrue.java @@ -0,0 +1,131 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.o; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.constants.ComparisonType; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.RestrictionEffect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.DoubleStrikeAbility; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.ControllerIdPredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.game.permanent.token.WarriorVigilantToken; +import mage.players.Player; + +/** + * + * @author fireshoes + */ +public class OketraTheTrue extends CardImpl { + + public OketraTheTrue(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}"); + + addSuperType(SuperType.LEGENDARY); + this.subtype.add("God"); + this.power = new MageInt(3); + this.toughness = new MageInt(6); + + // Double strike + this.addAbility(DoubleStrikeAbility.getInstance()); + + // Indestructible + this.addAbility(IndestructibleAbility.getInstance()); + + // Oketra the True can't attack or block unless you control three or more creatures. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new OketraTheTrueRestrictionEffect())); + + // {3}{W}: Create a 1/1 white Warrior creature token with vigilance. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new WarriorVigilantToken()), new ManaCostsImpl("{3}{W}"))); + } + + public OketraTheTrue(final OketraTheTrue card) { + super(card); + } + + @Override + public OketraTheTrue copy() { + return new OketraTheTrue(this); + } +} + +class OketraTheTrueRestrictionEffect extends RestrictionEffect { + + public OketraTheTrueRestrictionEffect() { + super(Duration.WhileOnBattlefield); + staticText = "{this} can't attack or block unless you control at least three other creatures"; + } + + public OketraTheTrueRestrictionEffect(final OketraTheTrueRestrictionEffect effect) { + super(effect); + } + + @Override + public OketraTheTrueRestrictionEffect copy() { + return new OketraTheTrueRestrictionEffect(this); + } + + @Override + public boolean canAttack(Game game) { + return false; + } + + @Override + public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game) { + return false; + } + + @Override + public boolean applies(Permanent permanent, Ability source, Game game) { + FilterCreaturePermanent filter = new FilterCreaturePermanent(); + filter.add(new ControllerIdPredicate(source.getControllerId())); + if (permanent.getId().equals(source.getSourceId())) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + int permanentsOnBattlefield = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); + return (ComparisonType.compare(permanentsOnBattlefield, ComparisonType.FEWER_THAN, 4)); + } + return true; + } // do not apply to other creatures. + return false; + } +} diff --git a/Mage.Sets/src/mage/cards/o/OketrasAttendant.java b/Mage.Sets/src/mage/cards/o/OketrasAttendant.java new file mode 100644 index 00000000000..395abb9e265 --- /dev/null +++ b/Mage.Sets/src/mage/cards/o/OketrasAttendant.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.o; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.CyclingAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author Styxo + */ +public class OketrasAttendant extends CardImpl { + + public OketrasAttendant(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{W}"); + + this.subtype.add("Bird"); + this.subtype.add("Soldier"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + + // Embalm {3}{W}{W} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{3}{W}{W}"), this)); + + } + + public OketrasAttendant(final OketrasAttendant card) { + super(card); + } + + @Override + public OketrasAttendant copy() { + return new OketrasAttendant(this); + } +} diff --git a/Mage.Sets/src/mage/cards/o/OketrasMonument.java b/Mage.Sets/src/mage/cards/o/OketrasMonument.java new file mode 100644 index 00000000000..725afe8a48e --- /dev/null +++ b/Mage.Sets/src/mage/cards/o/OketrasMonument.java @@ -0,0 +1,84 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.o; + +import java.util.UUID; +import mage.ObjectColor; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.FilterSpell; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.filter.predicate.mageobject.ColorPredicate; +import mage.game.permanent.token.WarriorVigilantToken; + +/** + * + * @author fireshoes + */ +public class OketrasMonument extends CardImpl { + + private static final FilterCard filter = new FilterCard("White creature spells"); + private static final FilterSpell filter2 = new FilterSpell("a creature spell"); + + static { + filter.add(Predicates.and(new ColorPredicate(ObjectColor.WHITE), new CardTypePredicate(CardType.CREATURE))); + } + static { + filter2.add(new CardTypePredicate(CardType.CREATURE)); + } + + public OketrasMonument(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); + + addSuperType(SuperType.LEGENDARY); + + // White creature spells you cast cost {1} less to cast. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(filter, 1))); + + // Whenever you cast a creature spell, create a 1/1 white Warrior creature token with vigilance. + this.addAbility(new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new WarriorVigilantToken()), filter2, false)); + } + + public OketrasMonument(final OketrasMonument card) { + super(card); + } + + @Override + public OketrasMonument copy() { + return new OketrasMonument(this); + } +} diff --git a/Mage.Sets/src/mage/cards/o/OkinaNightwatch.java b/Mage.Sets/src/mage/cards/o/OkinaNightwatch.java index cccd572f32e..302fa46b9a8 100644 --- a/Mage.Sets/src/mage/cards/o/OkinaNightwatch.java +++ b/Mage.Sets/src/mage/cards/o/OkinaNightwatch.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +58,7 @@ public class OkinaNightwatch extends CardImpl { // As long as you have more cards in hand than each opponent, Okina Nightwatch gets +3/+3. Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostSourceEffect(3,3, Duration.WhileOnBattlefield), - new MoreCardsInHandThanOpponentsCondition(), + MoreCardsInHandThanOpponentsCondition.instance, "As long as you have more cards in hand than each opponent, Okina Nightwatch gets +3/+3")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/o/OkinaTempleToTheGrandfathers.java b/Mage.Sets/src/mage/cards/o/OkinaTempleToTheGrandfathers.java index 323356be8fd..b000965aa2a 100644 --- a/Mage.Sets/src/mage/cards/o/OkinaTempleToTheGrandfathers.java +++ b/Mage.Sets/src/mage/cards/o/OkinaTempleToTheGrandfathers.java @@ -28,9 +28,6 @@ package mage.cards.o; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,10 +36,13 @@ import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author Loki */ @@ -51,12 +51,12 @@ public class OkinaTempleToTheGrandfathers extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("legendary creature"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public OkinaTempleToTheGrandfathers(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.addAbility(new GreenManaAbility()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 1, Duration.EndOfTurn), new ColoredManaCost(ColoredManaSymbol.G)); ability.addCost(new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/o/OliviaMobilizedForWar.java b/Mage.Sets/src/mage/cards/o/OliviaMobilizedForWar.java index 4474e658734..2f9ff781c72 100644 --- a/Mage.Sets/src/mage/cards/o/OliviaMobilizedForWar.java +++ b/Mage.Sets/src/mage/cards/o/OliviaMobilizedForWar.java @@ -39,10 +39,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; @@ -66,7 +63,7 @@ public class OliviaMobilizedForWar extends CardImpl { public OliviaMobilizedForWar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.subtype.add("Knight"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/o/OliviaVoldaren.java b/Mage.Sets/src/mage/cards/o/OliviaVoldaren.java index 612804d293b..d5f26f8e040 100644 --- a/Mage.Sets/src/mage/cards/o/OliviaVoldaren.java +++ b/Mage.Sets/src/mage/cards/o/OliviaVoldaren.java @@ -68,7 +68,7 @@ public class OliviaVoldaren extends CardImpl { public OliviaVoldaren(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/o/OloroAgelessAscetic.java b/Mage.Sets/src/mage/cards/o/OloroAgelessAscetic.java index 9a1f96c2cf6..bd3d56e4419 100644 --- a/Mage.Sets/src/mage/cards/o/OloroAgelessAscetic.java +++ b/Mage.Sets/src/mage/cards/o/OloroAgelessAscetic.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.GainLifeControllerTriggeredAbility; @@ -41,9 +40,12 @@ import mage.abilities.effects.common.LoseLifeOpponentsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,7 +54,7 @@ public class OloroAgelessAscetic extends CardImpl { public OloroAgelessAscetic(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Giant"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/o/OmnathLocusOfMana.java b/Mage.Sets/src/mage/cards/o/OmnathLocusOfMana.java index 8fa416486af..ef6bcd5f3f6 100644 --- a/Mage.Sets/src/mage/cards/o/OmnathLocusOfMana.java +++ b/Mage.Sets/src/mage/cards/o/OmnathLocusOfMana.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -37,16 +36,12 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.ManaType; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +50,7 @@ public class OmnathLocusOfMana extends CardImpl { public OmnathLocusOfMana(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/o/OmnathLocusOfRage.java b/Mage.Sets/src/mage/cards/o/OmnathLocusOfRage.java index cc8506120d4..1140cc4062f 100644 --- a/Mage.Sets/src/mage/cards/o/OmnathLocusOfRage.java +++ b/Mage.Sets/src/mage/cards/o/OmnathLocusOfRage.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; @@ -37,6 +36,7 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -44,6 +44,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.permanent.token.Token; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes @@ -59,7 +61,7 @@ public class OmnathLocusOfRage extends CardImpl { public OmnathLocusOfRage(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); this.power = new MageInt(5); this.toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/o/OnwardVictory.java b/Mage.Sets/src/mage/cards/o/OnwardVictory.java new file mode 100644 index 00000000000..4b260fb53e1 --- /dev/null +++ b/Mage.Sets/src/mage/cards/o/OnwardVictory.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.o; + +import java.util.UUID; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.dynamicvalue.common.TargetPermanentPowerCount; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.AftermathAbility; +import mage.abilities.keyword.DoubleStrikeAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SpellAbilityType; +import mage.target.common.TargetCreaturePermanent; + +public class OnwardVictory extends SplitCard { + + public OnwardVictory(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{2}{R}", "{2}{W}", SpellAbilityType.SPLIT_AFTERMATH); + + // Onward + // Target creature gets +X/+0 until end of turn where X is its power. + getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); + getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(new TargetPermanentPowerCount(), new StaticValue(0), Duration.EndOfTurn, true)); + + // to + // Victory + // Target creature gains double strike until end of turn. + ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); + Effect effect = new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfTurn); + getRightHalfCard().getSpellAbility().addEffect(effect); + getRightHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); + } + + public OnwardVictory(final OnwardVictory card) { + super(card); + } + + @Override + public OnwardVictory copy() { + return new OnwardVictory(this); + } +} diff --git a/Mage.Sets/src/mage/cards/o/OonaQueenOfTheFae.java b/Mage.Sets/src/mage/cards/o/OonaQueenOfTheFae.java index 8247fb6f97b..349bb6c16ad 100644 --- a/Mage.Sets/src/mage/cards/o/OonaQueenOfTheFae.java +++ b/Mage.Sets/src/mage/cards/o/OonaQueenOfTheFae.java @@ -41,6 +41,7 @@ import mage.cards.CardSetInfo; import mage.choices.ChoiceColor; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.token.Token; @@ -55,7 +56,7 @@ public class OonaQueenOfTheFae extends CardImpl { public OonaQueenOfTheFae(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U/B}{U/B}{U/B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Faerie"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/o/OonasBlackguard.java b/Mage.Sets/src/mage/cards/o/OonasBlackguard.java index 9499e543896..53db6dfd14c 100644 --- a/Mage.Sets/src/mage/cards/o/OonasBlackguard.java +++ b/Mage.Sets/src/mage/cards/o/OonasBlackguard.java @@ -58,7 +58,7 @@ import mage.target.targetpointer.FixedTarget; public class OonasBlackguard extends CardImpl { public OonasBlackguard(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}"); this.subtype.add("Faerie"); this.subtype.add("Rogue"); this.power = new MageInt(1); @@ -121,7 +121,7 @@ class OonasBlackguardReplacementEffect extends ReplacementEffectImpl { public boolean replaceEvent(GameEvent event, Ability source, Game game) { Permanent creature = ((EntersTheBattlefieldEvent) event).getTarget(); if (creature != null) { - creature.addCounters(CounterType.P1P1.createInstance(), source, game); + creature.addCounters(CounterType.P1P1.createInstance(), source, game, event.getAppliedEffects()); } return false; } diff --git a/Mage.Sets/src/mage/cards/o/OpalEyeKondasYojimbo.java b/Mage.Sets/src/mage/cards/o/OpalEyeKondasYojimbo.java index 4f2ae6ad1ac..1174d5a1e92 100644 --- a/Mage.Sets/src/mage/cards/o/OpalEyeKondasYojimbo.java +++ b/Mage.Sets/src/mage/cards/o/OpalEyeKondasYojimbo.java @@ -27,11 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -44,7 +39,7 @@ import mage.abilities.keyword.BushidoAbility; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.Duration; +import mage.constants.*; import mage.game.Game; import mage.game.events.DamageEvent; import mage.game.events.GameEvent; @@ -52,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetSource; +import java.util.UUID; + /** * @author LevelX2 */ @@ -59,7 +56,7 @@ public class OpalEyeKondasYojimbo extends CardImpl { public OpalEyeKondasYojimbo(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Fox"); this.subtype.add("Samurai"); diff --git a/Mage.Sets/src/mage/cards/o/OpalLakeGatekeepers.java b/Mage.Sets/src/mage/cards/o/OpalLakeGatekeepers.java index 098a902695d..93c017c3dd4 100644 --- a/Mage.Sets/src/mage/cards/o/OpalLakeGatekeepers.java +++ b/Mage.Sets/src/mage/cards/o/OpalLakeGatekeepers.java @@ -30,7 +30,7 @@ package mage.cards.o; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -66,7 +66,7 @@ public class OpalLakeGatekeepers extends CardImpl { // When Opal Lake Gatekeepers enters the battlefield, if you control two or more Gates, you may draw a card. this.addAbility(new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1)), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1), "When Opal Lake Gatekeepers enters the battlefield, if you control two or more Gates, you may draw a card.")); } diff --git a/Mage.Sets/src/mage/cards/o/OpalPalace.java b/Mage.Sets/src/mage/cards/o/OpalPalace.java index 09c48fda378..b746593bde6 100644 --- a/Mage.Sets/src/mage/cards/o/OpalPalace.java +++ b/Mage.Sets/src/mage/cards/o/OpalPalace.java @@ -110,7 +110,7 @@ class OpalPalaceWatcher extends Watcher { @Override public void watch(GameEvent event, Game game) { - if (event.getType() == GameEvent.EventType.MANA_PAYED) { + if (event.getType() == GameEvent.EventType.MANA_PAID) { if (event.getData() != null && event.getData().equals(originalId)) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null) { diff --git a/Mage.Sets/src/mage/cards/o/Opalescence.java b/Mage.Sets/src/mage/cards/o/Opalescence.java index d16722e4c3f..5f75871939d 100644 --- a/Mage.Sets/src/mage/cards/o/Opalescence.java +++ b/Mage.Sets/src/mage/cards/o/Opalescence.java @@ -109,7 +109,7 @@ class OpalescenceEffect extends ContinuousEffectImpl { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { if (!permanent.isCreature()) { - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); } } break; diff --git a/Mage.Sets/src/mage/cards/o/OpenIntoWonder.java b/Mage.Sets/src/mage/cards/o/OpenIntoWonder.java new file mode 100644 index 00000000000..a61ba06d4c3 --- /dev/null +++ b/Mage.Sets/src/mage/cards/o/OpenIntoWonder.java @@ -0,0 +1,83 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.o; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.SpellAbility; +import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.filter.common.FilterCreaturePermanent; +import mage.game.Game; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class OpenIntoWonder extends CardImpl { + + public OpenIntoWonder(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{U}{U}"); + + // X target creatures can't be blocked this turn. Until end of turn, those creatures gain "Whenever this creature deals combat damage to a player, draw a card." + Effect effect = new CantBeBlockedTargetEffect(Duration.EndOfTurn); + effect.setText("X target creatures can't be blocked this turn"); + this.getSpellAbility().addEffect(effect); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 1, new FilterCreaturePermanent(), false)); + Ability abilityToGain = new DealsCombatDamageToAPlayerTriggeredAbility(new DrawCardSourceControllerEffect(1), false); + this.getSpellAbility().addEffect(new GainAbilityTargetEffect(abilityToGain, Duration.EndOfTurn, + "Until end of turn, those creatures gain \"Whenever this creature deals combat damage to a player, draw a card.\"")); + } + + public OpenIntoWonder(final OpenIntoWonder card) { + super(card); + } + + @Override + public void adjustTargets(Ability ability, Game game) { + if (ability instanceof SpellAbility) { + ability.getTargets().clear(); + int numberOfTargets = ability.getManaCostsToPay().getX(); + numberOfTargets = Math.min(game.getBattlefield().count(new FilterCreaturePermanent(), ability.getSourceId(), ability.getControllerId(), game), numberOfTargets); + ability.addTarget(new TargetCreaturePermanent(numberOfTargets)); + } + } + + @Override + public OpenIntoWonder copy() { + return new OpenIntoWonder(this); + } +} diff --git a/Mage.Sets/src/mage/cards/o/Ophiomancer.java b/Mage.Sets/src/mage/cards/o/Ophiomancer.java index 23253544fdd..3f5d4646fd5 100644 --- a/Mage.Sets/src/mage/cards/o/Ophiomancer.java +++ b/Mage.Sets/src/mage/cards/o/Ophiomancer.java @@ -29,7 +29,7 @@ package mage.cards.o; import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -60,7 +60,7 @@ public class Ophiomancer extends CardImpl { // At the beginning of each upkeep, if you control no Snakes, create a 1/1 black Snake creature token with deathtouch. this.addAbility(new ConditionalTriggeredAbility( new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new OphiomancerSnakeToken()), TargetController.ANY, false, false), - new PermanentsOnTheBattlefieldCondition(new FilterCreaturePermanent("Snake", "no Snakes"), CountType.EQUAL_TO, 0), + new PermanentsOnTheBattlefieldCondition(new FilterCreaturePermanent("Snake", "no Snakes"), ComparisonType.EQUAL_TO, 0), "At the beginning of each upkeep, if you control no Snakes, create a 1/1 black Snake creature token with deathtouch.")); } diff --git a/Mage.Sets/src/mage/cards/o/OracleEnVec.java b/Mage.Sets/src/mage/cards/o/OracleEnVec.java index 2e0a3f2bf9d..3081e6c3922 100644 --- a/Mage.Sets/src/mage/cards/o/OracleEnVec.java +++ b/Mage.Sets/src/mage/cards/o/OracleEnVec.java @@ -30,6 +30,7 @@ package mage.cards.o; import java.util.List; import java.util.UUID; import mage.MageInt; +import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.Mode; @@ -66,7 +67,7 @@ import mage.watchers.common.AttackedThisTurnWatcher; public class OracleEnVec extends CardImpl { public OracleEnVec(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(1); @@ -249,7 +250,7 @@ class OracleEnVecDestroyEffect extends OneShotEffect { private final List chosenCreatures; - OracleEnVecDestroyEffect(List chosenCreatures) { + OracleEnVecDestroyEffect(List chosenCreatures) { // need to be changed to MageObjectReference super(Outcome.DestroyPermanent); this.chosenCreatures = chosenCreatures; this.staticText = "destroy each of the chosen creatures that didn't attack"; @@ -267,10 +268,11 @@ class OracleEnVecDestroyEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get("AttackedThisTurn"); + AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get(AttackedThisTurnWatcher.class.getName()); if (watcher != null) { for (UUID targetId : chosenCreatures) { - if (!watcher.getAttackedThisTurnCreatures().contains(targetId)) { + Permanent permanent = game.getPermanent(targetId); + if (permanent != null && !watcher.getAttackedThisTurnCreatures().contains(new MageObjectReference(permanent, game))) { Effect effect = new DestroyTargetEffect(); effect.setTargetPointer(new FixedTarget(targetId)); effect.apply(game, source); diff --git a/Mage.Sets/src/mage/cards/o/OraclesVault.java b/Mage.Sets/src/mage/cards/o/OraclesVault.java new file mode 100644 index 00000000000..a3a9dc00668 --- /dev/null +++ b/Mage.Sets/src/mage/cards/o/OraclesVault.java @@ -0,0 +1,232 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.o; + +import java.util.UUID; +import mage.MageObject; +import mage.MageObjectReference; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.common.SourceHasCounterCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.decorator.ConditionalActivatedAbility; +import mage.abilities.effects.AsThoughEffectImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AsThoughEffectType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.game.Game; +import mage.players.Library; +import mage.players.Player; + +/** + * + * @author fireshoes + */ +public class OraclesVault extends CardImpl { + + public OraclesVault(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}"); + + // {2}, {T}: Exile the top card of your library. Until end of turn, you may play that card. Put a brick counter on Oracle's Vault. + Effect effect = new OraclesVaultEffect(); + effect.setText("Exile the top card of your library. Until end of turn, you may play that card"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(2)); + ability.addCost(new TapSourceCost()); + Effect effect2 = new AddCountersSourceEffect(CounterType.BRICK.createInstance()); + effect2.setText("Put a brick counter on {this}"); + ability.addEffect(effect2); + this.addAbility(ability); + + // {T}: Exile the top card of your library. Until end of turn, you may play that card without paying its mana cost. + // Activate this ability only if there are three or more brick counters on Oracle's Vault. + this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD, + new OraclesVaultFreeEffect(), new TapSourceCost(), new SourceHasCounterCondition(CounterType.BRICK, 3, Integer.MAX_VALUE), + "{T}: Exile the top card of your library. Until end of turn, you may play that card without paying its mana cost. " + + "Activate this ability only if there are three or more brick counters on {this}")); + } + + public OraclesVault(final OraclesVault card) { + super(card); + } + + @Override + public OraclesVault copy() { + return new OraclesVault(this); + } +} + +class OraclesVaultEffect extends OneShotEffect { + + public OraclesVaultEffect() { + super(Outcome.Benefit); + } + + public OraclesVaultEffect(final OraclesVaultEffect effect) { + super(effect); + } + + @Override + public OraclesVaultEffect copy() { + return new OraclesVaultEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + MageObject sourceObject = source.getSourceObject(game); + if (controller != null && sourceObject != null && controller.getLibrary().hasCards()) { + Library library = controller.getLibrary(); + Card card = library.removeFromTop(game); + if (card != null) { + controller.moveCardToExileWithInfo(card, source.getSourceId(), sourceObject.getIdName() + " ", source.getSourceId(), game, Zone.LIBRARY, true); + game.addEffect(new OraclesVaultPlayEffect(new MageObjectReference(card, game)), source); + } + return true; + } + return false; + } +} +class OraclesVaultFreeEffect extends OneShotEffect { + + public OraclesVaultFreeEffect() { + super(Outcome.Benefit); + } + + public OraclesVaultFreeEffect(final OraclesVaultFreeEffect effect) { + super(effect); + } + + @Override + public OraclesVaultFreeEffect copy() { + return new OraclesVaultFreeEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + MageObject sourceObject = source.getSourceObject(game); + if (controller != null && sourceObject != null && controller.getLibrary().hasCards()) { + Library library = controller.getLibrary(); + Card card = library.removeFromTop(game); + if (card != null) { + controller.moveCardToExileWithInfo(card, source.getSourceId(), sourceObject.getIdName() + " ", source.getSourceId(), game, Zone.LIBRARY, true); + game.addEffect(new OraclesVaultPlayForFreeEffect(new MageObjectReference(card, game)), source); + } + return true; + } + return false; + } +} + +class OraclesVaultPlayEffect extends AsThoughEffectImpl { + + private final MageObjectReference objectReference; + + public OraclesVaultPlayEffect(MageObjectReference objectReference) { + super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit); + this.objectReference = objectReference; + staticText = "Until end of turn, you may play that card"; + } + + public OraclesVaultPlayEffect(final OraclesVaultPlayEffect effect) { + super(effect); + this.objectReference = effect.objectReference; + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public OraclesVaultPlayEffect copy() { + return new OraclesVaultPlayEffect(this); + } + + @Override + public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) { + if (objectReference.refersTo(objectId, game) && affectedControllerId.equals(source.getControllerId())) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + return true; + } else { + discard(); + } + } + return false; + } +} +class OraclesVaultPlayForFreeEffect extends AsThoughEffectImpl { + + private final MageObjectReference objectReference; + + public OraclesVaultPlayForFreeEffect(MageObjectReference objectReference) { + super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit); + this.objectReference = objectReference; + staticText = "Until end of turn, you may play that card without paying its mana cost"; + } + + public OraclesVaultPlayForFreeEffect(final OraclesVaultPlayForFreeEffect effect) { + super(effect); + this.objectReference = effect.objectReference; + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public OraclesVaultPlayForFreeEffect copy() { + return new OraclesVaultPlayForFreeEffect(this); + } + + @Override + public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) { + if (objectReference.refersTo(objectId, game) && affectedControllerId.equals(source.getControllerId())) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + controller.setCastSourceIdWithAlternateMana(objectId, null, null); + return true; + } else { + discard(); + } + } + return false; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/o/OrcishVeteran.java b/Mage.Sets/src/mage/cards/o/OrcishVeteran.java index 14284300191..b77d5296491 100644 --- a/Mage.Sets/src/mage/cards/o/OrcishVeteran.java +++ b/Mage.Sets/src/mage/cards/o/OrcishVeteran.java @@ -27,9 +27,9 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,11 +41,12 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -56,7 +57,7 @@ public class OrcishVeteran extends CardImpl { static { filter.add(new ColorPredicate(ObjectColor.WHITE)); - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 1)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 1)); } public OrcishVeteran(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/o/OrderChaos.java b/Mage.Sets/src/mage/cards/o/OrderChaos.java index 4335d11af8f..6edc36300c9 100644 --- a/Mage.Sets/src/mage/cards/o/OrderChaos.java +++ b/Mage.Sets/src/mage/cards/o/OrderChaos.java @@ -25,30 +25,24 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.o; import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.effects.common.combat.CantBlockAllEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SpellAbilityType; import mage.filter.common.FilterCreaturePermanent; import mage.target.Target; import mage.target.common.TargetAttackingCreature; -/** - * - * @author LevelX2 - */ - - public class OrderChaos extends SplitCard { public OrderChaos(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{W}","{2}{R}",false); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{W}", "{2}{R}", SpellAbilityType.SPLIT); // Order // Exile target attacking creature. diff --git a/Mage.Sets/src/mage/cards/o/OrderOfWhiteclay.java b/Mage.Sets/src/mage/cards/o/OrderOfWhiteclay.java index 68a43e95dc8..82d2bbaf93d 100644 --- a/Mage.Sets/src/mage/cards/o/OrderOfWhiteclay.java +++ b/Mage.Sets/src/mage/cards/o/OrderOfWhiteclay.java @@ -27,9 +27,9 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.UntapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -38,12 +38,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -54,7 +55,7 @@ public class OrderOfWhiteclay extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("creature card with converted mana cost 3 or less from your graveyard"); static { - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public OrderOfWhiteclay(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/o/Orgg.java b/Mage.Sets/src/mage/cards/o/Orgg.java index 5d71578a368..6a49cb0f305 100644 --- a/Mage.Sets/src/mage/cards/o/Orgg.java +++ b/Mage.Sets/src/mage/cards/o/Orgg.java @@ -27,8 +27,8 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.combat.CantAttackIfDefenderControlsPermanent; @@ -38,12 +38,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.permanent.TappedPredicate; +import java.util.UUID; + /** * * @author MarcoMarin @@ -54,8 +55,8 @@ public class Orgg extends CardImpl { static final private FilterCreaturePermanent filter2 = new FilterCreaturePermanent("creatures with power 3 or greater"); static { - filter.add(Predicates.and(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2), Predicates.not(new TappedPredicate()))); - filter2.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2)); + filter.add(Predicates.and(new PowerPredicate(ComparisonType.MORE_THAN, 2), Predicates.not(new TappedPredicate()))); + filter2.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); } public Orgg(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); diff --git a/Mage.Sets/src/mage/cards/o/OrimSamiteHealer.java b/Mage.Sets/src/mage/cards/o/OrimSamiteHealer.java index 6f45f944176..ad966f8507e 100644 --- a/Mage.Sets/src/mage/cards/o/OrimSamiteHealer.java +++ b/Mage.Sets/src/mage/cards/o/OrimSamiteHealer.java @@ -27,9 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,10 +34,14 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.PreventDamageToTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Loki @@ -49,7 +50,7 @@ public class OrimSamiteHealer extends CardImpl { public OrimSamiteHealer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); diff --git a/Mage.Sets/src/mage/cards/o/OrissSamiteGuardian.java b/Mage.Sets/src/mage/cards/o/OrissSamiteGuardian.java index d131f060ddc..4bd7ed4d90c 100644 --- a/Mage.Sets/src/mage/cards/o/OrissSamiteGuardian.java +++ b/Mage.Sets/src/mage/cards/o/OrissSamiteGuardian.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.abilityword.GrandeurAbility; @@ -40,10 +39,7 @@ import mage.abilities.effects.common.PreventDamageToTargetEffect; import mage.abilities.effects.common.combat.CantAttackAnyPlayerAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; @@ -53,6 +49,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 @@ -61,7 +59,7 @@ public class OrissSamiteGuardian extends CardImpl { public OrissSamiteGuardian(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); diff --git a/Mage.Sets/src/mage/cards/o/OrmendahlProfanePrince.java b/Mage.Sets/src/mage/cards/o/OrmendahlProfanePrince.java index eabccad3d2e..bf14001bfcf 100644 --- a/Mage.Sets/src/mage/cards/o/OrmendahlProfanePrince.java +++ b/Mage.Sets/src/mage/cards/o/OrmendahlProfanePrince.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; @@ -36,6 +35,9 @@ import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -45,7 +47,7 @@ public class OrmendahlProfanePrince extends CardImpl { public OrmendahlProfanePrince(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.power = new MageInt(9); this.toughness = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/o/OrneryKudu.java b/Mage.Sets/src/mage/cards/o/OrneryKudu.java new file mode 100644 index 00000000000..e0c354206a8 --- /dev/null +++ b/Mage.Sets/src/mage/cards/o/OrneryKudu.java @@ -0,0 +1,68 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.o; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.counters.CounterType; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class OrneryKudu extends CardImpl { + + public OrneryKudu(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); + + this.subtype.add("Antelope"); + this.power = new MageInt(3); + this.toughness = new MageInt(4); + + // When Ornery Kudu enters the battlefield, put a -1/-1 counter on target creature you control. + Ability ability = new EntersBattlefieldTriggeredAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance(1))); + ability.addTarget(new TargetControlledCreaturePermanent()); + this.addAbility(ability); + } + + public OrneryKudu(final OrneryKudu card) { + super(card); + } + + @Override + public OrneryKudu copy() { + return new OrneryKudu(this); + } +} diff --git a/Mage.Sets/src/mage/cards/o/OrochiEggwatcher.java b/Mage.Sets/src/mage/cards/o/OrochiEggwatcher.java index 27de06e32f1..5c5bd2a0976 100644 --- a/Mage.Sets/src/mage/cards/o/OrochiEggwatcher.java +++ b/Mage.Sets/src/mage/cards/o/OrochiEggwatcher.java @@ -30,9 +30,10 @@ package mage.cards.o; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; @@ -75,7 +76,7 @@ public class OrochiEggwatcher extends CardImpl { ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SnakeToken()), new ManaCostsImpl("{2}{G}")); ability.addCost(new TapSourceCost()); ability.addEffect(new ConditionalOneShotEffect(new FlipSourceEffect(new ShidakoBroodmistress()), - new PermanentsOnTheBattlefieldCondition(new FilterControlledCreaturePermanent(), CountType.MORE_THAN, 9), "If you control ten or more creatures, flip {this}")); + new PermanentsOnTheBattlefieldCondition(new FilterControlledCreaturePermanent(), ComparisonType.MORE_THAN, 9), "If you control ten or more creatures, flip {this}")); this.addAbility(ability); } @@ -93,7 +94,7 @@ class ShidakoBroodmistress extends Token { ShidakoBroodmistress() { super("Shidako, Broodmistress", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setGreen(true); subtype.add("Snake"); diff --git a/Mage.Sets/src/mage/cards/o/OrosTheAvenger.java b/Mage.Sets/src/mage/cards/o/OrosTheAvenger.java index 1fcd295ecce..eb7814324f8 100644 --- a/Mage.Sets/src/mage/cards/o/OrosTheAvenger.java +++ b/Mage.Sets/src/mage/cards/o/OrosTheAvenger.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -38,10 +37,13 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,7 +58,7 @@ public class OrosTheAvenger extends CardImpl { public OrosTheAvenger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/o/OrzhovCharm.java b/Mage.Sets/src/mage/cards/o/OrzhovCharm.java index 3892699c5bd..e62686d5b2d 100644 --- a/Mage.Sets/src/mage/cards/o/OrzhovCharm.java +++ b/Mage.Sets/src/mage/cards/o/OrzhovCharm.java @@ -27,18 +27,16 @@ */ package mage.cards.o; -import java.util.LinkedList; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -49,6 +47,9 @@ import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.LinkedList; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +58,7 @@ public class OrzhovCharm extends CardImpl { private static final FilterCard filter = new FilterCreatureCard("creature card with converted mana cost 1 or less from your graveyard"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 2)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2)); } public OrzhovCharm(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/o/OtherworldlyJourney.java b/Mage.Sets/src/mage/cards/o/OtherworldlyJourney.java index 1c24520f24d..3caa3685779 100644 --- a/Mage.Sets/src/mage/cards/o/OtherworldlyJourney.java +++ b/Mage.Sets/src/mage/cards/o/OtherworldlyJourney.java @@ -57,7 +57,7 @@ import mage.target.common.TargetCreaturePermanent; public class OtherworldlyJourney extends CardImpl { public OtherworldlyJourney(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}"); this.subtype.add("Arcane"); // Exile target creature. At the beginning of the next end step, return that card to the battlefield under its owner's control with a +1/+1 counter on it. @@ -184,7 +184,7 @@ class OtherworldlyJourneyEntersBattlefieldEffect extends ReplacementEffectImpl { public boolean replaceEvent(GameEvent event, Ability source, Game game) { Permanent permanent = ((EntersTheBattlefieldEvent) event).getTarget(); if (permanent != null) { - permanent.addCounters(CounterType.P1P1.createInstance(), source, game); + permanent.addCounters(CounterType.P1P1.createInstance(), source, game, event.getAppliedEffects()); discard(); // use only once } return false; diff --git a/Mage.Sets/src/mage/cards/o/OutlandBoar.java b/Mage.Sets/src/mage/cards/o/OutlandBoar.java index 18b42c630a4..0891dabcd1e 100644 --- a/Mage.Sets/src/mage/cards/o/OutlandBoar.java +++ b/Mage.Sets/src/mage/cards/o/OutlandBoar.java @@ -27,18 +27,19 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -48,7 +49,7 @@ public class OutlandBoar extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public OutlandBoar(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/o/Overload.java b/Mage.Sets/src/mage/cards/o/Overload.java index d7e90d3957f..2437159cdd3 100644 --- a/Mage.Sets/src/mage/cards/o/Overload.java +++ b/Mage.Sets/src/mage/cards/o/Overload.java @@ -27,8 +27,8 @@ */ package mage.cards.o; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.SpellAbility; import mage.abilities.condition.common.KickedCondition; import mage.abilities.effects.common.DestroyTargetEffect; @@ -36,12 +36,13 @@ import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.target.common.TargetArtifactPermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -52,8 +53,8 @@ public class Overload extends CardImpl { private static final FilterArtifactPermanent filter5 = new FilterArtifactPermanent("artifact if its converted mana cost is 5 or less"); static { - filter2.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 3)); - filter5.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 5)); + filter2.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); + filter5.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 5)); } public Overload(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/o/OviyaPashiriSageLifecrafter.java b/Mage.Sets/src/mage/cards/o/OviyaPashiriSageLifecrafter.java index 15bfd625e7a..4fd1551bf5d 100644 --- a/Mage.Sets/src/mage/cards/o/OviyaPashiriSageLifecrafter.java +++ b/Mage.Sets/src/mage/cards/o/OviyaPashiriSageLifecrafter.java @@ -27,7 +27,6 @@ */ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; @@ -48,6 +48,8 @@ import mage.game.permanent.token.Token; import mage.players.Player; import mage.util.RandomUtil; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,7 +58,7 @@ public class OviyaPashiriSageLifecrafter extends CardImpl { public OviyaPashiriSageLifecrafter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Artificer"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/o/OyobiWhoSplitTheHeavens.java b/Mage.Sets/src/mage/cards/o/OyobiWhoSplitTheHeavens.java index 22d0d5e2cd9..3da63d175b9 100644 --- a/Mage.Sets/src/mage/cards/o/OyobiWhoSplitTheHeavens.java +++ b/Mage.Sets/src/mage/cards/o/OyobiWhoSplitTheHeavens.java @@ -27,18 +27,19 @@ */ package mage.cards.o; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterSpiritOrArcaneCard; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * @author Loki */ @@ -48,7 +49,7 @@ public class OyobiWhoSplitTheHeavens extends CardImpl { public OyobiWhoSplitTheHeavens(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/p/PadeemConsulOfInnovation.java b/Mage.Sets/src/mage/cards/p/PadeemConsulOfInnovation.java index a91e0671a3a..3a35743d2df 100644 --- a/Mage.Sets/src/mage/cards/p/PadeemConsulOfInnovation.java +++ b/Mage.Sets/src/mage/cards/p/PadeemConsulOfInnovation.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -39,12 +38,11 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterArtifactPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +51,7 @@ public class PadeemConsulOfInnovation extends CardImpl { public PadeemConsulOfInnovation(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vedalken"); this.subtype.add("Artificer"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/p/PainSuffering.java b/Mage.Sets/src/mage/cards/p/PainSuffering.java index 21d7ad4c703..389e5e15f15 100644 --- a/Mage.Sets/src/mage/cards/p/PainSuffering.java +++ b/Mage.Sets/src/mage/cards/p/PainSuffering.java @@ -33,6 +33,7 @@ import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; +import mage.constants.SpellAbilityType; import mage.target.TargetPlayer; import mage.target.common.TargetLandPermanent; @@ -43,13 +44,13 @@ import mage.target.common.TargetLandPermanent; public class PainSuffering extends SplitCard { public PainSuffering(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{B}","{3}{R}",false); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{B}", "{3}{R}", SpellAbilityType.SPLIT); + // Pain // Target player discards a card. this.getLeftHalfCard().getSpellAbility().addEffect(new DiscardTargetEffect(1)); this.getLeftHalfCard().getSpellAbility().addTarget(new TargetPlayer()); - + // Suffering // Destroy target land. this.getRightHalfCard().getSpellAbility().addEffect(new DestroyTargetEffect()); diff --git a/Mage.Sets/src/mage/cards/p/PainfulLesson.java b/Mage.Sets/src/mage/cards/p/PainfulLesson.java new file mode 100644 index 00000000000..c41e67a2b68 --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PainfulLesson.java @@ -0,0 +1,64 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.p; + +import java.util.UUID; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DrawCardTargetEffect; +import mage.abilities.effects.common.LoseLifeTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.TargetPlayer; + +/** + * + * @author fireshoes + */ +public class PainfulLesson extends CardImpl { + + public PainfulLesson(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}"); + + // Target player draws two cards and loses 2 life. + this.getSpellAbility().addTarget(new TargetPlayer()); + this.getSpellAbility().addEffect(new DrawCardTargetEffect(2)); + Effect effect = new LoseLifeTargetEffect(2); + effect.setText("and loses 2 life"); + this.getSpellAbility().addEffect(effect); + } + + public PainfulLesson(final PainfulLesson card) { + super(card); + } + + @Override + public PainfulLesson copy() { + return new PainfulLesson(this); + } +} diff --git a/Mage.Sets/src/mage/cards/p/PaintedBluffs.java b/Mage.Sets/src/mage/cards/p/PaintedBluffs.java new file mode 100644 index 00000000000..1d8b8db3318 --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PaintedBluffs.java @@ -0,0 +1,68 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.p; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.mana.AnyColorManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class PaintedBluffs extends CardImpl { + + public PaintedBluffs(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + this.subtype.add("Desert"); + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}, {T}: Add one mana of any color to your mana pool. + Ability ability = new AnyColorManaAbility(new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public PaintedBluffs(final PaintedBluffs card) { + super(card); + } + + @Override + public PaintedBluffs copy() { + return new PaintedBluffs(this); + } +} diff --git a/Mage.Sets/src/mage/cards/p/Paleoloth.java b/Mage.Sets/src/mage/cards/p/Paleoloth.java index 4d0793f4f38..144c189ec93 100644 --- a/Mage.Sets/src/mage/cards/p/Paleoloth.java +++ b/Mage.Sets/src/mage/cards/p/Paleoloth.java @@ -27,22 +27,23 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -52,7 +53,7 @@ public class Paleoloth extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature with power 5 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); filter.add(new AnotherPredicate()); } diff --git a/Mage.Sets/src/mage/cards/p/PalladiaMors.java b/Mage.Sets/src/mage/cards/p/PalladiaMors.java index 51c0eaf0df5..60d384d6a51 100644 --- a/Mage.Sets/src/mage/cards/p/PalladiaMors.java +++ b/Mage.Sets/src/mage/cards/p/PalladiaMors.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,8 +36,11 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LoneFox @@ -47,7 +49,7 @@ public class PalladiaMors extends CardImpl { public PalladiaMors(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}{G}{G}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elder"); this.subtype.add("Dragon"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/p/PangTongYoungPhoenix.java b/Mage.Sets/src/mage/cards/p/PangTongYoungPhoenix.java index e514f08c0eb..a921ba15aaa 100644 --- a/Mage.Sets/src/mage/cards/p/PangTongYoungPhoenix.java +++ b/Mage.Sets/src/mage/cards/p/PangTongYoungPhoenix.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -38,9 +37,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -49,7 +51,7 @@ public class PangTongYoungPhoenix extends CardImpl { public PangTongYoungPhoenix(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); this.power = new MageInt(1); @@ -57,7 +59,7 @@ public class PangTongYoungPhoenix extends CardImpl { // {tap}: Target creature gets +0/+2 until end of turn. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new BoostTargetEffect(0, 2, Duration.EndOfTurn), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new BoostTargetEffect(0, 2, Duration.EndOfTurn), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/p/Panic.java b/Mage.Sets/src/mage/cards/p/Panic.java index d662e8146f9..b3b96d2fe7e 100644 --- a/Mage.Sets/src/mage/cards/p/Panic.java +++ b/Mage.Sets/src/mage/cards/p/Panic.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.abilities.common.CastOnlyDuringPhaseStepSourceAbility; import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; import mage.abilities.condition.common.BeforeBlockersAreDeclaredCondition; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.TurnPhase; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -51,7 +52,7 @@ public class Panic extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}"); // Cast Panic only during combat before blockers are declared. - this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(TurnPhase.COMBAT, BeforeBlockersAreDeclaredCondition.getInstance())); + this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(TurnPhase.COMBAT, BeforeBlockersAreDeclaredCondition.instance)); // Target creature can't block this turn. this.getSpellAbility().addTarget(new TargetCreaturePermanent()); diff --git a/Mage.Sets/src/mage/cards/p/PanopticMirror.java b/Mage.Sets/src/mage/cards/p/PanopticMirror.java index 9b200b3410c..0e8d877450d 100644 --- a/Mage.Sets/src/mage/cards/p/PanopticMirror.java +++ b/Mage.Sets/src/mage/cards/p/PanopticMirror.java @@ -27,23 +27,18 @@ */ package mage.cards.p; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.VariableManaCost; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardsImpl; -import mage.cards.CardSetInfo; -import mage.cards.SplitCard; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.common.FilterInstantOrSorceryCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -54,6 +49,8 @@ import mage.target.TargetCard; import mage.target.common.TargetCardInHand; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author Plopman @@ -103,7 +100,7 @@ class PanopticMirrorExileEffect extends OneShotEffect { int count = source.getManaCostsToPay().getX(); FilterInstantOrSorceryCard filter = new FilterInstantOrSorceryCard("instant or sorcery card with converted mana cost equal to " + count); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, count)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, count)); String choiceText = "Exile a " + filter.getMessage() + " from your hand?"; Player player = game.getPlayer(source.getControllerId()); diff --git a/Mage.Sets/src/mage/cards/p/ParadoxEngine.java b/Mage.Sets/src/mage/cards/p/ParadoxEngine.java index 617624391a9..45cc18a2185 100644 --- a/Mage.Sets/src/mage/cards/p/ParadoxEngine.java +++ b/Mage.Sets/src/mage/cards/p/ParadoxEngine.java @@ -33,6 +33,7 @@ import mage.abilities.effects.common.UntapAllControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterNonlandPermanent; /** @@ -44,7 +45,7 @@ public class ParadoxEngine extends CardImpl { public ParadoxEngine(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{5}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); // Whenever you cast a spell, untap all nonland permanents you control. this.addAbility(new SpellCastControllerTriggeredAbility(new UntapAllControllerEffect(new FilterNonlandPermanent()), false)); diff --git a/Mage.Sets/src/mage/cards/p/ParallelLives.java b/Mage.Sets/src/mage/cards/p/ParallelLives.java index 558a58d56af..40108f74544 100644 --- a/Mage.Sets/src/mage/cards/p/ParallelLives.java +++ b/Mage.Sets/src/mage/cards/p/ParallelLives.java @@ -28,19 +28,12 @@ package mage.cards.p; import java.util.UUID; -import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.ReplacementEffectImpl; +import mage.abilities.effects.common.replacement.CreateTwiceThatManyTokensEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; import mage.constants.Zone; -import mage.game.Game; -import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; -import mage.game.stack.StackObject; /** * @@ -49,10 +42,10 @@ import mage.game.stack.StackObject; public class ParallelLives extends CardImpl { public ParallelLives(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{G}"); // If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ParallelLivesEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CreateTwiceThatManyTokensEffect())); } public ParallelLives(final ParallelLives card) { @@ -64,43 +57,3 @@ public class ParallelLives extends CardImpl { return new ParallelLives(this); } } - -class ParallelLivesEffect extends ReplacementEffectImpl { - - public ParallelLivesEffect() { - super(Duration.WhileOnBattlefield, Outcome.Copy); - staticText = "If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead"; - } - - public ParallelLivesEffect(final ParallelLivesEffect effect) { - super(effect); - } - - @Override - public ParallelLivesEffect copy() { - return new ParallelLivesEffect(this); - } - - @Override - public boolean checksEventType(GameEvent event, Game game) { - return event.getType() == EventType.CREATE_TOKEN; - } - - @Override - public boolean applies(GameEvent event, Ability source, Game game) { - StackObject spell = game.getStack().getStackObject(event.getSourceId()); - return spell != null && spell.getControllerId().equals(source.getControllerId()); - } - - @Override - public boolean apply(Game game, Ability source) { - return true; - } - - @Override - public boolean replaceEvent(GameEvent event, Ability source, Game game) { - event.setAmount(event.getAmount() * 2); - return false; - } - -} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/p/PardicDragon.java b/Mage.Sets/src/mage/cards/p/PardicDragon.java index 066c516b47c..159adf9793d 100644 --- a/Mage.Sets/src/mage/cards/p/PardicDragon.java +++ b/Mage.Sets/src/mage/cards/p/PardicDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,17 +42,14 @@ import mage.abilities.keyword.SuspendAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.FilterSpell; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -76,7 +72,7 @@ public class PardicDragon extends CardImpl { // Whenever an opponent casts a spell, if Pardic Dragon is suspended, that player may put a time counter on Pardic Dragon. this.addAbility(new ConditionalTriggeredAbility( new SpellCastOpponentTriggeredAbility(Zone.EXILED, new PardicDragonEffect(), new FilterSpell(), false, SetTargetPointer.PLAYER), - SuspendedCondition.getInstance(), + SuspendedCondition.instance, "Whenever an opponent casts a spell, if {this} is suspended, that player may put a time counter on {this}." )); diff --git a/Mage.Sets/src/mage/cards/p/PathbreakerIbex.java b/Mage.Sets/src/mage/cards/p/PathbreakerIbex.java index 22ae5ea1bab..6b4c6dbfd4b 100644 --- a/Mage.Sets/src/mage/cards/p/PathbreakerIbex.java +++ b/Mage.Sets/src/mage/cards/p/PathbreakerIbex.java @@ -52,7 +52,7 @@ import mage.game.permanent.Permanent; public class PathbreakerIbex extends CardImpl { public PathbreakerIbex(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}{G}"); this.subtype.add("Goat"); this.power = new MageInt(3); this.toughness = new MageInt(3); @@ -72,30 +72,30 @@ public class PathbreakerIbex extends CardImpl { } class PathbreakerIbexEffect extends OneShotEffect { - + public PathbreakerIbexEffect() { super(Outcome.BoostCreature); this.staticText = "creatures you control gain trample and get +X/+X until end of turn, where X is the greatest power among creatures you control"; } - + public PathbreakerIbexEffect(final PathbreakerIbexEffect effect) { super(effect); } - + @Override public PathbreakerIbexEffect copy() { return new PathbreakerIbexEffect(this); } - + @Override public boolean apply(Game game, Ability source) { int maxPower = 0; - for (Permanent perm: game.getBattlefield().getAllActivePermanents(new FilterCreaturePermanent(), source.getControllerId(), game)) { + for (Permanent perm : game.getBattlefield().getAllActivePermanents(new FilterCreaturePermanent(), source.getControllerId(), game)) { if (perm.getPower().getValue() > maxPower) { maxPower = perm.getPower().getValue(); } } - ContinuousEffect effect = new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfStep, new FilterCreaturePermanent()); + ContinuousEffect effect = new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent()); game.addEffect(effect, source); if (maxPower != 0) { effect = new BoostControlledEffect(maxPower, maxPower, Duration.EndOfTurn); diff --git a/Mage.Sets/src/mage/cards/p/PathmakerInitiate.java b/Mage.Sets/src/mage/cards/p/PathmakerInitiate.java new file mode 100644 index 00000000000..2e9ea7b7df6 --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PathmakerInitiate.java @@ -0,0 +1,80 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.p; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.PowerPredicate; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author stravant + */ +public class PathmakerInitiate extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less"); + + static { + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); + } + + public PathmakerInitiate(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); + + this.subtype.add("Human"); + this.subtype.add("Wizard"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // {T}: Target creature with power 2 or less can't be blocked this turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBeBlockedTargetEffect(Duration.EndOfTurn), new TapSourceCost()); + ability.addTarget(new TargetCreaturePermanent(filter)); + this.addAbility(ability); + } + + public PathmakerInitiate(final PathmakerInitiate card) { + super(card); + } + + @Override + public PathmakerInitiate copy() { + return new PathmakerInitiate(this); + } +} diff --git a/Mage.Sets/src/mage/cards/p/PatronOfTheAkki.java b/Mage.Sets/src/mage/cards/p/PatronOfTheAkki.java index d85e0fff069..525626de844 100644 --- a/Mage.Sets/src/mage/cards/p/PatronOfTheAkki.java +++ b/Mage.Sets/src/mage/cards/p/PatronOfTheAkki.java @@ -27,18 +27,19 @@ */ package mage.cards.p; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.keyword.OfferingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * @author LevelX2 @@ -47,7 +48,7 @@ public class PatronOfTheAkki extends CardImpl { public PatronOfTheAkki(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/p/PatronOfTheKitsune.java b/Mage.Sets/src/mage/cards/p/PatronOfTheKitsune.java index 7a3559bc6e0..90e96cb743d 100644 --- a/Mage.Sets/src/mage/cards/p/PatronOfTheKitsune.java +++ b/Mage.Sets/src/mage/cards/p/PatronOfTheKitsune.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksAllTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; @@ -35,6 +34,9 @@ import mage.abilities.keyword.OfferingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @author LevelX2 @@ -43,7 +45,7 @@ public class PatronOfTheKitsune extends CardImpl { public PatronOfTheKitsune(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/p/PatronOfTheMoon.java b/Mage.Sets/src/mage/cards/p/PatronOfTheMoon.java index c1fff9c4f00..6d71a2ab22a 100644 --- a/Mage.Sets/src/mage/cards/p/PatronOfTheMoon.java +++ b/Mage.Sets/src/mage/cards/p/PatronOfTheMoon.java @@ -40,6 +40,7 @@ import mage.cards.CardSetInfo; import mage.cards.CardsImpl; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterLandCard; import mage.game.Game; @@ -54,7 +55,7 @@ public class PatronOfTheMoon extends CardImpl { public PatronOfTheMoon(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U}{U}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/p/PatronOfTheNezumi.java b/Mage.Sets/src/mage/cards/p/PatronOfTheNezumi.java index 5c3bde46de3..6277f53d486 100644 --- a/Mage.Sets/src/mage/cards/p/PatronOfTheNezumi.java +++ b/Mage.Sets/src/mage/cards/p/PatronOfTheNezumi.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -37,6 +36,7 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -44,6 +44,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.events.ZoneChangeEvent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * @author LevelX2 @@ -52,7 +54,7 @@ public class PatronOfTheNezumi extends CardImpl { public PatronOfTheNezumi(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/p/PatronOfTheOrochi.java b/Mage.Sets/src/mage/cards/p/PatronOfTheOrochi.java index 5eb41d16c6b..f0491230c28 100644 --- a/Mage.Sets/src/mage/cards/p/PatronOfTheOrochi.java +++ b/Mage.Sets/src/mage/cards/p/PatronOfTheOrochi.java @@ -27,19 +27,18 @@ */ package mage.cards.p; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; +import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; -import mage.abilities.effects.OneShotEffect; -import mage.ObjectColor; import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.OfferingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; @@ -50,6 +49,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * @author LevelX2 @@ -58,7 +59,7 @@ public class PatronOfTheOrochi extends CardImpl { public PatronOfTheOrochi(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/p/PaupersCage.java b/Mage.Sets/src/mage/cards/p/PaupersCage.java index 00ddde543e7..33c78dda574 100644 --- a/Mage.Sets/src/mage/cards/p/PaupersCage.java +++ b/Mage.Sets/src/mage/cards/p/PaupersCage.java @@ -29,7 +29,7 @@ package mage.cards.p; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.CardsInHandCondition; @@ -53,7 +53,7 @@ public class PaupersCage extends CardImpl { // At the beginning of each opponent's upkeep, if that player has two or fewer cards in hand, Paupers' Cage deals 2 damage to him or her. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), TargetController.OPPONENT, false, true); - CardsInHandCondition condition = new CardsInHandCondition(CountType.FEWER_THAN, 3); + CardsInHandCondition condition = new CardsInHandCondition(ComparisonType.FEWER_THAN, 3); this.addAbility(new ConditionalTriggeredAbility(ability, condition, "At the beginning of each opponent's upkeep, if that player has two or fewer cards in hand, {this} deals 2 damage to him or her.")); } diff --git a/Mage.Sets/src/mage/cards/p/PavelMaliki.java b/Mage.Sets/src/mage/cards/p/PavelMaliki.java index 4785b7f4daf..afa4f7e5c30 100644 --- a/Mage.Sets/src/mage/cards/p/PavelMaliki.java +++ b/Mage.Sets/src/mage/cards/p/PavelMaliki.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -36,8 +35,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author nigelzor @@ -46,7 +48,7 @@ public class PavelMaliki extends CardImpl { public PavelMaliki(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.power = new MageInt(5); this.toughness = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/p/Pendelhaven.java b/Mage.Sets/src/mage/cards/p/Pendelhaven.java index cc060ca7d72..424127d32a7 100644 --- a/Mage.Sets/src/mage/cards/p/Pendelhaven.java +++ b/Mage.Sets/src/mage/cards/p/Pendelhaven.java @@ -27,39 +27,39 @@ */ package mage.cards.p; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author Loki */ public class Pendelhaven extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("1/1 creature"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.Equal, 1)); - filter.add(new ToughnessPredicate(Filter.ComparisonType.Equal, 1)); + filter.add(new PowerPredicate(ComparisonType.EQUAL_TO, 1)); + filter.add(new ToughnessPredicate(ComparisonType.EQUAL_TO, 1)); } public Pendelhaven(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - this.supertype.add("Legendary"); + super(ownerId, setInfo, new CardType[]{CardType.LAND}, null); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {G} to your mana pool. this.addAbility(new GreenManaAbility()); diff --git a/Mage.Sets/src/mage/cards/p/PendelhavenElder.java b/Mage.Sets/src/mage/cards/p/PendelhavenElder.java index db5594ab104..c6036639d6d 100644 --- a/Mage.Sets/src/mage/cards/p/PendelhavenElder.java +++ b/Mage.Sets/src/mage/cards/p/PendelhavenElder.java @@ -27,8 +27,8 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.continuous.BoostAllEffect; @@ -36,13 +36,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.filter.predicate.permanent.ControllerPredicate; -import mage.constants.TargetController; + +import java.util.UUID; /** * @@ -52,8 +53,8 @@ public class PendelhavenElder extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("each 1/1 creature you control"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.Equal, 1)); - filter.add(new ToughnessPredicate(Filter.ComparisonType.Equal, 1)); + filter.add(new PowerPredicate(ComparisonType.EQUAL_TO, 1)); + filter.add(new ToughnessPredicate(ComparisonType.EQUAL_TO, 1)); filter.add(new ControllerPredicate(TargetController.YOU)); } diff --git a/Mage.Sets/src/mage/cards/p/Peppersmoke.java b/Mage.Sets/src/mage/cards/p/Peppersmoke.java index 2544bf42e5d..d5d85bc2401 100644 --- a/Mage.Sets/src/mage/cards/p/Peppersmoke.java +++ b/Mage.Sets/src/mage/cards/p/Peppersmoke.java @@ -29,7 +29,7 @@ package mage.cards.p; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.constants.Duration; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -62,7 +62,7 @@ public class Peppersmoke extends CardImpl { this.getSpellAbility().addEffect(new BoostTargetEffect(-1,-1,Duration.EndOfTurn)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DrawCardSourceControllerEffect(1), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0), "If you control a Faerie, draw a card")); } diff --git a/Mage.Sets/src/mage/cards/p/PerniciousDeed.java b/Mage.Sets/src/mage/cards/p/PerniciousDeed.java index b7c8b60085e..12a7cc322b5 100644 --- a/Mage.Sets/src/mage/cards/p/PerniciousDeed.java +++ b/Mage.Sets/src/mage/cards/p/PerniciousDeed.java @@ -27,19 +27,17 @@ */ package mage.cards.p; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.VariableManaCost; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -47,16 +45,16 @@ import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** - * * @author Plopman */ public class PerniciousDeed extends CardImpl { - - + public PerniciousDeed(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{B}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}{G}"); // {X}, Sacrifice Pernicious Deed: Destroy each artifact, creature, and enchantment with converted mana cost X or less. @@ -96,18 +94,18 @@ class PerniciousDeedEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - - + + FilterPermanent filter = new FilterPermanent("artifacts, creatures, and enchantments"); - - + + filter.add(Predicates.or( new CardTypePredicate(CardType.ARTIFACT), new CardTypePredicate(CardType.CREATURE), new CardTypePredicate(CardType.ENCHANTMENT))); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, source.getManaCostsToPay().getX() + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, source.getManaCostsToPay().getX() + 1)); + - for (Permanent permanent : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { permanent.destroy(source.getSourceId(), game, false); } diff --git a/Mage.Sets/src/mage/cards/p/PhageTheUntouchable.java b/Mage.Sets/src/mage/cards/p/PhageTheUntouchable.java index 643d1aac163..298e0623090 100644 --- a/Mage.Sets/src/mage/cards/p/PhageTheUntouchable.java +++ b/Mage.Sets/src/mage/cards/p/PhageTheUntouchable.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToACreatureTriggeredAbility; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -41,8 +40,11 @@ import mage.abilities.effects.common.LoseGameTargetPlayerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * * @author LevelX2 @@ -51,7 +53,7 @@ public class PhageTheUntouchable extends CardImpl { public PhageTheUntouchable(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Avatar"); this.subtype.add("Minion"); @@ -61,7 +63,7 @@ public class PhageTheUntouchable extends CardImpl { // When Phage the Untouchable enters the battlefield, if you didn't cast it from your hand, you lose the game. this.addAbility(new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new LoseGameSourceControllerEffect(), false), - new InvertCondition(new CastFromHandSourceCondition()), + new InvertCondition(CastFromHandSourceCondition.instance), "When {this} enters the battlefield, if you didn't cast it from your hand, you lose the game" ), new CastFromHandWatcher()); diff --git a/Mage.Sets/src/mage/cards/p/PhantasmalImage.java b/Mage.Sets/src/mage/cards/p/PhantasmalImage.java index 4d61e41c0e1..e7e9809f7f4 100644 --- a/Mage.Sets/src/mage/cards/p/PhantasmalImage.java +++ b/Mage.Sets/src/mage/cards/p/PhantasmalImage.java @@ -30,6 +30,7 @@ package mage.cards.p; import java.util.UUID; import mage.MageInt; import mage.MageObject; +import mage.abilities.Ability; import mage.abilities.common.BecomesTargetTriggeredAbility; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.effects.Effect; @@ -53,7 +54,7 @@ public class PhantasmalImage extends CardImpl { ApplyToPermanent phantasmalImageApplier = new ApplyToPermanent() { @Override - public boolean apply(Game game, Permanent permanent) { + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { if (!permanent.getSubtype(game).contains("Illusion")) { permanent.getSubtype(game).add("Illusion"); } @@ -64,7 +65,7 @@ public class PhantasmalImage extends CardImpl { } @Override - public boolean apply(Game game, MageObject mageObject) { + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { if (!mageObject.getSubtype(game).contains("Illusion")) { mageObject.getSubtype(game).add("Illusion"); } @@ -76,7 +77,7 @@ public class PhantasmalImage extends CardImpl { }; public PhantasmalImage(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}"); this.subtype.add("Illusion"); this.color.setBlue(true); diff --git a/Mage.Sets/src/mage/cards/p/PharikaGodOfAffliction.java b/Mage.Sets/src/mage/cards/p/PharikaGodOfAffliction.java index ff440b907d2..39d4c1ed029 100644 --- a/Mage.Sets/src/mage/cards/p/PharikaGodOfAffliction.java +++ b/Mage.Sets/src/mage/cards/p/PharikaGodOfAffliction.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,10 +41,7 @@ import mage.abilities.keyword.IndestructibleAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.game.permanent.token.Token; @@ -53,6 +49,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -61,7 +59,7 @@ public class PharikaGodOfAffliction extends CardImpl { public PharikaGodOfAffliction(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.CREATURE},"{1}{B}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/p/Phelddagrif.java b/Mage.Sets/src/mage/cards/p/Phelddagrif.java index acf12cd11d6..6bbec7e8433 100644 --- a/Mage.Sets/src/mage/cards/p/Phelddagrif.java +++ b/Mage.Sets/src/mage/cards/p/Phelddagrif.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,10 +42,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.permanent.token.HippoToken; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +57,7 @@ public class Phelddagrif extends CardImpl { public Phelddagrif(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Phelddagrif"); this.power = new MageInt(4); this.toughness = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/p/PhenaxGodOfDeception.java b/Mage.Sets/src/mage/cards/p/PhenaxGodOfDeception.java index 784b04461f9..e1fd97467ec 100644 --- a/Mage.Sets/src/mage/cards/p/PhenaxGodOfDeception.java +++ b/Mage.Sets/src/mage/cards/p/PhenaxGodOfDeception.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,13 +41,12 @@ import mage.abilities.effects.common.continuous.LoseCreatureTypeSourceEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +55,7 @@ public class PhenaxGodOfDeception extends CardImpl { public PhenaxGodOfDeception(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.CREATURE},"{3}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianIronfoot.java b/Mage.Sets/src/mage/cards/p/PhyrexianIronfoot.java index 2afd2422b65..0369d92495b 100644 --- a/Mage.Sets/src/mage/cards/p/PhyrexianIronfoot.java +++ b/Mage.Sets/src/mage/cards/p/PhyrexianIronfoot.java @@ -37,6 +37,7 @@ import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; /** @@ -47,7 +48,7 @@ public class PhyrexianIronfoot extends CardImpl { public PhyrexianIronfoot(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{3}"); - this.supertype.add("Snow"); + this.addSuperType(SuperType.SNOW); this.subtype.add("Construct"); this.power = new MageInt(3); this.toughness = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianMetamorph.java b/Mage.Sets/src/mage/cards/p/PhyrexianMetamorph.java index cb5b18d275c..26c3605d00f 100644 --- a/Mage.Sets/src/mage/cards/p/PhyrexianMetamorph.java +++ b/Mage.Sets/src/mage/cards/p/PhyrexianMetamorph.java @@ -69,14 +69,14 @@ public class PhyrexianMetamorph extends CardImpl { ApplyToPermanent phyrexianMetamorphApplier = new ApplyToPermanent() { @Override - public boolean apply(Game game, Permanent permanent) { - return apply(game, (MageObject) permanent); + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { + return apply(game, (MageObject) permanent, source, copyToObjectId); } @Override - public boolean apply(Game game, MageObject mageObject) { + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { if (!mageObject.isArtifact()) { - mageObject.getCardType().add(CardType.ARTIFACT); + mageObject.addCardType(CardType.ARTIFACT); } return true; } diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianSnowcrusher.java b/Mage.Sets/src/mage/cards/p/PhyrexianSnowcrusher.java index 2a78763fe8e..7a40fe14146 100644 --- a/Mage.Sets/src/mage/cards/p/PhyrexianSnowcrusher.java +++ b/Mage.Sets/src/mage/cards/p/PhyrexianSnowcrusher.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -37,8 +36,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox @@ -47,7 +49,7 @@ public class PhyrexianSnowcrusher extends CardImpl { public PhyrexianSnowcrusher(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{6}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Juggernaut"); this.power = new MageInt(6); this.toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianSoulgorger.java b/Mage.Sets/src/mage/cards/p/PhyrexianSoulgorger.java index 3de5658e05a..eca4081e45b 100644 --- a/Mage.Sets/src/mage/cards/p/PhyrexianSoulgorger.java +++ b/Mage.Sets/src/mage/cards/p/PhyrexianSoulgorger.java @@ -27,16 +27,18 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.keyword.CumulativeUpkeepAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 @@ -45,7 +47,7 @@ public class PhyrexianSoulgorger extends CardImpl { public PhyrexianSoulgorger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{3}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Construct"); this.power = new MageInt(8); this.toughness = new MageInt(8); diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianTower.java b/Mage.Sets/src/mage/cards/p/PhyrexianTower.java index 44d25b3f162..007315b4509 100644 --- a/Mage.Sets/src/mage/cards/p/PhyrexianTower.java +++ b/Mage.Sets/src/mage/cards/p/PhyrexianTower.java @@ -27,9 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.SacrificeTargetCost; @@ -38,8 +35,13 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -48,7 +50,7 @@ public class PhyrexianTower extends CardImpl { public PhyrexianTower(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/p/PiaAndKiranNalaar.java b/Mage.Sets/src/mage/cards/p/PiaAndKiranNalaar.java index d1a794487f9..e018680353a 100644 --- a/Mage.Sets/src/mage/cards/p/PiaAndKiranNalaar.java +++ b/Mage.Sets/src/mage/cards/p/PiaAndKiranNalaar.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,12 +39,15 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledArtifactPermanent; import mage.game.permanent.token.ThopterColorlessToken; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +56,7 @@ public class PiaAndKiranNalaar extends CardImpl { public PiaAndKiranNalaar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Artificer"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/p/PiaNalaar.java b/Mage.Sets/src/mage/cards/p/PiaNalaar.java index 2f2096d6cd2..1e22ac31988 100644 --- a/Mage.Sets/src/mage/cards/p/PiaNalaar.java +++ b/Mage.Sets/src/mage/cards/p/PiaNalaar.java @@ -42,6 +42,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.StaticFilters; import mage.filter.common.FilterControlledArtifactPermanent; @@ -57,7 +58,7 @@ public class PiaNalaar extends CardImpl { public PiaNalaar(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Artificer"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/p/PiannaNomadCaptain.java b/Mage.Sets/src/mage/cards/p/PiannaNomadCaptain.java index b606f188a5a..51ea1cd9bff 100644 --- a/Mage.Sets/src/mage/cards/p/PiannaNomadCaptain.java +++ b/Mage.Sets/src/mage/cards/p/PiannaNomadCaptain.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; @@ -35,9 +34,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AttackingPredicate; +import java.util.UUID; + /** * * @author cbt33 @@ -52,7 +54,7 @@ public class PiannaNomadCaptain extends CardImpl { public PiannaNomadCaptain(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Nomad"); diff --git a/Mage.Sets/src/mage/cards/p/PilgrimsEye.java b/Mage.Sets/src/mage/cards/p/PilgrimsEye.java index 1e79d6ca854..690971b1b8e 100644 --- a/Mage.Sets/src/mage/cards/p/PilgrimsEye.java +++ b/Mage.Sets/src/mage/cards/p/PilgrimsEye.java @@ -36,6 +36,7 @@ import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.common.FilterBasicLandCard; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -50,7 +51,7 @@ public class PilgrimsEye extends CardImpl { private static final FilterCard filter = new FilterCard("basic land card"); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); filter.add(new CardTypePredicate(CardType.LAND)); } diff --git a/Mage.Sets/src/mage/cards/p/PillarOfLight.java b/Mage.Sets/src/mage/cards/p/PillarOfLight.java index e63b644fc3c..79decd6aa88 100644 --- a/Mage.Sets/src/mage/cards/p/PillarOfLight.java +++ b/Mage.Sets/src/mage/cards/p/PillarOfLight.java @@ -27,16 +27,17 @@ */ package mage.cards.p; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -46,7 +47,7 @@ public class PillarOfLight extends CardImpl { static private final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with toughness 4 or greater"); static { - filter.add(new ToughnessPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 3)); } public PillarOfLight(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/p/PirateShip.java b/Mage.Sets/src/mage/cards/p/PirateShip.java index 9e6bdcef427..05885e4407b 100644 --- a/Mage.Sets/src/mage/cards/p/PirateShip.java +++ b/Mage.Sets/src/mage/cards/p/PirateShip.java @@ -27,9 +27,9 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,19 +41,18 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterLandPermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** - * * @author KholdFuzion - * */ public class PirateShip extends CardImpl { public PirateShip(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}"); this.subtype.add("Human"); this.subtype.add("Pirate"); @@ -68,7 +67,7 @@ public class PirateShip extends CardImpl { this.addAbility(ability); // When you control no Islands, sacrifice Pirate Ship. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Island", "no Islands"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Island", "no Islands"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/p/PithingNeedle.java b/Mage.Sets/src/mage/cards/p/PithingNeedle.java index 7846dfbc157..7999199577f 100644 --- a/Mage.Sets/src/mage/cards/p/PithingNeedle.java +++ b/Mage.Sets/src/mage/cards/p/PithingNeedle.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.AsEntersBattlefieldAbility; @@ -36,14 +35,13 @@ import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.abilities.effects.common.NameACardEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AbilityType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.Optional; +import java.util.UUID; + /** * * @author jeffwadsworth, nox @@ -99,9 +97,9 @@ class PithingNeedleEffect extends ContinuousRuleModifyingEffectImpl { @Override public boolean applies(GameEvent event, Ability source, Game game) { MageObject object = game.getObject(event.getSourceId()); - Ability ability = game.getAbility(event.getTargetId(), event.getSourceId()); - if (ability != null && object != null) { - if (ability.getAbilityType() != AbilityType.MANA + Optional ability = game.getAbility(event.getTargetId(), event.getSourceId()); + if (ability.isPresent() && object != null) { + if (ability.get().getAbilityType() != AbilityType.MANA && object.getName().equals(game.getState().getValue(source.getSourceId().toString() + NameACardEffect.INFO_KEY))) { return true; } diff --git a/Mage.Sets/src/mage/cards/p/PitilessVizier.java b/Mage.Sets/src/mage/cards/p/PitilessVizier.java new file mode 100644 index 00000000000..112aa93f682 --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PitilessVizier.java @@ -0,0 +1,67 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.p; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.CycleOrDiscardControllerTriggeredAbility; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.i.Indestructibility; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author stravant + */ +public class PitilessVizier extends CardImpl { + + public PitilessVizier(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); + + this.subtype.add("Minotaur"); + this.subtype.add("Cleric"); + this.power = new MageInt(4); + this.toughness = new MageInt(2); + + // Whenever you cycle or discard a card, Pitiless Vizier gains indestructible until end of turn. + addAbility(new CycleOrDiscardControllerTriggeredAbility(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn))); + } + + public PitilessVizier(final PitilessVizier card) { + super(card); + } + + @Override + public PitilessVizier copy() { + return new PitilessVizier(this); + } +} diff --git a/Mage.Sets/src/mage/cards/p/PlagueBelcher.java b/Mage.Sets/src/mage/cards/p/PlagueBelcher.java new file mode 100644 index 00000000000..83a280fdd9b --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PlagueBelcher.java @@ -0,0 +1,90 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.p; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DiesCreatureTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.keyword.MenaceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.counters.CounterType; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.AnotherPredicate; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class PlagueBelcher extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another Zombie you control"); + + static { + filter.add(new ControllerPredicate(TargetController.YOU)); + filter.add(new SubtypePredicate("Zombie")); + filter.add(new AnotherPredicate()); + } + + public PlagueBelcher(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); + + this.subtype.add("Zombie"); + this.subtype.add("Beast"); + this.power = new MageInt(5); + this.toughness = new MageInt(4); + + // Menace + this.addAbility(new MenaceAbility()); + + // When Plague Belcher enters the battlefield, put two -1/-1 counters on target creature you control. + Ability ability = new EntersBattlefieldTriggeredAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance(2))); + ability.addTarget(new TargetControlledCreaturePermanent()); + this.addAbility(ability); + + // Whenever another Zombie you control dies, each opponent loses 1 life. + this.addAbility(new DiesCreatureTriggeredAbility(new LoseLifeOpponentsEffect(), false, filter)); + } + + public PlagueBelcher(final PlagueBelcher card) { + super(card); + } + + @Override + public PlagueBelcher copy() { + return new PlagueBelcher(this); + } +} diff --git a/Mage.Sets/src/mage/cards/p/Plaguebearer.java b/Mage.Sets/src/mage/cards/p/Plaguebearer.java index 0394a64ad20..d0f9eb6c238 100644 --- a/Mage.Sets/src/mage/cards/p/Plaguebearer.java +++ b/Mage.Sets/src/mage/cards/p/Plaguebearer.java @@ -27,10 +27,10 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; @@ -38,7 +38,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; @@ -47,6 +46,8 @@ import mage.game.Game; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author spjspj @@ -79,7 +80,7 @@ public class Plaguebearer extends CardImpl { int xValue = ability.getManaCostsToPay().getX(); ability.getTargets().clear(); FilterCreaturePermanent filter = new FilterCreaturePermanent(new StringBuilder("nonblack creature with converted mana cost ").append(xValue).toString()); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, xValue)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue)); filter.add(Predicates.not(new ColorPredicate(ObjectColor.BLACK))); Target target = new TargetPermanent(filter); ability.addTarget(target); diff --git a/Mage.Sets/src/mage/cards/p/PlanarBridge.java b/Mage.Sets/src/mage/cards/p/PlanarBridge.java index f50d69d6ab1..20f31287f3b 100644 --- a/Mage.Sets/src/mage/cards/p/PlanarBridge.java +++ b/Mage.Sets/src/mage/cards/p/PlanarBridge.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -36,10 +35,13 @@ import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author anonymous @@ -49,7 +51,7 @@ public class PlanarBridge extends CardImpl { public PlanarBridge(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{6}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {8}, {T}: Search your library for a permanent card, put it onto the battlefield, then shuffle your library. Ability ability = new SimpleActivatedAbility( diff --git a/Mage.Sets/src/mage/cards/p/PloKoon.java b/Mage.Sets/src/mage/cards/p/PloKoon.java index 6c62ed38e3c..51bbac7b2eb 100644 --- a/Mage.Sets/src/mage/cards/p/PloKoon.java +++ b/Mage.Sets/src/mage/cards/p/PloKoon.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -36,8 +35,11 @@ import mage.abilities.keyword.MeditateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Styxo @@ -46,7 +48,7 @@ public class PloKoon extends CardImpl { public PloKoon(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("KelDor"); this.subtype.add("Jedi"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/p/PolukranosWorldEater.java b/Mage.Sets/src/mage/cards/p/PolukranosWorldEater.java index 420a70e7484..56903d49de8 100644 --- a/Mage.Sets/src/mage/cards/p/PolukranosWorldEater.java +++ b/Mage.Sets/src/mage/cards/p/PolukranosWorldEater.java @@ -27,9 +27,6 @@ */ package mage.cards.p; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesMonstrousSourceTriggeredAbility; @@ -39,6 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; @@ -47,6 +45,10 @@ import mage.game.permanent.Permanent; import mage.target.Target; import mage.target.common.TargetCreaturePermanentAmount; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * * The value of X in Polukranos’s last ability is equal to the value chosen @@ -77,7 +79,7 @@ public class PolukranosWorldEater extends CardImpl { public PolukranosWorldEater(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Hydra"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/p/PorphyryNodes.java b/Mage.Sets/src/mage/cards/p/PorphyryNodes.java index 812c51c4590..48cc3ff7077 100644 --- a/Mage.Sets/src/mage/cards/p/PorphyryNodes.java +++ b/Mage.Sets/src/mage/cards/p/PorphyryNodes.java @@ -27,8 +27,8 @@ */ package mage.cards.p; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.StateTriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -39,7 +39,6 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; @@ -49,6 +48,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -116,7 +117,7 @@ class PorphyryNodesEffect extends OneShotEffect { } if (multipleExist) { FilterCreaturePermanent filter = new FilterCreaturePermanent("one of the creatures with the least power"); - filter.add(new PowerPredicate(Filter.ComparisonType.Equal, leastPower)); + filter.add(new PowerPredicate(ComparisonType.EQUAL_TO, leastPower)); Target target = new TargetPermanent(filter); target.setNotTarget(true); if (target.canChoose(source.getSourceId(), source.getControllerId(), game)) { diff --git a/Mage.Sets/src/mage/cards/p/PostmortemLunge.java b/Mage.Sets/src/mage/cards/p/PostmortemLunge.java index e45c17e5787..7fa12f44eb0 100644 --- a/Mage.Sets/src/mage/cards/p/PostmortemLunge.java +++ b/Mage.Sets/src/mage/cards/p/PostmortemLunge.java @@ -27,8 +27,8 @@ */ package mage.cards.p; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -38,12 +38,7 @@ import mage.abilities.keyword.HasteAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AbilityType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; -import mage.filter.Filter; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -53,14 +48,15 @@ import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** - * * @author North */ public class PostmortemLunge extends CardImpl { public PostmortemLunge(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{B/P}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{B/P}"); // Return target creature card with converted mana cost X from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step. this.getSpellAbility().addEffect(new PostmortemLungeEffect()); @@ -82,7 +78,7 @@ public class PostmortemLunge extends CardImpl { ability.getTargets().clear(); int xValue = ability.getManaCostsToPay().getX(); FilterCard filter = new FilterCreatureCard("creature card with converted mana cost " + xValue + " or less from your graveyard"); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, xValue + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, xValue + 1)); ability.getTargets().add(new TargetCardInYourGraveyard(filter)); } } diff --git a/Mage.Sets/src/mage/cards/p/PouncingCheetah.java b/Mage.Sets/src/mage/cards/p/PouncingCheetah.java new file mode 100644 index 00000000000..352e162011e --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PouncingCheetah.java @@ -0,0 +1,34 @@ +package mage.cards.p; + +import mage.MageInt; +import mage.abilities.keyword.FlashAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; + +/** + * @author Stravant + */ +public class PouncingCheetah extends CardImpl { + + public PouncingCheetah(UUID ownerId, CardSetInfo setInfo) { + super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); + this.subtype.add("Cat"); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + addAbility(FlashAbility.getInstance()); + } + + public PouncingCheetah(final PouncingCheetah card) { + super(card); + } + + @Override + public PouncingCheetah copy() { + return new PouncingCheetah(this); + } +} + diff --git a/Mage.Sets/src/mage/cards/p/PrairieStream.java b/Mage.Sets/src/mage/cards/p/PrairieStream.java index 859efd787dc..d891564f35a 100644 --- a/Mage.Sets/src/mage/cards/p/PrairieStream.java +++ b/Mage.Sets/src/mage/cards/p/PrairieStream.java @@ -27,9 +27,7 @@ */ package mage.cards.p; -import java.util.UUID; - -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; @@ -41,9 +39,12 @@ import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +54,7 @@ public class PrairieStream extends CardImpl { private static final FilterLandPermanent filter = new FilterLandPermanent(); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public PrairieStream(UUID ownerId, CardSetInfo setInfo) { @@ -62,7 +63,7 @@ public class PrairieStream extends CardImpl { this.subtype.add("Island"); // Prairie Stream enters the battlefield tapped unless you control two or more basic lands. - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1)); String abilityText = "tapped unless you control two or more basic lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new WhiteManaAbility()); diff --git a/Mage.Sets/src/mage/cards/p/PredatorFlagship.java b/Mage.Sets/src/mage/cards/p/PredatorFlagship.java index 16b93bf914e..812573d8bb4 100644 --- a/Mage.Sets/src/mage/cards/p/PredatorFlagship.java +++ b/Mage.Sets/src/mage/cards/p/PredatorFlagship.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,11 +38,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,7 +60,7 @@ public class PredatorFlagship extends CardImpl { public PredatorFlagship(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {2}: Target creature gains flying until end of turn. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{2}")); diff --git a/Mage.Sets/src/mage/cards/p/PrepareFight.java b/Mage.Sets/src/mage/cards/p/PrepareFight.java new file mode 100644 index 00000000000..d6bc3413405 --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PrepareFight.java @@ -0,0 +1,93 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.p; + +import java.util.UUID; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.*; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.AftermathAbility; +import mage.abilities.keyword.LifelinkAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.SplitCard; +import mage.constants.*; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.target.Target; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author stravant + */ +public class PrepareFight extends SplitCard { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature you don't control"); + + static { + filter.add(new ControllerPredicate(TargetController.NOT_YOU)); + } + + public PrepareFight(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{1}{W}", "{3}{G}", SpellAbilityType.SPLIT_AFTERMATH); + + // Prepare + // Untap target creature. It gets +2/+2 and gains lifelink until end of turn. + getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); + Effect effect = new UntapTargetEffect(); + effect.setText("Untap target creature."); + getLeftHalfCard().getSpellAbility().addEffect(effect); + effect = new BoostTargetEffect(2, 2, Duration.EndOfTurn); + effect.setText("It gets +2/+2"); + getLeftHalfCard().getSpellAbility().addEffect(effect); + effect = new GainAbilityTargetEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn); + effect.setText("and gains lifelink until end of turn."); + getLeftHalfCard().getSpellAbility().addEffect(effect); + + // to + // Fight + // Target creature you control fights target creature you don't control. + ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); + getRightHalfCard().getSpellAbility().addEffect(new FightTargetsEffect()); + getRightHalfCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); + Target target = new TargetCreaturePermanent(filter); + getRightHalfCard().getSpellAbility().addTarget(target); + } + + public PrepareFight(final PrepareFight card) { + super(card); + } + + @Override + public PrepareFight copy() { + return new PrepareFight(this); + } +} diff --git a/Mage.Sets/src/mage/cards/p/PrimalSurge.java b/Mage.Sets/src/mage/cards/p/PrimalSurge.java index d941e8f4a89..b02bd81704b 100644 --- a/Mage.Sets/src/mage/cards/p/PrimalSurge.java +++ b/Mage.Sets/src/mage/cards/p/PrimalSurge.java @@ -27,21 +27,20 @@ */ package mage.cards.p; -import java.util.List; -import java.util.Set; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author North @@ -96,10 +95,7 @@ class PrimalSurgeEffect extends OneShotEffect { Card card = player.getLibrary().removeFromTop(game); if (card != null) { card.moveToExile(null, "", source.getSourceId(), game); - Set cardType = card.getCardType(); - if ((cardType.contains(CardType.ARTIFACT) || cardType.contains(CardType.CREATURE) - || cardType.contains(CardType.ENCHANTMENT) || cardType.contains(CardType.LAND) - || cardType.contains(CardType.PLANESWALKER)) + if (card.isPermanent() && player.chooseUse(Outcome.PutCardInPlay, "Put " + card.getName() + " onto the battlefield?", source, game)) { card.moveToZone(Zone.BATTLEFIELD, source.getSourceId(), game, false); diff --git a/Mage.Sets/src/mage/cards/p/PrimeSpeakerZegana.java b/Mage.Sets/src/mage/cards/p/PrimeSpeakerZegana.java index 35b2c2909bd..c27d116b079 100644 --- a/Mage.Sets/src/mage/cards/p/PrimeSpeakerZegana.java +++ b/Mage.Sets/src/mage/cards/p/PrimeSpeakerZegana.java @@ -28,7 +28,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -41,11 +40,14 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Plopman @@ -56,7 +58,7 @@ public class PrimeSpeakerZegana extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}{U}{U}"); this.subtype.add("Merfolk"); this.subtype.add("Wizard"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/p/PrimordialHydra.java b/Mage.Sets/src/mage/cards/p/PrimordialHydra.java index 767c394a4c8..90cc0b68f9d 100644 --- a/Mage.Sets/src/mage/cards/p/PrimordialHydra.java +++ b/Mage.Sets/src/mage/cards/p/PrimordialHydra.java @@ -58,7 +58,7 @@ public class PrimordialHydra extends CardImpl { private static final String staticText = "{this} has trample as long as it has ten or more +1/+1 counters on it"; public PrimordialHydra(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{X}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{X}{G}{G}"); this.subtype.add("Hydra"); this.color.setGreen(true); @@ -72,7 +72,7 @@ public class PrimordialHydra extends CardImpl { this.addAbility(new BeginningOfUpkeepTriggeredAbility(new PrimordialHydraDoubleEffect(), TargetController.YOU, false)); // Primordial Hydra has trample as long as it has ten or more +1/+1 counters on it. - ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance()), new SourceHasCounterCondition(CounterType.P1P1, 10), staticText); + ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance()), new SourceHasCounterCondition(CounterType.P1P1, 10, Integer.MAX_VALUE), staticText); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); } diff --git a/Mage.Sets/src/mage/cards/p/PrincessLeia.java b/Mage.Sets/src/mage/cards/p/PrincessLeia.java index 35b166f58eb..d4c90d507b5 100644 --- a/Mage.Sets/src/mage/cards/p/PrincessLeia.java +++ b/Mage.Sets/src/mage/cards/p/PrincessLeia.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +39,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; @@ -47,6 +47,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Styxo @@ -65,7 +67,7 @@ public class PrincessLeia extends CardImpl { public PrincessLeia(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{U}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rebel"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/p/PrincessLucrezia.java b/Mage.Sets/src/mage/cards/p/PrincessLucrezia.java index 7d78d15f629..dc3a33d3eac 100644 --- a/Mage.Sets/src/mage/cards/p/PrincessLucrezia.java +++ b/Mage.Sets/src/mage/cards/p/PrincessLucrezia.java @@ -27,12 +27,14 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; +import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.abilities.mana.BlueManaAbility; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -42,7 +44,7 @@ public class PrincessLucrezia extends CardImpl { public PrincessLucrezia(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/p/ProclamationOfRebirth.java b/Mage.Sets/src/mage/cards/p/ProclamationOfRebirth.java index 06c1fbefc03..5414acacb15 100644 --- a/Mage.Sets/src/mage/cards/p/ProclamationOfRebirth.java +++ b/Mage.Sets/src/mage/cards/p/ProclamationOfRebirth.java @@ -27,18 +27,19 @@ */ package mage.cards.p; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.keyword.ForecastAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Plopman @@ -48,8 +49,8 @@ public class ProclamationOfRebirth extends CardImpl { private static final FilterCreatureCard filter1 = new FilterCreatureCard("creature card with converted mana cost {1} or less from your graveyard"); private static final FilterCreatureCard filter3 = new FilterCreatureCard("creature cards with converted mana cost {1} or less from your graveyard"); static { - filter1.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 2)); - filter3.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 2)); + filter1.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2)); + filter3.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2)); } public ProclamationOfRebirth(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{W}"); diff --git a/Mage.Sets/src/mage/cards/p/ProfaneCommand.java b/Mage.Sets/src/mage/cards/p/ProfaneCommand.java index b8a9a237cea..e3262630fb7 100644 --- a/Mage.Sets/src/mage/cards/p/ProfaneCommand.java +++ b/Mage.Sets/src/mage/cards/p/ProfaneCommand.java @@ -27,8 +27,8 @@ */ package mage.cards.p; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.ManacostVariableValue; @@ -43,7 +43,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; @@ -53,14 +52,15 @@ import mage.target.TargetPlayer; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public class ProfaneCommand extends CardImpl { public ProfaneCommand(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{B}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{B}{B}"); DynamicValue xValue = new ManacostVariableValue(); @@ -89,20 +89,20 @@ public class ProfaneCommand extends CardImpl { Effect effect = new GainAbilityTargetEffect(FearAbility.getInstance(), Duration.EndOfTurn); effect.setText("Up to X target creatures gain fear until end of turn"); mode.getEffects().add(effect); - mode.getTargets().add(new TargetCreaturePermanent(0,1)); - this.getSpellAbility().addMode(mode); + mode.getTargets().add(new TargetCreaturePermanent(0, 1)); + this.getSpellAbility().addMode(mode); } @Override public void adjustTargets(Ability ability, Game game) { // adjust targets is called for every selected mode Mode mode = ability.getModes().getMode(); - for (Effect effect :mode.getEffects()) { + for (Effect effect : mode.getEffects()) { if (effect instanceof ReturnFromGraveyardToBattlefieldTargetEffect) { mode.getTargets().clear(); int xValue = ability.getManaCostsToPay().getX(); - FilterCard filter = new FilterCreatureCard("creature card with converted mana cost " + xValue + " or less from your graveyard"); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, xValue + 1)); + FilterCard filter = new FilterCreatureCard("creature card with converted mana cost " + xValue + " or less from your graveyard"); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, xValue + 1)); mode.getTargets().add(new TargetCardInYourGraveyard(filter)); } if (effect instanceof GainAbilityTargetEffect) { diff --git a/Mage.Sets/src/mage/cards/p/ProfanerOfTheDead.java b/Mage.Sets/src/mage/cards/p/ProfanerOfTheDead.java index da22140183a..58a758264f3 100644 --- a/Mage.Sets/src/mage/cards/p/ProfanerOfTheDead.java +++ b/Mage.Sets/src/mage/cards/p/ProfanerOfTheDead.java @@ -27,9 +27,9 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.ExploitCreatureTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.ExploitAbility; @@ -37,12 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.Cards; import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.TargetController; -import mage.constants.Zone; -import mage.filter.Filter; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.filter.predicate.permanent.ControllerPredicate; @@ -50,14 +45,15 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** - * * @author LevelX2 */ public class ProfanerOfTheDead extends CardImpl { public ProfanerOfTheDead(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); this.subtype.add("Naga"); this.subtype.add("Wizard"); this.power = new MageInt(3); @@ -99,7 +95,7 @@ class ProfanerOfTheDeadReturnEffect extends OneShotEffect { if (controller != null && exploitedCreature != null) { FilterCreaturePermanent filter = new FilterCreaturePermanent(); filter.add(new ControllerPredicate(TargetController.OPPONENT)); - filter.add(new ToughnessPredicate(Filter.ComparisonType.LessThan, exploitedCreature.getToughness().getValue())); + filter.add(new ToughnessPredicate(ComparisonType.FEWER_THAN, exploitedCreature.getToughness().getValue())); Cards cardsToHand = new CardsImpl(); for (Permanent permanent : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { cardsToHand.add(permanent); diff --git a/Mage.Sets/src/mage/cards/p/ProfitLoss.java b/Mage.Sets/src/mage/cards/p/ProfitLoss.java index 55ac7582286..b0cc82fdef0 100644 --- a/Mage.Sets/src/mage/cards/p/ProfitLoss.java +++ b/Mage.Sets/src/mage/cards/p/ProfitLoss.java @@ -25,40 +25,34 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.p; import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SpellAbilityType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; -/** - * - * @author LevelX2 - */ - - public class ProfitLoss extends SplitCard { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures your opponents control"); + static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); } public ProfitLoss(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{W}","{2}{B}",true); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}", "{2}{B}", SpellAbilityType.SPLIT_FUSED); // Profit // Creatures you control get +1/+1 until end of turn. - getLeftHalfCard().getSpellAbility().addEffect(new BoostControlledEffect(1,1, Duration.EndOfTurn, new FilterCreaturePermanent())); + getLeftHalfCard().getSpellAbility().addEffect(new BoostControlledEffect(1, 1, Duration.EndOfTurn, new FilterCreaturePermanent())); // Loss // Creatures your opponents control get -1/-1 until end of turn. diff --git a/Mage.Sets/src/mage/cards/p/Progenitus.java b/Mage.Sets/src/mage/cards/p/Progenitus.java index 6f11e57ebf3..72223783e5a 100644 --- a/Mage.Sets/src/mage/cards/p/Progenitus.java +++ b/Mage.Sets/src/mage/cards/p/Progenitus.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.common.PutIntoGraveFromAnywhereSourceAbility; @@ -36,9 +35,12 @@ import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.game.Game; +import java.util.UUID; + /** * * @author North @@ -47,7 +49,7 @@ public class Progenitus extends CardImpl { public Progenitus(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{W}{U}{U}{B}{B}{R}{R}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Hydra"); this.subtype.add("Avatar"); diff --git a/Mage.Sets/src/mage/cards/p/Prohibit.java b/Mage.Sets/src/mage/cards/p/Prohibit.java index 7e53ef24251..7d74e820102 100644 --- a/Mage.Sets/src/mage/cards/p/Prohibit.java +++ b/Mage.Sets/src/mage/cards/p/Prohibit.java @@ -27,8 +27,8 @@ */ package mage.cards.p; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.SpellAbility; import mage.abilities.condition.common.KickedCondition; import mage.abilities.effects.common.CounterTargetEffect; @@ -36,12 +36,13 @@ import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,8 +53,8 @@ public class Prohibit extends CardImpl { private static final FilterSpell filter4 = new FilterSpell("spell if its converted mana cost is 4 or less"); static { - filter2.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 3)); - filter4.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 5)); + filter2.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); + filter4.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 5)); } public Prohibit(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/p/ProsshSkyraiderOfKher.java b/Mage.Sets/src/mage/cards/p/ProsshSkyraiderOfKher.java index 0fcf5e5e2ec..9bc83aab480 100644 --- a/Mage.Sets/src/mage/cards/p/ProsshSkyraiderOfKher.java +++ b/Mage.Sets/src/mage/cards/p/ProsshSkyraiderOfKher.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -40,12 +39,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.permanent.token.Token; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +62,7 @@ public class ProsshSkyraiderOfKher extends CardImpl { public ProsshSkyraiderOfKher(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/p/ProteanHulk.java b/Mage.Sets/src/mage/cards/p/ProteanHulk.java index 7390eb0473b..80a337b03f2 100644 --- a/Mage.Sets/src/mage/cards/p/ProteanHulk.java +++ b/Mage.Sets/src/mage/cards/p/ProteanHulk.java @@ -27,20 +27,15 @@ */ package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -49,6 +44,8 @@ import mage.game.events.GameEvent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author emerald000 @@ -114,7 +111,7 @@ class ProteanHulkEffect extends OneShotEffect { int librarySearchLimit = event.getAmount(); FilterCard filter = new FilterCreatureCard("number of creature cards with total converted mana cost 6 or less (6 CMC left)"); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, manaCostLeftToFetch + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, manaCostLeftToFetch + 1)); TargetCardInLibrary target = new TargetCardInLibrary(0, 1, filter); target.setCardLimit(librarySearchLimit); @@ -133,7 +130,7 @@ class ProteanHulkEffect extends OneShotEffect { } manaCostLeftToFetch -= card.getConvertedManaCost(); filter = new FilterCreatureCard("number of creature cards with total converted mana cost 6 or less (" + manaCostLeftToFetch + " CMC left)"); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, manaCostLeftToFetch + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, manaCostLeftToFetch + 1)); target = new TargetCardInLibrary(0, 1, filter); target.setCardLimit(librarySearchLimit); } diff --git a/Mage.Sets/src/mage/cards/p/ProtectServe.java b/Mage.Sets/src/mage/cards/p/ProtectServe.java index 457fa384cf3..715919587e7 100644 --- a/Mage.Sets/src/mage/cards/p/ProtectServe.java +++ b/Mage.Sets/src/mage/cards/p/ProtectServe.java @@ -25,36 +25,30 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.p; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SpellAbilityType; import mage.target.common.TargetCreaturePermanent; -/** - * - * @author LevelX2 - */ - - public class ProtectServe extends SplitCard { public ProtectServe(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{W}","{1}{U}",true); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{W}", "{1}{U}", SpellAbilityType.SPLIT_FUSED); // Protect // Target creature gets +2/+4 until end of turn. - getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(2,4, Duration.EndOfTurn)); + getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(2, 4, Duration.EndOfTurn)); getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); // Serve // Target creature gets -6/-0 until end of turn. - getRightHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(-6,0, Duration.EndOfTurn)); + getRightHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(-6, 0, Duration.EndOfTurn)); getRightHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/cards/p/ProtectionOfTheHekma.java b/Mage.Sets/src/mage/cards/p/ProtectionOfTheHekma.java new file mode 100644 index 00000000000..2020d6d2685 --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/ProtectionOfTheHekma.java @@ -0,0 +1,97 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.p; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.PreventionEffectImpl; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; + +/** + * + * @author fireshoes + */ +public class ProtectionOfTheHekma extends CardImpl { + + public ProtectionOfTheHekma(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{W}"); + + + // If a source an opponent controls would deal damage to you, prevent 1 of that damage. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ProtectionOfTheHekmaEffect())); + } + + public ProtectionOfTheHekma(final ProtectionOfTheHekma card) { + super(card); + } + + @Override + public ProtectionOfTheHekma copy() { + return new ProtectionOfTheHekma(this); + } +} + +class ProtectionOfTheHekmaEffect extends PreventionEffectImpl { + + public ProtectionOfTheHekmaEffect() { + super(Duration.WhileOnBattlefield, 1, false, false); + this.staticText = "If a source an opponent controls would deal damage to you, prevent 1 of that damage"; + } + + public ProtectionOfTheHekmaEffect(final ProtectionOfTheHekmaEffect effect) { + super(effect); + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.DAMAGE_PLAYER; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + if (event.getTargetId().equals(source.getControllerId())) { + UUID sourceControllerId = game.getControllerId(event.getSourceId()); + if (sourceControllerId != null && game.getOpponents(source.getControllerId()).contains(sourceControllerId)) { + return super.applies(event, source, game); + } + } + return false; + } + + @Override + public ProtectionOfTheHekmaEffect copy() { + return new ProtectionOfTheHekmaEffect(this); + } +} diff --git a/Mage.Sets/src/mage/cards/p/ProwlingSerpopard.java b/Mage.Sets/src/mage/cards/p/ProwlingSerpopard.java new file mode 100644 index 00000000000..93536124fdf --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/ProwlingSerpopard.java @@ -0,0 +1,78 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.p; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.CantBeCounteredControlledEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.filter.FilterSpell; +import mage.filter.predicate.mageobject.CardTypePredicate; + +/** + * + * @author fireshoes + */ +public class ProwlingSerpopard extends CardImpl { + + private static final FilterSpell filterTarget = new FilterSpell("Creature spells you control"); + + static { + filterTarget.add(new CardTypePredicate(CardType.CREATURE)); + } + + public ProwlingSerpopard(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{G}"); + + this.subtype.add("Cat"); + this.subtype.add("Snake"); + this.power = new MageInt(4); + this.toughness = new MageInt(3); + + // Prowling Serpopard can't be countered. + this.addAbility(new CantBeCounteredAbility()); + + // Creature spells you control can't be countered. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBeCounteredControlledEffect(filterTarget, null, Duration.WhileOnBattlefield))); + } + + public ProwlingSerpopard(final ProwlingSerpopard card) { + super(card); + } + + @Override + public ProwlingSerpopard copy() { + return new ProwlingSerpopard(this); + } +} diff --git a/Mage.Sets/src/mage/cards/p/PullFromTomorrow.java b/Mage.Sets/src/mage/cards/p/PullFromTomorrow.java new file mode 100644 index 00000000000..951c443e138 --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PullFromTomorrow.java @@ -0,0 +1,63 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.p; + +import java.util.UUID; +import mage.abilities.dynamicvalue.common.ManacostVariableValue; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.discard.DiscardControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class PullFromTomorrow extends CardImpl { + + public PullFromTomorrow(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{U}{U}"); + + // Draw X cards, then discard a card. + getSpellAbility().addEffect(new DrawCardSourceControllerEffect(new ManacostVariableValue())); + Effect effect = new DiscardControllerEffect(1); + effect.setText(", then discard a card"); + getSpellAbility().addEffect(effect); + } + + public PullFromTomorrow(final PullFromTomorrow card) { + super(card); + } + + @Override + public PullFromTomorrow copy() { + return new PullFromTomorrow(this); + } +} diff --git a/Mage.Sets/src/mage/cards/p/PuncturingLight.java b/Mage.Sets/src/mage/cards/p/PuncturingLight.java index 9e9a97cd4a2..3ddf26d88ed 100644 --- a/Mage.Sets/src/mage/cards/p/PuncturingLight.java +++ b/Mage.Sets/src/mage/cards/p/PuncturingLight.java @@ -27,17 +27,18 @@ */ package mage.cards.p; -import java.util.UUID; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; import mage.filter.common.FilterAttackingOrBlockingCreature; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -47,7 +48,7 @@ public class PuncturingLight extends CardImpl { private static final FilterCreaturePermanent filter = new FilterAttackingOrBlockingCreature("attacking or blocking creature with power 3 or less"); static { - filter.add(new PowerPredicate(ComparisonType.LessThan, 4)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 4)); } public PuncturingLight(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/p/PuppetsVerdict.java b/Mage.Sets/src/mage/cards/p/PuppetsVerdict.java index 39764dc2c56..144f920c214 100644 --- a/Mage.Sets/src/mage/cards/p/PuppetsVerdict.java +++ b/Mage.Sets/src/mage/cards/p/PuppetsVerdict.java @@ -27,20 +27,21 @@ */ package mage.cards.p; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes @@ -83,14 +84,14 @@ class PuppetsVerdictEffect extends OneShotEffect { if (controller.flipCoin(game)) { FilterCreaturePermanent filterPower2OrLess = new FilterCreaturePermanent("all creatures power 2 or less"); - filterPower2OrLess.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filterPower2OrLess.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); for (Permanent permanent: game.getBattlefield().getAllActivePermanents(filterPower2OrLess, game)) { permanent.destroy(source.getSourceId(), game, false); } return true; } else { FilterCreaturePermanent filterPower3OrGreater = new FilterCreaturePermanent("all creatures power 3 or greater"); - filterPower3OrGreater.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2)); + filterPower3OrGreater.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); for (Permanent permanent: game.getBattlefield().getAllActivePermanents(filterPower3OrGreater, game)) { permanent.destroy(source.getSourceId(), game, false); } diff --git a/Mage.Sets/src/mage/cards/p/PureSimple.java b/Mage.Sets/src/mage/cards/p/PureSimple.java index 191c8cf6bc9..b1ef05c5b20 100644 --- a/Mage.Sets/src/mage/cards/p/PureSimple.java +++ b/Mage.Sets/src/mage/cards/p/PureSimple.java @@ -33,6 +33,7 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; +import mage.constants.SpellAbilityType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.MulticoloredPredicate; @@ -54,7 +55,7 @@ public class PureSimple extends SplitCard { } public PureSimple(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}{G}","{1}{G}{W}",true); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}{G}", "{1}{G}{W}", SpellAbilityType.SPLIT_FUSED); // Pure // Destroy target multicolored permanent. diff --git a/Mage.Sets/src/mage/cards/p/PurphorosGodOfTheForge.java b/Mage.Sets/src/mage/cards/p/PurphorosGodOfTheForge.java index 65899b13dca..2ffb85c87d8 100644 --- a/Mage.Sets/src/mage/cards/p/PurphorosGodOfTheForge.java +++ b/Mage.Sets/src/mage/cards/p/PurphorosGodOfTheForge.java @@ -41,11 +41,7 @@ import mage.abilities.effects.common.continuous.LoseCreatureTypeSourceEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; @@ -62,7 +58,8 @@ public class PurphorosGodOfTheForge extends CardImpl { public PurphorosGodOfTheForge(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.CREATURE},"{3}{R}"); - this.supertype.add("Legendary"); + + addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/p/PursueGlory.java b/Mage.Sets/src/mage/cards/p/PursueGlory.java new file mode 100644 index 00000000000..a62a0f4bc0d --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PursueGlory.java @@ -0,0 +1,64 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.p; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostAllEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.filter.common.FilterAttackingCreature; + +/** + * + * @author stravant + */ +public class PursueGlory extends CardImpl { + + public PursueGlory(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{R}"); + + // Attacking creatures get +2/+0 until end of turn. + getSpellAbility().addEffect(new BoostAllEffect(2, 0, Duration.EndOfTurn, new FilterAttackingCreature("Attacking creatures"), false)); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + } + + public PursueGlory(final PursueGlory card) { + super(card); + } + + @Override + public PursueGlory copy() { + return new PursueGlory(this); + } +} diff --git a/Mage.Sets/src/mage/cards/p/PyramidOfThePantheon.java b/Mage.Sets/src/mage/cards/p/PyramidOfThePantheon.java new file mode 100644 index 00000000000..9fb79dec0fc --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PyramidOfThePantheon.java @@ -0,0 +1,75 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.p; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.condition.common.SourceHasCounterCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.AddManaOfAnyColorEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.mana.ActivateIfConditionManaAbility; +import mage.abilities.mana.AnyColorManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.counters.CounterType; + +/** + * + * @author spjspj + */ +public class PyramidOfThePantheon extends CardImpl { + + public PyramidOfThePantheon(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}"); + + // {2}, {T}: Add one mana of any color to your mana pool. Put a brick counter on Pyramid of the Pantheon. + Ability ability = new AnyColorManaAbility(new GenericManaCost(2)); + ability.addCost(new TapSourceCost()); + ability.addEffect(new AddCountersSourceEffect(CounterType.BRICK.createInstance())); + this.addAbility(ability); + + // {T}: Add three mana of any one color to your mana pool. Activate this ability only of there are three or more brick counters on Pyramid of the Pantheon. + this.addAbility(new ActivateIfConditionManaAbility(Zone.BATTLEFIELD, + new AddManaOfAnyColorEffect(3), + new TapSourceCost(), + new SourceHasCounterCondition(CounterType.BRICK, 3))); + } + + public PyramidOfThePantheon(final PyramidOfThePantheon card) { + super(card); + } + + @Override + public PyramidOfThePantheon copy() { + return new PyramidOfThePantheon(this); + } +} diff --git a/Mage.Sets/src/mage/cards/p/PyromancersGoggles.java b/Mage.Sets/src/mage/cards/p/PyromancersGoggles.java index 76b4680f61a..b677532edc7 100644 --- a/Mage.Sets/src/mage/cards/p/PyromancersGoggles.java +++ b/Mage.Sets/src/mage/cards/p/PyromancersGoggles.java @@ -27,7 +27,6 @@ */ package mage.cards.p; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -37,6 +36,7 @@ import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterInstantOrSorcerySpell; import mage.filter.predicate.mageobject.ColorPredicate; @@ -46,6 +46,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.stack.Spell; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +56,7 @@ public class PyromancersGoggles extends CardImpl { public PyromancersGoggles(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {T}: Add {R} to your mana pool. Ability ability = new RedManaAbility(); @@ -104,7 +106,7 @@ class PyromancersGogglesTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == EventType.MANA_PAYED; + return event.getType() == EventType.MANA_PAID; } @Override diff --git a/Mage.Sets/src/mage/cards/p/PyxisOfPandemonium.java b/Mage.Sets/src/mage/cards/p/PyxisOfPandemonium.java index efddbff2b88..953e72c53d6 100644 --- a/Mage.Sets/src/mage/cards/p/PyxisOfPandemonium.java +++ b/Mage.Sets/src/mage/cards/p/PyxisOfPandemonium.java @@ -166,7 +166,7 @@ class PyxisOfPandemoniumPutOntoBattlefieldEffect extends OneShotEffect { if (exileZone != null) { for (Card card : exileZone.getCards(game)) { card.setFaceDown(false, game); - if (CardUtil.isPermanentCard(card)) { + if (card.isPermanent()) { cardsToBringIntoPlay.add(card); } } diff --git a/Mage.Sets/src/mage/cards/q/QuarryHauler.java b/Mage.Sets/src/mage/cards/q/QuarryHauler.java new file mode 100644 index 00000000000..311917fbc45 --- /dev/null +++ b/Mage.Sets/src/mage/cards/q/QuarryHauler.java @@ -0,0 +1,126 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.q; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.OneShotEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.counters.Counter; +import mage.counters.CounterType; +import mage.counters.Counters; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.TargetPermanent; + +/** + * + * @author Styxo + */ +public class QuarryHauler extends CardImpl { + + public QuarryHauler(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}"); + + this.subtype.add("Camel"); + this.power = new MageInt(4); + this.toughness = new MageInt(3); + + // When Quarry Hauler enters the battlefield, for each kind of counter on target permanent, put another counter of that kind on it or remove one from it. + Ability ability = new EntersBattlefieldTriggeredAbility(new QuarryHaulerEffect()); + ability.addTarget(new TargetPermanent()); + this.addAbility(ability); + } + + public QuarryHauler(final QuarryHauler card) { + super(card); + } + + @Override + public QuarryHauler copy() { + return new QuarryHauler(this); + } +} + +class QuarryHaulerEffect extends OneShotEffect { + + public QuarryHaulerEffect() { + super(Outcome.BoostCreature); + this.staticText = "for each kind of counter on target permanent, put another counter of that kind on it or remove one from it"; + + } + + public QuarryHaulerEffect(final QuarryHaulerEffect effect) { + super(effect); + } + + @Override + public QuarryHaulerEffect copy() { + return new QuarryHaulerEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source)); + if (controller != null) { + if (permanent != null) { + Counters counters = permanent.getCounters(game).copy(); + CounterType counterType; + for (Counter counter : counters.values()) { + if (controller.chooseUse(Outcome.BoostCreature, "Do you want to add or remove a " + counter.getName() + " counter?", null, "add", "remove", source, game)) { + counterType = CounterType.findByName(counter.getName()); + Counter counterToAdd; + if (counterType != null) { + counterToAdd = counterType.createInstance(); + } else { + counterToAdd = new Counter(counter.getName()); + } + permanent.addCounters(counterToAdd, source, game); + } else { + counterType = CounterType.findByName(counter.getName()); + if (counterType != null) { + permanent.removeCounters(counterType.createInstance(), game); + } else { + permanent.removeCounters(counter.getName(), 1, game); + } + } + } + } + return true; + } + return false; + } + +} diff --git a/Mage.Sets/src/mage/cards/q/QueenMarchesa.java b/Mage.Sets/src/mage/cards/q/QueenMarchesa.java index 85dc944ae2c..c5a2744a691 100644 --- a/Mage.Sets/src/mage/cards/q/QueenMarchesa.java +++ b/Mage.Sets/src/mage/cards/q/QueenMarchesa.java @@ -27,7 +27,6 @@ */ package mage.cards.q; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -41,10 +40,13 @@ import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.game.Game; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +56,7 @@ public class QueenMarchesa extends CardImpl { public QueenMarchesa(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}{W}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Assassin"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/q/QuestForRenewal.java b/Mage.Sets/src/mage/cards/q/QuestForRenewal.java index fda8e18ba98..6ac0939aba1 100644 --- a/Mage.Sets/src/mage/cards/q/QuestForRenewal.java +++ b/Mage.Sets/src/mage/cards/q/QuestForRenewal.java @@ -48,17 +48,17 @@ import mage.filter.common.FilterControlledCreaturePermanent; public class QuestForRenewal extends CardImpl { public QuestForRenewal(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{G}"); // Whenever a creature you control becomes tapped, you may put a quest counter on Quest for Renewal. this.addAbility(new BecomesTappedTriggeredAbility(new AddCountersSourceEffect(CounterType.QUEST.createInstance()), - true, new FilterControlledCreaturePermanent("a creature you control"))); + true, new FilterControlledCreaturePermanent("a creature you control"))); // As long as there are four or more quest counters on Quest for Renewal, untap all creatures you control during each other player's untap step. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new UntapAllDuringEachOtherPlayersUntapStepEffect(new FilterControlledCreaturePermanent()), - new SourceHasCounterCondition(CounterType.QUEST, 4), - "As long as there are four or more quest counters on {this}, untap all creatures you control during each other player's untap step."))); + new UntapAllDuringEachOtherPlayersUntapStepEffect(new FilterControlledCreaturePermanent()), + new SourceHasCounterCondition(CounterType.QUEST, 4, Integer.MAX_VALUE), + "As long as there are four or more quest counters on {this}, untap all creatures you control during each other player's untap step."))); } public QuestForRenewal(final QuestForRenewal card) { diff --git a/Mage.Sets/src/mage/cards/q/QuiGonJinn.java b/Mage.Sets/src/mage/cards/q/QuiGonJinn.java index d6305fa9c71..a33ebdd39e2 100644 --- a/Mage.Sets/src/mage/cards/q/QuiGonJinn.java +++ b/Mage.Sets/src/mage/cards/q/QuiGonJinn.java @@ -27,12 +27,10 @@ */ package mage.cards.q; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksAloneTriggeredAbility; import mage.abilities.common.LeavesBattlefieldTriggeredAbility; -import mage.abilities.keyword.VigilanceAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.ExileTargetEffect; @@ -40,12 +38,16 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.MeditateAbility; +import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author Styxo @@ -54,7 +56,7 @@ public class QuiGonJinn extends CardImpl { public QuiGonJinn(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{U}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Jedi"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/q/QuicksilverGargantuan.java b/Mage.Sets/src/mage/cards/q/QuicksilverGargantuan.java index 35a62c8d1a2..370facf9dd9 100644 --- a/Mage.Sets/src/mage/cards/q/QuicksilverGargantuan.java +++ b/Mage.Sets/src/mage/cards/q/QuicksilverGargantuan.java @@ -46,7 +46,7 @@ import mage.util.functions.ApplyToPermanent; public class QuicksilverGargantuan extends CardImpl { public QuicksilverGargantuan(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{U}{U}"); this.subtype.add("Shapeshifter"); this.power = new MageInt(7); @@ -70,14 +70,14 @@ public class QuicksilverGargantuan extends CardImpl { class QuicksilverGargantuanApplyToPermanent extends ApplyToPermanent { @Override - public boolean apply(Game game, Permanent permanent) { + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { permanent.getPower().modifyBaseValue(7); permanent.getToughness().modifyBaseValue(7); return true; } @Override - public boolean apply(Game game, MageObject mageObject) { + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { mageObject.getPower().modifyBaseValue(7); mageObject.getToughness().modifyBaseValue(7); return true; diff --git a/Mage.Sets/src/mage/cards/q/QuillmaneBaku.java b/Mage.Sets/src/mage/cards/q/QuillmaneBaku.java index 349fe60d53f..f7a776ad24f 100644 --- a/Mage.Sets/src/mage/cards/q/QuillmaneBaku.java +++ b/Mage.Sets/src/mage/cards/q/QuillmaneBaku.java @@ -29,6 +29,7 @@ package mage.cards.q; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.costs.Cost; @@ -43,7 +44,6 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterSpiritOrArcaneCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -92,7 +92,7 @@ public class QuillmaneBaku extends CardImpl { } ability.getTargets().clear(); FilterCreaturePermanent newFilter = new FilterCreaturePermanent("creature with converted mana cost " + maxConvManaCost + " or less"); - newFilter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, maxConvManaCost + 1)); + newFilter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, maxConvManaCost + 1)); TargetCreaturePermanent target = new TargetCreaturePermanent(newFilter); ability.getTargets().add(target); } diff --git a/Mage.Sets/src/mage/cards/r/RadhaHeirToKeld.java b/Mage.Sets/src/mage/cards/r/RadhaHeirToKeld.java index 420a8432004..af2730dd581 100644 --- a/Mage.Sets/src/mage/cards/r/RadhaHeirToKeld.java +++ b/Mage.Sets/src/mage/cards/r/RadhaHeirToKeld.java @@ -37,6 +37,7 @@ import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; /** * @@ -46,7 +47,7 @@ public class RadhaHeirToKeld extends CardImpl { public RadhaHeirToKeld(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}{G}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Warrior"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/r/RadiantArchangel.java b/Mage.Sets/src/mage/cards/r/RadiantArchangel.java index ab428cf41bc..93f620c27ac 100644 --- a/Mage.Sets/src/mage/cards/r/RadiantArchangel.java +++ b/Mage.Sets/src/mage/cards/r/RadiantArchangel.java @@ -27,10 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -40,10 +36,16 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author Plopman @@ -60,7 +62,7 @@ public class RadiantArchangel extends CardImpl { public RadiantArchangel(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/r/RadiantsJudgment.java b/Mage.Sets/src/mage/cards/r/RadiantsJudgment.java index 0c2ba9bb837..22c67cf2f21 100644 --- a/Mage.Sets/src/mage/cards/r/RadiantsJudgment.java +++ b/Mage.Sets/src/mage/cards/r/RadiantsJudgment.java @@ -27,18 +27,19 @@ */ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.CyclingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman @@ -47,7 +48,7 @@ public class RadiantsJudgment extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 4 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public RadiantsJudgment(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{W}"); diff --git a/Mage.Sets/src/mage/cards/r/RafiqOfTheMany.java b/Mage.Sets/src/mage/cards/r/RafiqOfTheMany.java index 13f1ce0de43..4cdb52c0403 100644 --- a/Mage.Sets/src/mage/cards/r/RafiqOfTheMany.java +++ b/Mage.Sets/src/mage/cards/r/RafiqOfTheMany.java @@ -28,7 +28,6 @@ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -39,12 +38,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -55,7 +57,7 @@ public class RafiqOfTheMany extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Knight"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/r/RagDealer.java b/Mage.Sets/src/mage/cards/r/RagDealer.java index 7cdfc773433..ec087aefd6a 100644 --- a/Mage.Sets/src/mage/cards/r/RagDealer.java +++ b/Mage.Sets/src/mage/cards/r/RagDealer.java @@ -25,25 +25,21 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.r; import java.util.UUID; import mage.constants.CardType; -import mage.constants.Outcome; import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; +import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.filter.FilterCard; -import mage.game.Game; import mage.target.common.TargetCardInASingleGraveyard; /** @@ -52,23 +48,22 @@ import mage.target.common.TargetCardInASingleGraveyard; */ public class RagDealer extends CardImpl { - public RagDealer (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}"); + public RagDealer(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}"); this.subtype.add("Human"); this.subtype.add("Rogue"); - this.power = new MageInt(1); this.toughness = new MageInt(1); // {2}{B}, {T}: Exile up to three target cards from a single graveyard. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RagDealerExileEffect(), new ManaCostsImpl("{2}{B}")); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{2}{B}")); ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("up to three target cards from a single graveyard"))); + ability.addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("cards from a single graveyard"))); this.addAbility(ability); } - public RagDealer (final RagDealer card) { + public RagDealer(final RagDealer card) { super(card); } @@ -78,31 +73,3 @@ public class RagDealer extends CardImpl { } } - -class RagDealerExileEffect extends OneShotEffect { - - public RagDealerExileEffect() { - super(Outcome.Exile); - this.staticText = "Exile up to three target cards from a single graveyard"; - } - - public RagDealerExileEffect(final RagDealerExileEffect effect) { - super(effect); - } - - @Override - public RagDealerExileEffect copy() { - return new RagDealerExileEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - for (UUID targetID : source.getTargets().get(0).getTargets()) { - Card card = game.getCard(targetID); - if (card != null) { - card.moveToExile(null, "", source.getSourceId(), game); - } - } - return true; - } -} diff --git a/Mage.Sets/src/mage/cards/r/Ragnar.java b/Mage.Sets/src/mage/cards/r/Ragnar.java index 988ae1490f4..9c707f5060f 100644 --- a/Mage.Sets/src/mage/cards/r/Ragnar.java +++ b/Mage.Sets/src/mage/cards/r/Ragnar.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +36,12 @@ import mage.abilities.effects.common.RegenerateTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -48,7 +50,7 @@ public class Ragnar extends CardImpl { public Ragnar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/r/RagsRiches.java b/Mage.Sets/src/mage/cards/r/RagsRiches.java new file mode 100644 index 00000000000..d14601815eb --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RagsRiches.java @@ -0,0 +1,97 @@ +package mage.cards.r; + +import java.util.UUID; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.continuous.BoostAllEffect; +import mage.abilities.effects.common.continuous.GainControlTargetEffect; +import mage.abilities.keyword.AftermathAbility; +import mage.cards.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.SpellAbilityType; +import mage.game.Game; +import mage.players.Player; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.targetpointer.FixedTarget; + +/** + * @author Stravant + */ +public class RagsRiches extends SplitCard { + + public RagsRiches(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.SORCERY}, "{2}{B}{B}", "{5}{U}{U}", SpellAbilityType.SPLIT_AFTERMATH); + + // Rags + // All creatures get -2/-2 until end of turn. + getLeftHalfCard().getSpellAbility().addEffect(new BoostAllEffect(-2, -2, Duration.EndOfTurn)); + + // to + // Riches + // Each opponent chooses a creature he or she controls. You gain control of each of those creatures. + ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); + getRightHalfCard().getSpellAbility().addEffect(new RichesEffect()); + } + + public RagsRiches(final RagsRiches card) { + super(card); + } + + @Override + public RagsRiches copy() { + return new RagsRiches(this); + } +} + +class RichesEffect extends OneShotEffect { + + public RichesEffect() { + super(Outcome.Benefit); + this.staticText = "Each opponent chooses a creature he or she controls. You gain control of each of those creatures."; + } + + public RichesEffect(final RichesEffect effect) { + super(effect); + } + + @Override + public RichesEffect copy() { + return new RichesEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + MageObject sourceObject = source.getSourceObject(game); + if (controller != null && sourceObject != null) { + Cards creaturesToSteal = new CardsImpl(); + + // For each opponent, get the creature to steal + for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) { + if (controller.hasOpponent(playerId, game)) { + Player opponent = game.getPlayer(playerId); + if (opponent != null) { + TargetControlledCreaturePermanent target = new TargetControlledCreaturePermanent(); + if (opponent.chooseTarget(Outcome.Detriment, target, source, game)) { + creaturesToSteal.add(target.getTargets().get(0)); + } + } + } + } + + // Has to be done as a separate loop in case there's a situation where one creature's + // controller depends on another creatures controller. + for (UUID target : creaturesToSteal) { + GainControlTargetEffect eff = new GainControlTargetEffect(Duration.EndOfGame, true); + eff.setTargetPointer(new FixedTarget(target)); + game.addEffect(eff, source); + } + + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/cards/r/RakdosDrake.java b/Mage.Sets/src/mage/cards/r/RakdosDrake.java index 683e6d716d0..90751ddc78c 100644 --- a/Mage.Sets/src/mage/cards/r/RakdosDrake.java +++ b/Mage.Sets/src/mage/cards/r/RakdosDrake.java @@ -49,12 +49,6 @@ import mage.filter.predicate.permanent.ControllerPredicate; public class RakdosDrake extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Other creatures you control"); - static { - filter.add(new AnotherPredicate()); - filter.add(new ControllerPredicate(TargetController.YOU)); - } - public RakdosDrake (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); this.subtype.add("Drake"); diff --git a/Mage.Sets/src/mage/cards/r/RakdosLordOfRiots.java b/Mage.Sets/src/mage/cards/r/RakdosLordOfRiots.java index 5ca49e5284b..6be7f2c579b 100644 --- a/Mage.Sets/src/mage/cards/r/RakdosLordOfRiots.java +++ b/Mage.Sets/src/mage/cards/r/RakdosLordOfRiots.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.SpellAbility; @@ -41,16 +40,14 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +56,7 @@ public class RakdosLordOfRiots extends CardImpl { public RakdosLordOfRiots(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{B}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/r/RakdosTheDefiler.java b/Mage.Sets/src/mage/cards/r/RakdosTheDefiler.java index 15d601e056d..e12a71153cf 100644 --- a/Mage.Sets/src/mage/cards/r/RakdosTheDefiler.java +++ b/Mage.Sets/src/mage/cards/r/RakdosTheDefiler.java @@ -43,6 +43,7 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; @@ -64,7 +65,7 @@ public class RakdosTheDefiler extends CardImpl { public RakdosTheDefiler(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.power = new MageInt(7); this.toughness = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/r/RakeclawGargantuan.java b/Mage.Sets/src/mage/cards/r/RakeclawGargantuan.java index 37a2b7a1cc5..95be5fa5bbb 100644 --- a/Mage.Sets/src/mage/cards/r/RakeclawGargantuan.java +++ b/Mage.Sets/src/mage/cards/r/RakeclawGargantuan.java @@ -27,22 +27,23 @@ */ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -52,7 +53,7 @@ public class RakeclawGargantuan extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); static { - filter.add(new PowerPredicate(ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public RakeclawGargantuan(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/RakkaMar.java b/Mage.Sets/src/mage/cards/r/RakkaMar.java index 5df86e28ddf..d30dc59cee6 100644 --- a/Mage.Sets/src/mage/cards/r/RakkaMar.java +++ b/Mage.Sets/src/mage/cards/r/RakkaMar.java @@ -28,9 +28,6 @@ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,8 +37,13 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Loki @@ -51,7 +53,7 @@ public class RakkaMar extends CardImpl { public RakkaMar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/r/RakshaGoldenCub.java b/Mage.Sets/src/mage/cards/r/RakshaGoldenCub.java index 4c85024abe0..8376c0eaaff 100644 --- a/Mage.Sets/src/mage/cards/r/RakshaGoldenCub.java +++ b/Mage.Sets/src/mage/cards/r/RakshaGoldenCub.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -40,14 +39,13 @@ import mage.abilities.keyword.DoubleStrikeAbility; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author Plopman @@ -62,7 +60,7 @@ public class RakshaGoldenCub extends CardImpl { public RakshaGoldenCub(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Cat"); this.subtype.add("Soldier"); this.power = new MageInt(3); @@ -73,12 +71,12 @@ public class RakshaGoldenCub extends CardImpl { // As long as Raksha Golden Cub is equipped, Cat creatures you control get +2/+2 and have double strike. Effect effect1 = new ConditionalContinuousEffect( new BoostAllEffect(2, 2, Duration.WhileOnBattlefield, filter, false), - EquippedSourceCondition.getInstance(), + EquippedSourceCondition.instance, "As long as {this} is equipped, Cat creatures you control get +2/+2"); Effect effect2 = new ConditionalContinuousEffect( new GainAbilityAllEffect(DoubleStrikeAbility.getInstance(), Duration.WhileOnBattlefield, filter, false), - EquippedSourceCondition.getInstance(), + EquippedSourceCondition.instance, "As long as {this} is equipped, Cat creatures you control have double strike"); effect2.setText("and have double strike"); diff --git a/Mage.Sets/src/mage/cards/r/RallyTheAncestors.java b/Mage.Sets/src/mage/cards/r/RallyTheAncestors.java index ef4583608ac..0298bd82606 100644 --- a/Mage.Sets/src/mage/cards/r/RallyTheAncestors.java +++ b/Mage.Sets/src/mage/cards/r/RallyTheAncestors.java @@ -27,10 +27,8 @@ */ package mage.cards.r; -import java.util.ArrayList; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.delayed.AtTheBeginOfYourNextUpkeepDelayedTriggeredAbility; import mage.abilities.effects.Effect; @@ -43,7 +41,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; @@ -51,6 +48,10 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTargets; +import java.util.ArrayList; +import java.util.Set; +import java.util.UUID; + /** * * @author emerald000 @@ -98,7 +99,7 @@ class RallyTheAncestorsEffect extends OneShotEffect { if (player != null) { int xValue = source.getManaCostsToPay().getX(); FilterCreatureCard filter = new FilterCreatureCard(); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, xValue + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, xValue + 1)); Set cards = player.getGraveyard().getCards(filter, game); player.moveCards(cards, Zone.BATTLEFIELD, source, game); ArrayList toExile = new ArrayList<>(cards.size()); diff --git a/Mage.Sets/src/mage/cards/r/RamirezDePietro.java b/Mage.Sets/src/mage/cards/r/RamirezDePietro.java index 441cf83ccd8..fe5654b494f 100644 --- a/Mage.Sets/src/mage/cards/r/RamirezDePietro.java +++ b/Mage.Sets/src/mage/cards/r/RamirezDePietro.java @@ -27,12 +27,14 @@ */ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -42,7 +44,7 @@ public class RamirezDePietro extends CardImpl { public RamirezDePietro(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Pirate"); diff --git a/Mage.Sets/src/mage/cards/r/RamosianCaptain.java b/Mage.Sets/src/mage/cards/r/RamosianCaptain.java index 9ded105a2f4..c8a2b52d296 100644 --- a/Mage.Sets/src/mage/cards/r/RamosianCaptain.java +++ b/Mage.Sets/src/mage/cards/r/RamosianCaptain.java @@ -28,11 +28,9 @@ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; @@ -40,12 +38,15 @@ import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Backfir3 @@ -56,7 +57,7 @@ public class RamosianCaptain extends CardImpl { static { filter.add(new SubtypePredicate("Rebel")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 5)); } public RamosianCaptain(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/RamosianCommander.java b/Mage.Sets/src/mage/cards/r/RamosianCommander.java index 44a5d2ce80b..fc90f9268d5 100644 --- a/Mage.Sets/src/mage/cards/r/RamosianCommander.java +++ b/Mage.Sets/src/mage/cards/r/RamosianCommander.java @@ -28,23 +28,24 @@ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Backfir3 @@ -55,7 +56,7 @@ public class RamosianCommander extends CardImpl { static { filter.add(new SubtypePredicate("Rebel")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 6)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 6)); } public RamosianCommander(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/RamosianLieutenant.java b/Mage.Sets/src/mage/cards/r/RamosianLieutenant.java index 41f90268265..8a33bcd5640 100644 --- a/Mage.Sets/src/mage/cards/r/RamosianLieutenant.java +++ b/Mage.Sets/src/mage/cards/r/RamosianLieutenant.java @@ -28,23 +28,24 @@ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Backfir3 @@ -55,7 +56,7 @@ public class RamosianLieutenant extends CardImpl { static { filter.add(new SubtypePredicate("Rebel")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public RamosianLieutenant(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/RamosianRevivalist.java b/Mage.Sets/src/mage/cards/r/RamosianRevivalist.java index 0ce02135da0..205b01bed6e 100644 --- a/Mage.Sets/src/mage/cards/r/RamosianRevivalist.java +++ b/Mage.Sets/src/mage/cards/r/RamosianRevivalist.java @@ -27,9 +27,9 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; @@ -38,12 +38,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes @@ -54,7 +55,7 @@ public class RamosianRevivalist extends CardImpl { static { filter.add(new SubtypePredicate("Rebel")); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 6)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 6)); } public RamosianRevivalist(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/RamosianSergeant.java b/Mage.Sets/src/mage/cards/r/RamosianSergeant.java index 0874b3c729d..38110eeb6a3 100644 --- a/Mage.Sets/src/mage/cards/r/RamosianSergeant.java +++ b/Mage.Sets/src/mage/cards/r/RamosianSergeant.java @@ -28,23 +28,24 @@ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Backfir3 @@ -55,7 +56,7 @@ public class RamosianSergeant extends CardImpl { static { filter.add(new SubtypePredicate("Rebel")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); } public RamosianSergeant(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/RamosianSkyMarshal.java b/Mage.Sets/src/mage/cards/r/RamosianSkyMarshal.java index 600aa5c90c1..82258dcdd5f 100644 --- a/Mage.Sets/src/mage/cards/r/RamosianSkyMarshal.java +++ b/Mage.Sets/src/mage/cards/r/RamosianSkyMarshal.java @@ -27,11 +27,9 @@ */ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; @@ -39,12 +37,15 @@ import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Backfir3 @@ -55,7 +56,7 @@ public class RamosianSkyMarshal extends CardImpl { static { filter.add(new SubtypePredicate("Rebel")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 7)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 7)); } public RamosianSkyMarshal(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/RampantGrowth.java b/Mage.Sets/src/mage/cards/r/RampantGrowth.java index 5cdafdc93ea..46ef4b2b37e 100644 --- a/Mage.Sets/src/mage/cards/r/RampantGrowth.java +++ b/Mage.Sets/src/mage/cards/r/RampantGrowth.java @@ -1,16 +1,16 @@ /* * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without modification, are * permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. - * + * * 2. Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR @@ -20,7 +20,7 @@ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * + * * The views and conclusions contained in the software and documentation are those of the * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. @@ -45,8 +45,8 @@ public class RampantGrowth extends CardImpl { public RampantGrowth(UUID ownerId, CardSetInfo setInfo){ super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{G}"); - TargetCardInLibrary target = new TargetCardInLibrary(new FilterBasicLandCard()); - this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(target, true)); + // Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. + this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(new FilterBasicLandCard()), true)); } public RampantGrowth(final RampantGrowth card) { diff --git a/Mage.Sets/src/mage/cards/r/Ramroller.java b/Mage.Sets/src/mage/cards/r/Ramroller.java index c2d887ccd1a..414b4ab57db 100644 --- a/Mage.Sets/src/mage/cards/r/Ramroller.java +++ b/Mage.Sets/src/mage/cards/r/Ramroller.java @@ -30,7 +30,7 @@ package mage.cards.r; import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; @@ -65,7 +65,7 @@ public class Ramroller extends CardImpl { // Ramroller attacks each turn if able. this.addAbility(new AttacksEachTurnStaticAbility()); // Ramroller gets +2/+0 as long as you control another artifact. - Condition condition = new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0); + Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0); ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(2, 0, Duration.WhileOnBattlefield), condition, "{this} gets +2/+0 as long as you control another artifact."); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); diff --git a/Mage.Sets/src/mage/cards/r/RamsesOverdark.java b/Mage.Sets/src/mage/cards/r/RamsesOverdark.java index 8ba860966b9..a73944a95ba 100644 --- a/Mage.Sets/src/mage/cards/r/RamsesOverdark.java +++ b/Mage.Sets/src/mage/cards/r/RamsesOverdark.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -36,11 +35,14 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.EnchantedPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -55,7 +57,7 @@ public class RamsesOverdark extends CardImpl { public RamsesOverdark(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Assassin"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/r/RangerOfEos.java b/Mage.Sets/src/mage/cards/r/RangerOfEos.java index 8a601b226ed..ac91c4835de 100644 --- a/Mage.Sets/src/mage/cards/r/RangerOfEos.java +++ b/Mage.Sets/src/mage/cards/r/RangerOfEos.java @@ -28,19 +28,20 @@ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -51,7 +52,7 @@ public class RangerOfEos extends CardImpl { static { filter.add(new CardTypePredicate(CardType.CREATURE)); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 2)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2)); } public RangerOfEos(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/RapidDecay.java b/Mage.Sets/src/mage/cards/r/RapidDecay.java index 6d213812919..e5700cbda6a 100644 --- a/Mage.Sets/src/mage/cards/r/RapidDecay.java +++ b/Mage.Sets/src/mage/cards/r/RapidDecay.java @@ -28,17 +28,13 @@ package mage.cards.r; import java.util.UUID; -import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.keyword.CyclingAbility; -import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Outcome; import mage.filter.FilterCard; -import mage.game.Game; import mage.target.common.TargetCardInASingleGraveyard; /** @@ -48,12 +44,12 @@ import mage.target.common.TargetCardInASingleGraveyard; public class RapidDecay extends CardImpl { public RapidDecay(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{B}"); // Exile up to three target cards from a single graveyard. - this.getSpellAbility().addEffect(new RapidDecayExileEffect()); - this.getSpellAbility().addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("up to three target cards from a single graveyard"))); - + this.getSpellAbility().addEffect(new ExileTargetEffect()); + this.getSpellAbility().addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("cards from a single graveyard"))); + // Cycling {2} this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); } @@ -67,31 +63,3 @@ public class RapidDecay extends CardImpl { return new RapidDecay(this); } } - -class RapidDecayExileEffect extends OneShotEffect { - - public RapidDecayExileEffect() { - super(Outcome.Exile); - this.staticText = "Exile up to three target cards from a single graveyard"; - } - - public RapidDecayExileEffect(final RapidDecayExileEffect effect) { - super(effect); - } - - @Override - public RapidDecayExileEffect copy() { - return new RapidDecayExileEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - for (UUID targetID : source.getTargets().get(0).getTargets()) { - Card card = game.getCard(targetID); - if (card != null) { - card.moveToExile(null, "", source.getSourceId(), game); - } - } - return true; - } -} diff --git a/Mage.Sets/src/mage/cards/r/RashidaScalebane.java b/Mage.Sets/src/mage/cards/r/RashidaScalebane.java index 34b13c681aa..e1a356ec978 100644 --- a/Mage.Sets/src/mage/cards/r/RashidaScalebane.java +++ b/Mage.Sets/src/mage/cards/r/RashidaScalebane.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +38,7 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -47,6 +47,8 @@ import mage.filter.predicate.permanent.AttackingPredicate; import mage.filter.predicate.permanent.BlockingPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -62,7 +64,7 @@ public class RashidaScalebane extends CardImpl { public RashidaScalebane(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/r/RashmiEternitiesCrafter.java b/Mage.Sets/src/mage/cards/r/RashmiEternitiesCrafter.java index 19146e40f53..a13f2826ea1 100644 --- a/Mage.Sets/src/mage/cards/r/RashmiEternitiesCrafter.java +++ b/Mage.Sets/src/mage/cards/r/RashmiEternitiesCrafter.java @@ -27,8 +27,6 @@ */ package mage.cards.r; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -40,6 +38,7 @@ import mage.cards.CardSetInfo; import mage.cards.CardsImpl; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -47,6 +46,9 @@ import mage.game.stack.Spell; import mage.players.Player; import mage.watchers.common.SpellsCastWatcher; +import java.util.List; +import java.util.UUID; + /** * * @author emerald000 @@ -55,7 +57,7 @@ public class RashmiEternitiesCrafter extends CardImpl { public RashmiEternitiesCrafter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Druid"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/r/RasputinDreamweaver.java b/Mage.Sets/src/mage/cards/r/RasputinDreamweaver.java index 079d4b211d1..755b32951eb 100644 --- a/Mage.Sets/src/mage/cards/r/RasputinDreamweaver.java +++ b/Mage.Sets/src/mage/cards/r/RasputinDreamweaver.java @@ -27,9 +27,6 @@ */ package mage.cards.r; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -45,11 +42,7 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; @@ -59,6 +52,10 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.watchers.Watcher; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author emerald000 @@ -68,7 +65,7 @@ public class RasputinDreamweaver extends CardImpl { public RasputinDreamweaver(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/r/RathiAssassin.java b/Mage.Sets/src/mage/cards/r/RathiAssassin.java index c6808d6c1c5..7c316e0f2be 100644 --- a/Mage.Sets/src/mage/cards/r/RathiAssassin.java +++ b/Mage.Sets/src/mage/cards/r/RathiAssassin.java @@ -27,12 +27,10 @@ */ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; @@ -41,7 +39,8 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.Predicates; @@ -52,6 +51,8 @@ import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 @@ -63,7 +64,7 @@ public class RathiAssassin extends CardImpl { static { filter.add(new SubtypePredicate("Mercenary")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); destroyFilter.add(new TappedPredicate()); destroyFilter.add(Predicates.not(new ColorPredicate(ObjectColor.BLACK))); } diff --git a/Mage.Sets/src/mage/cards/r/RathiFiend.java b/Mage.Sets/src/mage/cards/r/RathiFiend.java index 5cb073041d6..60f3ef88889 100644 --- a/Mage.Sets/src/mage/cards/r/RathiFiend.java +++ b/Mage.Sets/src/mage/cards/r/RathiFiend.java @@ -27,11 +27,9 @@ */ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,12 +38,15 @@ import mage.abilities.effects.common.LoseLifeAllPlayersEffect; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Backfir3 @@ -56,7 +57,7 @@ public class RathiFiend extends CardImpl { static { filter.add(new SubtypePredicate("Mercenary")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public RathiFiend(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/RathiIntimidator.java b/Mage.Sets/src/mage/cards/r/RathiIntimidator.java index 520b40a28f3..18ab0f804e7 100644 --- a/Mage.Sets/src/mage/cards/r/RathiIntimidator.java +++ b/Mage.Sets/src/mage/cards/r/RathiIntimidator.java @@ -27,11 +27,9 @@ */ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; @@ -39,12 +37,15 @@ import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Backfir3 @@ -55,7 +56,7 @@ public class RathiIntimidator extends CardImpl { static { filter.add(new SubtypePredicate("Mercenary")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); } public RathiIntimidator(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/RathsEdge.java b/Mage.Sets/src/mage/cards/r/RathsEdge.java index 265f248ef86..65bf4e6f46b 100644 --- a/Mage.Sets/src/mage/cards/r/RathsEdge.java +++ b/Mage.Sets/src/mage/cards/r/RathsEdge.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -38,11 +37,14 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author anonymous @@ -53,7 +55,7 @@ public class RathsEdge extends CardImpl { public RathsEdge(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/r/RavosSoultender.java b/Mage.Sets/src/mage/cards/r/RavosSoultender.java index b4f976fdf97..ec2100ab10b 100644 --- a/Mage.Sets/src/mage/cards/r/RavosSoultender.java +++ b/Mage.Sets/src/mage/cards/r/RavosSoultender.java @@ -38,10 +38,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.PartnerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; @@ -54,7 +51,7 @@ public class RavosSoultender extends CardImpl { public RavosSoultender(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/r/RayneAcademyChancellor.java b/Mage.Sets/src/mage/cards/r/RayneAcademyChancellor.java index 5d75c037fea..466015c348d 100644 --- a/Mage.Sets/src/mage/cards/r/RayneAcademyChancellor.java +++ b/Mage.Sets/src/mage/cards/r/RayneAcademyChancellor.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.condition.common.EnchantedSourceCondition; @@ -36,6 +35,7 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -43,6 +43,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author emerald000 @@ -51,7 +53,7 @@ public class RayneAcademyChancellor extends CardImpl { public RayneAcademyChancellor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/r/RaziaBorosArchangel.java b/Mage.Sets/src/mage/cards/r/RaziaBorosArchangel.java index 4c22f9db518..94e60966b54 100644 --- a/Mage.Sets/src/mage/cards/r/RaziaBorosArchangel.java +++ b/Mage.Sets/src/mage/cards/r/RaziaBorosArchangel.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; @@ -42,6 +41,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AnotherTargetPredicate; @@ -51,6 +51,8 @@ import mage.target.Target; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -59,7 +61,7 @@ public class RaziaBorosArchangel extends CardImpl { public RaziaBorosArchangel(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}{R}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/r/RazorvergeThicket.java b/Mage.Sets/src/mage/cards/r/RazorvergeThicket.java index b0a73677f02..810858a04cf 100644 --- a/Mage.Sets/src/mage/cards/r/RazorvergeThicket.java +++ b/Mage.Sets/src/mage/cards/r/RazorvergeThicket.java @@ -29,7 +29,7 @@ package mage.cards.r; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; @@ -54,7 +54,7 @@ public class RazorvergeThicket extends CardImpl { public RazorvergeThicket(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 3)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 3)); String abilityText = "tap it unless you control fewer than 3 lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); diff --git a/Mage.Sets/src/mage/cards/r/ReadyWilling.java b/Mage.Sets/src/mage/cards/r/ReadyWilling.java index 5fb6fc611b0..19771ff54ec 100644 --- a/Mage.Sets/src/mage/cards/r/ReadyWilling.java +++ b/Mage.Sets/src/mage/cards/r/ReadyWilling.java @@ -28,9 +28,6 @@ package mage.cards.r; import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.effects.Effect; import mage.abilities.effects.common.UntapAllControllerEffect; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -40,6 +37,9 @@ import mage.abilities.keyword.IndestructibleAbility; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardSetInfo; import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SpellAbilityType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; @@ -50,18 +50,18 @@ import mage.filter.common.FilterCreaturePermanent; public class ReadyWilling extends SplitCard { public ReadyWilling(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{G}{W}","{1}{W}{B}",true); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}{W}", "{1}{W}{B}", SpellAbilityType.SPLIT_FUSED); // Ready // Creatures you control are indestructible this turn. Untap each creature you control. Effect effect = new GainAbilityAllEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("Creatures you controll"), false); effect.setText("Creatures you control are indestructible this turn"); getLeftHalfCard().getSpellAbility().addEffect(effect); - getLeftHalfCard().getSpellAbility().addEffect(new UntapAllControllerEffect(new FilterControlledCreaturePermanent(),"Untap each creature you control")); + getLeftHalfCard().getSpellAbility().addEffect(new UntapAllControllerEffect(new FilterControlledCreaturePermanent(), "Untap each creature you control")); // Willing // Creatures you control gain deathtouch and lifelink until end of turn. - getRightHalfCard().getSpellAbility().addEffect(new GainAbilityControlledEffect(DeathtouchAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent("Creatures")) ); + getRightHalfCard().getSpellAbility().addEffect(new GainAbilityControlledEffect(DeathtouchAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent("Creatures"))); effect = new GainAbilityControlledEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent("Creatures")); effect.setText("Creatures you control gain lifelink until end of turn"); getRightHalfCard().getSpellAbility().addEffect(effect); diff --git a/Mage.Sets/src/mage/cards/r/ReaperKing.java b/Mage.Sets/src/mage/cards/r/ReaperKing.java index 62e41fbaf29..46739ee04e7 100644 --- a/Mage.Sets/src/mage/cards/r/ReaperKing.java +++ b/Mage.Sets/src/mage/cards/r/ReaperKing.java @@ -27,10 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; @@ -39,11 +35,17 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author North @@ -61,7 +63,7 @@ public class ReaperKing extends CardImpl { public ReaperKing(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{2/W}{2/U}{2/B}{2/R}{2/G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Scarecrow"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/r/ReaveSoul.java b/Mage.Sets/src/mage/cards/r/ReaveSoul.java index bb8733cc8c9..77fc74587ce 100644 --- a/Mage.Sets/src/mage/cards/r/ReaveSoul.java +++ b/Mage.Sets/src/mage/cards/r/ReaveSoul.java @@ -27,16 +27,17 @@ */ package mage.cards.r; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -46,7 +47,7 @@ public class ReaveSoul extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 3 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 4)); } public ReaveSoul(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/ReaverDrone.java b/Mage.Sets/src/mage/cards/r/ReaverDrone.java index cb7378fabe2..bef36754179 100644 --- a/Mage.Sets/src/mage/cards/r/ReaverDrone.java +++ b/Mage.Sets/src/mage/cards/r/ReaverDrone.java @@ -29,7 +29,7 @@ package mage.cards.r; import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -70,7 +70,7 @@ public class ReaverDrone extends CardImpl { // At the beginning of your upkeep, you lose 1 life unless you control another colorless creature. this.addAbility(new BeginningOfUpkeepTriggeredAbility(new ConditionalOneShotEffect( new LoseLifeSourceControllerEffect(1), - new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0, true)), + new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0, true)), "you lose 1 life unless you control another colorless creature"), TargetController.YOU, false)); } diff --git a/Mage.Sets/src/mage/cards/r/RecklessCohort.java b/Mage.Sets/src/mage/cards/r/RecklessCohort.java index 34ecb4ca180..52b8500b2b7 100644 --- a/Mage.Sets/src/mage/cards/r/RecklessCohort.java +++ b/Mage.Sets/src/mage/cards/r/RecklessCohort.java @@ -29,7 +29,7 @@ package mage.cards.r; import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalRequirementEffect; @@ -68,7 +68,7 @@ public class RecklessCohort extends CardImpl { // Reckless Cohort attacks each combat if able unless you control another Ally. Effect effect = new ConditionalRequirementEffect( new AttacksIfAbleSourceEffect(Duration.WhileOnBattlefield, true), - new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 1)); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 1)); effect.setText("{this} attacks each combat if able unless you control another Ally"); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); } diff --git a/Mage.Sets/src/mage/cards/r/RecruiterOfTheGuard.java b/Mage.Sets/src/mage/cards/r/RecruiterOfTheGuard.java index 78f88f207da..985c1d9205d 100644 --- a/Mage.Sets/src/mage/cards/r/RecruiterOfTheGuard.java +++ b/Mage.Sets/src/mage/cards/r/RecruiterOfTheGuard.java @@ -27,18 +27,19 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -47,7 +48,7 @@ public class RecruiterOfTheGuard extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("a creature card with toughness 2 or less"); static { - filter.add(new ToughnessPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new ToughnessPredicate(ComparisonType.FEWER_THAN, 3)); } public RecruiterOfTheGuard(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/ReduceInStature.java b/Mage.Sets/src/mage/cards/r/ReduceInStature.java index c049bcc1936..97c874dc6f8 100644 --- a/Mage.Sets/src/mage/cards/r/ReduceInStature.java +++ b/Mage.Sets/src/mage/cards/r/ReduceInStature.java @@ -30,19 +30,14 @@ package mage.cards.r; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.continuous.SetPowerToughnessEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; import mage.constants.Outcome; -import mage.constants.SubLayer; import mage.constants.Zone; -import mage.game.Game; -import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; @@ -53,7 +48,7 @@ import mage.target.common.TargetCreaturePermanent; public class ReduceInStature extends CardImpl { public ReduceInStature(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{U}"); this.subtype.add("Aura"); // Enchant creature @@ -62,10 +57,10 @@ public class ReduceInStature extends CardImpl { this.getSpellAbility().addEffect(new AttachEffect(Outcome.UnboostCreature)); Ability ability = new EnchantAbility(auraTarget.getTargetName()); this.addAbility(ability); - + // Enchanted creature has base power and toughness 0/2. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessEnchantedEffect())); - + } public ReduceInStature(final ReduceInStature card) { @@ -77,35 +72,3 @@ public class ReduceInStature extends CardImpl { return new ReduceInStature(this); } } - -class SetPowerToughnessEnchantedEffect extends ContinuousEffectImpl { - - public SetPowerToughnessEnchantedEffect() { - super(Duration.WhileOnBattlefield, Layer.PTChangingEffects_7, SubLayer.SetPT_7b, Outcome.BoostCreature); - staticText = "Enchanted creature has base power and toughness 0/2"; - } - - public SetPowerToughnessEnchantedEffect(final SetPowerToughnessEnchantedEffect effect) { - super(effect); - } - - @Override - public SetPowerToughnessEnchantedEffect copy() { - return new SetPowerToughnessEnchantedEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Permanent enchantment = game.getPermanent(source.getSourceId()); - if (enchantment != null && enchantment.getAttachedTo() != null) { - Permanent enchanted = game.getPermanent(enchantment.getAttachedTo()); - if (enchanted != null) { - enchanted.getPower().setValue(0); - enchanted.getToughness().setValue(2); - } - return true; - } - return false; - } - -} diff --git a/Mage.Sets/src/mage/cards/r/ReduceRubble.java b/Mage.Sets/src/mage/cards/r/ReduceRubble.java new file mode 100644 index 00000000000..59541ce56c4 --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/ReduceRubble.java @@ -0,0 +1,76 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.r; + +import java.util.UUID; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CounterUnlessPaysEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; +import mage.abilities.keyword.AftermathAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.SpellAbilityType; +import mage.filter.common.FilterLandPermanent; +import mage.target.TargetPermanent; +import mage.target.TargetSpell; + +/** + * + * @author fireshoes + */ +public class ReduceRubble extends SplitCard { + + public ReduceRubble(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{2}{U}", "{2}{R}", SpellAbilityType.SPLIT_AFTERMATH); + + // Reduce + // Counter target spell unless its controller pays {3}. + getLeftHalfCard().getSpellAbility().addTarget(new TargetSpell()); + getLeftHalfCard().getSpellAbility().addEffect(new CounterUnlessPaysEffect(new GenericManaCost(3))); + + // Rubble + // Up to three target lands don't untap during their controller's next untap step. + ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); + Effect effect = new DontUntapInControllersNextUntapStepTargetEffect(); + effect.setText("Up to three target lands don't untap during their controller's next untap step"); + getRightHalfCard().getSpellAbility().addEffect(effect); + getRightHalfCard().getSpellAbility().addTarget(new TargetPermanent(0, 3, new FilterLandPermanent(), false)); + } + + public ReduceRubble(final ReduceRubble card) { + super(card); + } + + @Override + public ReduceRubble copy() { + return new ReduceRubble(this); + } +} diff --git a/Mage.Sets/src/mage/cards/r/RegalCaracal.java b/Mage.Sets/src/mage/cards/r/RegalCaracal.java new file mode 100644 index 00000000000..74f0cacc639 --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RegalCaracal.java @@ -0,0 +1,92 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.r; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.keyword.LifelinkAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.game.permanent.token.CatToken2; + +/** + * + * @author fireshoes + */ +public class RegalCaracal extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Cats"); + + static { + filter.add(new SubtypePredicate("Cat")); + filter.add(new ControllerPredicate(TargetController.YOU)); + } + + public RegalCaracal(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{W}"); + + this.subtype.add("Cat"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Other Cats you control get +1/+1 and have lifelink. + Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true)); + GainAbilityControlledEffect effect = new GainAbilityControlledEffect(LifelinkAbility.getInstance(), Duration.WhileOnBattlefield, filter, true); + effect.setText("and have lifelink"); + ability.addEffect(effect); + this.addAbility(ability); + + // When Regal Caracal enters the battlefield, create two 1/1 white Cat creature tokens with lifelink. + Effect effect2 = new CreateTokenEffect(new CatToken2(), 2); + effect2.setText("create two 1/1 white Cat creature tokens with lifelink"); + this.addAbility(new EntersBattlefieldTriggeredAbility(effect2)); + } + + public RegalCaracal(final RegalCaracal card) { + super(card); + } + + @Override + public RegalCaracal copy() { + return new RegalCaracal(this); + } +} diff --git a/Mage.Sets/src/mage/cards/r/ReiverDemon.java b/Mage.Sets/src/mage/cards/r/ReiverDemon.java index 618cffb87a8..f8c8088285b 100644 --- a/Mage.Sets/src/mage/cards/r/ReiverDemon.java +++ b/Mage.Sets/src/mage/cards/r/ReiverDemon.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,6 +43,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ColorPredicate; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * * @author daagar @@ -69,7 +70,7 @@ public class ReiverDemon extends CardImpl { // When Reiver Demon enters the battlefield, if you cast it from your hand, destroy all nonartifact, nonblack creatures. They can't be regenerated. this.addAbility(new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new DestroyAllEffect(filter, true), false), - new CastFromHandSourceCondition(), + CastFromHandSourceCondition.instance, "When {this} enters the battlefield, if you cast it from your hand, destroy all nonartifact, nonblack creatures. They can't be regenerated."), new CastFromHandWatcher()); } diff --git a/Mage.Sets/src/mage/cards/r/RekiTheHistoryOfKamigawa.java b/Mage.Sets/src/mage/cards/r/RekiTheHistoryOfKamigawa.java index 155c821118c..8dcf12b4794 100644 --- a/Mage.Sets/src/mage/cards/r/RekiTheHistoryOfKamigawa.java +++ b/Mage.Sets/src/mage/cards/r/RekiTheHistoryOfKamigawa.java @@ -34,6 +34,7 @@ import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.SuperType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.SupertypePredicate; @@ -46,12 +47,12 @@ public class RekiTheHistoryOfKamigawa extends CardImpl { private static final FilterSpell filter = new FilterSpell("legendary spell"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public RekiTheHistoryOfKamigawa(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/r/RelentlessDead.java b/Mage.Sets/src/mage/cards/r/RelentlessDead.java index c09b936c400..a8c19b851c0 100644 --- a/Mage.Sets/src/mage/cards/r/RelentlessDead.java +++ b/Mage.Sets/src/mage/cards/r/RelentlessDead.java @@ -27,9 +27,9 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.costs.Cost; import mage.abilities.costs.mana.GenericManaCost; @@ -44,7 +44,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.AnotherCardPredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -53,6 +52,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -111,7 +112,7 @@ class RelentlessDeadEffect extends OneShotEffect { if (cost.pay(source, game, source.getSourceId(), source.getControllerId(), false, null)) { FilterCard filter = new FilterCard("Another target Zombie card with converted mana cost " + costX); filter.add(new SubtypePredicate("Zombie")); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, costX)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, costX)); filter.add(new AnotherCardPredicate()); TargetCardInYourGraveyard target = new TargetCardInYourGraveyard(filter); if (controller.chooseTarget(outcome, target, source, game)) { diff --git a/Mage.Sets/src/mage/cards/r/RenegadeRallier.java b/Mage.Sets/src/mage/cards/r/RenegadeRallier.java index 8ef49ab495e..904aef8c272 100644 --- a/Mage.Sets/src/mage/cards/r/RenegadeRallier.java +++ b/Mage.Sets/src/mage/cards/r/RenegadeRallier.java @@ -27,9 +27,9 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.RevoltCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -38,12 +38,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AbilityWord; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInYourGraveyard; import mage.watchers.common.RevoltWatcher; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +54,7 @@ public class RenegadeRallier extends CardImpl { private static final FilterPermanentCard filter = new FilterPermanentCard("permanent card with converted mana cost 2 or less from your graveyard"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); } public RenegadeRallier(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/Repeal.java b/Mage.Sets/src/mage/cards/r/Repeal.java index b005adf9c04..b16aa60c175 100644 --- a/Mage.Sets/src/mage/cards/r/Repeal.java +++ b/Mage.Sets/src/mage/cards/r/Repeal.java @@ -27,21 +27,22 @@ */ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.SpellAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; import mage.filter.common.FilterNonlandPermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.target.TargetPermanent; import mage.target.common.TargetNonlandPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -67,7 +68,7 @@ public class Repeal extends CardImpl { ability.getTargets().clear(); int xValue = ability.getManaCostsToPay().getX(); FilterNonlandPermanent filter = new FilterNonlandPermanent(new StringBuilder("nonland permanent with converted mana cost ").append(xValue).toString()); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, xValue)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue)); ability.addTarget(new TargetNonlandPermanent(filter)); } } diff --git a/Mage.Sets/src/mage/cards/r/Reprisal.java b/Mage.Sets/src/mage/cards/r/Reprisal.java index c6495648fb4..3e79c141f29 100644 --- a/Mage.Sets/src/mage/cards/r/Reprisal.java +++ b/Mage.Sets/src/mage/cards/r/Reprisal.java @@ -27,16 +27,17 @@ */ package mage.cards.r; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Quercitron @@ -46,7 +47,7 @@ public class Reprisal extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 4 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public Reprisal(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/ResearchDevelopment.java b/Mage.Sets/src/mage/cards/r/ResearchDevelopment.java index 1646982006a..8582f459ae5 100644 --- a/Mage.Sets/src/mage/cards/r/ResearchDevelopment.java +++ b/Mage.Sets/src/mage/cards/r/ResearchDevelopment.java @@ -33,12 +33,13 @@ import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.Card; +import mage.cards.CardSetInfo; import mage.cards.Cards; import mage.cards.CardsImpl; -import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SpellAbilityType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.game.Game; @@ -53,7 +54,7 @@ import mage.target.TargetCard; public class ResearchDevelopment extends SplitCard { public ResearchDevelopment(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{G}{U}","{3}{U}{R}",false); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}{U}", "{3}{U}{R}", SpellAbilityType.SPLIT); // Choose up to four cards you own from outside the game and shuffle them into your library. getLeftHalfCard().getSpellAbility().addEffect(new ResearchEffect()); @@ -78,7 +79,6 @@ class ResearchEffect extends OneShotEffect { private static final FilterCard filter = new FilterCard("card"); - public ResearchEffect() { super(Outcome.Benefit); this.staticText = "Choose up to four cards you own from outside the game and shuffle them into your library"; @@ -102,7 +102,7 @@ class ResearchEffect extends OneShotEffect { int count = 0; while (player.chooseUse(Outcome.Benefit, textToAsk.toString(), source, game)) { Cards cards = player.getSideboard(); - if(cards.isEmpty()) { + if (cards.isEmpty()) { game.informPlayer(player, "You have no cards outside the game."); break; } @@ -170,7 +170,7 @@ class DevelopmentEffect extends OneShotEffect { for (UUID opponentUuid : opponents) { Player opponent = game.getPlayer(opponentUuid); if (opponent != null && opponent.chooseUse(Outcome.Detriment, - "Allow " + player.getLogName() + " to draw a card instead? (" + Integer.toString(i+1) + ')', source, game)) { + "Allow " + player.getLogName() + " to draw a card instead? (" + Integer.toString(i + 1) + ')', source, game)) { game.informPlayers(opponent.getLogName() + " had chosen to let " + player.getLogName() + " draw a card."); player.drawCards(1, game); putToken = false; @@ -192,4 +192,4 @@ class DevelopmentEffect extends OneShotEffect { return new DevelopmentEffect(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/r/ResourcefulReturn.java b/Mage.Sets/src/mage/cards/r/ResourcefulReturn.java index 1a23057c341..34aa50b07fa 100644 --- a/Mage.Sets/src/mage/cards/r/ResourcefulReturn.java +++ b/Mage.Sets/src/mage/cards/r/ResourcefulReturn.java @@ -29,7 +29,7 @@ package mage.cards.r; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -54,7 +54,7 @@ public class ResourcefulReturn extends CardImpl { this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard"))); this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DrawCardSourceControllerEffect(1), - new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), CountType.MORE_THAN, 0), + new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), ComparisonType.MORE_THAN, 0), "If you control an artifact, draw a card")); } diff --git a/Mage.Sets/src/mage/cards/r/RestForTheWeary.java b/Mage.Sets/src/mage/cards/r/RestForTheWeary.java index ceaf2a6ab76..e03cedb8f89 100644 --- a/Mage.Sets/src/mage/cards/r/RestForTheWeary.java +++ b/Mage.Sets/src/mage/cards/r/RestForTheWeary.java @@ -27,16 +27,17 @@ */ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.condition.common.LandfallCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.GainLifeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.target.TargetPlayer; import mage.watchers.common.LandfallWatcher; +import java.util.UUID; + /** * * @author Loki @@ -49,7 +50,7 @@ public class RestForTheWeary extends CardImpl { // Target player gains 4 life. // Landfall - If you had a land enter the battlefield under your control this turn, that player gains 8 life instead. this.getSpellAbility().addWatcher(new LandfallWatcher()); - this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new GainLifeTargetEffect(8), new GainLifeTargetEffect(4), LandfallCondition.getInstance(), "Target player gains 4 life.
Landfall - If you had a land enter the battlefield under your control this turn, that player gains 8 life instead")); + this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new GainLifeTargetEffect(8), new GainLifeTargetEffect(4), LandfallCondition.instance, "Target player gains 4 life.
Landfall - If you had a land enter the battlefield under your control this turn, that player gains 8 life instead")); this.getSpellAbility().addTarget(new TargetPlayer()); } diff --git a/Mage.Sets/src/mage/cards/r/RetributionOfTheMeek.java b/Mage.Sets/src/mage/cards/r/RetributionOfTheMeek.java index d10fcb28b5e..8bc863b5ae7 100644 --- a/Mage.Sets/src/mage/cards/r/RetributionOfTheMeek.java +++ b/Mage.Sets/src/mage/cards/r/RetributionOfTheMeek.java @@ -27,16 +27,17 @@ */ package mage.cards.r; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author Jesse Whyte @@ -46,7 +47,7 @@ public class RetributionOfTheMeek extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 4 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public RetributionOfTheMeek (UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/ReturnToTheRanks.java b/Mage.Sets/src/mage/cards/r/ReturnToTheRanks.java index cb4b194598b..8feef5452e6 100644 --- a/Mage.Sets/src/mage/cards/r/ReturnToTheRanks.java +++ b/Mage.Sets/src/mage/cards/r/ReturnToTheRanks.java @@ -27,20 +27,21 @@ */ package mage.cards.r; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.Effect; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.keyword.ConvokeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -50,7 +51,7 @@ public class ReturnToTheRanks extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("creature cards with converted mana cost 2 or less from your graveyard"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); } public ReturnToTheRanks(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/Reveillark.java b/Mage.Sets/src/mage/cards/r/Reveillark.java index fa0271ca0a5..af2c666ec36 100644 --- a/Mage.Sets/src/mage/cards/r/Reveillark.java +++ b/Mage.Sets/src/mage/cards/r/Reveillark.java @@ -27,21 +27,22 @@ */ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.LeavesBattlefieldTriggeredAbility; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; -import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.EvokeAbility; +import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -50,7 +51,7 @@ public class Reveillark extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("creature cards with power 2 or less from your graveyard"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public Reveillark(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/RevekaWizardSavant.java b/Mage.Sets/src/mage/cards/r/RevekaWizardSavant.java index 8cd41277f38..9d2b675d924 100644 --- a/Mage.Sets/src/mage/cards/r/RevekaWizardSavant.java +++ b/Mage.Sets/src/mage/cards/r/RevekaWizardSavant.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +36,12 @@ import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEf import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author hanasu @@ -48,7 +50,7 @@ public class RevekaWizardSavant extends CardImpl { public RevekaWizardSavant(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dwarf"); this.subtype.add("Wizard"); this.power = new MageInt(0); diff --git a/Mage.Sets/src/mage/cards/r/Revelation.java b/Mage.Sets/src/mage/cards/r/Revelation.java index a7356c1e477..c2036a737d9 100644 --- a/Mage.Sets/src/mage/cards/r/Revelation.java +++ b/Mage.Sets/src/mage/cards/r/Revelation.java @@ -33,6 +33,7 @@ import mage.abilities.effects.common.continuous.PlayWithHandRevealedEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; @@ -44,7 +45,7 @@ public class Revelation extends CardImpl { public Revelation(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{G}"); - this.supertype.add("World"); + addSuperType(SuperType.WORLD); // Players play with their hands revealed. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new PlayWithHandRevealedEffect(TargetController.ANY))); diff --git a/Mage.Sets/src/mage/cards/r/Reverence.java b/Mage.Sets/src/mage/cards/r/Reverence.java index 195db1251e2..6d5108d3522 100644 --- a/Mage.Sets/src/mage/cards/r/Reverence.java +++ b/Mage.Sets/src/mage/cards/r/Reverence.java @@ -27,7 +27,7 @@ */ package mage.cards.r; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantAttackYouAllEffect; import mage.cards.CardImpl; @@ -35,10 +35,11 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -48,7 +49,7 @@ public class Reverence extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public Reverence(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/ReyaDawnbringer.java b/Mage.Sets/src/mage/cards/r/ReyaDawnbringer.java index e3daeefb892..bffff7f6bb3 100644 --- a/Mage.Sets/src/mage/cards/r/ReyaDawnbringer.java +++ b/Mage.Sets/src/mage/cards/r/ReyaDawnbringer.java @@ -27,9 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -37,10 +34,14 @@ import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffec import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterCreatureCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Loki @@ -49,7 +50,7 @@ public class ReyaDawnbringer extends CardImpl { public ReyaDawnbringer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{W}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/r/ReyhanLastOfTheAbzan.java b/Mage.Sets/src/mage/cards/r/ReyhanLastOfTheAbzan.java index cadf436437e..0bd1e59e4fe 100644 --- a/Mage.Sets/src/mage/cards/r/ReyhanLastOfTheAbzan.java +++ b/Mage.Sets/src/mage/cards/r/ReyhanLastOfTheAbzan.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -38,6 +37,7 @@ import mage.abilities.keyword.PartnerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; @@ -47,6 +47,8 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,7 +58,7 @@ public class ReyhanLastOfTheAbzan extends CardImpl { public ReyhanLastOfTheAbzan(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); this.power = new MageInt(0); diff --git a/Mage.Sets/src/mage/cards/r/RhetCropSpearmaster.java b/Mage.Sets/src/mage/cards/r/RhetCropSpearmaster.java new file mode 100644 index 00000000000..c49498febc2 --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RhetCropSpearmaster.java @@ -0,0 +1,75 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.r; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.ExertAbility; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author stravant + */ +public class RhetCropSpearmaster extends CardImpl { + + public RhetCropSpearmaster(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); + + this.subtype.add("Human"); + this.subtype.add("Warrior"); + this.power = new MageInt(3); + this.toughness = new MageInt(1); + + // You may exert Rhet-Crop Spearmaster as it attacks. When you do, it gets +1/+0 and gains first strike until end of turn. + Effect effect = new BoostSourceEffect(1, 0, Duration.EndOfTurn); + effect.setText("it gets +1/+0"); + BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(effect); + effect = new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn); + effect.setText(" and gains first strike until end of turn"); + ability.addEffect(effect); + this.addAbility(new ExertAbility(ability)); + } + + public RhetCropSpearmaster(final RhetCropSpearmaster card) { + super(card); + } + + @Override + public RhetCropSpearmaster copy() { + return new RhetCropSpearmaster(this); + } +} diff --git a/Mage.Sets/src/mage/cards/r/RhonasTheIndomitable.java b/Mage.Sets/src/mage/cards/r/RhonasTheIndomitable.java new file mode 100644 index 00000000000..33fc4c0538b --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RhonasTheIndomitable.java @@ -0,0 +1,146 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.r; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.RestrictionEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.DeathtouchAbility; +import mage.abilities.keyword.IndestructibleAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.PowerPredicate; +import mage.filter.predicate.permanent.AnotherPredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; + +/** + * @author fireshoes + */ +public class RhonasTheIndomitable extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another target creature"); + + static { + filter.add(new AnotherPredicate()); + } + + public RhonasTheIndomitable(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); + + addSuperType(SuperType.LEGENDARY); + this.subtype.add("God"); + this.power = new MageInt(5); + this.toughness = new MageInt(5); + + // Deathtouch + this.addAbility(DeathtouchAbility.getInstance()); + + // Indestructible + this.addAbility(IndestructibleAbility.getInstance()); + + // Rhonas, the Indomitable can't attack or block unless you control another creature with power 4 or greater. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new RhonasTheIndomitableRestrictionEffect())); + + // {2}{G}: Another target creature gets +2/+0 and gains trample until end of turn. + Effect effect = new BoostTargetEffect(2, 0, Duration.EndOfTurn); + effect.setText("Another target creature gets +2/+0"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{2}{G}")); + effect = new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn); + effect.setText("and gains trample until end of turn"); + ability.addEffect(effect); + ability.addTarget(new TargetCreaturePermanent(filter)); + this.addAbility(ability); + } + + public RhonasTheIndomitable(final RhonasTheIndomitable card) { + super(card); + } + + @Override + public RhonasTheIndomitable copy() { + return new RhonasTheIndomitable(this); + } +} + +class RhonasTheIndomitableRestrictionEffect extends RestrictionEffect { + + public RhonasTheIndomitableRestrictionEffect() { + super(Duration.WhileOnBattlefield); + staticText = "{this} can't attack or block unless you control another creature with power 4 or greater"; + } + + public RhonasTheIndomitableRestrictionEffect(final RhonasTheIndomitableRestrictionEffect effect) { + super(effect); + } + + @Override + public RhonasTheIndomitableRestrictionEffect copy() { + return new RhonasTheIndomitableRestrictionEffect(this); + } + + @Override + public boolean canAttack(Game game) { + return false; + } + + @Override + public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game) { + return false; + } + + @Override + public boolean applies(Permanent permanent, Ability source, Game game) { + FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent(); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); + filter.add(new AnotherPredicate()); + if (permanent.getId().equals(source.getSourceId())) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + int permanentsOnBattlefield = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); + return permanentsOnBattlefield < 1; // is this correct? + } + return true; + } // do not apply to other creatures. + return false; + } +} diff --git a/Mage.Sets/src/mage/cards/r/RhonassMonument.java b/Mage.Sets/src/mage/cards/r/RhonassMonument.java new file mode 100644 index 00000000000..66818bf2df3 --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RhonassMonument.java @@ -0,0 +1,95 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.r; + +import java.util.UUID; +import mage.ObjectColor; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.FilterSpell; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.filter.predicate.mageobject.ColorPredicate; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class RhonassMonument extends CardImpl { + + private static final FilterCard filter = new FilterCard("Green creature spells"); + private static final FilterSpell filter2 = new FilterSpell("a creature spell"); + + static { + filter.add(Predicates.and(new ColorPredicate(ObjectColor.GREEN), new CardTypePredicate(CardType.CREATURE))); + } + + static { + filter2.add(new CardTypePredicate(CardType.CREATURE)); + } + + public RhonassMonument(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); + + addSuperType(SuperType.LEGENDARY); + + // Green creature spells you cast cost {1} less to cast. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(filter, 1))); + + // Whenever you cast a creature spell, target creature you control gets +2/+2 and gains trample until end of turn. + Ability ability = new SpellCastControllerTriggeredAbility(new BoostTargetEffect(2, 2, Duration.EndOfTurn), filter2, false); + Effect effect = new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn); + effect.setText(" and gains trample until end of turn"); + ability.addEffect(effect); + ability.addTarget(new TargetControlledCreaturePermanent()); + this.addAbility(ability); + } + + public RhonassMonument(final RhonassMonument card) { + super(card); + } + + @Override + public RhonassMonument copy() { + return new RhonassMonument(this); + } +} diff --git a/Mage.Sets/src/mage/cards/r/RhysTheExiled.java b/Mage.Sets/src/mage/cards/r/RhysTheExiled.java index f033a3bebfa..3ed9cb825b2 100644 --- a/Mage.Sets/src/mage/cards/r/RhysTheExiled.java +++ b/Mage.Sets/src/mage/cards/r/RhysTheExiled.java @@ -27,9 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -41,12 +38,16 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.RegenerateSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.ColoredManaSymbol; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Loki @@ -62,7 +63,7 @@ public class RhysTheExiled extends CardImpl { public RhysTheExiled(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/r/RhysTheRedeemed.java b/Mage.Sets/src/mage/cards/r/RhysTheRedeemed.java index 9544159c16d..3d8d1f4928f 100644 --- a/Mage.Sets/src/mage/cards/r/RhysTheRedeemed.java +++ b/Mage.Sets/src/mage/cards/r/RhysTheRedeemed.java @@ -40,6 +40,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -58,7 +59,7 @@ public class RhysTheRedeemed extends CardImpl { public RhysTheRedeemed(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G/W}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/r/RikuOfTwoReflections.java b/Mage.Sets/src/mage/cards/r/RikuOfTwoReflections.java index a757e902532..090c0572b15 100644 --- a/Mage.Sets/src/mage/cards/r/RikuOfTwoReflections.java +++ b/Mage.Sets/src/mage/cards/r/RikuOfTwoReflections.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -40,6 +39,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SetTargetPointer; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.common.FilterControlledCreaturePermanent; @@ -48,6 +48,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.TokenPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -68,7 +70,7 @@ public class RikuOfTwoReflections extends CardImpl { public RikuOfTwoReflections(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/r/RimeDryad.java b/Mage.Sets/src/mage/cards/r/RimeDryad.java index 0b10b3d0aa1..17f06a52f4b 100644 --- a/Mage.Sets/src/mage/cards/r/RimeDryad.java +++ b/Mage.Sets/src/mage/cards/r/RimeDryad.java @@ -27,16 +27,18 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.LandwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -46,7 +48,7 @@ public class RimeDryad extends CardImpl { private static final FilterLandPermanent filter = new FilterLandPermanent("snow forest"); static { - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); filter.add(new SubtypePredicate("Forest")); } diff --git a/Mage.Sets/src/mage/cards/r/RimeTransfusion.java b/Mage.Sets/src/mage/cards/r/RimeTransfusion.java index 52883b03773..4db901378e9 100644 --- a/Mage.Sets/src/mage/cards/r/RimeTransfusion.java +++ b/Mage.Sets/src/mage/cards/r/RimeTransfusion.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleEvasionAbility; @@ -41,17 +40,15 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -63,12 +60,12 @@ public class RimeTransfusion extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("except by snow creatures until end of turn"); static { - filter.add(Predicates.not(new SupertypePredicate("Snow"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.SNOW))); } public RimeTransfusion(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{B}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Aura"); // Enchant creature diff --git a/Mage.Sets/src/mage/cards/r/RimeboundDead.java b/Mage.Sets/src/mage/cards/r/RimeboundDead.java index 0464e4b5c80..5e95ad2b316 100644 --- a/Mage.Sets/src/mage/cards/r/RimeboundDead.java +++ b/Mage.Sets/src/mage/cards/r/RimeboundDead.java @@ -27,16 +27,18 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.constants.CardType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.RegenerateSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox @@ -45,7 +47,7 @@ public class RimeboundDead extends CardImpl { public RimeboundDead(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Skeleton"); this.power = new MageInt(1); this.toughness = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/r/RimewindCryomancer.java b/Mage.Sets/src/mage/cards/r/RimewindCryomancer.java index e67b2fdf7b1..12ff5f1b69d 100644 --- a/Mage.Sets/src/mage/cards/r/RimewindCryomancer.java +++ b/Mage.Sets/src/mage/cards/r/RimewindCryomancer.java @@ -27,10 +27,9 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.common.TapSourceCost; @@ -39,11 +38,14 @@ import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetActivatedAbility; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +55,7 @@ public class RimewindCryomancer extends CardImpl { private static final FilterControlledPermanent filter = new FilterControlledPermanent("you control four or more snow permanents"); static { - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); } public RimewindCryomancer(UUID ownerId, CardSetInfo setInfo) { @@ -67,7 +69,7 @@ public class RimewindCryomancer extends CardImpl { Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new CounterTargetEffect(), new GenericManaCost(1), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 3)); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 3)); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetActivatedAbility()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/r/RimewindTaskmage.java b/Mage.Sets/src/mage/cards/r/RimewindTaskmage.java index 36124704fce..2ae7d9da400 100644 --- a/Mage.Sets/src/mage/cards/r/RimewindTaskmage.java +++ b/Mage.Sets/src/mage/cards/r/RimewindTaskmage.java @@ -27,10 +27,9 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.common.TapSourceCost; @@ -39,11 +38,14 @@ import mage.abilities.effects.common.MayTapOrUntapTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +55,7 @@ public class RimewindTaskmage extends CardImpl { private static final FilterControlledPermanent filter = new FilterControlledPermanent("you control four or more snow permanents"); static { - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); } public RimewindTaskmage(UUID ownerId, CardSetInfo setInfo) { @@ -67,7 +69,7 @@ public class RimewindTaskmage extends CardImpl { Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new MayTapOrUntapTargetEffect(), new GenericManaCost(1), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 3)); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 3)); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetPermanent()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/r/RiseFall.java b/Mage.Sets/src/mage/cards/r/RiseFall.java index 2f92cfdde7f..a8f403015e9 100644 --- a/Mage.Sets/src/mage/cards/r/RiseFall.java +++ b/Mage.Sets/src/mage/cards/r/RiseFall.java @@ -32,12 +32,13 @@ import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; +import mage.cards.CardSetInfo; import mage.cards.Cards; import mage.cards.CardsImpl; -import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SpellAbilityType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.game.Game; @@ -54,7 +55,7 @@ import mage.target.common.TargetCreaturePermanent; public class RiseFall extends SplitCard { public RiseFall(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{U}{B}","{B}{R}",false); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{U}{B}", "{B}{R}", SpellAbilityType.SPLIT); // Rise // Return target creature card from a graveyard and target creature on the battlefield to their owners' hands. diff --git a/Mage.Sets/src/mage/cards/r/RiseFromTheGrave.java b/Mage.Sets/src/mage/cards/r/RiseFromTheGrave.java index 5e0b116444a..b6b3a0a86f1 100644 --- a/Mage.Sets/src/mage/cards/r/RiseFromTheGrave.java +++ b/Mage.Sets/src/mage/cards/r/RiseFromTheGrave.java @@ -1,16 +1,16 @@ /* * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without modification, are * permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. - * + * * 2. Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR @@ -20,7 +20,7 @@ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * + * * The views and conclusions contained in the software and documentation are those of the * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. @@ -28,19 +28,13 @@ package mage.cards.r; import java.util.UUID; + +import mage.abilities.effects.common.continuous.BecomesBlackZombieAdditionEffect; import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.abilities.Ability; -import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.filter.common.FilterCreatureCard; -import mage.game.Game; -import mage.game.permanent.Permanent; import mage.target.common.TargetCardInGraveyard; /** @@ -56,7 +50,7 @@ public class RiseFromTheGrave extends CardImpl { // Put target creature card from a graveyard onto the battlefield under your control. That creature is a black Zombie in addition to its other colors and types. this.getSpellAbility().addTarget(new TargetCardInGraveyard(new FilterCreatureCard("creature card from a graveyard"))); this.getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect()); - this.getSpellAbility().addEffect(new RiseFromTheGraveEffect()); + this.getSpellAbility().addEffect(new BecomesBlackZombieAdditionEffect()); } public RiseFromTheGrave(final RiseFromTheGrave card) { @@ -68,54 +62,3 @@ public class RiseFromTheGrave extends CardImpl { return new RiseFromTheGrave(this); } } - -class RiseFromTheGraveEffect extends ContinuousEffectImpl { - - public RiseFromTheGraveEffect() { - super(Duration.Custom, Outcome.Neutral); - staticText = "That creature is a black Zombie in addition to its other colors and types"; - } - - public RiseFromTheGraveEffect(final RiseFromTheGraveEffect effect) { - super(effect); - } - - @Override - public RiseFromTheGraveEffect copy() { - return new RiseFromTheGraveEffect(this); - } - - @Override - public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { - Permanent creature = game.getPermanent(source.getFirstTarget()); - if (creature != null) { - switch (layer) { - case TypeChangingEffects_4: - if (sublayer == SubLayer.NA) { - creature.getSubtype(game).add("Zombie"); - } - break; - case ColorChangingEffects_5: - if (sublayer == SubLayer.NA) { - creature.getColor(game).setBlack(true); - } - break; - } - return true; - } else { - this.used = true; - } - return false; - } - - @Override - public boolean apply(Game game, Ability source) { - return false; - } - - @Override - public boolean hasLayer(Layer layer) { - return layer == Layer.ColorChangingEffects_5 || layer == Layer.TypeChangingEffects_4; - } - -} diff --git a/Mage.Sets/src/mage/cards/r/RishkarPeemaRenegade.java b/Mage.Sets/src/mage/cards/r/RishkarPeemaRenegade.java index e29cb783c35..49622549011 100644 --- a/Mage.Sets/src/mage/cards/r/RishkarPeemaRenegade.java +++ b/Mage.Sets/src/mage/cards/r/RishkarPeemaRenegade.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -40,12 +39,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.CounterAnyPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -61,7 +63,7 @@ public class RishkarPeemaRenegade extends CardImpl { public RishkarPeemaRenegade(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Druid"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/r/RithTheAwakener.java b/Mage.Sets/src/mage/cards/r/RithTheAwakener.java index b54620ce2c9..079581fd984 100644 --- a/Mage.Sets/src/mage/cards/r/RithTheAwakener.java +++ b/Mage.Sets/src/mage/cards/r/RithTheAwakener.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -41,12 +40,15 @@ import mage.cards.CardSetInfo; import mage.choices.ChoiceColor; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.game.permanent.token.SaprolingToken; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +57,7 @@ public class RithTheAwakener extends CardImpl { public RithTheAwakener(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/r/RivenTurnbull.java b/Mage.Sets/src/mage/cards/r/RivenTurnbull.java index b5efa4496bf..3f549800f8f 100644 --- a/Mage.Sets/src/mage/cards/r/RivenTurnbull.java +++ b/Mage.Sets/src/mage/cards/r/RivenTurnbull.java @@ -27,12 +27,14 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.mana.BlackManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -42,7 +44,7 @@ public class RivenTurnbull extends CardImpl { public RivenTurnbull(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/r/RiverOfTears.java b/Mage.Sets/src/mage/cards/r/RiverOfTears.java index 9a7b04b774a..3996cf03255 100644 --- a/Mage.Sets/src/mage/cards/r/RiverOfTears.java +++ b/Mage.Sets/src/mage/cards/r/RiverOfTears.java @@ -27,9 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.Mana; import mage.abilities.condition.common.LandfallCondition; import mage.abilities.costs.common.TapSourceCost; @@ -38,8 +35,12 @@ import mage.abilities.effects.common.BasicManaEffect; import mage.abilities.mana.ConditionalManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; import mage.watchers.common.LandfallWatcher; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +54,7 @@ public class RiverOfTears extends CardImpl { this.addAbility(new ConditionalManaAbility(Zone.BATTLEFIELD, new ConditionalManaEffect( new BasicManaEffect(Mana.BlackMana(1)), new BasicManaEffect(Mana.BlueMana(1)), - LandfallCondition.getInstance(), + LandfallCondition.instance, "Add {U} to your mana pool. If you played a land this turn, add {B} to your mana pool instead"), new TapSourceCost()), new LandfallWatcher()); diff --git a/Mage.Sets/src/mage/cards/r/RiverSerpent.java b/Mage.Sets/src/mage/cards/r/RiverSerpent.java new file mode 100644 index 00000000000..e5ed656644c --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RiverSerpent.java @@ -0,0 +1,107 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.r; + +import java.util.List; +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; +import mage.abilities.effects.RestrictionEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.game.stack.Spell; +import mage.watchers.common.SpellsCastWatcher; + +/** + * + * @author stravant + */ +public class RiverSerpent extends CardImpl { + + public RiverSerpent(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{U}"); + + this.subtype.add("Serpent"); + this.power = new MageInt(5); + this.toughness = new MageInt(5); + + // River Serpent can't attack unless there are five or more cards in your graveyard. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new RiverSerpentEffect())); + + // Cycling {U} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{U}"))); + } + + public RiverSerpent(final RiverSerpent card) { + super(card); + } + + @Override + public RiverSerpent copy() { + return new RiverSerpent(this); + } +} + +class RiverSerpentEffect extends RestrictionEffect { + public RiverSerpentEffect() { + super(Duration.WhileOnBattlefield); + staticText = "{this} can't attack unless there are five or more cards in your graveyard"; + } + + public RiverSerpentEffect(final RiverSerpentEffect effect) { + super(effect); + } + + @Override + public RiverSerpentEffect copy() { + return new RiverSerpentEffect(this); + } + + @Override + public boolean canAttack(Game game) { + return false; + } + + @Override + public boolean applies(Permanent permanent, Ability source, Game game) { + if (permanent.getId().equals(source.getSourceId())) { + return new CardsInControllerGraveyardCount().calculate(game, source, this) < 5; + } else { + return false; + } + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/r/RoarOfJukai.java b/Mage.Sets/src/mage/cards/r/RoarOfJukai.java index 9070e6e1c31..b92ac3b0a7d 100644 --- a/Mage.Sets/src/mage/cards/r/RoarOfJukai.java +++ b/Mage.Sets/src/mage/cards/r/RoarOfJukai.java @@ -30,7 +30,7 @@ package mage.cards.r; import java.util.UUID; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.common.GainLifeOpponentCost; import mage.abilities.effects.ContinuousEffect; @@ -111,7 +111,7 @@ class RoarOfJukaiEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - if (new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0).apply(game, source)) { + if (new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0).apply(game, source)) { for (Permanent permanent : game.getBattlefield().getActivePermanents(filterBlocked, source.getControllerId(), source.getSourceId(), game)) { ContinuousEffect effect = new BoostTargetEffect(2, 2, Duration.EndOfTurn); effect.setTargetPointer(new FixedTarget(permanent.getId())); diff --git a/Mage.Sets/src/mage/cards/r/RofellosLlanowarEmissary.java b/Mage.Sets/src/mage/cards/r/RofellosLlanowarEmissary.java index a590af96840..fcec1ab8dd3 100644 --- a/Mage.Sets/src/mage/cards/r/RofellosLlanowarEmissary.java +++ b/Mage.Sets/src/mage/cards/r/RofellosLlanowarEmissary.java @@ -28,17 +28,19 @@ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.mana.DynamicManaAbility; -import mage.constants.CardType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author Backfir3 @@ -53,7 +55,7 @@ public class RofellosLlanowarEmissary extends CardImpl { public RofellosLlanowarEmissary(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Druid"); diff --git a/Mage.Sets/src/mage/cards/r/RonomHulk.java b/Mage.Sets/src/mage/cards/r/RonomHulk.java index 4c6ded58f25..0d3ce044d9f 100644 --- a/Mage.Sets/src/mage/cards/r/RonomHulk.java +++ b/Mage.Sets/src/mage/cards/r/RonomHulk.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.CumulativeUpkeepAbility; @@ -35,9 +34,12 @@ import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** * * @author LoneFox @@ -47,7 +49,7 @@ public class RonomHulk extends CardImpl { private static final FilterCard filter = new FilterCard("snow"); static { - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); } public RonomHulk(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/r/RoonOfTheHiddenRealm.java b/Mage.Sets/src/mage/cards/r/RoonOfTheHiddenRealm.java index 1896757dca6..e4aeaf4b55f 100644 --- a/Mage.Sets/src/mage/cards/r/RoonOfTheHiddenRealm.java +++ b/Mage.Sets/src/mage/cards/r/RoonOfTheHiddenRealm.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -44,6 +43,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; @@ -53,6 +53,8 @@ import mage.players.Player; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -67,7 +69,7 @@ public class RoonOfTheHiddenRealm extends CardImpl { public RoonOfTheHiddenRealm(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Rhino"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/r/RootboundCrag.java b/Mage.Sets/src/mage/cards/r/RootboundCrag.java index 0760c2f454a..84a54d46918 100644 --- a/Mage.Sets/src/mage/cards/r/RootboundCrag.java +++ b/Mage.Sets/src/mage/cards/r/RootboundCrag.java @@ -30,7 +30,7 @@ package mage.cards.r; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; @@ -61,7 +61,7 @@ public class RootboundCrag extends CardImpl { public RootboundCrag(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Mountain or a Forest"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new RedManaAbility()); diff --git a/Mage.Sets/src/mage/cards/r/Rootgrapple.java b/Mage.Sets/src/mage/cards/r/Rootgrapple.java index 54c2380c8c8..d1d1c8588d3 100644 --- a/Mage.Sets/src/mage/cards/r/Rootgrapple.java +++ b/Mage.Sets/src/mage/cards/r/Rootgrapple.java @@ -29,7 +29,7 @@ package mage.cards.r; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -67,7 +67,7 @@ public class Rootgrapple extends CardImpl { // If you control a Treefolk, draw a card. this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DrawCardSourceControllerEffect(1), - new PermanentsOnTheBattlefieldCondition(filterTreefolk, CountType.MORE_THAN, 0), + new PermanentsOnTheBattlefieldCondition(filterTreefolk, ComparisonType.MORE_THAN, 0), "If you control a Treefolk, draw a card")); } diff --git a/Mage.Sets/src/mage/cards/r/RorixBladewing.java b/Mage.Sets/src/mage/cards/r/RorixBladewing.java index f02d3fd1c72..fd51fbe3b3d 100644 --- a/Mage.Sets/src/mage/cards/r/RorixBladewing.java +++ b/Mage.Sets/src/mage/cards/r/RorixBladewing.java @@ -34,6 +34,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.SuperType; /** * @@ -43,7 +44,7 @@ public class RorixBladewing extends CardImpl { public RorixBladewing(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/r/RosheenMeanderer.java b/Mage.Sets/src/mage/cards/r/RosheenMeanderer.java index 11c6b0fb836..9644fa6b544 100644 --- a/Mage.Sets/src/mage/cards/r/RosheenMeanderer.java +++ b/Mage.Sets/src/mage/cards/r/RosheenMeanderer.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.ConditionalMana; import mage.MageInt; import mage.MageObject; @@ -40,8 +39,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AbilityType; import mage.constants.CardType; +import mage.constants.SuperType; import mage.game.Game; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -50,7 +52,7 @@ public class RosheenMeanderer extends CardImpl { public RosheenMeanderer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R/G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Giant"); this.subtype.add("Shaman"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/r/RoughTumble.java b/Mage.Sets/src/mage/cards/r/RoughTumble.java index e6a9d90472f..81ceab90bc0 100644 --- a/Mage.Sets/src/mage/cards/r/RoughTumble.java +++ b/Mage.Sets/src/mage/cards/r/RoughTumble.java @@ -34,6 +34,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; +import mage.constants.SpellAbilityType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; @@ -46,13 +47,14 @@ public class RoughTumble extends SplitCard { private static final FilterCreaturePermanent filterFlying = new FilterCreaturePermanent("creature with flying"); private static final FilterCreaturePermanent filterWithoutFlying = new FilterCreaturePermanent("creature without flying"); + static { filterFlying.add(new AbilityPredicate(FlyingAbility.class)); filterWithoutFlying.add(Predicates.not(new AbilityPredicate(FlyingAbility.class))); } public RoughTumble(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}","{5}{R}",false); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}", "{5}{R}", SpellAbilityType.SPLIT); // Rough // Rough deals 2 damage to each creature without flying. diff --git a/Mage.Sets/src/mage/cards/r/Rowen.java b/Mage.Sets/src/mage/cards/r/Rowen.java index 4c8c0c6f0e6..af72ca25d10 100644 --- a/Mage.Sets/src/mage/cards/r/Rowen.java +++ b/Mage.Sets/src/mage/cards/r/Rowen.java @@ -99,7 +99,7 @@ class RowenAbility extends TriggeredAbilityImpl { lastTriggeredTurn = game.getTurnNum(); controller.revealCards(sourcePermanent.getName(), new CardsImpl(card), game); this.getEffects().clear(); - if (card.isLand() && card.getSupertype().contains("Basic")) { + if (card.isLand() && card.isBasic()) { this.addEffect(new DrawCardSourceControllerEffect(1)); } return true; diff --git a/Mage.Sets/src/mage/cards/r/RubiniaSoulsinger.java b/Mage.Sets/src/mage/cards/r/RubiniaSoulsinger.java index cac5ad24427..a2350f8948e 100644 --- a/Mage.Sets/src/mage/cards/r/RubiniaSoulsinger.java +++ b/Mage.Sets/src/mage/cards/r/RubiniaSoulsinger.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,11 +39,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +55,7 @@ public class RubiniaSoulsinger extends CardImpl { public RubiniaSoulsinger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Faerie"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/r/RuhanOfTheFomori.java b/Mage.Sets/src/mage/cards/r/RuhanOfTheFomori.java index 9e8d73835cb..0868cbf44f0 100644 --- a/Mage.Sets/src/mage/cards/r/RuhanOfTheFomori.java +++ b/Mage.Sets/src/mage/cards/r/RuhanOfTheFomori.java @@ -27,15 +27,17 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.effects.common.combat.AttackIfAbleTargetRandomOpponentSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author LevelX2 @@ -44,7 +46,7 @@ public class RuhanOfTheFomori extends CardImpl { public RuhanOfTheFomori(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Giant"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/r/RuneTailKitsuneAscendant.java b/Mage.Sets/src/mage/cards/r/RuneTailKitsuneAscendant.java index ed1bccf8b8a..69a3ff8581a 100644 --- a/Mage.Sets/src/mage/cards/r/RuneTailKitsuneAscendant.java +++ b/Mage.Sets/src/mage/cards/r/RuneTailKitsuneAscendant.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.StateTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -37,6 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreatureInPlay; import mage.game.Game; @@ -44,6 +44,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,7 +54,7 @@ public class RuneTailKitsuneAscendant extends CardImpl { public RuneTailKitsuneAscendant(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Fox"); this.subtype.add("Monk"); @@ -110,7 +112,7 @@ class RuneTailEssence extends Token { RuneTailEssence() { super("Rune-Tail's Essence", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.ENCHANTMENT); color.setWhite(true); diff --git a/Mage.Sets/src/mage/cards/r/RunnersBane.java b/Mage.Sets/src/mage/cards/r/RunnersBane.java index 12fea6114ea..a038ccc984d 100644 --- a/Mage.Sets/src/mage/cards/r/RunnersBane.java +++ b/Mage.Sets/src/mage/cards/r/RunnersBane.java @@ -27,26 +27,26 @@ */ package mage.cards.r; -import java.util.UUID; - -import mage.abilities.effects.common.TapEnchantedEffect; -import mage.constants.CardType; -import mage.constants.Zone; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; +import mage.abilities.effects.common.TapEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; -import mage.filter.Filter; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +55,7 @@ public class RunnersBane extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 3 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 4)); } public RunnersBane(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}"); diff --git a/Mage.Sets/src/mage/cards/r/RuricTharTheUnbowed.java b/Mage.Sets/src/mage/cards/r/RuricTharTheUnbowed.java index c28da88fbdc..f9adbcc8e2e 100644 --- a/Mage.Sets/src/mage/cards/r/RuricTharTheUnbowed.java +++ b/Mage.Sets/src/mage/cards/r/RuricTharTheUnbowed.java @@ -27,7 +27,6 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.AttacksEachTurnStaticAbility; @@ -38,6 +37,7 @@ import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -45,6 +45,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.stack.Spell; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -53,7 +55,7 @@ public class RuricTharTheUnbowed extends CardImpl { public RuricTharTheUnbowed(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Ogre"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/r/RuthlessCullblade.java b/Mage.Sets/src/mage/cards/r/RuthlessCullblade.java index c62d36ea392..4d652fa54eb 100644 --- a/Mage.Sets/src/mage/cards/r/RuthlessCullblade.java +++ b/Mage.Sets/src/mage/cards/r/RuthlessCullblade.java @@ -27,17 +27,18 @@ */ package mage.cards.r; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.condition.common.TenOrLessLifeCondition; +import mage.abilities.condition.common.XorLessLifeCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +import java.util.UUID; /** * @@ -56,7 +57,7 @@ public class RuthlessCullblade extends CardImpl { // Ruthless Cullblade gets +2/+1 as long as an opponent has 10 or less life. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostSourceEffect(2, 1, Duration.WhileOnBattlefield), - new TenOrLessLifeCondition(TenOrLessLifeCondition.CheckType.AN_OPPONENT), + new XorLessLifeCondition(XorLessLifeCondition.CheckType.AN_OPPONENT, 10), "{this} gets +2/+1 as long as an opponent has 10 or less life."))); } diff --git a/Mage.Sets/src/mage/cards/r/RuthlessSniper.java b/Mage.Sets/src/mage/cards/r/RuthlessSniper.java new file mode 100644 index 00000000000..0a98701e0b7 --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RuthlessSniper.java @@ -0,0 +1,78 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.r; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.CycleOrDiscardControllerTriggeredAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.common.DoIfCostPaid; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.counters.CounterType; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author stravant + */ +public class RuthlessSniper extends CardImpl { + + public RuthlessSniper(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}"); + + this.subtype.add("Human"); + this.subtype.add("Archer"); + this.power = new MageInt(1); + this.toughness = new MageInt(2); + + // Whenever you cycle or discard a card, you may pay {1}. If you do, put a -1/-1 counter on target creature. + CycleOrDiscardControllerTriggeredAbility ability = new CycleOrDiscardControllerTriggeredAbility( + new DoIfCostPaid( + new AddCountersTargetEffect( + CounterType.M1M1.createInstance(), + new StaticValue(1), + Outcome.Removal), + new ManaCostsImpl("{1}"))); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public RuthlessSniper(final RuthlessSniper card) { + super(card); + } + + @Override + public RuthlessSniper copy() { + return new RuthlessSniper(this); + } +} diff --git a/Mage.Sets/src/mage/cards/r/RyuseiTheFallingStar.java b/Mage.Sets/src/mage/cards/r/RyuseiTheFallingStar.java index 43a2137ac1c..d425acf4928 100644 --- a/Mage.Sets/src/mage/cards/r/RyuseiTheFallingStar.java +++ b/Mage.Sets/src/mage/cards/r/RyuseiTheFallingStar.java @@ -35,6 +35,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; @@ -54,7 +55,7 @@ public class RyuseiTheFallingStar extends CardImpl { public RyuseiTheFallingStar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/s/SacellumGodspeaker.java b/Mage.Sets/src/mage/cards/s/SacellumGodspeaker.java index f3aff320410..5aed8f10808 100644 --- a/Mage.Sets/src/mage/cards/s/SacellumGodspeaker.java +++ b/Mage.Sets/src/mage/cards/s/SacellumGodspeaker.java @@ -27,33 +27,32 @@ */ package mage.cards.s; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.ManaEffect; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; import mage.target.common.TargetCardInHand; +import java.util.UUID; + /** - * * @author Plopman */ public class SacellumGodspeaker extends CardImpl { - + public SacellumGodspeaker(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); this.subtype.add("Elf"); this.subtype.add("Druid"); @@ -77,12 +76,13 @@ public class SacellumGodspeaker extends CardImpl { class SacellumGodspeakerEffect extends ManaEffect { - + private static final FilterCreatureCard filter = new FilterCreatureCard("creature cards with power 5 or greater from your hand"); + static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } - + public SacellumGodspeakerEffect() { super(); staticText = "Reveal any number of creature cards with power 5 or greater from your hand. Add {G} to your mana pool for each card revealed this way"; @@ -99,7 +99,7 @@ class SacellumGodspeakerEffect extends ManaEffect { @Override public boolean apply(Game game, Ability source) { - TargetCardInHand target = new TargetCardInHand(0,Integer.MAX_VALUE, filter); + TargetCardInHand target = new TargetCardInHand(0, Integer.MAX_VALUE, filter); if (target.choose(Outcome.Benefit, source.getControllerId(), source.getSourceId(), game)) { Mana mana = Mana.GreenMana(target.getTargets().size()); checkToFirePossibleEvents(mana, game, source); diff --git a/Mage.Sets/src/mage/cards/s/SachiDaughterOfSeshiro.java b/Mage.Sets/src/mage/cards/s/SachiDaughterOfSeshiro.java index 5c8da52f345..91a0d5a8708 100644 --- a/Mage.Sets/src/mage/cards/s/SachiDaughterOfSeshiro.java +++ b/Mage.Sets/src/mage/cards/s/SachiDaughterOfSeshiro.java @@ -39,6 +39,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; @@ -59,7 +60,7 @@ public class SachiDaughterOfSeshiro extends CardImpl { public SachiDaughterOfSeshiro(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Snake"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/s/SacredCat.java b/Mage.Sets/src/mage/cards/s/SacredCat.java new file mode 100644 index 00000000000..615834d8462 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SacredCat.java @@ -0,0 +1,67 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.LifelinkAbility; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class SacredCat extends CardImpl { + + public SacredCat(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}"); + + this.subtype.add("Cat"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // Lifelink + this.addAbility(LifelinkAbility.getInstance()); + + // Embalm {W} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{W}"), this)); + } + + public SacredCat(final SacredCat card) { + super(card); + } + + @Override + public SacredCat copy() { + return new SacredCat(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SacredExcavation.java b/Mage.Sets/src/mage/cards/s/SacredExcavation.java new file mode 100644 index 00000000000..a062f6954ee --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SacredExcavation.java @@ -0,0 +1,69 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; + +import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.AbilityPredicate; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author stravant + */ +public class SacredExcavation extends CardImpl { + + private static final FilterCard cardsWithCycling = new FilterCard("cards with cycling from your graveyard"); + + static { + cardsWithCycling.add(new AbilityPredicate(CyclingAbility.class)); + } + + public SacredExcavation(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{U}"); + + // Return up to two target cards with cycling from your graveyard to your hand. + getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect()); + getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 2, cardsWithCycling)); + } + + public SacredExcavation(final SacredExcavation card) { + super(card); + } + + @Override + public SacredExcavation copy() { + return new SacredExcavation(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SaffiEriksdotter.java b/Mage.Sets/src/mage/cards/s/SaffiEriksdotter.java index 292a8cf7ffe..3c70722ee36 100644 --- a/Mage.Sets/src/mage/cards/s/SaffiEriksdotter.java +++ b/Mage.Sets/src/mage/cards/s/SaffiEriksdotter.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -37,10 +36,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ReturnToBattlefieldUnderYourControlTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.events.GameEvent; @@ -50,6 +46,8 @@ import mage.target.Target; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Plopman @@ -58,7 +56,7 @@ public class SaffiEriksdotter extends CardImpl { public SaffiEriksdotter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Scout"); diff --git a/Mage.Sets/src/mage/cards/s/SageOfFables.java b/Mage.Sets/src/mage/cards/s/SageOfFables.java index 1191c3f0e6a..8f8b69733f1 100644 --- a/Mage.Sets/src/mage/cards/s/SageOfFables.java +++ b/Mage.Sets/src/mage/cards/s/SageOfFables.java @@ -56,7 +56,7 @@ import mage.target.common.TargetControlledCreaturePermanent; public class SageOfFables extends CardImpl { public SageOfFables(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}"); this.subtype.add("Merfolk"); this.subtype.add("Wizard"); this.power = new MageInt(2); @@ -115,7 +115,7 @@ class SageOfFablesReplacementEffect extends ReplacementEffectImpl { public boolean replaceEvent(GameEvent event, Ability source, Game game) { Permanent creature = ((EntersTheBattlefieldEvent) event).getTarget(); if (creature != null) { - creature.addCounters(CounterType.P1P1.createInstance(), source, game); + creature.addCounters(CounterType.P1P1.createInstance(), source, game, event.getAppliedEffects()); } return false; } diff --git a/Mage.Sets/src/mage/cards/s/SakashimaTheImpostor.java b/Mage.Sets/src/mage/cards/s/SakashimaTheImpostor.java index 3f8920681c5..79066d5b54e 100644 --- a/Mage.Sets/src/mage/cards/s/SakashimaTheImpostor.java +++ b/Mage.Sets/src/mage/cards/s/SakashimaTheImpostor.java @@ -30,6 +30,7 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; import mage.MageObject; +import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -41,6 +42,7 @@ import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -48,14 +50,13 @@ import mage.game.permanent.Permanent; import mage.util.functions.ApplyToPermanent; /** - * * @author LevelX2 */ public class SakashimaTheImpostor extends CardImpl { public SakashimaTheImpostor(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}"); - this.supertype.add("Legendary"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}{U}"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rogue"); this.power = new MageInt(3); @@ -80,10 +81,9 @@ public class SakashimaTheImpostor extends CardImpl { class SakashimaTheImpostorApplier extends ApplyToPermanent { @Override - public boolean apply(Game game, Permanent permanent) { - if (!permanent.getSupertype().contains("Legendary")) { - permanent.getSupertype().add("Legendary"); - } + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { + permanent.addSuperType(SuperType.LEGENDARY); + permanent.setName("Sakashima the Impostor"); // {2}{U}{U}: Return Sakashima the Impostor to its owner's hand at the beginning of the next end step permanent.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, @@ -94,10 +94,8 @@ class SakashimaTheImpostorApplier extends ApplyToPermanent { } @Override - public boolean apply(Game game, MageObject mageObject) { - if (!mageObject.getSupertype().contains("Legendary")) { - mageObject.getSupertype().add("Legendary"); - } + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { + mageObject.addSuperType(SuperType.LEGENDARY); mageObject.setName("Sakashima the Impostor"); // {2}{U}{U}: Return Sakashima the Impostor to its owner's hand at the beginning of the next end step mageObject.getAbilities().add(new SimpleActivatedAbility(Zone.BATTLEFIELD, diff --git a/Mage.Sets/src/mage/cards/s/SakikoMotherOfSummer.java b/Mage.Sets/src/mage/cards/s/SakikoMotherOfSummer.java index f8fc912ea9a..5c901030ae5 100644 --- a/Mage.Sets/src/mage/cards/s/SakikoMotherOfSummer.java +++ b/Mage.Sets/src/mage/cards/s/SakikoMotherOfSummer.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.TriggeredAbilityImpl; @@ -36,6 +35,7 @@ import mage.abilities.effects.common.AddManaToManaPoolTargetControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.DamagedPlayerEvent; @@ -44,6 +44,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,7 +54,7 @@ public class SakikoMotherOfSummer extends CardImpl { public SakikoMotherOfSummer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Snake"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/s/SalvagingStation.java b/Mage.Sets/src/mage/cards/s/SalvagingStation.java index c6913edfdeb..cdeab50ce8c 100644 --- a/Mage.Sets/src/mage/cards/s/SalvagingStation.java +++ b/Mage.Sets/src/mage/cards/s/SalvagingStation.java @@ -27,8 +27,8 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,13 +38,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,7 +57,7 @@ public class SalvagingStation extends CardImpl { static { filter.add(new CardTypePredicate(CardType.ARTIFACT)); filter.add(Predicates.not(new CardTypePredicate(CardType.CREATURE))); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 2)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2)); } public SalvagingStation(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SamutVoiceOfDissent.java b/Mage.Sets/src/mage/cards/s/SamutVoiceOfDissent.java new file mode 100644 index 00000000000..7c89aa918b2 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SamutVoiceOfDissent.java @@ -0,0 +1,107 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.UntapTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityAllEffect; +import mage.abilities.keyword.DoubleStrikeAbility; +import mage.abilities.keyword.FlashAbility; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.VigilanceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; +import mage.constants.Zone; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.AnotherPredicate; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author jeffwadsworth + */ +public class SamutVoiceOfDissent extends CardImpl { + + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Other creatures you control"); + private static final FilterCreaturePermanent filter2 = new FilterCreaturePermanent("another target creature"); + + static { + filter.add(new AnotherPredicate()); + filter2.add(new AnotherPredicate()); + } + + public SamutVoiceOfDissent(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}{G}"); + addSuperType(SuperType.LEGENDARY); + this.subtype.add("Human"); + this.subtype.add("Warrior"); + this.power = new MageInt(3); + this.toughness = new MageInt(4); + + // Flash + this.addAbility(FlashAbility.getInstance()); + + //Double strike + this.addAbility(DoubleStrikeAbility.getInstance()); + + //vigilance + this.addAbility(VigilanceAbility.getInstance()); + + //haste + this.addAbility(HasteAbility.getInstance()); + + //Other creatures you control have haste. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(HasteAbility.getInstance(), Duration.WhileOnBattlefield, filter))); + + //W, Tap: Untap another target creature. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), new ManaCostsImpl("{W}")); + ability.addTarget(new TargetCreaturePermanent(filter2)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + } + + public SamutVoiceOfDissent(final SamutVoiceOfDissent card) { + super(card); + } + + @Override + public SamutVoiceOfDissent copy() { + return new SamutVoiceOfDissent(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SanctumOfUgin.java b/Mage.Sets/src/mage/cards/s/SanctumOfUgin.java index f7879f75058..4f86689e194 100644 --- a/Mage.Sets/src/mage/cards/s/SanctumOfUgin.java +++ b/Mage.Sets/src/mage/cards/s/SanctumOfUgin.java @@ -27,7 +27,7 @@ */ package mage.cards.s; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.Effect; @@ -37,15 +37,15 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterSpell; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ColorlessPredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** - * * @author fireshoes */ public class SanctumOfUgin extends CardImpl { @@ -56,11 +56,11 @@ public class SanctumOfUgin extends CardImpl { static { filter.add(new ColorlessPredicate()); filterSpells.add(new ColorlessPredicate()); - filterSpells.add(new ConvertedManaCostPredicate(ComparisonType.GreaterThan, 6)); + filterSpells.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 6)); } public SanctumOfUgin(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.LAND},""); + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/s/SandwurmConvergence.java b/Mage.Sets/src/mage/cards/s/SandwurmConvergence.java new file mode 100644 index 00000000000..57c5ddd1336 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SandwurmConvergence.java @@ -0,0 +1,79 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.abilities.common.BeginningOfEndStepTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.combat.CantAttackYouOrPlaneswalkerAllEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.AbilityPredicate; +import mage.game.permanent.token.WurmToken3; + +/** + * + * @author fireshoes + */ +public class SandwurmConvergence extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures with flying"); + + static { + filter.add(new AbilityPredicate(FlyingAbility.class)); + } + + public SandwurmConvergence(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{6}{G}{G}"); + + // Creatures with flying can't attack you or planeswalkers you control. + Effect effect = new CantAttackYouOrPlaneswalkerAllEffect(Duration.WhileOnBattlefield, filter); + effect.setText("Creatures with flying can't attack you or planeswalkers you control"); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); + + // At the beginning of your end step, create a 5/5 green Wurm creature token. + this.addAbility(new BeginningOfEndStepTriggeredAbility(new CreateTokenEffect(new WurmToken3()), TargetController.YOU, false)); + } + + public SandwurmConvergence(final SandwurmConvergence card) { + super(card); + } + + @Override + public SandwurmConvergence copy() { + return new SandwurmConvergence(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SaplingOfColfenor.java b/Mage.Sets/src/mage/cards/s/SaplingOfColfenor.java index 2038e8c1aef..30dfc184deb 100644 --- a/Mage.Sets/src/mage/cards/s/SaplingOfColfenor.java +++ b/Mage.Sets/src/mage/cards/s/SaplingOfColfenor.java @@ -27,24 +27,22 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.IndestructibleAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -54,7 +52,7 @@ public class SaplingOfColfenor extends CardImpl { public SaplingOfColfenor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B/G}{B/G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Treefolk"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/s/SapseepForest.java b/Mage.Sets/src/mage/cards/s/SapseepForest.java index afd41ac8b29..56cb1d5e9d6 100644 --- a/Mage.Sets/src/mage/cards/s/SapseepForest.java +++ b/Mage.Sets/src/mage/cards/s/SapseepForest.java @@ -30,7 +30,7 @@ package mage.cards.s; import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.common.TapSourceCost; @@ -71,7 +71,7 @@ public class SapseepForest extends CardImpl { Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(1), new ManaCostsImpl("{G}"), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1)); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1)); ability.addCost(new TapSourceCost()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/s/Sarcomancy.java b/Mage.Sets/src/mage/cards/s/Sarcomancy.java index 4cb38ef83fc..ba18ffe7674 100644 --- a/Mage.Sets/src/mage/cards/s/Sarcomancy.java +++ b/Mage.Sets/src/mage/cards/s/Sarcomancy.java @@ -29,7 +29,7 @@ package mage.cards.s; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -59,7 +59,7 @@ public class Sarcomancy extends CardImpl { // At the beginning of your upkeep, if there are no Zombies on the battlefield, Sarcomancy deals 1 damage to you. this.addAbility(new ConditionalTriggeredAbility( new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DamageControllerEffect(1), TargetController.YOU, false), - new PermanentsOnTheBattlefieldCondition(new FilterPermanent("Zombie", "Zombies"), CountType.EQUAL_TO, 0, false), + new PermanentsOnTheBattlefieldCondition(new FilterPermanent("Zombie", "Zombies"), ComparisonType.EQUAL_TO, 0, false), "At the beginning of your upkeep, if there are no Zombies on the battlefield, {this} deals 1 damage to you.")); } diff --git a/Mage.Sets/src/mage/cards/s/SarkhanTheDragonspeaker.java b/Mage.Sets/src/mage/cards/s/SarkhanTheDragonspeaker.java index e2d398855d6..38f49b9315d 100644 --- a/Mage.Sets/src/mage/cards/s/SarkhanTheDragonspeaker.java +++ b/Mage.Sets/src/mage/cards/s/SarkhanTheDragonspeaker.java @@ -46,13 +46,7 @@ import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.command.Emblem; import mage.game.permanent.Permanent; @@ -124,11 +118,11 @@ class SarkhanTheDragonspeakerEffect extends ContinuousEffectImpl { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { permanent.getCardType().clear(); - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); permanent.getSubtype(game).clear(); permanent.getSubtype(game).add("Dragon"); - permanent.getSupertype().clear(); - permanent.getSupertype().add("Legendary"); + permanent.getSuperType().clear(); + permanent.addSuperType(SuperType.LEGENDARY); } break; case ColorChangingEffects_5: diff --git a/Mage.Sets/src/mage/cards/s/SarkhansRage.java b/Mage.Sets/src/mage/cards/s/SarkhansRage.java index cf14cab1d25..250342877e8 100644 --- a/Mage.Sets/src/mage/cards/s/SarkhansRage.java +++ b/Mage.Sets/src/mage/cards/s/SarkhansRage.java @@ -29,7 +29,7 @@ package mage.cards.s; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DamageControllerEffect; @@ -53,7 +53,7 @@ public class SarkhansRage extends CardImpl { this.getSpellAbility().addEffect(new DamageTargetEffect(5)); this.getSpellAbility().addTarget(new TargetCreatureOrPlayer()); this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageControllerEffect(2), - new PermanentsOnTheBattlefieldCondition(new FilterControlledCreaturePermanent("Dragon","you control no Dragons"), CountType.EQUAL_TO, 0) + new PermanentsOnTheBattlefieldCondition(new FilterControlledCreaturePermanent("Dragon","you control no Dragons"), ComparisonType.EQUAL_TO, 0) )); } diff --git a/Mage.Sets/src/mage/cards/s/SaruliGatekeepers.java b/Mage.Sets/src/mage/cards/s/SaruliGatekeepers.java index 886e324d5e9..70973530cf7 100644 --- a/Mage.Sets/src/mage/cards/s/SaruliGatekeepers.java +++ b/Mage.Sets/src/mage/cards/s/SaruliGatekeepers.java @@ -30,7 +30,7 @@ package mage.cards.s; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -66,7 +66,7 @@ public class SaruliGatekeepers extends CardImpl { // When Saruli Gatekeepers enters the battlefield, if you control two or more Gates, gain 7 life. this.addAbility(new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new GainLifeEffect(7)), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1), "When {this} enters the battlefield, if you control two or more Gates, gain 7 life.")); } diff --git a/Mage.Sets/src/mage/cards/s/SasayaOrochiAscendant.java b/Mage.Sets/src/mage/cards/s/SasayaOrochiAscendant.java index bd1bc9cf559..f786551d776 100644 --- a/Mage.Sets/src/mage/cards/s/SasayaOrochiAscendant.java +++ b/Mage.Sets/src/mage/cards/s/SasayaOrochiAscendant.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -41,10 +40,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.choices.Choice; import mage.choices.ChoiceColor; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterLandCard; @@ -57,6 +53,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -65,7 +63,7 @@ public class SasayaOrochiAscendant extends CardImpl { public SasayaOrochiAscendant(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Snake"); this.subtype.add("Monk"); @@ -122,7 +120,7 @@ class SasayasEssence extends Token { SasayasEssence() { super("Sasaya's Essence", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.ENCHANTMENT); color.setGreen(true); diff --git a/Mage.Sets/src/mage/cards/s/SaskiaTheUnyielding.java b/Mage.Sets/src/mage/cards/s/SaskiaTheUnyielding.java index d9c1e05561b..fd6380b05ac 100644 --- a/Mage.Sets/src/mage/cards/s/SaskiaTheUnyielding.java +++ b/Mage.Sets/src/mage/cards/s/SaskiaTheUnyielding.java @@ -41,6 +41,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.SetTargetPointer; +import mage.constants.SuperType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.players.Player; @@ -54,7 +55,7 @@ public class SaskiaTheUnyielding extends CardImpl { public SaskiaTheUnyielding(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}{R}{G}{W}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/s/SavageSummoning.java b/Mage.Sets/src/mage/cards/s/SavageSummoning.java index fd659f974e3..3986eb24618 100644 --- a/Mage.Sets/src/mage/cards/s/SavageSummoning.java +++ b/Mage.Sets/src/mage/cards/s/SavageSummoning.java @@ -64,7 +64,7 @@ import mage.watchers.Watcher; public class SavageSummoning extends CardImpl { public SavageSummoning(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{G}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}"); // Savage Summoning can't be countered. Ability ability = new CantBeCounteredAbility(); @@ -315,7 +315,7 @@ class SavageSummoningEntersBattlefieldEffect extends ReplacementEffectImpl { public boolean replaceEvent(GameEvent event, Ability source, Game game) { Permanent creature = ((EntersTheBattlefieldEvent) event).getTarget(); if (creature != null) { - creature.addCounters(CounterType.P1P1.createInstance(), source, game); + creature.addCounters(CounterType.P1P1.createInstance(), source, game, event.getAppliedEffects()); } discard(); return false; diff --git a/Mage.Sets/src/mage/cards/s/SavraQueenOfTheGolgari.java b/Mage.Sets/src/mage/cards/s/SavraQueenOfTheGolgari.java index fe7338f4177..e4806e7ab86 100644 --- a/Mage.Sets/src/mage/cards/s/SavraQueenOfTheGolgari.java +++ b/Mage.Sets/src/mage/cards/s/SavraQueenOfTheGolgari.java @@ -27,9 +27,6 @@ */ package mage.cards.s; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -41,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -50,6 +48,10 @@ import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author fireshoes @@ -58,7 +60,7 @@ public class SavraQueenOfTheGolgari extends CardImpl { public SavraQueenOfTheGolgari(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Shaman"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/s/ScaldingTongs.java b/Mage.Sets/src/mage/cards/s/ScaldingTongs.java index b15369a2744..13bc730bb81 100644 --- a/Mage.Sets/src/mage/cards/s/ScaldingTongs.java +++ b/Mage.Sets/src/mage/cards/s/ScaldingTongs.java @@ -29,7 +29,7 @@ package mage.cards.s; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.CardsInHandCondition; @@ -53,7 +53,7 @@ public class ScaldingTongs extends CardImpl { // At the beginning of your upkeep, if you have three or fewer cards in hand, Scalding Tongs deals 1 damage to target opponent. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), TargetController.YOU, false); ability.addTarget(new TargetOpponent()); - CardsInHandCondition condition = new CardsInHandCondition(CountType.FEWER_THAN, 4); + CardsInHandCondition condition = new CardsInHandCondition(ComparisonType.FEWER_THAN, 4); this.addAbility(new ConditionalTriggeredAbility(ability, condition, "At the beginning of your upkeep, if you have three or fewer cards in hand, {this} deals 1 damage to target opponent.")); } diff --git a/Mage.Sets/src/mage/cards/s/ScaledBehemoth.java b/Mage.Sets/src/mage/cards/s/ScaledBehemoth.java new file mode 100644 index 00000000000..9e8149bc62b --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/ScaledBehemoth.java @@ -0,0 +1,63 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.HexproofAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class ScaledBehemoth extends CardImpl { + + public ScaledBehemoth(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}{G}"); + + this.subtype.add("Crocodile"); + this.power = new MageInt(6); + this.toughness = new MageInt(7); + + // Hexproof + this.addAbility(HexproofAbility.getInstance()); + + } + + public ScaledBehemoth(final ScaledBehemoth card) { + super(card); + } + + @Override + public ScaledBehemoth copy() { + return new ScaledBehemoth(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/ScarabFeast.java b/Mage.Sets/src/mage/cards/s/ScarabFeast.java new file mode 100644 index 00000000000..abdbb3f4673 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/ScarabFeast.java @@ -0,0 +1,37 @@ +package mage.cards.s; + +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.ExileTargetEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.FilterCard; +import mage.target.common.TargetCardInASingleGraveyard; + +import java.util.UUID; + +/** + * @author Stravant + */ +public class ScarabFeast extends CardImpl { + public ScarabFeast(UUID ownerId, CardSetInfo setInfo) { + super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{B}"); + + // Exile up to three target cards from a single graveyard. + getSpellAbility().addEffect(new ExileTargetEffect()); + getSpellAbility().addTarget(new TargetCardInASingleGraveyard(0, 3, new FilterCard("cards from a single graveyard"))); + + // Cycling {B} + addAbility(new CyclingAbility(new ManaCostsImpl("{B}"))); + } + + public ScarabFeast(final ScarabFeast card) { + super(card); + } + + @Override + public ScarabFeast copy() { + return new ScarabFeast(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/ScatteredGroves.java b/Mage.Sets/src/mage/cards/s/ScatteredGroves.java new file mode 100644 index 00000000000..07d07c11d46 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/ScatteredGroves.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.CyclingAbility; +import mage.abilities.mana.GreenManaAbility; +import mage.abilities.mana.WhiteManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class ScatteredGroves extends CardImpl { + + public ScatteredGroves(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + this.subtype.add("Forest"); + this.subtype.add("Plains"); + + // ({T}: Add {G} or {W} to your mana pool.) + this.addAbility(new GreenManaAbility()); + this.addAbility(new WhiteManaAbility()); + + // Scattered Groves enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + + } + + public ScatteredGroves(final ScatteredGroves card) { + super(card); + } + + @Override + public ScatteredGroves copy() { + return new ScatteredGroves(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/ScionOfTheUrDragon.java b/Mage.Sets/src/mage/cards/s/ScionOfTheUrDragon.java index 3f08b9b3b82..2854fdeebc2 100644 --- a/Mage.Sets/src/mage/cards/s/ScionOfTheUrDragon.java +++ b/Mage.Sets/src/mage/cards/s/ScionOfTheUrDragon.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,10 +37,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -50,6 +46,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * @author duncant */ @@ -57,7 +55,7 @@ public class ScionOfTheUrDragon extends CardImpl { public ScionOfTheUrDragon(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{U}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.subtype.add("Avatar"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/s/ScionOfVituGhazi.java b/Mage.Sets/src/mage/cards/s/ScionOfVituGhazi.java index aa1b2680679..3cf6296048b 100644 --- a/Mage.Sets/src/mage/cards/s/ScionOfVituGhazi.java +++ b/Mage.Sets/src/mage/cards/s/ScionOfVituGhazi.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.game.permanent.token.BirdToken; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,7 +57,7 @@ public class ScionOfVituGhazi extends CardImpl { TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new BirdToken()), false); ability.addEffect(new PopulateEffect("then")); - this.addAbility(new ConditionalTriggeredAbility(ability, new CastFromHandSourceCondition(), + this.addAbility(new ConditionalTriggeredAbility(ability, CastFromHandSourceCondition.instance, "When {this} enters the battlefield, if you cast it from your hand, create a 1/1 white Bird creature token with flying, then populate."), new CastFromHandWatcher()); } diff --git a/Mage.Sets/src/mage/cards/s/ScourgeOfFleets.java b/Mage.Sets/src/mage/cards/s/ScourgeOfFleets.java index 61109365f49..5c405517c11 100644 --- a/Mage.Sets/src/mage/cards/s/ScourgeOfFleets.java +++ b/Mage.Sets/src/mage/cards/s/ScourgeOfFleets.java @@ -27,9 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -40,7 +40,6 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterCreaturePermanent; @@ -51,6 +50,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -107,7 +108,7 @@ class ScourgeOfFleetsEffect extends OneShotEffect { int islands = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); FilterPermanent creatureFilter = new FilterCreaturePermanent(); creatureFilter.add(new ControllerPredicate(TargetController.OPPONENT)); - creatureFilter.add(new ToughnessPredicate(Filter.ComparisonType.LessThan, islands + 1)); + creatureFilter.add(new ToughnessPredicate(ComparisonType.FEWER_THAN, islands + 1)); Cards cardsToHand = new CardsImpl(); for (Permanent permanent : game.getBattlefield().getActivePermanents(creatureFilter, source.getControllerId(), source.getSourceId(), game)) { cardsToHand.add(permanent); diff --git a/Mage.Sets/src/mage/cards/s/ScrapTrawler.java b/Mage.Sets/src/mage/cards/s/ScrapTrawler.java index d00950e5fe9..aee5beb25ae 100644 --- a/Mage.Sets/src/mage/cards/s/ScrapTrawler.java +++ b/Mage.Sets/src/mage/cards/s/ScrapTrawler.java @@ -27,16 +27,15 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.common.FilterArtifactCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -47,6 +46,8 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -105,7 +106,7 @@ class ScrapTrawlerTriggeredAbility extends TriggeredAbilityImpl { Permanent permanent = ((ZoneChangeEvent) event).getTarget(); if (permanent.getControllerId().equals(this.getControllerId()) && permanent.isArtifact()) { FilterCard filter = new FilterArtifactCard("artifact card in your graveyard with converted mana cost less than " + permanent.getManaCost().convertedManaCost()); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, permanent.getManaCost().convertedManaCost())); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, permanent.getManaCost().convertedManaCost())); TargetCardInYourGraveyard target = new TargetCardInYourGraveyard(filter); getTargets().clear(); addTarget(target); diff --git a/Mage.Sets/src/mage/cards/s/ScribeOfTheMindful.java b/Mage.Sets/src/mage/cards/s/ScribeOfTheMindful.java new file mode 100644 index 00000000000..4206208d505 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/ScribeOfTheMindful.java @@ -0,0 +1,88 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author fireshoes + */ +public class ScribeOfTheMindful extends CardImpl { + + private static final FilterCard filter = new FilterCard("instant or sorcery card from your graveyard"); + + static { + filter.add(Predicates.or( + new CardTypePredicate(CardType.INSTANT), + new CardTypePredicate(CardType.SORCERY))); + } + + public ScribeOfTheMindful(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}"); + + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // {1}, {T}, Sacrifice Scribe of the Mindful: Return target instant or sorcery card from your graveyard to your hand. + Effect effect = new ReturnToHandTargetEffect(); + effect.setText("Return target instant or sorcery card from your graveyard to your hand"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetCardInYourGraveyard(filter)); + this.addAbility(ability); + } + + public ScribeOfTheMindful(final ScribeOfTheMindful card) { + super(card); + } + + @Override + public ScribeOfTheMindful copy() { + return new ScribeOfTheMindful(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/ScrollOfOrigins.java b/Mage.Sets/src/mage/cards/s/ScrollOfOrigins.java index 0b03a373ba7..ab2e6e80a4d 100644 --- a/Mage.Sets/src/mage/cards/s/ScrollOfOrigins.java +++ b/Mage.Sets/src/mage/cards/s/ScrollOfOrigins.java @@ -29,7 +29,7 @@ package mage.cards.s; import java.util.UUID; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.CardsInHandCondition; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; @@ -51,7 +51,7 @@ public class ScrollOfOrigins extends CardImpl { // {2}, {tap}: Draw a card if you have seven or more cards in hand. Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new GenericManaCost(2), - new CardsInHandCondition(CountType.MORE_THAN, 6), + new CardsInHandCondition(ComparisonType.MORE_THAN, 6), "Draw a card if you have seven or more cards in hand."); ability.addCost(new TapSourceCost()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/s/ScryingSheets.java b/Mage.Sets/src/mage/cards/s/ScryingSheets.java index 25024d50d59..4125e6cf87a 100644 --- a/Mage.Sets/src/mage/cards/s/ScryingSheets.java +++ b/Mage.Sets/src/mage/cards/s/ScryingSheets.java @@ -41,6 +41,7 @@ import mage.cards.CardSetInfo; import mage.cards.CardsImpl; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; @@ -53,7 +54,7 @@ public class ScryingSheets extends CardImpl { public ScryingSheets(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); @@ -100,7 +101,7 @@ class ScryingSheetsEffect extends OneShotEffect { CardsImpl cards = new CardsImpl(); cards.add(card); controller.lookAtCards(sourceObject.getIdName(), cards, game); - if (card.getSupertype().contains("Snow")) { + if (card.isSnow()) { if (controller.chooseUse(outcome, "Reveal " + card.getLogName() + " and put it into your hand?", source, game)) { controller.moveCards(card, Zone.HAND, source, game); controller.revealCards(sourceObject.getIdName(), cards, game); diff --git a/Mage.Sets/src/mage/cards/s/ScuttlingDoomEngine.java b/Mage.Sets/src/mage/cards/s/ScuttlingDoomEngine.java index f83fcefc31d..08f2c532b2f 100644 --- a/Mage.Sets/src/mage/cards/s/ScuttlingDoomEngine.java +++ b/Mage.Sets/src/mage/cards/s/ScuttlingDoomEngine.java @@ -27,9 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.common.DamageTargetEffect; @@ -38,11 +38,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author emerald000 @@ -52,7 +53,7 @@ public class ScuttlingDoomEngine extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public ScuttlingDoomEngine(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SeaSerpent.java b/Mage.Sets/src/mage/cards/s/SeaSerpent.java index 73f758b4269..097c8c7a00c 100644 --- a/Mage.Sets/src/mage/cards/s/SeaSerpent.java +++ b/Mage.Sets/src/mage/cards/s/SeaSerpent.java @@ -27,8 +27,8 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.SacrificeSourceEffect; @@ -37,10 +37,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author KholdFuzion @@ -65,7 +66,7 @@ public class SeaSerpent extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackUnlessDefenderControllsPermanent(filter))); // When you control no Islands, sacrifice Sea Serpent. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Island", "no Islands"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Island", "no Islands"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/s/SeachromeCoast.java b/Mage.Sets/src/mage/cards/s/SeachromeCoast.java index f6da72097f0..6402dd3aa77 100644 --- a/Mage.Sets/src/mage/cards/s/SeachromeCoast.java +++ b/Mage.Sets/src/mage/cards/s/SeachromeCoast.java @@ -29,7 +29,7 @@ package mage.cards.s; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; @@ -55,7 +55,7 @@ public class SeachromeCoast extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); // Seachrome Coast enters the battlefield tapped unless you control two or fewer other lands. - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 3)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 3)); String abilityText = "tap it unless you control fewer than 3 lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); diff --git a/Mage.Sets/src/mage/cards/s/SearingLight.java b/Mage.Sets/src/mage/cards/s/SearingLight.java index 415f3583b03..5238a279e91 100644 --- a/Mage.Sets/src/mage/cards/s/SearingLight.java +++ b/Mage.Sets/src/mage/cards/s/SearingLight.java @@ -27,16 +27,17 @@ */ package mage.cards.s; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import static mage.filter.Filter.ComparisonType.LessThan; import mage.filter.common.FilterAttackingOrBlockingCreature; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -46,7 +47,7 @@ public class SearingLight extends CardImpl { private static final FilterAttackingOrBlockingCreature filter = new FilterAttackingOrBlockingCreature("attacking or blocking creature with power 2 or less"); static { - filter.add(new PowerPredicate(LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public SearingLight(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/Seasinger.java b/Mage.Sets/src/mage/cards/s/Seasinger.java index b305bb031f6..f5a11c31649 100644 --- a/Mage.Sets/src/mage/cards/s/Seasinger.java +++ b/Mage.Sets/src/mage/cards/s/Seasinger.java @@ -27,12 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; - -import mage.abilities.CountType; -import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SkipUntapOptionalAbility; @@ -44,15 +41,20 @@ import mage.abilities.effects.common.SacrificeSourceEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.TargetController; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.CardIdPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.ControllerControlsIslandPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; -import mage.filter.predicate.permanent.ControllerControlsIslandPredicate; + +import java.util.UUID; /** * @@ -82,7 +84,7 @@ public class Seasinger extends CardImpl { // When you control no Islands, sacrifice Seasinger. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Island", "no Islands"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Island", "no Islands"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); // You may choose not to untap Seasinger during your untap step. @@ -91,7 +93,7 @@ public class Seasinger extends CardImpl { // {tap}: Gain control of target creature whose controller controls an Island for as long as you control Seasinger and Seasinger remains tapped. ConditionalContinuousEffect effect = new ConditionalContinuousEffect( new GainControlTargetEffect(Duration.Custom), - new PermanentsOnTheBattlefieldCondition(seasinger, CountType.EQUAL_TO, 1, SourceTappedCondition.instance), rule); + new PermanentsOnTheBattlefieldCondition(seasinger, ComparisonType.EQUAL_TO, 1, SourceTappedCondition.instance), rule); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost()); creatureWhoseControllerControlsIsland.add(new ControllerControlsIslandPredicate()); ability.addTarget(new TargetCreaturePermanent(creatureWhoseControllerControlsIsland)); diff --git a/Mage.Sets/src/mage/cards/s/SecondChance.java b/Mage.Sets/src/mage/cards/s/SecondChance.java index b69916d76eb..fd72ea635f9 100644 --- a/Mage.Sets/src/mage/cards/s/SecondChance.java +++ b/Mage.Sets/src/mage/cards/s/SecondChance.java @@ -27,10 +27,9 @@ */ package mage.cards.s; -import mage.abilities.Ability; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; -import mage.abilities.condition.Condition; +import mage.abilities.condition.common.XorLessLifeCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.abilities.effects.common.turn.AddExtraTurnControllerEffect; @@ -39,7 +38,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; -import mage.game.Game; import java.util.UUID; @@ -56,7 +54,7 @@ public class SecondChance extends CardImpl { // At the beginning of your upkeep, if you have 5 or less life, sacrifice Second Chance and take an extra turn after this one. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new SacrificeSourceEffect(), TargetController.YOU, false); ability.addEffect(new AddExtraTurnControllerEffect()); - this.addAbility(new ConditionalTriggeredAbility(ability, new FiveOrLessLifeCondition(), "At the beginning of your upkeep, if you have 5 or less life, sacrifice {this} and take an extra turn after this one")); + this.addAbility(new ConditionalTriggeredAbility(ability, new XorLessLifeCondition(XorLessLifeCondition.CheckType.CONTROLLER, 5), "At the beginning of your upkeep, if you have 5 or less life, sacrifice {this} and take an extra turn after this one")); } @@ -69,11 +67,5 @@ public class SecondChance extends CardImpl { return new SecondChance(this); } - static class FiveOrLessLifeCondition implements Condition { - @Override - public boolean apply(Game game, Ability source) { - return game.getPlayer(source.getControllerId()).getLife() <= 5; - } - } } diff --git a/Mage.Sets/src/mage/cards/s/Secretkeeper.java b/Mage.Sets/src/mage/cards/s/Secretkeeper.java index 9aeb29e508a..68368163089 100644 --- a/Mage.Sets/src/mage/cards/s/Secretkeeper.java +++ b/Mage.Sets/src/mage/cards/s/Secretkeeper.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -42,6 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,11 +59,11 @@ public class Secretkeeper extends CardImpl { // As long as you have more cards in hand than each opponent, Secretkeeper gets +2/+2 and has flying. Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostSourceEffect(2,2, Duration.WhileOnBattlefield), - new MoreCardsInHandThanOpponentsCondition(), + MoreCardsInHandThanOpponentsCondition.instance, "As long as you have more cards in hand than each opponent, Secretkeeper gets +2/+2")); ability.addEffect(new ConditionalContinuousEffect( new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield), - new MoreCardsInHandThanOpponentsCondition(), + MoreCardsInHandThanOpponentsCondition.instance, "and has flying")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SedrisTheTraitorKing.java b/Mage.Sets/src/mage/cards/s/SedrisTheTraitorKing.java index eb0e3229b0b..824fc151353 100644 --- a/Mage.Sets/src/mage/cards/s/SedrisTheTraitorKing.java +++ b/Mage.Sets/src/mage/cards/s/SedrisTheTraitorKing.java @@ -49,7 +49,7 @@ public class SedrisTheTraitorKing extends CardImpl { public SedrisTheTraitorKing(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/s/SeekerOfInsight.java b/Mage.Sets/src/mage/cards/s/SeekerOfInsight.java new file mode 100644 index 00000000000..c384bfd14b1 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SeekerOfInsight.java @@ -0,0 +1,101 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.List; +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.ActivateIfConditionActivatedAbility; +import mage.abilities.condition.Condition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.DrawDiscardControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.stack.Spell; +import mage.watchers.common.SpellsCastWatcher; + +/** + * + * @author anonymous + */ +public class SeekerOfInsight extends CardImpl { + + public SeekerOfInsight(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}"); + + this.subtype.add("Human"); + this.subtype.add("Wizard"); + this.power = new MageInt(1); + this.toughness = new MageInt(3); + + // {T}: Draw a card, then discard a card. Activate this ability only if you've cast a noncreature spell this turn. + this.addAbility( + new ActivateIfConditionActivatedAbility( + Zone.BATTLEFIELD, + new DrawDiscardControllerEffect(), + new TapSourceCost(), + new CastNonCreatureSpellCondition()), + new SpellsCastWatcher()); + } + + public SeekerOfInsight(final SeekerOfInsight card) { + super(card); + } + + @Override + public SeekerOfInsight copy() { + return new SeekerOfInsight(this); + } +} + +class CastNonCreatureSpellCondition implements Condition { + @Override + public boolean apply(Game game, Ability source) { + SpellsCastWatcher watcher = (SpellsCastWatcher) game.getState().getWatchers().get(SpellsCastWatcher.class.getName()); + if (watcher != null) { + List spellsCast = watcher.getSpellsCastThisTurn(source.getControllerId()); + if (spellsCast != null) { + for (Spell spell : spellsCast) { + if (!spell.isCreature()) { + return true; + } + } + } + } + return false; + } + + @Override + public String toString() { + return "you've cast a noncreature spell this turn"; +} +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/s/SeizanPerverterOfTruth.java b/Mage.Sets/src/mage/cards/s/SeizanPerverterOfTruth.java index 3b3b0af6b40..85c08af789b 100644 --- a/Mage.Sets/src/mage/cards/s/SeizanPerverterOfTruth.java +++ b/Mage.Sets/src/mage/cards/s/SeizanPerverterOfTruth.java @@ -28,9 +28,6 @@ package mage.cards.s; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -39,8 +36,12 @@ import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author Loki @@ -49,7 +50,7 @@ public class SeizanPerverterOfTruth extends CardImpl { public SeizanPerverterOfTruth (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/s/SekKuarDeathkeeper.java b/Mage.Sets/src/mage/cards/s/SekKuarDeathkeeper.java index 7a26d72f96e..8c4506cf07d 100644 --- a/Mage.Sets/src/mage/cards/s/SekKuarDeathkeeper.java +++ b/Mage.Sets/src/mage/cards/s/SekKuarDeathkeeper.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -35,6 +34,7 @@ import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -43,6 +43,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,7 +60,7 @@ public class SekKuarDeathkeeper extends CardImpl { public SekKuarDeathkeeper(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Orc"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/s/SekkiSeasonsGuide.java b/Mage.Sets/src/mage/cards/s/SekkiSeasonsGuide.java index c19798d3723..f904c9a51fa 100644 --- a/Mage.Sets/src/mage/cards/s/SekkiSeasonsGuide.java +++ b/Mage.Sets/src/mage/cards/s/SekkiSeasonsGuide.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -42,6 +41,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; @@ -52,6 +52,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.SpiritToken; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -66,7 +68,7 @@ public class SekkiSeasonsGuide extends CardImpl { public SekkiSeasonsGuide(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(0); diff --git a/Mage.Sets/src/mage/cards/s/SeleniaDarkAngel.java b/Mage.Sets/src/mage/cards/s/SeleniaDarkAngel.java index 266cc5e6d17..42d83e71093 100644 --- a/Mage.Sets/src/mage/cards/s/SeleniaDarkAngel.java +++ b/Mage.Sets/src/mage/cards/s/SeleniaDarkAngel.java @@ -37,6 +37,7 @@ import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.SuperType; import mage.constants.Zone; /** @@ -47,7 +48,7 @@ public class SeleniaDarkAngel extends CardImpl { public SeleniaDarkAngel(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); diff --git a/Mage.Sets/src/mage/cards/s/SelesnyaCharm.java b/Mage.Sets/src/mage/cards/s/SelesnyaCharm.java index 1b90c7e4622..3c1802bfade 100644 --- a/Mage.Sets/src/mage/cards/s/SelesnyaCharm.java +++ b/Mage.Sets/src/mage/cards/s/SelesnyaCharm.java @@ -27,8 +27,7 @@ */ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; @@ -38,13 +37,15 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.permanent.token.KnightToken; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +55,7 @@ public class SelesnyaCharm extends CardImpl { static private final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public SelesnyaCharm(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SelkieHedgeMage.java b/Mage.Sets/src/mage/cards/s/SelkieHedgeMage.java index 9051f8d2c56..69bf2ac1562 100644 --- a/Mage.Sets/src/mage/cards/s/SelkieHedgeMage.java +++ b/Mage.Sets/src/mage/cards/s/SelkieHedgeMage.java @@ -30,7 +30,7 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -76,11 +76,11 @@ public class SelkieHedgeMage extends CardImpl { this.toughness = new MageInt(2); // When Selkie Hedge-Mage enters the battlefield, if you control two or more Forests, you may gain 3 life. - Ability ability = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(3), true), new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1), rule1); + Ability ability = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(3), true), new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1), rule1); this.addAbility(ability); // When Selkie Hedge-Mage enters the battlefield, if you control two or more Islands, you may return target tapped creature to its owner's hand. - Ability ability2 = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true), new PermanentsOnTheBattlefieldCondition(filter2, CountType.MORE_THAN, 1), rule2); + Ability ability2 = new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true), new PermanentsOnTheBattlefieldCondition(filter2, ComparisonType.MORE_THAN, 1), rule2); ability2.addTarget(new TargetPermanent(filter3)); this.addAbility(ability2); diff --git a/Mage.Sets/src/mage/cards/s/SelvalaExplorerReturned.java b/Mage.Sets/src/mage/cards/s/SelvalaExplorerReturned.java index 3020d82c760..4d3bd3b4a7e 100644 --- a/Mage.Sets/src/mage/cards/s/SelvalaExplorerReturned.java +++ b/Mage.Sets/src/mage/cards/s/SelvalaExplorerReturned.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.Ability; @@ -42,10 +41,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AbilityWord; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +56,7 @@ public class SelvalaExplorerReturned extends CardImpl { public SelvalaExplorerReturned(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Scout"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/s/SelvalaHeartOfTheWilds.java b/Mage.Sets/src/mage/cards/s/SelvalaHeartOfTheWilds.java index 53f776fdb4c..5810bafeff0 100644 --- a/Mage.Sets/src/mage/cards/s/SelvalaHeartOfTheWilds.java +++ b/Mage.Sets/src/mage/cards/s/SelvalaHeartOfTheWilds.java @@ -68,7 +68,7 @@ public class SelvalaHeartOfTheWilds extends CardImpl { public SelvalaHeartOfTheWilds(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Scout"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/s/SemblanceAnvil.java b/Mage.Sets/src/mage/cards/s/SemblanceAnvil.java index a1c0dee10e0..cea6d8f4cc2 100644 --- a/Mage.Sets/src/mage/cards/s/SemblanceAnvil.java +++ b/Mage.Sets/src/mage/cards/s/SemblanceAnvil.java @@ -143,7 +143,7 @@ class SemblanceAnvilCostReductionEffect extends CostModificationEffectImpl { List imprinted = permanent.getImprinted(); if (!imprinted.isEmpty()) { Card imprintedCard = game.getCard(imprinted.get(0)); - if (imprintedCard != null && CardUtil.shareTypes(imprintedCard, sourceCard)) { + if (imprintedCard != null && imprintedCard.shareTypes(sourceCard)) { return true; } } diff --git a/Mage.Sets/src/mage/cards/s/SenTriplets.java b/Mage.Sets/src/mage/cards/s/SenTriplets.java index 886aed07647..3f86555354f 100644 --- a/Mage.Sets/src/mage/cards/s/SenTriplets.java +++ b/Mage.Sets/src/mage/cards/s/SenTriplets.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -38,19 +37,14 @@ import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +53,7 @@ public class SenTriplets extends CardImpl { public SenTriplets(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{2}{W}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/s/SenatorBailOrgana.java b/Mage.Sets/src/mage/cards/s/SenatorBailOrgana.java index 056d1d57cd3..61d25993302 100644 --- a/Mage.Sets/src/mage/cards/s/SenatorBailOrgana.java +++ b/Mage.Sets/src/mage/cards/s/SenatorBailOrgana.java @@ -27,9 +27,8 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalContinuousEffect; @@ -38,9 +37,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo @@ -49,7 +51,7 @@ public class SenatorBailOrgana extends CardImpl { public SenatorBailOrgana(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); this.power = new MageInt(2); @@ -58,7 +60,7 @@ public class SenatorBailOrgana extends CardImpl { // As long as you control four or more creatures, creatures you control get +1/+1. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield), - new PermanentsOnTheBattlefieldCondition(new FilterControlledCreaturePermanent(), CountType.MORE_THAN, 3), + new PermanentsOnTheBattlefieldCondition(new FilterControlledCreaturePermanent(), ComparisonType.MORE_THAN, 3), "As long as you control four or more creatures, creatures you control get +1/+1") )); diff --git a/Mage.Sets/src/mage/cards/s/SenatorLottDod.java b/Mage.Sets/src/mage/cards/s/SenatorLottDod.java index c4a01c924ed..3b677b1866f 100644 --- a/Mage.Sets/src/mage/cards/s/SenatorLottDod.java +++ b/Mage.Sets/src/mage/cards/s/SenatorLottDod.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -36,17 +35,15 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.cost.CostModificationEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.Target; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author Styxo @@ -55,7 +52,7 @@ public class SenatorLottDod extends CardImpl { public SenatorLottDod(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Neimoidian"); this.subtype.add("Advisor"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/s/SenatorOnacondaFarr.java b/Mage.Sets/src/mage/cards/s/SenatorOnacondaFarr.java index b382d5dc02c..fa1756e2a90 100644 --- a/Mage.Sets/src/mage/cards/s/SenatorOnacondaFarr.java +++ b/Mage.Sets/src/mage/cards/s/SenatorOnacondaFarr.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; @@ -36,9 +35,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo @@ -47,7 +49,7 @@ public class SenatorOnacondaFarr extends CardImpl { public SenatorOnacondaFarr(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Rodian"); this.subtype.add("Advisor"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/s/SenatorPadmeAmidala.java b/Mage.Sets/src/mage/cards/s/SenatorPadmeAmidala.java index 039283ac675..b5cdbed73e2 100644 --- a/Mage.Sets/src/mage/cards/s/SenatorPadmeAmidala.java +++ b/Mage.Sets/src/mage/cards/s/SenatorPadmeAmidala.java @@ -27,13 +27,15 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DrawCardControllerTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -43,7 +45,7 @@ public class SenatorPadmeAmidala extends CardImpl { public SenatorPadmeAmidala(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/s/SenatorPasselArgente.java b/Mage.Sets/src/mage/cards/s/SenatorPasselArgente.java index 15ded015a99..fb1bed79197 100644 --- a/Mage.Sets/src/mage/cards/s/SenatorPasselArgente.java +++ b/Mage.Sets/src/mage/cards/s/SenatorPasselArgente.java @@ -27,13 +27,15 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.LoseLifeOpponentsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -43,7 +45,7 @@ public class SenatorPasselArgente extends CardImpl { public SenatorPasselArgente(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Koorivar"); this.subtype.add("Advisor"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/s/SenseiGoldenTail.java b/Mage.Sets/src/mage/cards/s/SenseiGoldenTail.java index da339fd9818..10e6cdeee09 100644 --- a/Mage.Sets/src/mage/cards/s/SenseiGoldenTail.java +++ b/Mage.Sets/src/mage/cards/s/SenseiGoldenTail.java @@ -28,10 +28,6 @@ package mage.cards.s; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; @@ -43,10 +39,15 @@ import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.abilities.keyword.BushidoAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.Counter; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX @@ -55,7 +56,7 @@ public class SenseiGoldenTail extends CardImpl { public SenseiGoldenTail (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Fox"); this.subtype.add("Samurai"); diff --git a/Mage.Sets/src/mage/cards/s/SeraphOfTheSuns.java b/Mage.Sets/src/mage/cards/s/SeraphOfTheSuns.java new file mode 100644 index 00000000000..b4b48192af7 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SeraphOfTheSuns.java @@ -0,0 +1,67 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class SeraphOfTheSuns extends CardImpl { + + public SeraphOfTheSuns(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{W}{W}"); + + this.subtype.add("Angel"); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Indestructible + this.addAbility(IndestructibleAbility.getInstance()); + + } + + public SeraphOfTheSuns(final SeraphOfTheSuns card) { + super(card); + } + + @Override + public SeraphOfTheSuns copy() { + return new SeraphOfTheSuns(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SerendibDjinn.java b/Mage.Sets/src/mage/cards/s/SerendibDjinn.java index b421e82f0e7..2def83ab79b 100644 --- a/Mage.Sets/src/mage/cards/s/SerendibDjinn.java +++ b/Mage.Sets/src/mage/cards/s/SerendibDjinn.java @@ -27,9 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -40,7 +40,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; -import mage.filter.Filter; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterLandPermanent; import mage.game.Game; @@ -49,6 +48,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author MarcoMarin @@ -67,7 +68,7 @@ public class SerendibDjinn extends CardImpl { this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SerendibDjinnEffect(), TargetController.YOU, false)); // When you control no lands, sacrifice Serendib Djinn. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent(), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent(), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/s/SerraAviary.java b/Mage.Sets/src/mage/cards/s/SerraAviary.java index 234c1a90f51..a240f39e938 100644 --- a/Mage.Sets/src/mage/cards/s/SerraAviary.java +++ b/Mage.Sets/src/mage/cards/s/SerraAviary.java @@ -35,6 +35,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; @@ -53,7 +54,7 @@ public class SerraAviary extends CardImpl { public SerraAviary(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{W}"); - this.supertype.add("World"); + addSuperType(SuperType.WORLD); // Creatures with flying get +1/+1. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter1, false))); diff --git a/Mage.Sets/src/mage/cards/s/SerrasSanctum.java b/Mage.Sets/src/mage/cards/s/SerrasSanctum.java index f29332aa91e..ab164d4b3c3 100644 --- a/Mage.Sets/src/mage/cards/s/SerrasSanctum.java +++ b/Mage.Sets/src/mage/cards/s/SerrasSanctum.java @@ -28,16 +28,18 @@ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; import mage.Mana; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.mana.DynamicManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Backfir3 @@ -53,7 +55,7 @@ public class SerrasSanctum extends CardImpl { public SerrasSanctum(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); DynamicManaAbility ability = new DynamicManaAbility(Mana.WhiteMana(1), new PermanentsOnBattlefieldCount(filter)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/s/SeshiroTheAnointed.java b/Mage.Sets/src/mage/cards/s/SeshiroTheAnointed.java index 63bbd81f559..9db22ce1748 100644 --- a/Mage.Sets/src/mage/cards/s/SeshiroTheAnointed.java +++ b/Mage.Sets/src/mage/cards/s/SeshiroTheAnointed.java @@ -28,7 +28,6 @@ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; @@ -38,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -47,6 +47,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * @author Loki */ @@ -60,7 +62,7 @@ public class SeshiroTheAnointed extends CardImpl { public SeshiroTheAnointed(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Snake"); this.subtype.add("Monk"); diff --git a/Mage.Sets/src/mage/cards/s/SetonKrosanProtector.java b/Mage.Sets/src/mage/cards/s/SetonKrosanProtector.java index 553101d52c8..eb4d345b773 100644 --- a/Mage.Sets/src/mage/cards/s/SetonKrosanProtector.java +++ b/Mage.Sets/src/mage/cards/s/SetonKrosanProtector.java @@ -35,6 +35,7 @@ import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; @@ -57,7 +58,7 @@ public class SetonKrosanProtector extends CardImpl { public SetonKrosanProtector(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Centaur"); this.subtype.add("Druid"); diff --git a/Mage.Sets/src/mage/cards/s/ShadowOfTheGrave.java b/Mage.Sets/src/mage/cards/s/ShadowOfTheGrave.java new file mode 100644 index 00000000000..417732d13a6 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/ShadowOfTheGrave.java @@ -0,0 +1,102 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.game.Game; +import mage.players.Player; +import mage.watchers.common.CardsCycledOrDiscardedThisTurnWatcher; + +/** + * + * @author jeffwadsworth + */ +public class ShadowOfTheGrave extends CardImpl { + + public ShadowOfTheGrave(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{B}"); + + // Return to your hand all cards in your graveyard that you cycled or discarded this turn. + this.getSpellAbility().addEffect(new ShadowOfTheGraveEffect()); + this.getSpellAbility().addWatcher(new CardsCycledOrDiscardedThisTurnWatcher()); + + } + + public ShadowOfTheGrave(final ShadowOfTheGrave card) { + super(card); + } + + @Override + public ShadowOfTheGrave copy() { + return new ShadowOfTheGrave(this); + } +} + +class ShadowOfTheGraveEffect extends OneShotEffect { + + public ShadowOfTheGraveEffect() { + super(Outcome.Benefit); + staticText = "Return to your hand all cards in your graveyard that you cycled or discarded this turn"; + } + + public ShadowOfTheGraveEffect(final ShadowOfTheGraveEffect effect) { + super(effect); + } + + @Override + public ShadowOfTheGraveEffect copy() { + return new ShadowOfTheGraveEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + CardsCycledOrDiscardedThisTurnWatcher watcher = (CardsCycledOrDiscardedThisTurnWatcher) game.getState().getWatchers().get("CardsCycledOrDiscardedThisTurnWatcher"); + if (controller != null + && watcher != null + && watcher.getCardsCycledOrDiscardedThisTurn(controller.getId()) != null) { + for (Card card : watcher.getCardsCycledOrDiscardedThisTurn(controller.getId()).getCards(game)) { + if (card != null + && game.getState().getZone(card.getId()) == Zone.GRAVEYARD //must come from their graveyard + && card.getOwnerId() == controller.getId()) { //confirm ownership + controller.moveCardToHandWithInfo(card, source.getId(), game, true); + } + } + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/cards/s/ShadowstormVizier.java b/Mage.Sets/src/mage/cards/s/ShadowstormVizier.java new file mode 100644 index 00000000000..2d295a7993d --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/ShadowstormVizier.java @@ -0,0 +1,69 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.CycleOrDiscardControllerTriggeredAbility; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author anonymous + */ +public class ShadowstormVizier extends CardImpl { + + public ShadowstormVizier(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}{B}"); + + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.power = new MageInt(1); + this.toughness = new MageInt(3); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Whenever you cycle or discard a card, Shadowstorm Vizier gets +1/+1 until end of turn. + this.addAbility(new CycleOrDiscardControllerTriggeredAbility(new BoostSourceEffect(1, 1, Duration.EndOfTurn), false)); + } + + public ShadowstormVizier(final ShadowstormVizier card) { + super(card); + } + + @Override + public ShadowstormVizier copy() { + return new ShadowstormVizier(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/ShamanOfTheGreatHunt.java b/Mage.Sets/src/mage/cards/s/ShamanOfTheGreatHunt.java index 55260f3231d..6f179c527cc 100644 --- a/Mage.Sets/src/mage/cards/s/ShamanOfTheGreatHunt.java +++ b/Mage.Sets/src/mage/cards/s/ShamanOfTheGreatHunt.java @@ -27,9 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.DealsDamageToAPlayerAllTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -46,10 +46,11 @@ import mage.constants.CardType; import mage.constants.SetTargetPointer; import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +60,7 @@ public class ShamanOfTheGreatHunt extends CardImpl { private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature you control with power 4 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public ShamanOfTheGreatHunt(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/ShamanicRevelation.java b/Mage.Sets/src/mage/cards/s/ShamanicRevelation.java index 87447741ed8..3237422910d 100644 --- a/Mage.Sets/src/mage/cards/s/ShamanicRevelation.java +++ b/Mage.Sets/src/mage/cards/s/ShamanicRevelation.java @@ -27,7 +27,7 @@ */ package mage.cards.s; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.Effect; @@ -36,10 +36,11 @@ import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -49,7 +50,7 @@ public class ShamanicRevelation extends CardImpl { private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature you control with power 4 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public ShamanicRevelation(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SharuumTheHegemon.java b/Mage.Sets/src/mage/cards/s/SharuumTheHegemon.java index 99c54dc28a1..ddbffc94819 100644 --- a/Mage.Sets/src/mage/cards/s/SharuumTheHegemon.java +++ b/Mage.Sets/src/mage/cards/s/SharuumTheHegemon.java @@ -27,8 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -36,9 +34,13 @@ import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffec import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterArtifactCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author North @@ -47,7 +49,7 @@ public class SharuumTheHegemon extends CardImpl { public SharuumTheHegemon(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{3}{W}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Sphinx"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/s/ShattergangBrothers.java b/Mage.Sets/src/mage/cards/s/ShattergangBrothers.java index a1772568d56..5521a38d62c 100644 --- a/Mage.Sets/src/mage/cards/s/ShattergangBrothers.java +++ b/Mage.Sets/src/mage/cards/s/ShattergangBrothers.java @@ -27,8 +27,6 @@ */ package mage.cards.s; -import java.util.Objects; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledArtifactPermanent; import mage.filter.common.FilterControlledCreaturePermanent; @@ -50,6 +49,9 @@ import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledPermanent; +import java.util.Objects; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,7 +60,7 @@ public class ShattergangBrothers extends CardImpl { public ShattergangBrothers(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Artificer"); diff --git a/Mage.Sets/src/mage/cards/s/ShedWeakness.java b/Mage.Sets/src/mage/cards/s/ShedWeakness.java new file mode 100644 index 00000000000..078295130dc --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/ShedWeakness.java @@ -0,0 +1,123 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; + +import mage.abilities.Ability; +import mage.abilities.dynamicvalue.common.CountersCount; +import mage.abilities.dynamicvalue.common.CountersSourceCount; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.counter.RemoveCounterTargetEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.counters.CounterType; +import mage.counters.Counters; +import mage.filter.common.FilterNonlandCard; +import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.Target; +import mage.target.common.TargetCardInHand; +import mage.target.common.TargetCreaturePermanent; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author stravant + */ +public class ShedWeakness extends CardImpl { + + public ShedWeakness(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}"); + + // Target creature gets +2/+2 until end of turn. You may remove a -1/-1 counter from it. + getSpellAbility().addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn)); + getSpellAbility().addEffect(new MayRemoveM1M1CouterTargetEffect()); + getSpellAbility().addTarget(new TargetCreaturePermanent()); + } + + public ShedWeakness(final ShedWeakness card) { + super(card); + } + + @Override + public ShedWeakness copy() { + return new ShedWeakness(this); + } +} + +class MayRemoveM1M1CouterTargetEffect extends OneShotEffect { + + public MayRemoveM1M1CouterTargetEffect() { + super(Outcome.BoostCreature); + this.staticText = "You may remove a -1/-1 counter from it."; + } + + public MayRemoveM1M1CouterTargetEffect(final MayRemoveM1M1CouterTargetEffect effect) { + super(effect); + this.staticText = "You may remove a -1/-1 counter from it."; + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller == null) { + return false; + } + + Permanent target = game.getPermanent(source.getTargets().getFirstTarget()); + if (target == null) { + return false; + } + + if (target.getCounters(game).getCount(CounterType.M1M1) > 0) { + if (controller.chooseUse(outcome, "Remove a -1/-1 counter from " + target.getIdName() + "?", source, game)) { + Effect effect = new RemoveCounterTargetEffect(CounterType.M1M1.createInstance()); + effect.setTargetPointer(new FixedTarget(target.getId())); + effect.apply(game, source); + } + } + + return true; + } + + @Override + public MayRemoveM1M1CouterTargetEffect copy() { + return new MayRemoveM1M1CouterTargetEffect(this); + } +} + diff --git a/Mage.Sets/src/mage/cards/s/ShefetMonitor.java b/Mage.Sets/src/mage/cards/s/ShefetMonitor.java new file mode 100644 index 00000000000..36856c370f6 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/ShefetMonitor.java @@ -0,0 +1,87 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.CycleTriggeredAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.filter.FilterCard; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.mageobject.SupertypePredicate; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author fireshoes + */ +public class ShefetMonitor extends CardImpl { + + private static final FilterCard filter = new FilterCard("basic land card or a Desert card"); + static { + filter.add( + Predicates.or( + Predicates.and( + new CardTypePredicate(CardType.LAND), + new SupertypePredicate(SuperType.BASIC)), + new SubtypePredicate("Desert"))); + } + + public ShefetMonitor(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{G}"); + + this.subtype.add("Lizard"); + this.power = new MageInt(6); + this.toughness = new MageInt(5); + + // Cycling {3}{G} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{3}{G}"))); + + // When you cycle Shefet Monitor, you may search your library for a basic land card or a Desert card, put it onto the battlefield, then shuffle your library. + this.addAbility(new CycleTriggeredAbility( + new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false, true), + true)); + } + + public ShefetMonitor(final ShefetMonitor card) { + super(card); + } + + @Override + public ShefetMonitor copy() { + return new ShefetMonitor(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/ShellOfTheLastKappa.java b/Mage.Sets/src/mage/cards/s/ShellOfTheLastKappa.java index 49d5a5cd02e..1d9bf7096f5 100644 --- a/Mage.Sets/src/mage/cards/s/ShellOfTheLastKappa.java +++ b/Mage.Sets/src/mage/cards/s/ShellOfTheLastKappa.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; @@ -39,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.FilterSpell; @@ -56,6 +56,8 @@ import mage.target.TargetSpell; import mage.target.common.TargetCardInExile; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 @@ -70,7 +72,7 @@ public class ShellOfTheLastKappa extends CardImpl { public ShellOfTheLastKappa(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {3}, {tap}: Exile target instant or sorcery spell that targets you. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ShellOfTheLastKappaEffect(), new ManaCostsImpl("{3}")); diff --git a/Mage.Sets/src/mage/cards/s/ShelldockIsle.java b/Mage.Sets/src/mage/cards/s/ShelldockIsle.java index bf03cae92c5..a2097421410 100644 --- a/Mage.Sets/src/mage/cards/s/ShelldockIsle.java +++ b/Mage.Sets/src/mage/cards/s/ShelldockIsle.java @@ -27,10 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.ActivateIfConditionActivatedAbility; -import mage.abilities.condition.Condition; import mage.abilities.condition.common.CardsInAnyLibraryCondition; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -42,6 +41,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +58,7 @@ public class ShelldockIsle extends CardImpl { this.addAbility(new BlueManaAbility()); // {U}, {tap}: You may play the exiled card without paying its mana cost if a library has twenty or fewer cards in it. Ability ability = new ActivateIfConditionActivatedAbility( - Zone.BATTLEFIELD, new HideawayPlayEffect(), new ManaCostsImpl("{U}"), new CardsInAnyLibraryCondition(Condition.ComparisonType.LessThan, 21)); + Zone.BATTLEFIELD, new HideawayPlayEffect(), new ManaCostsImpl("{U}"), new CardsInAnyLibraryCondition(ComparisonType.FEWER_THAN, 21)); ability.addCost(new TapSourceCost()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/ShelteredThicket.java b/Mage.Sets/src/mage/cards/s/ShelteredThicket.java new file mode 100644 index 00000000000..fc9ac687146 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/ShelteredThicket.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.CyclingAbility; +import mage.abilities.mana.GreenManaAbility; +import mage.abilities.mana.RedManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class ShelteredThicket extends CardImpl { + + public ShelteredThicket(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + this.subtype.add("Mountain"); + this.subtype.add("Forest"); + + // ({T}: Add {R} or {G} to your mana pool.) + this.addAbility(new RedManaAbility()); + this.addAbility(new GreenManaAbility()); + + // Sheltered Thicket enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + + } + + public ShelteredThicket(final ShelteredThicket card) { + super(card); + } + + @Override + public ShelteredThicket copy() { + return new ShelteredThicket(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/ShelteredValley.java b/Mage.Sets/src/mage/cards/s/ShelteredValley.java index 901cc8b7e5e..36826c540a7 100644 --- a/Mage.Sets/src/mage/cards/s/ShelteredValley.java +++ b/Mage.Sets/src/mage/cards/s/ShelteredValley.java @@ -29,7 +29,7 @@ package mage.cards.s; import java.util.UUID; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; @@ -72,7 +72,7 @@ public class ShelteredValley extends CardImpl { this.addAbility(ability); // At the beginning of your upkeep, if you control three or fewer lands, you gain 1 life. - Condition controls = new PermanentsOnTheBattlefieldCondition(filter, CountType.FEWER_THAN, 4); + Condition controls = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.FEWER_THAN, 4); effect = new ConditionalOneShotEffect(new GainLifeEffect(1), controls); effect.setText("if you control three or fewer lands, you gain 1 life"); ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.YOU, false); diff --git a/Mage.Sets/src/mage/cards/s/SheoldredWhisperingOne.java b/Mage.Sets/src/mage/cards/s/SheoldredWhisperingOne.java index 8c6e31d4e7d..6ce56c62038 100644 --- a/Mage.Sets/src/mage/cards/s/SheoldredWhisperingOne.java +++ b/Mage.Sets/src/mage/cards/s/SheoldredWhisperingOne.java @@ -28,9 +28,6 @@ package mage.cards.s; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -39,11 +36,15 @@ import mage.abilities.effects.common.SacrificeEffect; import mage.abilities.keyword.SwampwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Loki @@ -52,7 +53,7 @@ public class SheoldredWhisperingOne extends CardImpl { public SheoldredWhisperingOne (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Praetor"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/s/ShieldOfKaldra.java b/Mage.Sets/src/mage/cards/s/ShieldOfKaldra.java index 8d764634c2b..ecfc2c9e9de 100644 --- a/Mage.Sets/src/mage/cards/s/ShieldOfKaldra.java +++ b/Mage.Sets/src/mage/cards/s/ShieldOfKaldra.java @@ -27,12 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.Effect; @@ -42,11 +36,14 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.NamePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author North @@ -65,7 +62,7 @@ public class ShieldOfKaldra extends CardImpl { public ShieldOfKaldra(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Equipment"); // Equipment named Sword of Kaldra, Shield of Kaldra, and Helm of Kaldra are indestructible. diff --git a/Mage.Sets/src/mage/cards/s/ShiftingLoyalties.java b/Mage.Sets/src/mage/cards/s/ShiftingLoyalties.java index 922ea52de84..a059a4d5cf3 100644 --- a/Mage.Sets/src/mage/cards/s/ShiftingLoyalties.java +++ b/Mage.Sets/src/mage/cards/s/ShiftingLoyalties.java @@ -27,9 +27,6 @@ */ package mage.cards.s; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.common.continuous.ExchangeControlTargetEffect; @@ -41,7 +38,10 @@ import mage.filter.FilterPermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; -import mage.util.CardUtil; + +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; /** * @@ -88,7 +88,7 @@ class TargetPermanentsThatShareCardType extends TargetPermanent { if (targetOne == null || targetTwo == null) { return false; } - return CardUtil.shareTypes(targetOne, targetTwo); + return targetOne.shareTypes(targetTwo); } return true; } diff --git a/Mage.Sets/src/mage/cards/s/ShimatsuTheBloodcloaked.java b/Mage.Sets/src/mage/cards/s/ShimatsuTheBloodcloaked.java index 3128c1187f7..9393746a364 100644 --- a/Mage.Sets/src/mage/cards/s/ShimatsuTheBloodcloaked.java +++ b/Mage.Sets/src/mage/cards/s/ShimatsuTheBloodcloaked.java @@ -34,10 +34,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterControlledPermanent; import mage.game.Game; @@ -56,7 +53,7 @@ public class ShimatsuTheBloodcloaked extends CardImpl { public ShimatsuTheBloodcloaked(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/s/ShimmerscaleDrake.java b/Mage.Sets/src/mage/cards/s/ShimmerscaleDrake.java new file mode 100644 index 00000000000..5f926aaec56 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/ShimmerscaleDrake.java @@ -0,0 +1,68 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class ShimmerscaleDrake extends CardImpl { + + public ShimmerscaleDrake(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}"); + + this.subtype.add("Drake"); + this.power = new MageInt(3); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + + } + + public ShimmerscaleDrake(final ShimmerscaleDrake card) { + super(card); + } + + @Override + public ShimmerscaleDrake copy() { + return new ShimmerscaleDrake(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/ShinkaTheBloodsoakedKeep.java b/Mage.Sets/src/mage/cards/s/ShinkaTheBloodsoakedKeep.java index 030003c63e1..dd5d7ced493 100644 --- a/Mage.Sets/src/mage/cards/s/ShinkaTheBloodsoakedKeep.java +++ b/Mage.Sets/src/mage/cards/s/ShinkaTheBloodsoakedKeep.java @@ -28,9 +28,6 @@ package mage.cards.s; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,10 +37,13 @@ import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author Loki */ @@ -52,12 +52,12 @@ public class ShinkaTheBloodsoakedKeep extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("legendary creature"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public ShinkaTheBloodsoakedKeep(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.addAbility(new RedManaAbility()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ColoredManaCost(ColoredManaSymbol.R)); ability.addCost(new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/s/ShireiShizosCaretaker.java b/Mage.Sets/src/mage/cards/s/ShireiShizosCaretaker.java index 7b6fc39f943..b274a7f8464 100644 --- a/Mage.Sets/src/mage/cards/s/ShireiShizosCaretaker.java +++ b/Mage.Sets/src/mage/cards/s/ShireiShizosCaretaker.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -41,6 +40,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -49,6 +49,8 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author emerald000 @@ -57,7 +59,7 @@ public class ShireiShizosCaretaker extends CardImpl { public ShireiShizosCaretaker(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/s/ShisatoWhisperingHunter.java b/Mage.Sets/src/mage/cards/s/ShisatoWhisperingHunter.java index d15cfdbdd47..3a3fbe710cc 100644 --- a/Mage.Sets/src/mage/cards/s/ShisatoWhisperingHunter.java +++ b/Mage.Sets/src/mage/cards/s/ShisatoWhisperingHunter.java @@ -27,9 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -37,10 +34,14 @@ import mage.abilities.effects.common.SacrificeControllerEffect; import mage.abilities.effects.common.SkipNextPlayerUntapStepEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LevelX @@ -56,7 +57,7 @@ public class ShisatoWhisperingHunter extends CardImpl { public ShisatoWhisperingHunter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Snake"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/s/ShivanGorge.java b/Mage.Sets/src/mage/cards/s/ShivanGorge.java index 6ad260c8e5d..8c504d63602 100644 --- a/Mage.Sets/src/mage/cards/s/ShivanGorge.java +++ b/Mage.Sets/src/mage/cards/s/ShivanGorge.java @@ -27,10 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -39,6 +35,12 @@ import mage.abilities.effects.common.DamagePlayersEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.TargetController; +import mage.constants.Zone; + +import java.util.UUID; /** * @@ -48,7 +50,7 @@ public class ShivanGorge extends CardImpl { public ShivanGorge(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/s/ShizoDeathsStorehouse.java b/Mage.Sets/src/mage/cards/s/ShizoDeathsStorehouse.java index 6a45678340d..048e855a62c 100644 --- a/Mage.Sets/src/mage/cards/s/ShizoDeathsStorehouse.java +++ b/Mage.Sets/src/mage/cards/s/ShizoDeathsStorehouse.java @@ -28,9 +28,6 @@ package mage.cards.s; -import java.util.UUID; - -import mage.constants.*; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -40,10 +37,13 @@ import mage.abilities.keyword.FearAbility; import mage.abilities.mana.BlackManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author Loki */ @@ -52,12 +52,12 @@ public class ShizoDeathsStorehouse extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("legendary creature"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public ShizoDeathsStorehouse(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.addAbility(new BlackManaAbility()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FearAbility.getInstance(), Duration.EndOfTurn), new ColoredManaCost(ColoredManaSymbol.B)); ability.addCost(new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/s/ShizukoCallerOfAutumn.java b/Mage.Sets/src/mage/cards/s/ShizukoCallerOfAutumn.java index 5e3adfe17d8..c994b5ca716 100644 --- a/Mage.Sets/src/mage/cards/s/ShizukoCallerOfAutumn.java +++ b/Mage.Sets/src/mage/cards/s/ShizukoCallerOfAutumn.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -36,9 +35,12 @@ import mage.abilities.effects.common.AddManaToManaPoolTargetControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -47,7 +49,7 @@ public class ShizukoCallerOfAutumn extends CardImpl { public ShizukoCallerOfAutumn(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Snake"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/s/ShowOfDominance.java b/Mage.Sets/src/mage/cards/s/ShowOfDominance.java index bd5725252e4..294e6086e4e 100644 --- a/Mage.Sets/src/mage/cards/s/ShowOfDominance.java +++ b/Mage.Sets/src/mage/cards/s/ShowOfDominance.java @@ -27,8 +27,8 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; @@ -41,7 +41,6 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; @@ -52,6 +51,8 @@ import mage.target.Target; import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author Styxo @@ -109,7 +110,7 @@ class ShowOfDominanceEffect extends OneShotEffect { if (highestPower != Integer.MIN_VALUE) { if (selectedCreature == null) { FilterPermanent filter = new FilterCreaturePermanent("creature with power " + highestPower); - filter.add(new PowerPredicate(Filter.ComparisonType.Equal, highestPower)); + filter.add(new PowerPredicate(ComparisonType.EQUAL_TO, highestPower)); Target target = new TargetPermanent(1, 1, filter, true); if (controller.chooseTarget(outcome, target, source, game)) { selectedCreature = game.getPermanent(target.getFirstTarget()); diff --git a/Mage.Sets/src/mage/cards/s/ShrineOfTheForsakenGods.java b/Mage.Sets/src/mage/cards/s/ShrineOfTheForsakenGods.java index 248677433f6..775bfab7edb 100644 --- a/Mage.Sets/src/mage/cards/s/ShrineOfTheForsakenGods.java +++ b/Mage.Sets/src/mage/cards/s/ShrineOfTheForsakenGods.java @@ -29,7 +29,7 @@ package mage.cards.s; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.AddConditionalColorlessManaEffect; @@ -66,7 +66,7 @@ public class ShrineOfTheForsakenGods extends CardImpl { Zone.BATTLEFIELD, new AddConditionalColorlessManaEffect(2, new ConditionalSpellManaBuilder(filter)), new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(new FilterControlledLandPermanent("you control seven or more lands"), CountType.MORE_THAN, 6))); + new PermanentsOnTheBattlefieldCondition(new FilterControlledLandPermanent("you control seven or more lands"), ComparisonType.MORE_THAN, 6))); } public ShrineOfTheForsakenGods(final ShrineOfTheForsakenGods card) { diff --git a/Mage.Sets/src/mage/cards/s/ShuFarmer.java b/Mage.Sets/src/mage/cards/s/ShuFarmer.java index 164e89685fc..6f7823ee342 100644 --- a/Mage.Sets/src/mage/cards/s/ShuFarmer.java +++ b/Mage.Sets/src/mage/cards/s/ShuFarmer.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +54,7 @@ public class ShuFarmer extends CardImpl { // {tap}: You gain 1 life. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new GainLifeEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new GainLifeEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/ShuYunTheSilentTempest.java b/Mage.Sets/src/mage/cards/s/ShuYunTheSilentTempest.java index af63e630902..a90516bcd49 100644 --- a/Mage.Sets/src/mage/cards/s/ShuYunTheSilentTempest.java +++ b/Mage.Sets/src/mage/cards/s/ShuYunTheSilentTempest.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -40,11 +39,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +61,7 @@ public class ShuYunTheSilentTempest extends CardImpl { public ShuYunTheSilentTempest(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Monk"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/s/SidarJabari.java b/Mage.Sets/src/mage/cards/s/SidarJabari.java index cdb73376a21..f1ddedcc2a1 100644 --- a/Mage.Sets/src/mage/cards/s/SidarJabari.java +++ b/Mage.Sets/src/mage/cards/s/SidarJabari.java @@ -36,6 +36,7 @@ import mage.abilities.keyword.FlankingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; @@ -51,7 +52,7 @@ public class SidarJabari extends CardImpl { public SidarJabari(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Knight"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/s/SidarKondoOfJamuraa.java b/Mage.Sets/src/mage/cards/s/SidarKondoOfJamuraa.java index f105e6aed95..25311618ae7 100644 --- a/Mage.Sets/src/mage/cards/s/SidarKondoOfJamuraa.java +++ b/Mage.Sets/src/mage/cards/s/SidarKondoOfJamuraa.java @@ -27,9 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.RestrictionEffect; @@ -41,13 +41,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,13 +59,13 @@ public class SidarKondoOfJamuraa extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public SidarKondoOfJamuraa(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Knight"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/s/SidisiBroodTyrant.java b/Mage.Sets/src/mage/cards/s/SidisiBroodTyrant.java index c3504254bf6..a2293bd07ba 100644 --- a/Mage.Sets/src/mage/cards/s/SidisiBroodTyrant.java +++ b/Mage.Sets/src/mage/cards/s/SidisiBroodTyrant.java @@ -27,9 +27,6 @@ */ package mage.cards.s; -import java.util.List; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility; @@ -39,12 +36,16 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.ZoneChangeGroupEvent; import mage.game.permanent.token.ZombieToken; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +54,7 @@ public class SidisiBroodTyrant extends CardImpl { public SidisiBroodTyrant(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}{G}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Naga"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/s/SidisiUndeadVizier.java b/Mage.Sets/src/mage/cards/s/SidisiUndeadVizier.java index af30037bbeb..0b0932156b2 100644 --- a/Mage.Sets/src/mage/cards/s/SidisiUndeadVizier.java +++ b/Mage.Sets/src/mage/cards/s/SidisiUndeadVizier.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.ExploitCreatureTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; @@ -36,9 +35,12 @@ import mage.abilities.keyword.ExploitAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -47,7 +49,7 @@ public class SidisiUndeadVizier extends CardImpl { public SidisiUndeadVizier(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Naga"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/s/SiegeBehemoth.java b/Mage.Sets/src/mage/cards/s/SiegeBehemoth.java index 9ee700e3454..a65a07436c1 100644 --- a/Mage.Sets/src/mage/cards/s/SiegeBehemoth.java +++ b/Mage.Sets/src/mage/cards/s/SiegeBehemoth.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DamageAsThoughNotBlockedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -62,7 +63,7 @@ public class SiegeBehemoth extends CardImpl { Zone.BATTLEFIELD, new ConditionalContinuousEffect( new GainAbilityControlledEffect(DamageAsThoughNotBlockedAbility.getInstance(), Duration.WhileOnBattlefield), - SourceAttackingCondition.getInstance(), + SourceAttackingCondition.instance, "As long as {this} is attacking, for each creature you control, you may have that creature assign its combat damage as though it weren't blocked" ))); } diff --git a/Mage.Sets/src/mage/cards/s/SiegeModification.java b/Mage.Sets/src/mage/cards/s/SiegeModification.java index df945c792ac..874b878ad90 100644 --- a/Mage.Sets/src/mage/cards/s/SiegeModification.java +++ b/Mage.Sets/src/mage/cards/s/SiegeModification.java @@ -29,22 +29,23 @@ package mage.cards.s; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.continuous.BecomesCreatureIfVehicleEffect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.Game; -import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import java.util.UUID; @@ -95,35 +96,5 @@ public class SiegeModification extends CardImpl { return new SiegeModification(this); } - private static class BecomesCreatureIfVehicleEffect extends ContinuousEffectImpl { - private CardType addedType = CardType.CREATURE; - - public BecomesCreatureIfVehicleEffect() { - super(Duration.WhileOnBattlefield, Layer.TypeChangingEffects_4, SubLayer.NA, Outcome.Benefit); - this.staticText = "As long as enchanted permanent is a Vehicle, it's a creature in addition to its other types"; - } - - public BecomesCreatureIfVehicleEffect(final BecomesCreatureIfVehicleEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source) { - Permanent aura = game.getPermanent(source.getSourceId()); - if (aura != null && aura.getAttachedTo() != null) { - Permanent enchanted = game.getPermanent(aura.getAttachedTo()); - if (enchanted != null && enchanted.getSubtype(game).contains("Vehicle")) { - enchanted.getCardType().add(addedType); - } - } - - return true; - } - - @Override - public BecomesCreatureIfVehicleEffect copy() { - return new BecomesCreatureIfVehicleEffect(this); - } - } } diff --git a/Mage.Sets/src/mage/cards/s/SigardaHeronsGrace.java b/Mage.Sets/src/mage/cards/s/SigardaHeronsGrace.java index 2f7ee13739e..e039265b393 100644 --- a/Mage.Sets/src/mage/cards/s/SigardaHeronsGrace.java +++ b/Mage.Sets/src/mage/cards/s/SigardaHeronsGrace.java @@ -43,6 +43,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -65,7 +66,7 @@ public class SigardaHeronsGrace extends CardImpl { public SigardaHeronsGrace(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(4); this.toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/s/SigardaHostOfHerons.java b/Mage.Sets/src/mage/cards/s/SigardaHostOfHerons.java index 3c262f6af9d..441e6cec3e1 100644 --- a/Mage.Sets/src/mage/cards/s/SigardaHostOfHerons.java +++ b/Mage.Sets/src/mage/cards/s/SigardaHostOfHerons.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -38,15 +37,14 @@ import mage.abilities.keyword.HexproofAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.PermanentCard; import mage.game.stack.Spell; +import java.util.UUID; + /** * @author noxx */ @@ -54,7 +52,7 @@ public class SigardaHostOfHerons extends CardImpl { public SigardaHostOfHerons(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/s/SightOfTheScalelords.java b/Mage.Sets/src/mage/cards/s/SightOfTheScalelords.java index 8d326c863ca..4829863f6db 100644 --- a/Mage.Sets/src/mage/cards/s/SightOfTheScalelords.java +++ b/Mage.Sets/src/mage/cards/s/SightOfTheScalelords.java @@ -27,8 +27,8 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -40,11 +40,12 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +56,7 @@ public class SightOfTheScalelords extends CardImpl { static { filter.add(new ControllerPredicate(TargetController.YOU)); - filter.add(new ToughnessPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 3)); } public SightOfTheScalelords(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SilasRennSeekerAdept.java b/Mage.Sets/src/mage/cards/s/SilasRennSeekerAdept.java index fbc68cb25a1..36f806b4678 100644 --- a/Mage.Sets/src/mage/cards/s/SilasRennSeekerAdept.java +++ b/Mage.Sets/src/mage/cards/s/SilasRennSeekerAdept.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -36,15 +35,14 @@ import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.PartnerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.common.FilterArtifactCard; import mage.game.Game; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,7 +54,7 @@ public class SilasRennSeekerAdept extends CardImpl { public SilasRennSeekerAdept(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{1}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.power = new MageInt(2); this.toughness = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/s/Silkwrap.java b/Mage.Sets/src/mage/cards/s/Silkwrap.java index 7cb8e9790d9..3f15621b779 100644 --- a/Mage.Sets/src/mage/cards/s/Silkwrap.java +++ b/Mage.Sets/src/mage/cards/s/Silkwrap.java @@ -27,8 +27,8 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility; import mage.abilities.effects.OneShotEffect; @@ -39,7 +39,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; -import mage.filter.Filter.ComparisonType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.permanent.ControllerPredicate; @@ -48,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -57,7 +58,7 @@ public class Silkwrap extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with converted mana cost 3 or less an opponent controls"); static { - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); filter.add(new ControllerPredicate(TargetController.OPPONENT)); } diff --git a/Mage.Sets/src/mage/cards/s/SilumgarAssassin.java b/Mage.Sets/src/mage/cards/s/SilumgarAssassin.java index 305b27ade71..9cb8416d782 100644 --- a/Mage.Sets/src/mage/cards/s/SilumgarAssassin.java +++ b/Mage.Sets/src/mage/cards/s/SilumgarAssassin.java @@ -27,9 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -41,12 +41,13 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,7 +57,7 @@ public class SilumgarAssassin extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 3 or less an opponent controls"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 4)); filter.add(new ControllerPredicate(TargetController.OPPONENT)); } diff --git a/Mage.Sets/src/mage/cards/s/SilumgarTheDriftingDeath.java b/Mage.Sets/src/mage/cards/s/SilumgarTheDriftingDeath.java index 29fdad4aa4b..f608bfc2e56 100644 --- a/Mage.Sets/src/mage/cards/s/SilumgarTheDriftingDeath.java +++ b/Mage.Sets/src/mage/cards/s/SilumgarTheDriftingDeath.java @@ -27,8 +27,6 @@ */ package mage.cards.s; -import java.util.Iterator; -import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; @@ -38,19 +36,16 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.SubLayer; -import mage.constants.TargetController; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.Iterator; +import java.util.UUID; + /** * * @author LevelX2 @@ -66,7 +61,7 @@ public class SilumgarTheDriftingDeath extends CardImpl { public SilumgarTheDriftingDeath(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(3); this.toughness = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/s/SilvosRogueElemental.java b/Mage.Sets/src/mage/cards/s/SilvosRogueElemental.java index df5a75345d4..49514209e7f 100644 --- a/Mage.Sets/src/mage/cards/s/SilvosRogueElemental.java +++ b/Mage.Sets/src/mage/cards/s/SilvosRogueElemental.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -36,8 +35,11 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -46,7 +48,7 @@ public class SilvosRogueElemental extends CardImpl { public SilvosRogueElemental(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); this.power = new MageInt(8); diff --git a/Mage.Sets/src/mage/cards/s/SimaYiWeiFieldMarshal.java b/Mage.Sets/src/mage/cards/s/SimaYiWeiFieldMarshal.java index 40c9b7f8a3b..97306898f65 100644 --- a/Mage.Sets/src/mage/cards/s/SimaYiWeiFieldMarshal.java +++ b/Mage.Sets/src/mage/cards/s/SimaYiWeiFieldMarshal.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -36,10 +35,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author LoneFox @@ -54,7 +56,7 @@ public class SimaYiWeiFieldMarshal extends CardImpl { public SimaYiWeiFieldMarshal(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(0); diff --git a/Mage.Sets/src/mage/cards/s/SirShandlarOfEberyn.java b/Mage.Sets/src/mage/cards/s/SirShandlarOfEberyn.java index fadd67c6e8c..d123a30c853 100644 --- a/Mage.Sets/src/mage/cards/s/SirShandlarOfEberyn.java +++ b/Mage.Sets/src/mage/cards/s/SirShandlarOfEberyn.java @@ -27,11 +27,13 @@ */ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -41,7 +43,7 @@ public class SirShandlarOfEberyn extends CardImpl { public SirShandlarOfEberyn(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Knight"); diff --git a/Mage.Sets/src/mage/cards/s/SirensCall.java b/Mage.Sets/src/mage/cards/s/SirensCall.java index 878eaf06809..a8154c1874b 100644 --- a/Mage.Sets/src/mage/cards/s/SirensCall.java +++ b/Mage.Sets/src/mage/cards/s/SirensCall.java @@ -28,6 +28,7 @@ package mage.cards.s; import java.util.UUID; +import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.common.CastOnlyDuringPhaseStepSourceAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -54,7 +55,7 @@ import mage.watchers.common.AttackedThisTurnWatcher; public class SirensCall extends CardImpl { public SirensCall(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{U}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{U}"); // Cast Siren's Call only during an opponent's turn, before attackers are declared. this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(null, null, @@ -133,18 +134,19 @@ class SirensCallDestroyEffect extends OneShotEffect { Player player = game.getPlayer(game.getActivePlayerId()); if (player != null) { for (Permanent permanent : game.getBattlefield().getAllActivePermanents(player.getId())) { - - // Non Creature Cards are safe. - if(!permanent.isCreature()) - continue; - + + // Non Creature Cards are safe. + if (!permanent.isCreature()) { + continue; + } + // Walls are safe. if (permanent.getSubtype(game).contains("Wall")) { continue; } // Creatures that attacked are safe. - AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get("AttackedThisTurn"); - if (watcher != null && watcher.getAttackedThisTurnCreatures().contains(permanent.getId())) { + AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get(AttackedThisTurnWatcher.class.getName()); + if (watcher != null && watcher.getAttackedThisTurnCreatures().contains(new MageObjectReference(permanent, game))) { continue; } // Creatures that weren't controlled since the beginning of turn are safe. diff --git a/Mage.Sets/src/mage/cards/s/SistersOfStoneDeath.java b/Mage.Sets/src/mage/cards/s/SistersOfStoneDeath.java index d2ed6b0a1b5..13d12e334c1 100644 --- a/Mage.Sets/src/mage/cards/s/SistersOfStoneDeath.java +++ b/Mage.Sets/src/mage/cards/s/SistersOfStoneDeath.java @@ -42,6 +42,7 @@ import mage.cards.CardSetInfo; import mage.cards.CardsImpl; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; @@ -64,7 +65,7 @@ public class SistersOfStoneDeath extends CardImpl { public SistersOfStoneDeath(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}{G}{G}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Gorgon"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/s/SithRuins.java b/Mage.Sets/src/mage/cards/s/SithRuins.java index 62eb95363be..e123722f666 100644 --- a/Mage.Sets/src/mage/cards/s/SithRuins.java +++ b/Mage.Sets/src/mage/cards/s/SithRuins.java @@ -37,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicate; @@ -92,7 +93,7 @@ public class SithRuins extends CardImpl { subtypePredicates.add(new SubtypePredicate("Mountain")); subtypePredicates.add(new SubtypePredicate("Island")); filter.add(Predicates.or(subtypePredicates)); - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); TargetCardInLibrary target = new TargetCardInLibrary(filter); addEffect(new SearchLibraryPutInPlayEffect(target, true, true, Outcome.PutLandInPlay)); } diff --git a/Mage.Sets/src/mage/cards/s/SivitriScarzam.java b/Mage.Sets/src/mage/cards/s/SivitriScarzam.java index 379d8246d45..47511f38414 100644 --- a/Mage.Sets/src/mage/cards/s/SivitriScarzam.java +++ b/Mage.Sets/src/mage/cards/s/SivitriScarzam.java @@ -27,11 +27,13 @@ */ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -41,7 +43,7 @@ public class SivitriScarzam extends CardImpl { public SivitriScarzam(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/s/SixthSense.java b/Mage.Sets/src/mage/cards/s/SixthSense.java new file mode 100644 index 00000000000..ac69a067220 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SixthSense.java @@ -0,0 +1,122 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.target.common.TargetCreaturePermanent; +import mage.abilities.Ability; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.constants.Outcome; +import mage.target.TargetPermanent; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.DamagedEvent; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; + +/** + * + * @author fireshoes + */ +public class SixthSense extends CardImpl { + + public SixthSense(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{G}"); + + this.subtype.add("Aura"); + + // Enchant creature + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // Enchanted creature has "Whenever this creature deals combat damage to a player, you may draw a card." + Effect effect = new GainAbilityAttachedEffect(new SixthSenseTriggeredAbility(), AttachmentType.AURA); + effect.setText("Enchanted creature has \"Whenever this creature deals combat damage to a player, you may draw a card.\""); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); + } + + public SixthSense(final SixthSense card) { + super(card); + } + + @Override + public SixthSense copy() { + return new SixthSense(this); + } +} + +class SixthSenseTriggeredAbility extends TriggeredAbilityImpl { + + public SixthSenseTriggeredAbility() { + super(Zone.BATTLEFIELD, null, true); + } + + public SixthSenseTriggeredAbility(final SixthSenseTriggeredAbility ability) { + super(ability); + } + + @Override + public SixthSenseTriggeredAbility copy() { + return new SixthSenseTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.DAMAGED_PLAYER; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (((DamagedEvent) event).isCombatDamage()) { + if (event.getSourceId().equals(getSourceId())) { + this.getEffects().clear(); + this.addEffect(new DrawCardSourceControllerEffect(1)); + return true; + } + } + return false; + } + + @Override + public String getRule() { + return "Whenever this creature deals combat damage to a player, you may draw a card."; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/s/SkeletonShip.java b/Mage.Sets/src/mage/cards/s/SkeletonShip.java index 612b9cb909d..8c7107e414b 100644 --- a/Mage.Sets/src/mage/cards/s/SkeletonShip.java +++ b/Mage.Sets/src/mage/cards/s/SkeletonShip.java @@ -27,9 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,12 +38,14 @@ import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.common.FilterLandPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -52,14 +54,14 @@ public class SkeletonShip extends CardImpl { public SkeletonShip(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Skeleton"); this.power = new MageInt(0); this.toughness = new MageInt(3); // When you control no Islands, sacrifice Skeleton Ship. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Island", "no Islands"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Island", "no Islands"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); // {tap}: Put a -1/-1 counter on target creature. diff --git a/Mage.Sets/src/mage/cards/s/SkithiryxTheBlightDragon.java b/Mage.Sets/src/mage/cards/s/SkithiryxTheBlightDragon.java index 8f62296b72f..68188faa69b 100644 --- a/Mage.Sets/src/mage/cards/s/SkithiryxTheBlightDragon.java +++ b/Mage.Sets/src/mage/cards/s/SkithiryxTheBlightDragon.java @@ -28,20 +28,22 @@ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.effects.common.RegenerateSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; +import mage.constants.Zone; + +import java.util.UUID; /** * @@ -51,7 +53,7 @@ public class SkithiryxTheBlightDragon extends CardImpl { public SkithiryxTheBlightDragon (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.subtype.add("Skeleton"); diff --git a/Mage.Sets/src/mage/cards/s/SkittishKavu.java b/Mage.Sets/src/mage/cards/s/SkittishKavu.java index 21df86a7d35..0f22b6fe30f 100644 --- a/Mage.Sets/src/mage/cards/s/SkittishKavu.java +++ b/Mage.Sets/src/mage/cards/s/SkittishKavu.java @@ -30,7 +30,7 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; import mage.ObjectColor; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -69,7 +69,7 @@ public class SkittishKavu extends CardImpl { // Skittish Kavu gets +1/+1 as long as no opponent controls a white or blue creature. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), - new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0, false)), + new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0, false)), "{this} gets +1/+1 as long as no opponent controls a white or blue creature"))); } diff --git a/Mage.Sets/src/mage/cards/s/Skred.java b/Mage.Sets/src/mage/cards/s/Skred.java index 14c99063f2b..0bb3d6fd64f 100644 --- a/Mage.Sets/src/mage/cards/s/Skred.java +++ b/Mage.Sets/src/mage/cards/s/Skred.java @@ -33,6 +33,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.game.Game; @@ -69,7 +70,7 @@ class SkredDamageEffect extends OneShotEffect { private static final FilterControlledPermanent filter = new FilterControlledPermanent("equal to the number of snow permanents you control."); static { - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); } public SkredDamageEffect() { diff --git a/Mage.Sets/src/mage/cards/s/SkullbriarTheWalkingGrave.java b/Mage.Sets/src/mage/cards/s/SkullbriarTheWalkingGrave.java index 17ebe128f96..261f63555f5 100644 --- a/Mage.Sets/src/mage/cards/s/SkullbriarTheWalkingGrave.java +++ b/Mage.Sets/src/mage/cards/s/SkullbriarTheWalkingGrave.java @@ -57,7 +57,7 @@ public class SkullbriarTheWalkingGrave extends CardImpl { public SkullbriarTheWalkingGrave(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Elemental"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/s/SkyfireKirin.java b/Mage.Sets/src/mage/cards/s/SkyfireKirin.java index 3525d9fbc28..d02f720f9a1 100644 --- a/Mage.Sets/src/mage/cards/s/SkyfireKirin.java +++ b/Mage.Sets/src/mage/cards/s/SkyfireKirin.java @@ -27,9 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -37,11 +37,7 @@ import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; -import mage.filter.Filter; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterSpiritOrArcaneCard; @@ -54,8 +50,9 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** - * * @author LevelX2 */ public class SkyfireKirin extends CardImpl { @@ -63,8 +60,8 @@ public class SkyfireKirin extends CardImpl { private final UUID originalId; public SkyfireKirin(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}"); - this.supertype.add("Legendary"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Kirin"); this.subtype.add("Spirit"); @@ -88,7 +85,7 @@ public class SkyfireKirin extends CardImpl { int cmc = spell.getConvertedManaCost(); ability.getTargets().clear(); FilterPermanent filter = new FilterCreaturePermanent(new StringBuilder("creature with converted mana costs of ").append(cmc).toString()); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, cmc)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, cmc)); Target target = new TargetPermanent(filter); ability.addTarget(target); } diff --git a/Mage.Sets/src/mage/cards/s/SkyhunterCub.java b/Mage.Sets/src/mage/cards/s/SkyhunterCub.java index 58739de072e..de603c502c8 100644 --- a/Mage.Sets/src/mage/cards/s/SkyhunterCub.java +++ b/Mage.Sets/src/mage/cards/s/SkyhunterCub.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.EquippedSourceCondition; @@ -41,6 +40,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; +import java.util.UUID; + /** * * @author Derpthemeus @@ -58,9 +59,9 @@ public class SkyhunterCub extends CardImpl { this.toughness = new MageInt(2); // As long as Skyhunter Cub is equipped, it gets +1/+1 and has flying. - ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), EquippedSourceCondition.getInstance(), rule1); + ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), EquippedSourceCondition.instance, rule1); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect1)); - ConditionalContinuousEffect effect2 = new ConditionalContinuousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()), EquippedSourceCondition.getInstance(), rule2); + ConditionalContinuousEffect effect2 = new ConditionalContinuousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()), EquippedSourceCondition.instance, rule2); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect2)); } diff --git a/Mage.Sets/src/mage/cards/s/SkylineDespot.java b/Mage.Sets/src/mage/cards/s/SkylineDespot.java index 8e9b34bf678..a3dd2ba6a6c 100644 --- a/Mage.Sets/src/mage/cards/s/SkylineDespot.java +++ b/Mage.Sets/src/mage/cards/s/SkylineDespot.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -43,6 +42,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.game.permanent.token.DragonToken2; +import java.util.UUID; + /** * * @author LevelX2 @@ -64,7 +65,7 @@ public class SkylineDespot extends CardImpl { // At the beginning of your upkeep, if you're the monarch, put a 5/5 red Dragon creature token with flying onto the battlefield. this.addAbility(new ConditionalTriggeredAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new DragonToken2()), - TargetController.YOU, false), MonarchIsSourceControllerCondition.getInstance(), + TargetController.YOU, false), MonarchIsSourceControllerCondition.instance, "At the beginning of your upkeep, if you're the monarch, put a 5/5 red Dragon creature token with flying onto the battlefield.")); } diff --git a/Mage.Sets/src/mage/cards/s/SkymarkRoc.java b/Mage.Sets/src/mage/cards/s/SkymarkRoc.java index e6335e2a5c0..58b15430cff 100644 --- a/Mage.Sets/src/mage/cards/s/SkymarkRoc.java +++ b/Mage.Sets/src/mage/cards/s/SkymarkRoc.java @@ -28,8 +28,8 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.FlyingAbility; @@ -37,7 +37,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.filter.predicate.permanent.ControllerIdPredicate; @@ -46,6 +45,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -97,7 +98,7 @@ class SkymarkRocAbility extends TriggeredAbilityImpl { FilterCreaturePermanent filter = new FilterCreaturePermanent("creature defending player controls with toughness 2 or less"); UUID defenderId = game.getCombat().getDefendingPlayerId(sourceId, game); filter.add(new ControllerIdPredicate(defenderId)); - filter.add(new ToughnessPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new ToughnessPredicate(ComparisonType.FEWER_THAN, 3)); this.getTargets().clear(); TargetCreaturePermanent target = new TargetCreaturePermanent(filter); diff --git a/Mage.Sets/src/mage/cards/s/SkyshipWeatherlight.java b/Mage.Sets/src/mage/cards/s/SkyshipWeatherlight.java index 35ac026dc9d..155c5f50f83 100644 --- a/Mage.Sets/src/mage/cards/s/SkyshipWeatherlight.java +++ b/Mage.Sets/src/mage/cards/s/SkyshipWeatherlight.java @@ -5,7 +5,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -19,6 +18,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; @@ -29,6 +29,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author nick.myers @@ -37,7 +39,7 @@ public class SkyshipWeatherlight extends CardImpl { public SkyshipWeatherlight(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // When Skyship Weatherlight enters the battlefield, search your library for any number of artifact and/or creature cards and exile them. Then shuffle your library. this.addAbility(new EntersBattlefieldTriggeredAbility(new SkyshipWeatherlightEffect(), false)); diff --git a/Mage.Sets/src/mage/cards/s/SkysovereignConsulFlagship.java b/Mage.Sets/src/mage/cards/s/SkysovereignConsulFlagship.java index 4b6a8563945..5dbae40d07f 100644 --- a/Mage.Sets/src/mage/cards/s/SkysovereignConsulFlagship.java +++ b/Mage.Sets/src/mage/cards/s/SkysovereignConsulFlagship.java @@ -28,6 +28,7 @@ package mage.cards.s; import java.util.UUID; + import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility; @@ -37,13 +38,13 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterCreatureOrPlaneswalkerPermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreatureOrPlaneswalker; /** - * * @author emerald000 */ public class SkysovereignConsulFlagship extends CardImpl { @@ -56,7 +57,7 @@ public class SkysovereignConsulFlagship extends CardImpl { public SkysovereignConsulFlagship(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{5}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vehicle"); this.power = new MageInt(6); this.toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/s/SkywhalersShot.java b/Mage.Sets/src/mage/cards/s/SkywhalersShot.java index 65ffa75cb04..58fd18c7ca1 100644 --- a/Mage.Sets/src/mage/cards/s/SkywhalersShot.java +++ b/Mage.Sets/src/mage/cards/s/SkywhalersShot.java @@ -27,17 +27,18 @@ */ package mage.cards.s; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -47,7 +48,7 @@ public class SkywhalersShot extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 3 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); } public SkywhalersShot(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SlaveI.java b/Mage.Sets/src/mage/cards/s/SlaveI.java index dd7d3f6c30a..fe5304f52f7 100644 --- a/Mage.Sets/src/mage/cards/s/SlaveI.java +++ b/Mage.Sets/src/mage/cards/s/SlaveI.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealtDamageAndDiedTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -36,8 +35,11 @@ import mage.abilities.keyword.SpaceflightAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Styxo @@ -46,7 +48,7 @@ public class SlaveI extends CardImpl { public SlaveI(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Starship"); this.power = new MageInt(3); this.toughness = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/s/SlipstreamSerpent.java b/Mage.Sets/src/mage/cards/s/SlipstreamSerpent.java index b744f6280cb..25b89997ef9 100644 --- a/Mage.Sets/src/mage/cards/s/SlipstreamSerpent.java +++ b/Mage.Sets/src/mage/cards/s/SlipstreamSerpent.java @@ -27,8 +27,8 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,9 +39,10 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -59,7 +60,7 @@ public class SlipstreamSerpent extends CardImpl { // When you control no Islands, sacrifice Slipstream Serpent. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Island", "no Islands"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Island", "no Islands"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); // Morph {5}{U} diff --git a/Mage.Sets/src/mage/cards/s/SlitherBlade.java b/Mage.Sets/src/mage/cards/s/SlitherBlade.java new file mode 100644 index 00000000000..b1722702547 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SlitherBlade.java @@ -0,0 +1,63 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.CantBeBlockedSourceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class SlitherBlade extends CardImpl { + + public SlitherBlade(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}"); + + this.subtype.add("Naga"); + this.subtype.add("Rogue"); + this.power = new MageInt(1); + this.toughness = new MageInt(2); + + // Slither Blade can't be blocked. + this.addAbility(new CantBeBlockedSourceAbility()); + } + + public SlitherBlade(final SlitherBlade card) { + super(card); + } + + @Override + public SlitherBlade copy() { + return new SlitherBlade(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SliverHivelord.java b/Mage.Sets/src/mage/cards/s/SliverHivelord.java index 36a97d4acfe..c72d7b531a5 100644 --- a/Mage.Sets/src/mage/cards/s/SliverHivelord.java +++ b/Mage.Sets/src/mage/cards/s/SliverHivelord.java @@ -36,6 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.StaticFilters; @@ -47,7 +48,7 @@ public class SliverHivelord extends CardImpl { public SliverHivelord(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}{U}{B}{R}{G}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Sliver"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/s/SliverLegion.java b/Mage.Sets/src/mage/cards/s/SliverLegion.java index 80409d61002..bc5b0a970ea 100644 --- a/Mage.Sets/src/mage/cards/s/SliverLegion.java +++ b/Mage.Sets/src/mage/cards/s/SliverLegion.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -36,11 +35,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.common.FilterCreaturePermanent; import mage.filter.FilterPermanent; +import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author KholdFuzion @@ -57,7 +59,7 @@ public class SliverLegion extends CardImpl { public SliverLegion(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{U}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Sliver"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/s/SliverOverlord.java b/Mage.Sets/src/mage/cards/s/SliverOverlord.java index 152d13db387..b003d7dafdd 100644 --- a/Mage.Sets/src/mage/cards/s/SliverOverlord.java +++ b/Mage.Sets/src/mage/cards/s/SliverOverlord.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterCreaturePermanent; @@ -46,6 +46,8 @@ import mage.target.Target; import mage.target.TargetPermanent; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author cbt33 @@ -60,7 +62,7 @@ public class SliverOverlord extends CardImpl { public SliverOverlord(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{U}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Sliver"); this.subtype.add("Mutant"); diff --git a/Mage.Sets/src/mage/cards/s/SliverQueen.java b/Mage.Sets/src/mage/cards/s/SliverQueen.java index 908753ee2c1..7e28e605dcb 100644 --- a/Mage.Sets/src/mage/cards/s/SliverQueen.java +++ b/Mage.Sets/src/mage/cards/s/SliverQueen.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -35,9 +34,12 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.permanent.token.SliverToken; +import java.util.UUID; + /** * * @author cbt33 @@ -46,7 +48,7 @@ public class SliverQueen extends CardImpl { public SliverQueen(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{U}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Sliver"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/s/SlobadGoblinTinkerer.java b/Mage.Sets/src/mage/cards/s/SlobadGoblinTinkerer.java index 09c51090d43..8f14218c77b 100644 --- a/Mage.Sets/src/mage/cards/s/SlobadGoblinTinkerer.java +++ b/Mage.Sets/src/mage/cards/s/SlobadGoblinTinkerer.java @@ -32,6 +32,7 @@ import java.util.UUID; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; @@ -63,7 +64,7 @@ public class SlobadGoblinTinkerer extends CardImpl { public SlobadGoblinTinkerer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Artificer"); diff --git a/Mage.Sets/src/mage/cards/s/SlumberingTora.java b/Mage.Sets/src/mage/cards/s/SlumberingTora.java index c28b823d00e..a6166c594d9 100644 --- a/Mage.Sets/src/mage/cards/s/SlumberingTora.java +++ b/Mage.Sets/src/mage/cards/s/SlumberingTora.java @@ -98,7 +98,7 @@ public class SlumberingTora extends CardImpl { switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); permanent.getSubtype(game).add("Cat"); } break; diff --git a/Mage.Sets/src/mage/cards/s/SmeltWardGatekeepers.java b/Mage.Sets/src/mage/cards/s/SmeltWardGatekeepers.java index d60cbf20dba..6aba6dd3494 100644 --- a/Mage.Sets/src/mage/cards/s/SmeltWardGatekeepers.java +++ b/Mage.Sets/src/mage/cards/s/SmeltWardGatekeepers.java @@ -30,7 +30,7 @@ package mage.cards.s; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; @@ -78,7 +78,7 @@ public class SmeltWardGatekeepers extends CardImpl { // When Smelt-Ward Gatekeepers enters the battlefield, if you control two or more Gates, gain control of target creature an opponent controls until end of turn. Untap that creature. That creature gains haste until end of turn. Ability ability = new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new GainControlTargetEffect(Duration.EndOfTurn)), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1), "When {this} enters the battlefield, if you control two or more Gates, gain control of target creature an opponent controls until end of turn. Untap that creature. That creature gains haste until end of turn."); ability.addEffect(new UntapTargetEffect()); ability.addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn)); diff --git a/Mage.Sets/src/mage/cards/s/SmiteTheMonstrous.java b/Mage.Sets/src/mage/cards/s/SmiteTheMonstrous.java index 2ab6389ba86..a0f38a268a8 100644 --- a/Mage.Sets/src/mage/cards/s/SmiteTheMonstrous.java +++ b/Mage.Sets/src/mage/cards/s/SmiteTheMonstrous.java @@ -27,16 +27,17 @@ */ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author nantuko */ @@ -45,7 +46,7 @@ public class SmiteTheMonstrous extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 4 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public SmiteTheMonstrous(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SmolderingMarsh.java b/Mage.Sets/src/mage/cards/s/SmolderingMarsh.java index 29ead2b7c71..30f1f1134de 100644 --- a/Mage.Sets/src/mage/cards/s/SmolderingMarsh.java +++ b/Mage.Sets/src/mage/cards/s/SmolderingMarsh.java @@ -29,7 +29,7 @@ package mage.cards.s; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; @@ -41,6 +41,7 @@ import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; @@ -53,7 +54,7 @@ public class SmolderingMarsh extends CardImpl { private static final FilterLandPermanent filter = new FilterLandPermanent(); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public SmolderingMarsh(UUID ownerId, CardSetInfo setInfo) { @@ -62,7 +63,7 @@ public class SmolderingMarsh extends CardImpl { this.subtype.add("Mountain"); // Smoldering Marsh enters the battlefield tapped unless you control two or more basic lands. - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1)); String abilityText = "tapped unless you control two or more basic lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlackManaAbility()); diff --git a/Mage.Sets/src/mage/cards/s/Smother.java b/Mage.Sets/src/mage/cards/s/Smother.java index c1123fcfaa2..ea37f907b43 100644 --- a/Mage.Sets/src/mage/cards/s/Smother.java +++ b/Mage.Sets/src/mage/cards/s/Smother.java @@ -27,16 +27,17 @@ */ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -46,7 +47,7 @@ public class Smother extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with converted mana cost 3 or less"); static { - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public Smother(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SneakyHomunculus.java b/Mage.Sets/src/mage/cards/s/SneakyHomunculus.java index 8b2fb1dd1e6..9ac9d740d4c 100644 --- a/Mage.Sets/src/mage/cards/s/SneakyHomunculus.java +++ b/Mage.Sets/src/mage/cards/s/SneakyHomunculus.java @@ -27,9 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; @@ -38,10 +38,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author dustinconrad @@ -51,7 +52,7 @@ public class SneakyHomunculus extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 1)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 1)); } public SneakyHomunculus(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SnowCoveredForest.java b/Mage.Sets/src/mage/cards/s/SnowCoveredForest.java index ac8a76ff343..c2dc151e5f2 100644 --- a/Mage.Sets/src/mage/cards/s/SnowCoveredForest.java +++ b/Mage.Sets/src/mage/cards/s/SnowCoveredForest.java @@ -32,6 +32,7 @@ import mage.abilities.mana.GreenManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; /** * @@ -41,8 +42,8 @@ public class SnowCoveredForest extends CardImpl { public SnowCoveredForest(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Basic"); - this.supertype.add("Snow"); + this.addSuperType(SuperType.BASIC); + this.addSuperType(SuperType.SNOW); this.subtype.add("Forest"); // G diff --git a/Mage.Sets/src/mage/cards/s/SnowCoveredIsland.java b/Mage.Sets/src/mage/cards/s/SnowCoveredIsland.java index ceac2b78b2e..97738181d68 100644 --- a/Mage.Sets/src/mage/cards/s/SnowCoveredIsland.java +++ b/Mage.Sets/src/mage/cards/s/SnowCoveredIsland.java @@ -32,6 +32,7 @@ import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; /** * @@ -41,8 +42,8 @@ public class SnowCoveredIsland extends CardImpl { public SnowCoveredIsland(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Basic"); - this.supertype.add("Snow"); + this.addSuperType(SuperType.BASIC); + this.addSuperType(SuperType.SNOW); this.subtype.add("Island"); // U diff --git a/Mage.Sets/src/mage/cards/s/SnowCoveredMountain.java b/Mage.Sets/src/mage/cards/s/SnowCoveredMountain.java index 24a2afeac5d..d8566e3e119 100644 --- a/Mage.Sets/src/mage/cards/s/SnowCoveredMountain.java +++ b/Mage.Sets/src/mage/cards/s/SnowCoveredMountain.java @@ -32,6 +32,7 @@ import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; /** * @@ -41,8 +42,8 @@ public class SnowCoveredMountain extends CardImpl { public SnowCoveredMountain(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Basic"); - this.supertype.add("Snow"); + this.addSuperType(SuperType.BASIC); + this.addSuperType(SuperType.SNOW); this.subtype.add("Mountain"); // R diff --git a/Mage.Sets/src/mage/cards/s/SnowCoveredPlains.java b/Mage.Sets/src/mage/cards/s/SnowCoveredPlains.java index 3f7f5aa045b..a49950c30fe 100644 --- a/Mage.Sets/src/mage/cards/s/SnowCoveredPlains.java +++ b/Mage.Sets/src/mage/cards/s/SnowCoveredPlains.java @@ -32,6 +32,7 @@ import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; /** * @@ -41,8 +42,8 @@ public class SnowCoveredPlains extends CardImpl { public SnowCoveredPlains(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Basic"); - this.supertype.add("Snow"); + addSuperType(SuperType.BASIC); + addSuperType(SuperType.SNOW); this.subtype.add("Plains"); // W diff --git a/Mage.Sets/src/mage/cards/s/SnowCoveredSwamp.java b/Mage.Sets/src/mage/cards/s/SnowCoveredSwamp.java index 5dc1e6d9e58..34cf1530392 100644 --- a/Mage.Sets/src/mage/cards/s/SnowCoveredSwamp.java +++ b/Mage.Sets/src/mage/cards/s/SnowCoveredSwamp.java @@ -32,6 +32,7 @@ import mage.abilities.mana.BlackManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; /** * @@ -41,8 +42,8 @@ public class SnowCoveredSwamp extends CardImpl { public SnowCoveredSwamp(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Basic"); - this.supertype.add("Snow"); + this.addSuperType(SuperType.BASIC); + this.addSuperType(SuperType.SNOW); this.subtype.add("Swamp"); // B diff --git a/Mage.Sets/src/mage/cards/s/SnuffOut.java b/Mage.Sets/src/mage/cards/s/SnuffOut.java index ac2d4a475d2..1fb430d2971 100644 --- a/Mage.Sets/src/mage/cards/s/SnuffOut.java +++ b/Mage.Sets/src/mage/cards/s/SnuffOut.java @@ -29,7 +29,7 @@ package mage.cards.s; import java.util.UUID; import mage.ObjectColor; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.PayLifeCost; @@ -65,7 +65,7 @@ public class SnuffOut extends CardImpl { // If you control a Swamp, you may pay 4 life rather than pay Snuff Out's mana cost. this.addAbility(new AlternativeCostSourceAbility( new PayLifeCost(4), - new PermanentsOnTheBattlefieldCondition(filterSwamp, CountType.MORE_THAN, 0), null)); + new PermanentsOnTheBattlefieldCondition(filterSwamp, ComparisonType.MORE_THAN, 0), null)); // // Destroy target nonblack creature. It can't be regenerated. this.getSpellAbility().addEffect(new DestroyTargetEffect(true)); diff --git a/Mage.Sets/src/mage/cards/s/SolarTide.java b/Mage.Sets/src/mage/cards/s/SolarTide.java index 69c9523a2bc..d6b6750f977 100644 --- a/Mage.Sets/src/mage/cards/s/SolarTide.java +++ b/Mage.Sets/src/mage/cards/s/SolarTide.java @@ -27,7 +27,7 @@ */ package mage.cards.s; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.DestroyAllEffect; @@ -35,12 +35,13 @@ import mage.abilities.keyword.EntwineAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -51,8 +52,8 @@ public class SolarTide extends CardImpl { private static final FilterCreaturePermanent filter2 = new FilterCreaturePermanent("creatures with power 3 or greater"); static { - filter1.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); - filter2.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 2)); + filter1.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); + filter2.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); } public SolarTide(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SolkanarTheSwampKing.java b/Mage.Sets/src/mage/cards/s/SolkanarTheSwampKing.java index b6142ccddd2..4e524addcba 100644 --- a/Mage.Sets/src/mage/cards/s/SolkanarTheSwampKing.java +++ b/Mage.Sets/src/mage/cards/s/SolkanarTheSwampKing.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.GainLifeEffect; @@ -35,12 +34,15 @@ import mage.abilities.keyword.SwampwalkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.stack.Spell; +import java.util.UUID; + /** * * @author Loki @@ -49,7 +51,7 @@ public class SolkanarTheSwampKing extends CardImpl { public SolkanarTheSwampKing(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/s/SoltariLancer.java b/Mage.Sets/src/mage/cards/s/SoltariLancer.java index 62fb1c03663..37f851fe68a 100644 --- a/Mage.Sets/src/mage/cards/s/SoltariLancer.java +++ b/Mage.Sets/src/mage/cards/s/SoltariLancer.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.SourceAttackingCondition; @@ -40,6 +39,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes @@ -57,7 +58,7 @@ public class SoltariLancer extends CardImpl { this.addAbility(ShadowAbility.getInstance()); // Soltari Lancer has first strike as long as it's attacking. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()), SourceAttackingCondition.getInstance(), "{this} has first strike as long as it's attacking"))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()), SourceAttackingCondition.instance, "{this} has first strike as long as it's attacking"))); } public SoltariLancer(final SoltariLancer card) { diff --git a/Mage.Sets/src/mage/cards/s/SongOfTheDryads.java b/Mage.Sets/src/mage/cards/s/SongOfTheDryads.java index cd535c6b33b..cb9df596903 100644 --- a/Mage.Sets/src/mage/cards/s/SongOfTheDryads.java +++ b/Mage.Sets/src/mage/cards/s/SongOfTheDryads.java @@ -119,7 +119,7 @@ class BecomesColorlessForestLandEffect extends ContinuousEffectImpl { break; case TypeChangingEffects_4: permanent.getCardType().clear(); - permanent.getCardType().add(CardType.LAND); + permanent.addCardType(CardType.LAND); permanent.getSubtype(game).clear(); permanent.getSubtype(game).add("Forest"); break; diff --git a/Mage.Sets/src/mage/cards/s/SoramaroFirstToDream.java b/Mage.Sets/src/mage/cards/s/SoramaroFirstToDream.java index 305c5ea68b7..e9ab370de76 100644 --- a/Mage.Sets/src/mage/cards/s/SoramaroFirstToDream.java +++ b/Mage.Sets/src/mage/cards/s/SoramaroFirstToDream.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,10 +42,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +57,7 @@ public class SoramaroFirstToDream extends CardImpl { public SoramaroFirstToDream(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(0); this.toughness = new MageInt(0); diff --git a/Mage.Sets/src/mage/cards/s/SoratamiMirrorGuard.java b/Mage.Sets/src/mage/cards/s/SoratamiMirrorGuard.java index 248a34f4ec7..f6775e0afb8 100644 --- a/Mage.Sets/src/mage/cards/s/SoratamiMirrorGuard.java +++ b/Mage.Sets/src/mage/cards/s/SoratamiMirrorGuard.java @@ -28,11 +28,9 @@ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; import mage.abilities.costs.mana.GenericManaCost; @@ -40,7 +38,8 @@ import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterCreaturePermanent; @@ -48,6 +47,8 @@ import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ @@ -57,7 +58,7 @@ public class SoratamiMirrorGuard extends CardImpl { private static final FilterCreaturePermanent filterCreature = new FilterCreaturePermanent("creature with power 2 or less"); static { - filterCreature.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filterCreature.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public SoratamiMirrorGuard(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SosukeSonOfSeshiro.java b/Mage.Sets/src/mage/cards/s/SosukeSonOfSeshiro.java index 3eae4085595..c4c8b0279c0 100644 --- a/Mage.Sets/src/mage/cards/s/SosukeSonOfSeshiro.java +++ b/Mage.Sets/src/mage/cards/s/SosukeSonOfSeshiro.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +39,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -50,6 +50,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX @@ -64,7 +66,7 @@ public class SosukeSonOfSeshiro extends CardImpl { public SosukeSonOfSeshiro(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Snake"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/s/SoulBurn.java b/Mage.Sets/src/mage/cards/s/SoulBurn.java new file mode 100644 index 00000000000..8d85b1b3467 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SoulBurn.java @@ -0,0 +1,185 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; + +import mage.abilities.Ability; +import mage.abilities.costs.VariableCost; +import mage.abilities.costs.mana.VariableManaCost; +import mage.abilities.effects.OneShotEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.filter.FilterMana; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * @author Johnny E. Hastings + */ +public class SoulBurn extends CardImpl { + + public static final FilterMana filterBlackOrRed = new FilterMana(); + + static { + filterBlackOrRed.setBlack(true); + filterBlackOrRed.setRed(true); + } + + public SoulBurn(UUID ownerId, CardSetInfo setInfo) { + super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{2}{B}"); + + // Spend only black or red mana on X. + // Soul Burn deals X damage to target creature or player. You gain life equal to the damage dealt for each black mana spent on X; not more life than the player's life total before Soul Burn dealt damage, or the creature's toughness. + this.getSpellAbility().addTarget(new TargetCreatureOrPlayer()); + this.getSpellAbility().addEffect(new SoulBurnEffect()); + VariableCost variableCost = this.getSpellAbility().getManaCostsToPay().getVariableCosts().get(0); + if (variableCost instanceof VariableManaCost) { + ((VariableManaCost) variableCost).setFilter(filterBlackOrRed); + } + } + + public SoulBurn(final SoulBurn card) { + super(card); + } + + @Override + public SoulBurn copy() { + return new SoulBurn(this); + } +} + +class SoulBurnEffect extends OneShotEffect { + + public SoulBurnEffect() { + super(Outcome.Damage); + staticText = "{this} deals X damage to target creature or player for each black or red mana spent on X. You gain life equal to the damage dealt for each black mana spent; not more life than the player's life total before Soul Burn dealt damage, or the creature's toughness."; + } + + public SoulBurnEffect(final SoulBurnEffect effect) { + super(effect); + } + + /*** + * @param game + * @param source + * @return + */ + @Override + public boolean apply(Game game, Ability source) { + + // Get the colors we care about. (This isn't racist, honestly.) + int amountBlack = source.getManaCostsToPay().getPayment().getBlack(); + int amountRed = source.getManaCostsToPay().getPayment().getRed(); + + // Get the colors we don't really care about. (See note above.) + int amountWhite = source.getManaCostsToPay().getPayment().getWhite(); + int amountGreen = source.getManaCostsToPay().getPayment().getGreen(); + int amountBlue = source.getManaCostsToPay().getPayment().getBlue(); + int amountColorless = source.getManaCostsToPay().getPayment().getColorless(); + + // Figure out what was spent on the spell in total, determine proper values for + // black and red, minus initial casting cost. + int totalColorlessForCastingCost = amountWhite + amountGreen + amountBlue + amountColorless; + int amountOffsetByColorless = 0; + if (totalColorlessForCastingCost > 0) { + amountOffsetByColorless = totalColorlessForCastingCost; + if (amountOffsetByColorless > 2) { + // The game should never let this happen, but I'll check anyway since I don't know + // the guts of the game [yet]. + amountOffsetByColorless = 2; + } + } + + // Remove 1 black to account for casting cost. + amountBlack--; + + // Determine if we need to offset the red or black values any further due to the + // amount of non-red and non-black paid. + if (amountOffsetByColorless < 2) { + int amountToOffsetBy = 2 - amountOffsetByColorless; + + if (amountRed > 0) { + if (amountRed >= amountToOffsetBy) { + // Pay all additional unpaid casting cost with red. + amountRed = amountRed - amountToOffsetBy; + } else { + // Red paid doesn't cover the 2 default required by the spell. + // Pay some in red, and some in black. + // If we're here, red is 1, and amountToOffetBy is 2. + // That means we can subtract 1 from both red and black. + amountRed--; + amountBlack--; + } + } else { + // Pay all additional unpaid casting cost with black. + amountBlack = amountBlack - amountToOffsetBy; + } + } + + int totalXAmount = amountBlack + amountRed; + + int lifetogain = amountBlack; + if (totalXAmount > 0) { + Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source)); + if (permanent != null ) { + if (permanent.getToughness().getValue() < lifetogain) { + lifetogain = permanent.getToughness().getValue(); + } + permanent.damage(totalXAmount, source.getSourceId(), game, false, true); + } else { + Player player = game.getPlayer(getTargetPointer().getFirst(game, source)); + if (player != null) { + if (player.getLife() < lifetogain) { + lifetogain = player.getLife(); + } + player.damage(totalXAmount, source.getSourceId(), game, false, true); + } else { + return false; + } + } + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + controller.gainLife(lifetogain, game); + } else { + return false; + } + } + return true; + } + + @Override + public SoulBurnEffect copy() { + return new SoulBurnEffect(this); + } + +} diff --git a/Mage.Sets/src/mage/cards/s/SoulScarMage.java b/Mage.Sets/src/mage/cards/s/SoulScarMage.java new file mode 100644 index 00000000000..4f12aa3ba96 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SoulScarMage.java @@ -0,0 +1,121 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.ReplacementEffectImpl; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.keyword.ProwessAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.game.Game; +import mage.game.events.DamageCreatureEvent; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author stravant + */ +public class SoulScarMage extends CardImpl { + + public SoulScarMage(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}"); + + this.subtype.add("Human"); + this.subtype.add("Wizard"); + this.power = new MageInt(1); + this.toughness = new MageInt(2); + + // Prowess + this.addAbility(new ProwessAbility()); + + // If a source you control would deal noncombat damage to a creature an opponent controls, put that many -1/-1 counters on that creature instead. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SoulScarMageDamageReplacementEffect())); + } + + public SoulScarMage(final SoulScarMage card) { + super(card); + } + + @Override + public SoulScarMage copy() { + return new SoulScarMage(this); + } +} + +class SoulScarMageDamageReplacementEffect extends ReplacementEffectImpl { + + public SoulScarMageDamageReplacementEffect() { + super(Duration.WhileOnBattlefield, Outcome.Benefit); + staticText = "If a source you control would deal noncombat damage to a creature an opponent controls, put that many -1/-1 counters on that creature instead."; + } + + public SoulScarMageDamageReplacementEffect(final SoulScarMageDamageReplacementEffect effect) { + super(effect); + } + + @Override + public SoulScarMageDamageReplacementEffect copy() { + return new SoulScarMageDamageReplacementEffect(this); + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + Permanent toGetCounters = game.getPermanent(event.getTargetId()); + if (toGetCounters != null) { + AddCountersTargetEffect addCounters = new AddCountersTargetEffect(CounterType.M1M1.createInstance(), new StaticValue(event.getAmount())); + addCounters.setTargetPointer(new FixedTarget(toGetCounters.getId())); + addCounters.apply(game, source); + return true; + } + return false; + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.DAMAGE_CREATURE; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + boolean weControlSource = game.getControllerId(event.getSourceId()).equals(source.getControllerId()); + boolean isNoncombatDamage = !((DamageCreatureEvent)event).isCombatDamage(); + return weControlSource && isNoncombatDamage; + } +} diff --git a/Mage.Sets/src/mage/cards/s/Soulstinger.java b/Mage.Sets/src/mage/cards/s/Soulstinger.java new file mode 100644 index 00000000000..7388b580993 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/Soulstinger.java @@ -0,0 +1,84 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.dynamicvalue.common.CountersSourceCount; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.counters.CounterType; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author stravant + */ +public class Soulstinger extends CardImpl { + + public Soulstinger(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); + + this.subtype.add("Scorpion"); + this.subtype.add("Demon"); + this.power = new MageInt(4); + this.toughness = new MageInt(5); + + // When Soulstinger enters the battlefield, put two -1/-1 counter on target creature you control. + Ability ability = new EntersBattlefieldTriggeredAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance(2))); + ability.addTarget(new TargetControlledCreaturePermanent()); + this.addAbility(ability); + + // When Soulstinger dies, you may put a -1/-1 counter on target creature for each -1/-1 counter on Soulstinger. + AddCountersTargetEffect effect + = new AddCountersTargetEffect( + CounterType.M1M1.createInstance(0), + new CountersSourceCount(CounterType.M1M1), + Outcome.Detriment); + effect.setText("you may put a -1/-1 counter on target creature for each -1/-1 counter on {this}"); + ability = new DiesTriggeredAbility(effect, true); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public Soulstinger(final Soulstinger card) { + super(card); + } + + @Override + public Soulstinger copy() { + return new Soulstinger(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SowerOfTemptation.java b/Mage.Sets/src/mage/cards/s/SowerOfTemptation.java index d4ce7112ee5..9643c047b02 100644 --- a/Mage.Sets/src/mage/cards/s/SowerOfTemptation.java +++ b/Mage.Sets/src/mage/cards/s/SowerOfTemptation.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -44,6 +43,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki @@ -65,7 +66,7 @@ public class SowerOfTemptation extends CardImpl { // remains on the battlefield, even if a different player gains control of Sower of Temptation itself. ConditionalContinuousEffect effect = new ConditionalContinuousEffect( new GainControlTargetEffect(Duration.Custom, true), - new SourceOnBattlefieldCondition(), + SourceOnBattlefieldCondition.instance, "gain control of target creature for as long as {this} remains on the battlefield"); Ability ability = new EntersBattlefieldTriggeredAbility(effect, false); ability.addTarget(new TargetCreaturePermanent()); @@ -103,7 +104,7 @@ class SowerOfTemptationGainControlEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { ConditionalContinuousEffect effect = new ConditionalContinuousEffect( new GainControlTargetEffect(Duration.Custom), - new SourceOnBattlefieldCondition(), + SourceOnBattlefieldCondition.instance, "gain control of target creature for as long as {this} remains on the battlefield"); game.addEffect(effect, source); return false; diff --git a/Mage.Sets/src/mage/cards/s/SparringMummy.java b/Mage.Sets/src/mage/cards/s/SparringMummy.java new file mode 100644 index 00000000000..7a24b2b3cb5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SparringMummy.java @@ -0,0 +1,67 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.UntapTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class SparringMummy extends CardImpl { + + public SparringMummy(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}"); + + this.subtype.add("Zombie"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // When Sparring Mummy enters the battlefield, untap target creature. + Ability ability = new EntersBattlefieldTriggeredAbility(new UntapTargetEffect(), false); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public SparringMummy(final SparringMummy card) { + super(card); + } + + @Override + public SparringMummy copy() { + return new SparringMummy(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SpearOfHeliod.java b/Mage.Sets/src/mage/cards/s/SpearOfHeliod.java index d5beade5767..29f2174fbd7 100644 --- a/Mage.Sets/src/mage/cards/s/SpearOfHeliod.java +++ b/Mage.Sets/src/mage/cards/s/SpearOfHeliod.java @@ -37,10 +37,7 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.DamagedPlayerThisTurnPredicate; import mage.target.Target; @@ -59,7 +56,7 @@ public class SpearOfHeliod extends CardImpl { public SpearOfHeliod(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.ARTIFACT},"{1}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Creatures you control get +1/+1. diff --git a/Mage.Sets/src/mage/cards/s/SpearbreakerBehemoth.java b/Mage.Sets/src/mage/cards/s/SpearbreakerBehemoth.java index 6abe9f1cf4f..17b85546f9b 100644 --- a/Mage.Sets/src/mage/cards/s/SpearbreakerBehemoth.java +++ b/Mage.Sets/src/mage/cards/s/SpearbreakerBehemoth.java @@ -27,22 +27,23 @@ */ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -52,7 +53,7 @@ public class SpearbreakerBehemoth extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); static { - filter.add(new PowerPredicate(ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public SpearbreakerBehemoth(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SpellBlast.java b/Mage.Sets/src/mage/cards/s/SpellBlast.java index 5dd41584965..cea2484c227 100644 --- a/Mage.Sets/src/mage/cards/s/SpellBlast.java +++ b/Mage.Sets/src/mage/cards/s/SpellBlast.java @@ -27,20 +27,21 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.SpellAbility; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.target.Target; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 @@ -73,7 +74,7 @@ public class SpellBlast extends CardImpl { int xValue = ability.getManaCostsToPay().getX(); ability.getTargets().clear(); FilterSpell newfilter = new FilterSpell(new StringBuilder("spell with converted mana cost ").append(xValue).toString()); - newfilter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, xValue)); + newfilter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue)); Target target = new TargetSpell(newfilter); ability.addTarget(target); } diff --git a/Mage.Sets/src/mage/cards/s/SpellBurst.java b/Mage.Sets/src/mage/cards/s/SpellBurst.java index fa9ce2497fa..c5a33edeedc 100644 --- a/Mage.Sets/src/mage/cards/s/SpellBurst.java +++ b/Mage.Sets/src/mage/cards/s/SpellBurst.java @@ -27,28 +27,28 @@ */ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.SpellAbility; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.keyword.BuybackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.target.TargetSpell; +import java.util.UUID; + /** - * * @author LevelX2 */ public class SpellBurst extends CardImpl { public SpellBurst(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{X}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{U}"); // Buyback {3} @@ -64,7 +64,7 @@ public class SpellBurst extends CardImpl { if (ability instanceof SpellAbility) { ability.getTargets().clear(); FilterSpell filter = new FilterSpell("spell with converted mana cost X"); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, ability.getManaCostsToPay().getX())); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, ability.getManaCostsToPay().getX())); ability.addTarget(new TargetSpell(filter)); } } diff --git a/Mage.Sets/src/mage/cards/s/SpellQueller.java b/Mage.Sets/src/mage/cards/s/SpellQueller.java index fc4902a00c7..4b0eb8f7792 100644 --- a/Mage.Sets/src/mage/cards/s/SpellQueller.java +++ b/Mage.Sets/src/mage/cards/s/SpellQueller.java @@ -27,11 +27,10 @@ */ package mage.cards.s; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.LeavesBattlefieldTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -43,7 +42,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; -import mage.filter.Filter; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.ExileZone; @@ -55,6 +53,9 @@ import mage.target.TargetSpell; import mage.util.CardUtil; import org.apache.log4j.Logger; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 @@ -64,7 +65,7 @@ public class SpellQueller extends CardImpl { private final static FilterSpell filter = new FilterSpell("spell with converted mana cost 4 or less"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 5)); } public SpellQueller(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SpellSnare.java b/Mage.Sets/src/mage/cards/s/SpellSnare.java index 71cd72cd09b..886a4a98ca4 100644 --- a/Mage.Sets/src/mage/cards/s/SpellSnare.java +++ b/Mage.Sets/src/mage/cards/s/SpellSnare.java @@ -27,16 +27,17 @@ */ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author Loki @@ -46,7 +47,7 @@ public class SpellSnare extends CardImpl { private static final FilterSpell filter = new FilterSpell("spell with converted mana cost 2"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, 2)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, 2)); } public SpellSnare(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SpellbreakerBehemoth.java b/Mage.Sets/src/mage/cards/s/SpellbreakerBehemoth.java index 5af73f0977d..e4612963efd 100644 --- a/Mage.Sets/src/mage/cards/s/SpellbreakerBehemoth.java +++ b/Mage.Sets/src/mage/cards/s/SpellbreakerBehemoth.java @@ -28,21 +28,22 @@ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.CantBeCounteredControlledEffect; import mage.abilities.effects.common.CantBeCounteredSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * @@ -54,7 +55,7 @@ public class SpellbreakerBehemoth extends CardImpl { static { filter.add(new CardTypePredicate(CardType.CREATURE)); - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public SpellbreakerBehemoth(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SpellstutterSprite.java b/Mage.Sets/src/mage/cards/s/SpellstutterSprite.java index c62fd10c298..afa9a493007 100644 --- a/Mage.Sets/src/mage/cards/s/SpellstutterSprite.java +++ b/Mage.Sets/src/mage/cards/s/SpellstutterSprite.java @@ -27,12 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -40,8 +37,9 @@ import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; import mage.constants.TargetController; -import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -51,6 +49,8 @@ import mage.game.Game; import mage.game.stack.StackObject; import mage.target.TargetSpell; +import java.util.UUID; + /** * * @author LevelX2 @@ -88,7 +88,7 @@ public class SpellstutterSprite extends CardImpl { if (ability instanceof EntersBattlefieldTriggeredAbility) { int numberFaeries = game.getState().getBattlefield().countAll(filter, ability.getControllerId(), game); FilterSpell xFilter = new FilterSpell(new StringBuilder("spell with converted mana cost ").append(numberFaeries).append(" or less").toString()); - xFilter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, numberFaeries + 1)); + xFilter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, numberFaeries + 1)); ability.getTargets().clear(); ability.addTarget(new TargetSpell(xFilter)); } diff --git a/Mage.Sets/src/mage/cards/s/SpideryGrasp.java b/Mage.Sets/src/mage/cards/s/SpideryGrasp.java index 852dea01298..8303471c548 100644 --- a/Mage.Sets/src/mage/cards/s/SpideryGrasp.java +++ b/Mage.Sets/src/mage/cards/s/SpideryGrasp.java @@ -38,6 +38,7 @@ import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; import java.util.UUID; +import mage.abilities.effects.Effect; /** * @author nantuko @@ -45,13 +46,19 @@ import java.util.UUID; public class SpideryGrasp extends CardImpl { public SpideryGrasp(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{G}"); - + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{G}"); // Untap target creature. It gets +2/+4 and gains reach until end of turn. this.getSpellAbility().addEffect(new UntapTargetEffect()); - this.getSpellAbility().addEffect(new GainAbilityTargetEffect(ReachAbility.getInstance(), Duration.EndOfTurn)); - this.getSpellAbility().addEffect(new BoostTargetEffect(2, 4, Duration.EndOfTurn)); + + Effect effect = new BoostTargetEffect(2, 4, Duration.EndOfTurn); + effect.setText("It gets +2/+4"); + this.getSpellAbility().addEffect(effect); + + effect = new GainAbilityTargetEffect(ReachAbility.getInstance(), Duration.EndOfTurn); + effect.setText("and gains reach until end of turn"); + this.getSpellAbility().addEffect(effect); + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/cards/s/SpinerockKnoll.java b/Mage.Sets/src/mage/cards/s/SpinerockKnoll.java index ff92c7b8975..ca6dbc120b5 100644 --- a/Mage.Sets/src/mage/cards/s/SpinerockKnoll.java +++ b/Mage.Sets/src/mage/cards/s/SpinerockKnoll.java @@ -27,11 +27,8 @@ */ package mage.cards.s; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.condition.IntCompareCondition; import mage.abilities.costs.common.TapSourceCost; @@ -50,21 +47,25 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.watchers.Watcher; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; +import java.util.UUID; + /** - * * @author emerald000 */ public class SpinerockKnoll extends CardImpl { public SpinerockKnoll(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.LAND},""); + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); // Hideaway this.addAbility(new HideawayAbility()); - + // {tap}: Add {R} to your mana pool. this.addAbility(new RedManaAbility()); - + // {R}, {tap}: You may play the exiled card without paying its mana cost if an opponent was dealt 7 or more damage this turn. Ability ability = new ActivateIfConditionActivatedAbility( Zone.BATTLEFIELD, @@ -88,7 +89,7 @@ public class SpinerockKnoll extends CardImpl { class SpinerockKnollCondition extends IntCompareCondition { SpinerockKnollCondition() { - super(ComparisonType.GreaterThan, 6); + super(ComparisonType.MORE_THAN, 6); } @Override @@ -96,7 +97,7 @@ class SpinerockKnollCondition extends IntCompareCondition { int maxDamageReceived = 0; SpinerockKnollWatcher watcher = (SpinerockKnollWatcher) game.getState().getWatchers().get("SpinerockKnollWatcher", source.getSourceId()); if (watcher != null) { - for (UUID opponentId: game.getOpponents(source.getControllerId())) { + for (UUID opponentId : game.getOpponents(source.getControllerId())) { int damageReceived = watcher.getDamageReceived(opponentId); if (damageReceived > maxDamageReceived) { maxDamageReceived = damageReceived; @@ -132,23 +133,15 @@ class SpinerockKnollWatcher extends Watcher { if (event.getType() == EventType.DAMAGED_PLAYER) { UUID playerId = event.getPlayerId(); if (playerId != null) { - Integer amount = amountOfDamageReceivedThisTurn.get(playerId); - if (amount == null) { - amount = event.getAmount(); - } else { - amount += event.getAmount(); - } + Integer amount = amountOfDamageReceivedThisTurn.getOrDefault(playerId, 0); + amount += event.getAmount(); amountOfDamageReceivedThisTurn.put(playerId, amount); } } } public int getDamageReceived(UUID playerId) { - Integer amount = amountOfDamageReceivedThisTurn.get(playerId); - if (amount != null) { - return amount; - } - return 0; + return amountOfDamageReceivedThisTurn.getOrDefault(playerId, 0); } @Override diff --git a/Mage.Sets/src/mage/cards/s/SpirebluffCanal.java b/Mage.Sets/src/mage/cards/s/SpirebluffCanal.java index fb12010fe5e..68877a6da48 100644 --- a/Mage.Sets/src/mage/cards/s/SpirebluffCanal.java +++ b/Mage.Sets/src/mage/cards/s/SpirebluffCanal.java @@ -29,7 +29,7 @@ package mage.cards.s; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; @@ -53,7 +53,7 @@ public class SpirebluffCanal extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); // Spirebluff Canal enters the battlefield tapped unless you control two or fewer other lands. - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.FEWER_THAN, 3)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.FEWER_THAN, 3)); String abilityText = "tapped unless you control fewer than 3 lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); diff --git a/Mage.Sets/src/mage/cards/s/SpiritMirror.java b/Mage.Sets/src/mage/cards/s/SpiritMirror.java index 7648d3ee077..a49fde06ff3 100644 --- a/Mage.Sets/src/mage/cards/s/SpiritMirror.java +++ b/Mage.Sets/src/mage/cards/s/SpiritMirror.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -69,7 +69,7 @@ public class SpiritMirror extends CardImpl { // At the beginning of your upkeep, if there are no Reflection tokens on the battlefield, create a 2/2 white Reflection creature token. this.addAbility(new ConditionalTriggeredAbility( new BeginningOfUpkeepTriggeredAbility(new CreateTokenEffect(new ReflectionToken()), TargetController.YOU, false), - new PermanentsOnTheBattlefieldCondition(filter, CountType.EQUAL_TO, 0, false), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.EQUAL_TO, 0, false), "At the beginning of your upkeep, if there are no Reflection tokens on the battlefield, create a 2/2 white Reflection creature token")); // {0}: Destroy target Reflection. diff --git a/Mage.Sets/src/mage/cards/s/SpiritOfTheNight.java b/Mage.Sets/src/mage/cards/s/SpiritOfTheNight.java index e186413d9d0..5da19010f44 100644 --- a/Mage.Sets/src/mage/cards/s/SpiritOfTheNight.java +++ b/Mage.Sets/src/mage/cards/s/SpiritOfTheNight.java @@ -27,19 +27,20 @@ */ package mage.cards.s; -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.common.SourceAttackingCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.*; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import java.util.UUID; -import mage.abilities.condition.common.SourceAttackingCondition; /** * @@ -49,7 +50,7 @@ public class SpiritOfTheNight extends CardImpl { public SpiritOfTheNight(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{B}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.subtype.add("Spirit"); @@ -69,7 +70,7 @@ public class SpiritOfTheNight extends CardImpl { this.addAbility(ProtectionAbility.from(ObjectColor.BLACK)); // Spirit of the Night has first strike as long as it's attacking. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()), SourceAttackingCondition.getInstance(), "{this} has first strike as long as it's attacking"))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()), SourceAttackingCondition.instance, "{this} has first strike as long as it's attacking"))); } public SpiritOfTheNight(final SpiritOfTheNight card) { diff --git a/Mage.Sets/src/mage/cards/s/SpiteMalice.java b/Mage.Sets/src/mage/cards/s/SpiteMalice.java index 5d108f25fa8..6f1f957a4fb 100644 --- a/Mage.Sets/src/mage/cards/s/SpiteMalice.java +++ b/Mage.Sets/src/mage/cards/s/SpiteMalice.java @@ -34,6 +34,7 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; +import mage.constants.SpellAbilityType; import mage.filter.FilterSpell; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -47,25 +48,27 @@ import mage.target.common.TargetCreaturePermanent; * @author FenrisulfrX */ public class SpiteMalice extends SplitCard { - - private static final FilterSpell filterNonCreatureSpell = new FilterSpell("noncreature spell"); + + private static final FilterSpell filterNonCreatureSpell = new FilterSpell("noncreature spell"); + static { filterNonCreatureSpell.add(Predicates.not(new CardTypePredicate(CardType.CREATURE))); } - + private static final FilterCreaturePermanent filterNonBlackCreature = new FilterCreaturePermanent("nonblack creature"); + static { filterNonBlackCreature.add(Predicates.not(new ColorPredicate(ObjectColor.BLACK))); } public SpiteMalice(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{U}","{3}{B}",false); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{U}", "{3}{B}", SpellAbilityType.SPLIT); // Spite // Counter target noncreature spell. this.getLeftHalfCard().getSpellAbility().addEffect(new CounterTargetEffect()); - this.getLeftHalfCard().getSpellAbility().addTarget(new TargetSpell(filterNonCreatureSpell)); - + this.getLeftHalfCard().getSpellAbility().addTarget(new TargetSpell(filterNonCreatureSpell)); + // Malice // Destroy target nonblack creature. It can't be regenerated. this.getRightHalfCard().getSpellAbility().addEffect(new DestroyTargetEffect(true)); diff --git a/Mage.Sets/src/mage/cards/s/SplendidAgony.java b/Mage.Sets/src/mage/cards/s/SplendidAgony.java new file mode 100644 index 00000000000..891af44c281 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SplendidAgony.java @@ -0,0 +1,61 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.abilities.effects.common.counter.DistributeCountersEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.counters.CounterType; +import mage.target.common.TargetCreaturePermanentAmount; + +/** + * + * @author fireshoes + */ +public class SplendidAgony extends CardImpl { + + public SplendidAgony(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{B}"); + + // Distribute two -1/-1 counters among one or two target creatures. + getSpellAbility().addEffect(new DistributeCountersEffect(CounterType.M1M1, 2, false, "one or two target creatures")); + getSpellAbility().addTarget(new TargetCreaturePermanentAmount(2)); + + } + + public SplendidAgony(final SplendidAgony card) { + super(card); + } + + @Override + public SplendidAgony copy() { + return new SplendidAgony(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SpringMind.java b/Mage.Sets/src/mage/cards/s/SpringMind.java new file mode 100644 index 00000000000..ae79efa8907 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SpringMind.java @@ -0,0 +1,70 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; +import mage.abilities.keyword.AftermathAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.SpellAbilityType; +import mage.filter.common.FilterBasicLandCard; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author fireshoes + */ +public class SpringMind extends SplitCard { + + public SpringMind(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.INSTANT}, "{2}{G}", "{4}{U}{U}", SpellAbilityType.SPLIT_AFTERMATH); + + // Spring + // Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. + getLeftHalfCard().getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(new FilterBasicLandCard()), true)); + + // Mind + // Aftermath + // Draw two cards. + ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); + getRightHalfCard().getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2)); + } + + public SpringMind(final SpringMind card) { + super(card); + } + + @Override + public SpringMind copy() { + return new SpringMind(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SquallDrifter.java b/Mage.Sets/src/mage/cards/s/SquallDrifter.java index 8ddf51f0429..927166ca7f3 100644 --- a/Mage.Sets/src/mage/cards/s/SquallDrifter.java +++ b/Mage.Sets/src/mage/cards/s/SquallDrifter.java @@ -38,6 +38,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; @@ -49,7 +50,7 @@ public class SquallDrifter extends CardImpl { public SquallDrifter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}"); - this.supertype.add("Snow"); + this.addSuperType(SuperType.SNOW); this.subtype.add("Elemental"); this.power = new MageInt(1); this.toughness = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/s/SquanderedResources.java b/Mage.Sets/src/mage/cards/s/SquanderedResources.java index 89893b24c28..21a2111de64 100644 --- a/Mage.Sets/src/mage/cards/s/SquanderedResources.java +++ b/Mage.Sets/src/mage/cards/s/SquanderedResources.java @@ -27,9 +27,6 @@ */ package mage.cards.s; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.Mana; import mage.abilities.Abilities; import mage.abilities.Ability; @@ -44,6 +41,7 @@ import mage.choices.Choice; import mage.choices.ChoiceColor; import mage.constants.CardType; import mage.constants.ColoredManaSymbol; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; @@ -53,6 +51,10 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -83,7 +85,7 @@ class SquanderedResourcesEffect extends ManaEffect { private static final FilterControlledPermanent filter = new FilterControlledLandPermanent(); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public SquanderedResourcesEffect() { diff --git a/Mage.Sets/src/mage/cards/s/SqueeGoblinNabob.java b/Mage.Sets/src/mage/cards/s/SqueeGoblinNabob.java index bd412857ac6..eb3efdc28a7 100644 --- a/Mage.Sets/src/mage/cards/s/SqueeGoblinNabob.java +++ b/Mage.Sets/src/mage/cards/s/SqueeGoblinNabob.java @@ -27,16 +27,18 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -45,7 +47,7 @@ public class SqueeGoblinNabob extends CardImpl { public SqueeGoblinNabob(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/s/SramSeniorEdificer.java b/Mage.Sets/src/mage/cards/s/SramSeniorEdificer.java index f3bfeb7e513..927f94f6dae 100644 --- a/Mage.Sets/src/mage/cards/s/SramSeniorEdificer.java +++ b/Mage.Sets/src/mage/cards/s/SramSeniorEdificer.java @@ -27,17 +27,19 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -55,7 +57,7 @@ public class SramSeniorEdificer extends CardImpl { public SramSeniorEdificer(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dwarf"); this.subtype.add("Advisor"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/s/StandDeliver.java b/Mage.Sets/src/mage/cards/s/StandDeliver.java index 3e1f1a2ac00..b4b2bd4238d 100644 --- a/Mage.Sets/src/mage/cards/s/StandDeliver.java +++ b/Mage.Sets/src/mage/cards/s/StandDeliver.java @@ -34,6 +34,7 @@ import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SpellAbilityType; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; @@ -44,7 +45,7 @@ import mage.target.common.TargetCreaturePermanent; public class StandDeliver extends SplitCard { public StandDeliver(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{W}","{2}{U}",false); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{W}", "{2}{U}", SpellAbilityType.SPLIT); // Stand // Prevent the next 2 damage that would be dealt to target creature this turn. diff --git a/Mage.Sets/src/mage/cards/s/StarCompass.java b/Mage.Sets/src/mage/cards/s/StarCompass.java index 1bf4c6f8c93..97de986d414 100644 --- a/Mage.Sets/src/mage/cards/s/StarCompass.java +++ b/Mage.Sets/src/mage/cards/s/StarCompass.java @@ -27,9 +27,6 @@ */ package mage.cards.s; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.Mana; import mage.abilities.Abilities; import mage.abilities.Ability; @@ -43,6 +40,7 @@ import mage.choices.Choice; import mage.choices.ChoiceColor; import mage.constants.CardType; import mage.constants.ColoredManaSymbol; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; @@ -51,6 +49,10 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * @author anonymous @@ -102,7 +104,7 @@ class StarCompassManaEffect extends ManaEffect { private static final FilterControlledPermanent filter = new FilterControlledLandPermanent(); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public StarCompassManaEffect() { diff --git a/Mage.Sets/src/mage/cards/s/StarfieldOfNyx.java b/Mage.Sets/src/mage/cards/s/StarfieldOfNyx.java index 39a144b3fc1..fb47c9e549e 100644 --- a/Mage.Sets/src/mage/cards/s/StarfieldOfNyx.java +++ b/Mage.Sets/src/mage/cards/s/StarfieldOfNyx.java @@ -28,7 +28,7 @@ package mage.cards.s; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -88,7 +88,7 @@ public class StarfieldOfNyx extends CardImpl { // As long as you control five or more enchantments, each other non-Aura enchantment you control is a creature in addition to its other types and has base power and base toughness each equal to its converted mana cost. ConditionalContinuousEffect effect = new ConditionalContinuousEffect( - new StarfieldOfNyxEffect(), new PermanentsOnTheBattlefieldCondition(filterEnchantmentYouControl, CountType.MORE_THAN, 4), rule1); + new StarfieldOfNyxEffect(), new PermanentsOnTheBattlefieldCondition(filterEnchantmentYouControl, ComparisonType.MORE_THAN, 4), rule1); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); } @@ -133,7 +133,7 @@ class StarfieldOfNyxEffect extends ContinuousEffectImpl { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { if (!permanent.isCreature()) { - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); } } break; diff --git a/Mage.Sets/src/mage/cards/s/StarkeOfRath.java b/Mage.Sets/src/mage/cards/s/StarkeOfRath.java index cb19ef433ee..6e76ad65bbd 100644 --- a/Mage.Sets/src/mage/cards/s/StarkeOfRath.java +++ b/Mage.Sets/src/mage/cards/s/StarkeOfRath.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -38,12 +37,7 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -53,6 +47,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -69,7 +65,7 @@ public class StarkeOfRath extends CardImpl { public StarkeOfRath(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rogue"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/s/StartFinish.java b/Mage.Sets/src/mage/cards/s/StartFinish.java new file mode 100644 index 00000000000..1f467425ca3 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/StartFinish.java @@ -0,0 +1,79 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.keyword.AftermathAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.SpellAbilityType; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterCreaturePermanent; +import mage.game.permanent.token.WarriorVigilantToken; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class StartFinish extends SplitCard { + + public StartFinish(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{2}{W}", "{2}{B}", SpellAbilityType.SPLIT_AFTERMATH); + + // Start + // Create two 1/1 white Warrior creature tokens with vigilance. + Effect effect = new CreateTokenEffect(new WarriorVigilantToken(), 2); + effect.setText("Create two 1/1 white Warrior creature tokens with vigilance"); + getLeftHalfCard().getSpellAbility().addEffect(effect); + + // Finish + // Aftermath + // As an additional cost to cast Finish, sacrifice a creature. Destroy target creature. + ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); + getRightHalfCard().getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(new FilterControlledCreaturePermanent("a creature")))); + getRightHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent(new FilterCreaturePermanent("creature (to destoy)"))); + getRightHalfCard().getSpellAbility().addEffect(new DestroyTargetEffect("Destroy target creature")); + } + + public StartFinish(final StartFinish card) { + super(card); + } + + @Override + public StartFinish copy() { + return new StartFinish(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/StartYourEngines.java b/Mage.Sets/src/mage/cards/s/StartYourEngines.java index d1edf3c87ea..d7232d26c69 100644 --- a/Mage.Sets/src/mage/cards/s/StartYourEngines.java +++ b/Mage.Sets/src/mage/cards/s/StartYourEngines.java @@ -91,8 +91,8 @@ class StartYourEnginesEffect extends ContinuousEffectImpl { for (Permanent permanent : game.getBattlefield().getAllActivePermanents(source.getControllerId())) { if (permanent != null && permanent.getSubtype(game).contains("Vehicle")) { if (sublayer == SubLayer.NA) { - permanent.getCardType().add(CardType.ARTIFACT); - permanent.getCardType().add(CardType.CREATURE);// TODO: Chcek if giving CREATURE Type is correct + permanent.addCardType(CardType.ARTIFACT); + permanent.addCardType(CardType.CREATURE);// TODO: Chcek if giving CREATURE Type is correct } } } diff --git a/Mage.Sets/src/mage/cards/s/StatuteOfDenial.java b/Mage.Sets/src/mage/cards/s/StatuteOfDenial.java index 83d3b00547e..d6ae746ec40 100644 --- a/Mage.Sets/src/mage/cards/s/StatuteOfDenial.java +++ b/Mage.Sets/src/mage/cards/s/StatuteOfDenial.java @@ -29,7 +29,7 @@ package mage.cards.s; import java.util.UUID; import mage.ObjectColor; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.CounterTargetEffect; @@ -62,7 +62,7 @@ public class StatuteOfDenial extends CardImpl { this.getSpellAbility().addTarget(new TargetSpell()); this.getSpellAbility().addEffect(new ConditionalOneShotEffect( new DrawDiscardControllerEffect(1,1), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0, true), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0, true), "If you control a blue creature, draw a card, then discard a card")); } diff --git a/Mage.Sets/src/mage/cards/s/SteamCatapult.java b/Mage.Sets/src/mage/cards/s/SteamCatapult.java index 75518babb3f..cf73063a490 100644 --- a/Mage.Sets/src/mage/cards/s/SteamCatapult.java +++ b/Mage.Sets/src/mage/cards/s/SteamCatapult.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -42,6 +41,8 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -63,7 +64,7 @@ public class SteamCatapult extends CardImpl { // {tap}: Destroy target tapped creature. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new DestroyTargetEffect(), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new DestroyTargetEffect(), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/Stenchskipper.java b/Mage.Sets/src/mage/cards/s/Stenchskipper.java index dbe49e78993..a0d57145eee 100644 --- a/Mage.Sets/src/mage/cards/s/Stenchskipper.java +++ b/Mage.Sets/src/mage/cards/s/Stenchskipper.java @@ -29,7 +29,7 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.effects.common.SacrificeSourceEffect; @@ -63,7 +63,7 @@ public class Stenchskipper extends CardImpl { TargetController.ANY, new PermanentsOnTheBattlefieldCondition( new FilterControlledCreaturePermanent("Goblin", "if you control no Goblins"), - CountType.FEWER_THAN, + ComparisonType.FEWER_THAN, 1), false)); } diff --git a/Mage.Sets/src/mage/cards/s/SternMarshal.java b/Mage.Sets/src/mage/cards/s/SternMarshal.java index f3bdb10443f..4430a0304db 100644 --- a/Mage.Sets/src/mage/cards/s/SternMarshal.java +++ b/Mage.Sets/src/mage/cards/s/SternMarshal.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -41,6 +40,8 @@ import mage.constants.Duration; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -56,7 +57,7 @@ public class SternMarshal extends CardImpl { // {tap}: Target creature gets +2/+2 until end of turn. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new BoostTargetEffect(2, 2, Duration.EndOfTurn), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new BoostTargetEffect(2, 2, Duration.EndOfTurn), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/StingingShot.java b/Mage.Sets/src/mage/cards/s/StingingShot.java new file mode 100644 index 00000000000..930fe5962cd --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/StingingShot.java @@ -0,0 +1,74 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.counters.CounterType; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.AbilityPredicate; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author stravant + */ +public class StingingShot extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with flying"); + + static { + filter.add(new AbilityPredicate(FlyingAbility.class)); + } + + public StingingShot(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}"); + + // Put three -1/-1 counters on target creature with flying. + getSpellAbility().addTarget(new TargetCreaturePermanent(filter)); + getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.M1M1.createInstance(3))); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + } + + public StingingShot(final StingingShot card) { + super(card); + } + + @Override + public StingingShot copy() { + return new StingingShot(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/StirTheGrave.java b/Mage.Sets/src/mage/cards/s/StirTheGrave.java index 2c47dd5834b..7525dc5c4d7 100644 --- a/Mage.Sets/src/mage/cards/s/StirTheGrave.java +++ b/Mage.Sets/src/mage/cards/s/StirTheGrave.java @@ -27,19 +27,20 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +61,7 @@ public class StirTheGrave extends CardImpl { ability.getTargets().clear(); int xValue = ability.getManaCostsToPay().getX(); FilterCard filter = new FilterCreatureCard("creature card with converted mana cost " + xValue + " or less from your graveyard"); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, xValue + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, xValue + 1)); ability.getTargets().add(new TargetCardInYourGraveyard(filter)); } diff --git a/Mage.Sets/src/mage/cards/s/StirTheSands.java b/Mage.Sets/src/mage/cards/s/StirTheSands.java new file mode 100644 index 00000000000..021188cb164 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/StirTheSands.java @@ -0,0 +1,67 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.abilities.common.CycleTriggeredAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.game.permanent.token.ZombieToken; + +/** + * + * @author fireshoes + */ +public class StirTheSands extends CardImpl { + + public StirTheSands(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{B}{B}"); + + // Create three 2/2 black Zombie creature tokens. + getSpellAbility().addEffect(new CreateTokenEffect(new ZombieToken(), 3)); + + // Cycling {3}{B} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{3}{B}"))); + + // When you cycle Stir the Sands, create a 2/2 black Zombie creature token. + this.addAbility(new CycleTriggeredAbility(new CreateTokenEffect(new ZombieToken()))); + } + + public StirTheSands(final StirTheSands card) { + super(card); + } + + @Override + public StirTheSands copy() { + return new StirTheSands(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/StitcherGeralf.java b/Mage.Sets/src/mage/cards/s/StitcherGeralf.java index 49f300955a1..30f71c35eed 100644 --- a/Mage.Sets/src/mage/cards/s/StitcherGeralf.java +++ b/Mage.Sets/src/mage/cards/s/StitcherGeralf.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -35,13 +34,10 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.game.Game; @@ -49,6 +45,8 @@ import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.TargetCard; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +55,7 @@ public class StitcherGeralf extends CardImpl { public StitcherGeralf(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/s/StoneCatapult.java b/Mage.Sets/src/mage/cards/s/StoneCatapult.java index 8dada2bc5ee..d7998c13e5e 100644 --- a/Mage.Sets/src/mage/cards/s/StoneCatapult.java +++ b/Mage.Sets/src/mage/cards/s/StoneCatapult.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -45,6 +44,8 @@ import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -67,7 +68,7 @@ public class StoneCatapult extends CardImpl { // {tap}: Destroy target tapped nonblack creature. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new DestroyTargetEffect(), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new DestroyTargetEffect(), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/StonebrowKrosanHero.java b/Mage.Sets/src/mage/cards/s/StonebrowKrosanHero.java index f2c8eb2fd86..5a2c69735a8 100644 --- a/Mage.Sets/src/mage/cards/s/StonebrowKrosanHero.java +++ b/Mage.Sets/src/mage/cards/s/StonebrowKrosanHero.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksCreatureYouControlTriggeredAbility; import mage.abilities.effects.Effect; @@ -37,9 +36,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author emerald000 @@ -53,7 +55,7 @@ public class StonebrowKrosanHero extends CardImpl { public StonebrowKrosanHero(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Centaur"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/s/StoneforgeMasterwork.java b/Mage.Sets/src/mage/cards/s/StoneforgeMasterwork.java index 4446847b127..fa3d53ccfe0 100644 --- a/Mage.Sets/src/mage/cards/s/StoneforgeMasterwork.java +++ b/Mage.Sets/src/mage/cards/s/StoneforgeMasterwork.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -43,7 +42,8 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.util.CardUtil; + +import java.util.UUID; /** * @@ -85,7 +85,7 @@ class StoneforgeMasterworkDynamicValue implements DynamicValue { if (equipped != null) { for (Permanent permanent : game.getBattlefield().getAllActivePermanents(new FilterCreaturePermanent(), sourceAbility.getControllerId(), game)) { if (!permanent.getId().equals(equipped.getId())) { - if (CardUtil.shareSubtypes(equipped, permanent, game)) { + if (equipped.shareSubtypes(permanent, game)) { xValue++; } } diff --git a/Mage.Sets/src/mage/cards/s/StranglingSoot.java b/Mage.Sets/src/mage/cards/s/StranglingSoot.java index 77693f0aa72..214f1859f10 100644 --- a/Mage.Sets/src/mage/cards/s/StranglingSoot.java +++ b/Mage.Sets/src/mage/cards/s/StranglingSoot.java @@ -27,7 +27,7 @@ */ package mage.cards.s; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.FlashbackAbility; @@ -35,25 +35,25 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TimingRule; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author ilcartographer */ public class StranglingSoot extends CardImpl { - + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with toughess 3 or less"); - + static { - filter.add(new ToughnessPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ToughnessPredicate(ComparisonType.FEWER_THAN, 4)); } public StranglingSoot(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{B}"); // Destroy target creature with toughness 3 or less. this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter)); diff --git a/Mage.Sets/src/mage/cards/s/StrengthOfArms.java b/Mage.Sets/src/mage/cards/s/StrengthOfArms.java index 3417c37b9ca..6f41beb688d 100644 --- a/Mage.Sets/src/mage/cards/s/StrengthOfArms.java +++ b/Mage.Sets/src/mage/cards/s/StrengthOfArms.java @@ -29,7 +29,7 @@ package mage.cards.s; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; @@ -62,7 +62,7 @@ public class StrengthOfArms extends CardImpl { this.getSpellAbility().addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new CreateTokenEffect(new HumanSoldierToken()), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0), "If you control an Equipment, create a 1/1 white Human Soldier creature token.")); } diff --git a/Mage.Sets/src/mage/cards/s/StudentOfElements.java b/Mage.Sets/src/mage/cards/s/StudentOfElements.java index e135e736755..db8478658cb 100644 --- a/Mage.Sets/src/mage/cards/s/StudentOfElements.java +++ b/Mage.Sets/src/mage/cards/s/StudentOfElements.java @@ -38,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -110,7 +111,7 @@ class TobitaMasterOfWinds extends Token { TobitaMasterOfWinds() { super("Tobita, Master of Winds", ""); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); cardType.add(CardType.CREATURE); color.setBlue(true); subtype.add("Human"); diff --git a/Mage.Sets/src/mage/cards/s/SubterraneanScout.java b/Mage.Sets/src/mage/cards/s/SubterraneanScout.java index 147c3ca4247..21c167383e9 100644 --- a/Mage.Sets/src/mage/cards/s/SubterraneanScout.java +++ b/Mage.Sets/src/mage/cards/s/SubterraneanScout.java @@ -27,19 +27,20 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -49,7 +50,7 @@ public class SubterraneanScout extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public SubterraneanScout(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SulfurFalls.java b/Mage.Sets/src/mage/cards/s/SulfurFalls.java index 2ccd2920ab6..84ae46a19fe 100644 --- a/Mage.Sets/src/mage/cards/s/SulfurFalls.java +++ b/Mage.Sets/src/mage/cards/s/SulfurFalls.java @@ -28,7 +28,7 @@ package mage.cards.s; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; @@ -60,7 +60,7 @@ public class SulfurFalls extends CardImpl { public SulfurFalls(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Island or a Mountain"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlueManaAbility()); diff --git a/Mage.Sets/src/mage/cards/s/SultaiFlayer.java b/Mage.Sets/src/mage/cards/s/SultaiFlayer.java index cdc47658734..06bc0ca1691 100644 --- a/Mage.Sets/src/mage/cards/s/SultaiFlayer.java +++ b/Mage.Sets/src/mage/cards/s/SultaiFlayer.java @@ -27,19 +27,20 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -49,7 +50,7 @@ public class SultaiFlayer extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature you control with toughness 4 or greater"); static { - filter.add(new ToughnessPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 3)); filter.add(new ControllerPredicate(TargetController.YOU)); } diff --git a/Mage.Sets/src/mage/cards/s/SunCeYoungConquerer.java b/Mage.Sets/src/mage/cards/s/SunCeYoungConquerer.java index 859cfd3410c..7e685e7b5cd 100644 --- a/Mage.Sets/src/mage/cards/s/SunCeYoungConquerer.java +++ b/Mage.Sets/src/mage/cards/s/SunCeYoungConquerer.java @@ -36,6 +36,7 @@ import mage.abilities.keyword.HorsemanshipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.target.common.TargetCreaturePermanent; /** @@ -46,7 +47,7 @@ public class SunCeYoungConquerer extends CardImpl { public SunCeYoungConquerer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/s/SunQuanLordOfWu.java b/Mage.Sets/src/mage/cards/s/SunQuanLordOfWu.java index fe52cac8571..a30e27c2d7b 100644 --- a/Mage.Sets/src/mage/cards/s/SunQuanLordOfWu.java +++ b/Mage.Sets/src/mage/cards/s/SunQuanLordOfWu.java @@ -36,6 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; @@ -47,7 +48,7 @@ public class SunQuanLordOfWu extends CardImpl { public SunQuanLordOfWu(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/s/SunTitan.java b/Mage.Sets/src/mage/cards/s/SunTitan.java index cf3994d81c0..7fb74f6ea07 100644 --- a/Mage.Sets/src/mage/cards/s/SunTitan.java +++ b/Mage.Sets/src/mage/cards/s/SunTitan.java @@ -27,20 +27,21 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter.ComparisonType; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -50,7 +51,7 @@ public class SunTitan extends CardImpl { private static final FilterPermanentCard filter = new FilterPermanentCard("permanent card with converted mana cost 3 or less from your graveyard"); static { - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public SunTitan(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SunastianFalconer.java b/Mage.Sets/src/mage/cards/s/SunastianFalconer.java index a9dc24417ef..4ca462c0f10 100644 --- a/Mage.Sets/src/mage/cards/s/SunastianFalconer.java +++ b/Mage.Sets/src/mage/cards/s/SunastianFalconer.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.costs.common.TapSourceCost; @@ -35,8 +34,11 @@ import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LoneFox @@ -45,7 +47,7 @@ public class SunastianFalconer extends CardImpl { public SunastianFalconer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Shaman"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/s/Sunforger.java b/Mage.Sets/src/mage/cards/s/Sunforger.java index d042a2f96d2..d507fef29c0 100644 --- a/Mage.Sets/src/mage/cards/s/Sunforger.java +++ b/Mage.Sets/src/mage/cards/s/Sunforger.java @@ -27,9 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.SpellAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -47,7 +47,6 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterCard; import mage.filter.predicate.Predicate; import mage.filter.predicate.Predicates; @@ -59,6 +58,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -126,7 +127,7 @@ class SunforgerEffect extends OneShotEffect { new ColorPredicate(ObjectColor.RED), new ColorPredicate(ObjectColor.WHITE))); filter.add(new CardTypePredicate(CardType.INSTANT)); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 5)); filter.add(new CardCanBeCastPredicate(source.getControllerId())); if (controller.searchLibrary(target, game, controller.getId())) { UUID targetId = target.getFirstTarget(); diff --git a/Mage.Sets/src/mage/cards/s/SunkenHollow.java b/Mage.Sets/src/mage/cards/s/SunkenHollow.java index d9cd0c0a19a..0fe798a9163 100644 --- a/Mage.Sets/src/mage/cards/s/SunkenHollow.java +++ b/Mage.Sets/src/mage/cards/s/SunkenHollow.java @@ -27,9 +27,7 @@ */ package mage.cards.s; -import java.util.UUID; - -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; @@ -41,9 +39,12 @@ import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -53,7 +54,7 @@ public class SunkenHollow extends CardImpl { private static final FilterLandPermanent filter = new FilterLandPermanent(); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public SunkenHollow(UUID ownerId, CardSetInfo setInfo) { @@ -62,7 +63,7 @@ public class SunkenHollow extends CardImpl { this.subtype.add("Swamp"); // Sunken Hollow enters the battlefield tapped unless you control two or more basic lands. - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1)); String abilityText = "tapped unless you control two or more basic lands"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlueManaAbility()); diff --git a/Mage.Sets/src/mage/cards/s/SunpetalGrove.java b/Mage.Sets/src/mage/cards/s/SunpetalGrove.java index 999081c4b22..07842502233 100644 --- a/Mage.Sets/src/mage/cards/s/SunpetalGrove.java +++ b/Mage.Sets/src/mage/cards/s/SunpetalGrove.java @@ -30,7 +30,7 @@ package mage.cards.s; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; @@ -61,7 +61,7 @@ public class SunpetalGrove extends CardImpl { public SunpetalGrove(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Forest or a Plains"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new GreenManaAbility()); diff --git a/Mage.Sets/src/mage/cards/s/SunscorchedDesert.java b/Mage.Sets/src/mage/cards/s/SunscorchedDesert.java new file mode 100644 index 00000000000..591e6dbca85 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SunscorchedDesert.java @@ -0,0 +1,68 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.TargetPlayer; + +/** + * + * @author fireshoes + */ +public class SunscorchedDesert extends CardImpl { + + public SunscorchedDesert(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + this.subtype.add("Desert"); + + // When Sunscorced Desert enters the battlefield, it deals 1 damage to target player. + Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(1)); + ability.addTarget(new TargetPlayer()); + this.addAbility(ability); + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + } + + public SunscorchedDesert(final SunscorchedDesert card) { + super(card); + } + + @Override + public SunscorchedDesert copy() { + return new SunscorchedDesert(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SunseedNurturer.java b/Mage.Sets/src/mage/cards/s/SunseedNurturer.java index 1fda80c3c0f..630e9c9d5a6 100644 --- a/Mage.Sets/src/mage/cards/s/SunseedNurturer.java +++ b/Mage.Sets/src/mage/cards/s/SunseedNurturer.java @@ -27,8 +27,8 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.mana.ColorlessManaAbility; @@ -36,13 +36,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author North @@ -79,7 +80,7 @@ class SunseedNurturerTriggeredAbility extends TriggeredAbilityImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public SunseedNurturerTriggeredAbility() { diff --git a/Mage.Sets/src/mage/cards/s/SunspearShikari.java b/Mage.Sets/src/mage/cards/s/SunspearShikari.java index a0741ec783e..2618ee2a478 100644 --- a/Mage.Sets/src/mage/cards/s/SunspearShikari.java +++ b/Mage.Sets/src/mage/cards/s/SunspearShikari.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +40,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author nantuko @@ -57,10 +58,10 @@ public class SunspearShikari extends CardImpl { // As long as Sunspear Shikari is equipped, it has first strike and lifelink. ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()), - EquippedSourceCondition.getInstance(), "As long as {this} is equipped, it has first strike"); + EquippedSourceCondition.instance, "As long as {this} is equipped, it has first strike"); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect1); ConditionalContinuousEffect effect2 = new ConditionalContinuousEffect(new GainAbilitySourceEffect(LifelinkAbility.getInstance()), - EquippedSourceCondition.getInstance(), "and lifelink"); + EquippedSourceCondition.instance, "and lifelink"); ability.addEffect(effect2); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SunspireGatekeepers.java b/Mage.Sets/src/mage/cards/s/SunspireGatekeepers.java index f324c5261f1..57d9223d059 100644 --- a/Mage.Sets/src/mage/cards/s/SunspireGatekeepers.java +++ b/Mage.Sets/src/mage/cards/s/SunspireGatekeepers.java @@ -30,7 +30,7 @@ package mage.cards.s; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -67,7 +67,7 @@ public class SunspireGatekeepers extends CardImpl { // When Sunspire Gatekeepers enter the battlefield, if you control two or more Gates, create a 2/2 white Knight creature token with vigilance. this.addAbility(new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new KnightToken())), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1), "When {this} enter the battlefield, if you control two or more Gates, create a 2/2 white Knight creature token with vigilance.")); } diff --git a/Mage.Sets/src/mage/cards/s/Sunstone.java b/Mage.Sets/src/mage/cards/s/Sunstone.java index 0500293dff2..a40654b74b2 100644 --- a/Mage.Sets/src/mage/cards/s/Sunstone.java +++ b/Mage.Sets/src/mage/cards/s/Sunstone.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -38,11 +37,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Quercitron @@ -52,7 +54,7 @@ public class Sunstone extends CardImpl { private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("a snow land"); static { - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); } public Sunstone(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SunstrikeLegionnaire.java b/Mage.Sets/src/mage/cards/s/SunstrikeLegionnaire.java index 5b64ada4f1c..39be0285d8e 100644 --- a/Mage.Sets/src/mage/cards/s/SunstrikeLegionnaire.java +++ b/Mage.Sets/src/mage/cards/s/SunstrikeLegionnaire.java @@ -27,9 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,12 +41,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -58,7 +59,7 @@ public class SunstrikeLegionnaire extends CardImpl { static { untapFilter.add(new AnotherPredicate()); - tapFilter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + tapFilter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public SunstrikeLegionnaire(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/Sunweb.java b/Mage.Sets/src/mage/cards/s/Sunweb.java index 68a15192368..a01ea444fa0 100644 --- a/Mage.Sets/src/mage/cards/s/Sunweb.java +++ b/Mage.Sets/src/mage/cards/s/Sunweb.java @@ -27,8 +27,8 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantBlockCreaturesSourceEffect; import mage.abilities.keyword.DefenderAbility; @@ -37,10 +37,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author Quercitron @@ -49,7 +50,7 @@ public class Sunweb extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public Sunweb(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SupernaturalStamina.java b/Mage.Sets/src/mage/cards/s/SupernaturalStamina.java new file mode 100644 index 00000000000..b2c1c33f3b5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SupernaturalStamina.java @@ -0,0 +1,70 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author anonymous + */ +public class SupernaturalStamina extends CardImpl { + + public SupernaturalStamina(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}"); + + // Until end of turn, target creature gets +2/+0 and gains "When this creature dies, return it to the battlefield tapped under its owner's control." + getSpellAbility().addTarget(new TargetCreaturePermanent()); + getSpellAbility().addEffect(new BoostTargetEffect(2, 0, Duration.EndOfTurn)); + getSpellAbility().addEffect(new GainAbilityTargetEffect( + new DiesTriggeredAbility( + new ReturnSourceFromGraveyardToBattlefieldEffect(true, true), + false), + Duration.EndOfTurn, + "and gains \"When this creature dies, return it to the battlefield tapped under its owner's control.\"" + )); + } + + public SupernaturalStamina(final SupernaturalStamina card) { + super(card); + } + + @Override + public SupernaturalStamina copy() { + return new SupernaturalStamina(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SupplyCaravan.java b/Mage.Sets/src/mage/cards/s/SupplyCaravan.java new file mode 100644 index 00000000000..6807ce70bf1 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SupplyCaravan.java @@ -0,0 +1,77 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.constants.ComparisonType; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.decorator.ConditionalTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.game.permanent.token.WarriorVigilantToken; + +/** + * + * @author fireshoes + */ +public class SupplyCaravan extends CardImpl { + + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("a tapped creature"); + + static { + filter.add(new TappedPredicate()); + } + + public SupplyCaravan(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{W}"); + + this.subtype.add("Camel"); + this.power = new MageInt(3); + this.toughness = new MageInt(5); + + // When Supply Caravan enters the battlefield, if you control a tapped creature, create a 1/1 white Warrior creature token with vigilance. + this.addAbility(new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WarriorVigilantToken())), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0), + "When {this} enters the battlefield, if you control a tapped creature, create a 1/1 white Warrior creature token with vigilance.")); + } + + public SupplyCaravan(final SupplyCaravan card) { + super(card); + } + + @Override + public SupplyCaravan copy() { + return new SupplyCaravan(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SupplyDemand.java b/Mage.Sets/src/mage/cards/s/SupplyDemand.java index f1e4faeae37..4df895a5415 100644 --- a/Mage.Sets/src/mage/cards/s/SupplyDemand.java +++ b/Mage.Sets/src/mage/cards/s/SupplyDemand.java @@ -34,6 +34,7 @@ import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; +import mage.constants.SpellAbilityType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.MulticoloredPredicate; import mage.game.permanent.token.SaprolingToken; @@ -52,7 +53,7 @@ public class SupplyDemand extends SplitCard { } public SupplyDemand(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{G}{W}","{1}{W}{U}",false); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{G}{W}", "{1}{W}{U}", SpellAbilityType.SPLIT); // Supply // create X 1/1 green Saproling creature tokens. diff --git a/Mage.Sets/src/mage/cards/s/SurgicalExtraction.java b/Mage.Sets/src/mage/cards/s/SurgicalExtraction.java index 6da76539b66..e9e2b9e2eac 100644 --- a/Mage.Sets/src/mage/cards/s/SurgicalExtraction.java +++ b/Mage.Sets/src/mage/cards/s/SurgicalExtraction.java @@ -27,17 +27,12 @@ */ package mage.cards.s; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; @@ -50,6 +45,9 @@ import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCardInLibrary; +import java.util.List; +import java.util.UUID; + /** * * @author North @@ -59,7 +57,7 @@ public class SurgicalExtraction extends CardImpl { private static final FilterCard filter = new FilterCard("card in a graveyard other than a basic land card"); static { - filter.add(Predicates.not(Predicates.and(new CardTypePredicate(CardType.LAND), new SupertypePredicate("Basic")))); + filter.add(Predicates.not(Predicates.and(new CardTypePredicate(CardType.LAND), new SupertypePredicate(SuperType.BASIC)))); } public SurgicalExtraction(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SurrakDragonclaw.java b/Mage.Sets/src/mage/cards/s/SurrakDragonclaw.java index 081dcfccaad..44624f9af52 100644 --- a/Mage.Sets/src/mage/cards/s/SurrakDragonclaw.java +++ b/Mage.Sets/src/mage/cards/s/SurrakDragonclaw.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CantBeCounteredAbility; import mage.abilities.common.SimpleStaticAbility; @@ -39,11 +38,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +61,7 @@ public class SurrakDragonclaw extends CardImpl { public SurrakDragonclaw(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{U}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/s/SurrakTheHuntCaller.java b/Mage.Sets/src/mage/cards/s/SurrakTheHuntCaller.java index 177509decd3..c2adcf16d39 100644 --- a/Mage.Sets/src/mage/cards/s/SurrakTheHuntCaller.java +++ b/Mage.Sets/src/mage/cards/s/SurrakTheHuntCaller.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; @@ -39,9 +38,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -50,7 +52,7 @@ public class SurrakTheHuntCaller extends CardImpl { public SurrakTheHuntCaller(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/s/SuspensionField.java b/Mage.Sets/src/mage/cards/s/SuspensionField.java index d008ee0d1a1..f98317b1015 100644 --- a/Mage.Sets/src/mage/cards/s/SuspensionField.java +++ b/Mage.Sets/src/mage/cards/s/SuspensionField.java @@ -27,8 +27,8 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility; import mage.abilities.effects.OneShotEffect; @@ -38,7 +38,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; -import mage.filter.Filter.ComparisonType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.game.Game; @@ -46,6 +45,8 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author emerald000 @@ -55,7 +56,7 @@ public class SuspensionField extends CardImpl { private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with toughness 3 or greater"); static { - filter.add(new ToughnessPredicate(ComparisonType.GreaterThan, 2)); + filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 2)); } public SuspensionField(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/Swat.java b/Mage.Sets/src/mage/cards/s/Swat.java index 36aceffe1d5..0becacac32d 100644 --- a/Mage.Sets/src/mage/cards/s/Swat.java +++ b/Mage.Sets/src/mage/cards/s/Swat.java @@ -27,18 +27,19 @@ */ package mage.cards.s; -import java.util.UUID; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.CyclingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Plopman @@ -48,7 +49,7 @@ public class Swat extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public Swat(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SwelteringSuns.java b/Mage.Sets/src/mage/cards/s/SwelteringSuns.java new file mode 100644 index 00000000000..53066e6b690 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SwelteringSuns.java @@ -0,0 +1,69 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import mage.abilities.effects.common.DamageAllEffect; +import mage.abilities.effects.common.replacement.DealtDamageToCreatureBySourceDies; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.filter.common.FilterCreaturePermanent; +import mage.watchers.common.DamagedByWatcher; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.CyclingAbility; + +/** + * + * @author Darkside- + */ +public class SwelteringSuns extends CardImpl { + + public SwelteringSuns(UUID ownerId, CardSetInfo setInfo) { + super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}{R}"); + + + // Anger of the Gods deals 3 damage to each creature. + this.getSpellAbility().addEffect(new DamageAllEffect(3, new FilterCreaturePermanent())); + + //Cycling {3} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{3}"))); + } + + public SwelteringSuns(final SwelteringSuns card) { + super(card); + } + + @Override + public SwelteringSuns copy() { + return new SwelteringSuns(this); + } +} + diff --git a/Mage.Sets/src/mage/cards/s/SwiftWarkite.java b/Mage.Sets/src/mage/cards/s/SwiftWarkite.java index 6b6af8b7d46..f90c9424f11 100644 --- a/Mage.Sets/src/mage/cards/s/SwiftWarkite.java +++ b/Mage.Sets/src/mage/cards/s/SwiftWarkite.java @@ -27,9 +27,9 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; @@ -47,7 +47,6 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -59,6 +58,8 @@ import mage.target.common.TargetCardInHand; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -95,7 +96,7 @@ class SwiftWarkiteEffect extends OneShotEffect { static { filter.add(new CardTypePredicate(CardType.CREATURE)); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } SwiftWarkiteEffect() { diff --git a/Mage.Sets/src/mage/cards/s/SwordOfKaldra.java b/Mage.Sets/src/mage/cards/s/SwordOfKaldra.java index 785c5dac5db..283e08cc901 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfKaldra.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfKaldra.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,16 +36,15 @@ import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +53,7 @@ public class SwordOfKaldra extends CardImpl { public SwordOfKaldra(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Equipment"); // Equipped creature gets +5/+5. diff --git a/Mage.Sets/src/mage/cards/s/SwordOfTheAnimist.java b/Mage.Sets/src/mage/cards/s/SwordOfTheAnimist.java index 291caa92e0f..78d855dca08 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfTheAnimist.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfTheAnimist.java @@ -38,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterBasicLandCard; import mage.target.common.TargetCardInLibrary; @@ -51,7 +52,7 @@ public class SwordOfTheAnimist extends CardImpl { public SwordOfTheAnimist(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Equipment"); // Equipped creature gets +1/+1. diff --git a/Mage.Sets/src/mage/cards/s/SwordOfTheChosen.java b/Mage.Sets/src/mage/cards/s/SwordOfTheChosen.java index bcad9db503a..a53ddb4b26e 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfTheChosen.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfTheChosen.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -36,11 +35,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -50,12 +52,12 @@ public class SwordOfTheChosen extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("legendary creature"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public SwordOfTheChosen(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Target legendary creature gets +2/+2 until end of turn. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 2, Duration.EndOfTurn), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/s/SwordOfTheMeek.java b/Mage.Sets/src/mage/cards/s/SwordOfTheMeek.java index ee9acf6c798..84fa7fc02bf 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfTheMeek.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfTheMeek.java @@ -27,8 +27,8 @@ */ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -38,12 +38,7 @@ import mage.abilities.keyword.EquipAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.Zone; -import mage.filter.Filter; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.mageobject.ToughnessPredicate; @@ -51,6 +46,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,8 +57,8 @@ public class SwordOfTheMeek extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a 1/1 creature"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.Equal, 1)); - filter.add(new ToughnessPredicate(Filter.ComparisonType.Equal, 1)); + filter.add(new PowerPredicate(ComparisonType.EQUAL_TO, 1)); + filter.add(new ToughnessPredicate(ComparisonType.EQUAL_TO, 1)); } public SwordOfTheMeek(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/s/SydriGalvanicGenius.java b/Mage.Sets/src/mage/cards/s/SydriGalvanicGenius.java index b2e25afafce..4551b656b8f 100644 --- a/Mage.Sets/src/mage/cards/s/SydriGalvanicGenius.java +++ b/Mage.Sets/src/mage/cards/s/SydriGalvanicGenius.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,12 +38,7 @@ import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.Predicates; @@ -53,6 +47,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -69,7 +65,7 @@ public class SydriGalvanicGenius extends CardImpl { public SydriGalvanicGenius(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Artificer"); @@ -125,7 +121,7 @@ class SydriGalvanicGeniusEffect extends ContinuousEffectImpl { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { if (!artifact.isCreature()) { - artifact.getCardType().add(CardType.CREATURE); + artifact.addCardType(CardType.CREATURE); } } break; diff --git a/Mage.Sets/src/mage/cards/s/SyggRiverCutthroat.java b/Mage.Sets/src/mage/cards/s/SyggRiverCutthroat.java index acade927aea..eb44f76f133 100644 --- a/Mage.Sets/src/mage/cards/s/SyggRiverCutthroat.java +++ b/Mage.Sets/src/mage/cards/s/SyggRiverCutthroat.java @@ -27,18 +27,19 @@ */ package mage.cards.s; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; -import mage.abilities.condition.Condition; import mage.abilities.condition.common.OpponentLostLifeCondition; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; +import mage.constants.Zone; + +import java.util.UUID; /** * @@ -48,7 +49,7 @@ public class SyggRiverCutthroat extends CardImpl { public SyggRiverCutthroat(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U/B}{U/B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Merfolk"); this.subtype.add("Rogue"); @@ -59,7 +60,7 @@ public class SyggRiverCutthroat extends CardImpl { this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), TargetController.ANY, - new OpponentLostLifeCondition(Condition.ComparisonType.GreaterThan, 2), + new OpponentLostLifeCondition(ComparisonType.MORE_THAN, 2), true)); } diff --git a/Mage.Sets/src/mage/cards/s/SyggRiverGuide.java b/Mage.Sets/src/mage/cards/s/SyggRiverGuide.java index 0d56835f4da..0212163687f 100644 --- a/Mage.Sets/src/mage/cards/s/SyggRiverGuide.java +++ b/Mage.Sets/src/mage/cards/s/SyggRiverGuide.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,12 +37,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.Target; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,7 +60,7 @@ public class SyggRiverGuide extends CardImpl { public SyggRiverGuide(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Merfolk"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/s/SylvanAdvocate.java b/Mage.Sets/src/mage/cards/s/SylvanAdvocate.java index 68118f06365..3bf42783d5a 100644 --- a/Mage.Sets/src/mage/cards/s/SylvanAdvocate.java +++ b/Mage.Sets/src/mage/cards/s/SylvanAdvocate.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalContinuousEffect; @@ -73,9 +73,9 @@ public class SylvanAdvocate extends CardImpl { // As long as you control six or more lands, Sylvan Advocate and land creatures you control get +2/+2. ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), - new PermanentsOnTheBattlefieldCondition(new FilterControlledLandPermanent(), CountType.MORE_THAN, 5), rule1); + new PermanentsOnTheBattlefieldCondition(new FilterControlledLandPermanent(), ComparisonType.MORE_THAN, 5), rule1); ConditionalContinuousEffect effect2 = new ConditionalContinuousEffect(new BoostControlledEffect(2, 2, Duration.WhileOnBattlefield, filter, true), - new PermanentsOnTheBattlefieldCondition(new FilterControlledLandPermanent(), CountType.MORE_THAN, 5), rule2); + new PermanentsOnTheBattlefieldCondition(new FilterControlledLandPermanent(), ComparisonType.MORE_THAN, 5), rule2); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect1); ability.addEffect(effect2); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/s/SynchronizedStrike.java b/Mage.Sets/src/mage/cards/s/SynchronizedStrike.java new file mode 100644 index 00000000000..53d0258c4d7 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SynchronizedStrike.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.s; + +import java.util.UUID; +import mage.abilities.effects.Effect; + +import mage.abilities.effects.common.UntapTargetEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author stravant + */ +public class SynchronizedStrike extends CardImpl { + + public SynchronizedStrike(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{G}"); + + // Untap up to two target creatures. They each get +2/+2 until end of turn. + getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2)); + getSpellAbility().addEffect(new UntapTargetEffect()); + Effect effect = new BoostTargetEffect(2, 2, Duration.EndOfTurn); + effect.setText("They each get +2/+2 until end of turn"); + getSpellAbility().addEffect(effect); + } + + public SynchronizedStrike(final SynchronizedStrike card) { + super(card); + } + + @Override + public SynchronizedStrike copy() { + return new SynchronizedStrike(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SzadekLordOfSecrets.java b/Mage.Sets/src/mage/cards/s/SzadekLordOfSecrets.java index 9ce46cab504..aa309822c62 100644 --- a/Mage.Sets/src/mage/cards/s/SzadekLordOfSecrets.java +++ b/Mage.Sets/src/mage/cards/s/SzadekLordOfSecrets.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -35,10 +34,7 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.game.Game; import mage.game.events.DamagePlayerEvent; @@ -46,6 +42,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -55,7 +53,7 @@ public class SzadekLordOfSecrets extends CardImpl { public SzadekLordOfSecrets(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/t/TahCropElite.java b/Mage.Sets/src/mage/cards/t/TahCropElite.java new file mode 100644 index 00000000000..37a3ebf8f32 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TahCropElite.java @@ -0,0 +1,71 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.abilities.keyword.ExertAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author fireshoes + */ +public class TahCropElite extends CardImpl { + + public TahCropElite(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}"); + + this.subtype.add("Bird"); + this.subtype.add("Warrior"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // You may exert Tah-Crop Elite as it attacks. When you do, creatures you control get +1/+1 until end of turn. + BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(new BoostControlledEffect(1, 1, Duration.EndOfTurn)); + this.addAbility(new ExertAbility(ability)); + } + + public TahCropElite(final TahCropElite card) { + super(card); + } + + @Override + public TahCropElite copy() { + return new TahCropElite(this); + } +} diff --git a/Mage.Sets/src/mage/cards/t/TahCropSkirmisher.java b/Mage.Sets/src/mage/cards/t/TahCropSkirmisher.java new file mode 100644 index 00000000000..361332c94cd --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TahCropSkirmisher.java @@ -0,0 +1,65 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class TahCropSkirmisher extends CardImpl { + + public TahCropSkirmisher(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}"); + + this.subtype.add("Naga"); + this.subtype.add("Warrior"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Embalm {3}{U} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{3}{U}"), this)); + + } + + public TahCropSkirmisher(final TahCropSkirmisher card) { + super(card); + } + + @Override + public TahCropSkirmisher copy() { + return new TahCropSkirmisher(this); + } +} diff --git a/Mage.Sets/src/mage/cards/t/TahngarthTalruumHero.java b/Mage.Sets/src/mage/cards/t/TahngarthTalruumHero.java index 1839cc5487e..b1b527b26bc 100644 --- a/Mage.Sets/src/mage/cards/t/TahngarthTalruumHero.java +++ b/Mage.Sets/src/mage/cards/t/TahngarthTalruumHero.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,9 +37,12 @@ import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -49,7 +51,7 @@ public class TahngarthTalruumHero extends CardImpl { public TahngarthTalruumHero(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Minotaur"); this.subtype.add("Warrior"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/t/TaintedField.java b/Mage.Sets/src/mage/cards/t/TaintedField.java index 9c477f0be0c..00074fe3dee 100644 --- a/Mage.Sets/src/mage/cards/t/TaintedField.java +++ b/Mage.Sets/src/mage/cards/t/TaintedField.java @@ -29,7 +29,7 @@ package mage.cards.t; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.Mana; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -65,12 +65,12 @@ public class TaintedField extends CardImpl { Zone.BATTLEFIELD, new BasicManaEffect(Mana.WhiteMana(1)), new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0))); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0))); this.addAbility(new ActivateIfConditionManaAbility( Zone.BATTLEFIELD, new BasicManaEffect(Mana.BlackMana(1)), new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0))); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0))); } public TaintedField(final TaintedField card) { diff --git a/Mage.Sets/src/mage/cards/t/TaintedIsle.java b/Mage.Sets/src/mage/cards/t/TaintedIsle.java index 8a9338ada14..9b8ebb155c0 100644 --- a/Mage.Sets/src/mage/cards/t/TaintedIsle.java +++ b/Mage.Sets/src/mage/cards/t/TaintedIsle.java @@ -29,7 +29,7 @@ package mage.cards.t; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.constants.Zone; import mage.Mana; @@ -65,12 +65,12 @@ public class TaintedIsle extends CardImpl { Zone.BATTLEFIELD, new BasicManaEffect(Mana.BlueMana(1)), new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0))); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0))); this.addAbility(new ActivateIfConditionManaAbility( Zone.BATTLEFIELD, new BasicManaEffect(Mana.BlackMana(1)), new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0))); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0))); } diff --git a/Mage.Sets/src/mage/cards/t/TaintedPeak.java b/Mage.Sets/src/mage/cards/t/TaintedPeak.java index e84641cd5b1..2e0fc869383 100644 --- a/Mage.Sets/src/mage/cards/t/TaintedPeak.java +++ b/Mage.Sets/src/mage/cards/t/TaintedPeak.java @@ -29,7 +29,7 @@ package mage.cards.t; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.Mana; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -65,12 +65,12 @@ public class TaintedPeak extends CardImpl { Zone.BATTLEFIELD, new BasicManaEffect(Mana.BlackMana(1)), new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0))); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0))); this.addAbility(new ActivateIfConditionManaAbility( Zone.BATTLEFIELD, new BasicManaEffect(Mana.RedMana(1)), new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0))); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0))); } diff --git a/Mage.Sets/src/mage/cards/t/TaintedWood.java b/Mage.Sets/src/mage/cards/t/TaintedWood.java index d25525413b9..afd783fafb1 100644 --- a/Mage.Sets/src/mage/cards/t/TaintedWood.java +++ b/Mage.Sets/src/mage/cards/t/TaintedWood.java @@ -29,7 +29,7 @@ package mage.cards.t; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.Mana; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -65,12 +65,12 @@ public class TaintedWood extends CardImpl { Zone.BATTLEFIELD, new BasicManaEffect(Mana.BlackMana(1)), new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0))); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0))); this.addAbility(new ActivateIfConditionManaAbility( Zone.BATTLEFIELD, new BasicManaEffect(Mana.GreenMana(1)), new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0))); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0))); } public TaintedWood(final TaintedWood card) { diff --git a/Mage.Sets/src/mage/cards/t/TajNarSwordsmith.java b/Mage.Sets/src/mage/cards/t/TajNarSwordsmith.java index 3e6e2e01e3c..370eebcc0c4 100644 --- a/Mage.Sets/src/mage/cards/t/TajNarSwordsmith.java +++ b/Mage.Sets/src/mage/cards/t/TajNarSwordsmith.java @@ -27,9 +27,9 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.Cost; import mage.abilities.costs.mana.GenericManaCost; @@ -39,7 +39,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; @@ -47,6 +46,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author emerald000 @@ -99,7 +100,7 @@ class TajNarSwordsmithEffect extends OneShotEffect { if (cost.pay(source, game, source.getSourceId(), source.getControllerId(), false, null)) { FilterCard filter = new FilterCard("Equipment card with converted mana cost " + costX + " or less"); filter.add(new SubtypePredicate("Equipment")); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, costX + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, costX + 1)); new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 1, filter), false, true).apply(game, source); return true; } diff --git a/Mage.Sets/src/mage/cards/t/TajicBladeOfTheLegion.java b/Mage.Sets/src/mage/cards/t/TajicBladeOfTheLegion.java index f436f26aafb..05823de0b4d 100644 --- a/Mage.Sets/src/mage/cards/t/TajicBladeOfTheLegion.java +++ b/Mage.Sets/src/mage/cards/t/TajicBladeOfTheLegion.java @@ -27,15 +27,17 @@ */ package mage.cards.t; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.MageInt; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.BattalionAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -45,7 +47,7 @@ public class TajicBladeOfTheLegion extends CardImpl { public TajicBladeOfTheLegion(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/t/TakenoSamuraiGeneral.java b/Mage.Sets/src/mage/cards/t/TakenoSamuraiGeneral.java index 5dae2003200..c42e81577de 100644 --- a/Mage.Sets/src/mage/cards/t/TakenoSamuraiGeneral.java +++ b/Mage.Sets/src/mage/cards/t/TakenoSamuraiGeneral.java @@ -52,7 +52,7 @@ public class TakenoSamuraiGeneral extends CardImpl { public TakenoSamuraiGeneral(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Samurai"); diff --git a/Mage.Sets/src/mage/cards/t/TalasResearcher.java b/Mage.Sets/src/mage/cards/t/TalasResearcher.java index 154bbeb1882..2ceb287c592 100644 --- a/Mage.Sets/src/mage/cards/t/TalasResearcher.java +++ b/Mage.Sets/src/mage/cards/t/TalasResearcher.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes @@ -55,7 +56,8 @@ public class TalasResearcher extends CardImpl { // {tap}: Draw a card. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new DrawCardSourceControllerEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new DrawCardSourceControllerEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); + this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/t/TalrandSkySummoner.java b/Mage.Sets/src/mage/cards/t/TalrandSkySummoner.java index 17fdd128ad0..9d251f8f262 100644 --- a/Mage.Sets/src/mage/cards/t/TalrandSkySummoner.java +++ b/Mage.Sets/src/mage/cards/t/TalrandSkySummoner.java @@ -34,6 +34,7 @@ import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.SuperType; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -55,7 +56,7 @@ public class TalrandSkySummoner extends CardImpl { public TalrandSkySummoner(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Merfolk"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/t/TamiyoFieldResearcher.java b/Mage.Sets/src/mage/cards/t/TamiyoFieldResearcher.java index 99026dce259..3c673bf04c8 100644 --- a/Mage.Sets/src/mage/cards/t/TamiyoFieldResearcher.java +++ b/Mage.Sets/src/mage/cards/t/TamiyoFieldResearcher.java @@ -30,37 +30,26 @@ package mage.cards.t; import java.util.ArrayList; import java.util.List; import java.util.UUID; -import mage.MageObject; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.condition.CompoundCondition; -import mage.abilities.condition.Condition; -import mage.abilities.condition.common.SourceIsSpellCondition; -import mage.abilities.costs.AlternativeCostSourceAbility; -import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.GetEmblemEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.effects.common.continuous.CastFromHandWithoutPayingManaCostEffect; -import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.cards.SplitCardHalf; import mage.constants.CardType; import mage.constants.Duration; -import mage.constants.Layer; import mage.constants.Outcome; -import mage.constants.SubLayer; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; -import mage.filter.common.FilterNonlandCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; @@ -68,7 +57,6 @@ import mage.game.command.Emblem; import mage.game.events.DamagedEvent; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; -import mage.game.stack.Spell; import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/t/TamiyosJournal.java b/Mage.Sets/src/mage/cards/t/TamiyosJournal.java index 74e97374fee..f6b025f8f6b 100644 --- a/Mage.Sets/src/mage/cards/t/TamiyosJournal.java +++ b/Mage.Sets/src/mage/cards/t/TamiyosJournal.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +37,7 @@ import mage.abilities.effects.keyword.InvestigateEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; @@ -45,6 +45,8 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -59,7 +61,7 @@ public class TamiyosJournal extends CardImpl { public TamiyosJournal(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{5}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // At the beginning of your upkeep, investigate (Create a colorless Clue artifact token with \"{2}, Sacrifice this artifact: Draw a card.\"). this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new InvestigateEffect(), TargetController.YOU, false)); diff --git a/Mage.Sets/src/mage/cards/t/TanaTheBloodsower.java b/Mage.Sets/src/mage/cards/t/TanaTheBloodsower.java index 26f875a7ca3..c9a10e1433b 100644 --- a/Mage.Sets/src/mage/cards/t/TanaTheBloodsower.java +++ b/Mage.Sets/src/mage/cards/t/TanaTheBloodsower.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -39,10 +38,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.game.Game; import mage.game.permanent.token.SaprolingToken; import mage.players.Player; +import java.util.UUID; + /** * * @author spjspj @@ -52,7 +54,7 @@ public class TanaTheBloodsower extends CardImpl { public TanaTheBloodsower(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Druid"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/t/Taniwha.java b/Mage.Sets/src/mage/cards/t/Taniwha.java index e5446c716ad..2ab177bec71 100644 --- a/Mage.Sets/src/mage/cards/t/Taniwha.java +++ b/Mage.Sets/src/mage/cards/t/Taniwha.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -38,12 +37,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterControlledLandPermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes @@ -52,7 +54,7 @@ public class Taniwha extends CardImpl { public Taniwha(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Serpent"); this.power = new MageInt(7); this.toughness = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/t/TarielReckonerOfSouls.java b/Mage.Sets/src/mage/cards/t/TarielReckonerOfSouls.java index e5f1886ef80..daced1521de 100644 --- a/Mage.Sets/src/mage/cards/t/TarielReckonerOfSouls.java +++ b/Mage.Sets/src/mage/cards/t/TarielReckonerOfSouls.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -35,19 +34,18 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.VigilanceAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,7 +54,7 @@ public class TarielReckonerOfSouls extends CardImpl { public TarielReckonerOfSouls(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Angel"); this.power = new MageInt(4); this.toughness = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/t/TaroxBladewing.java b/Mage.Sets/src/mage/cards/t/TaroxBladewing.java index 299db58fc85..b855e1c9103 100644 --- a/Mage.Sets/src/mage/cards/t/TaroxBladewing.java +++ b/Mage.Sets/src/mage/cards/t/TaroxBladewing.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.abilityword.GrandeurAbility; import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount; @@ -38,6 +37,9 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -47,7 +49,7 @@ public class TaroxBladewing extends CardImpl { public TaroxBladewing(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/t/TasigurTheGoldenFang.java b/Mage.Sets/src/mage/cards/t/TasigurTheGoldenFang.java index 6de60b178ef..c15f5ca5d66 100644 --- a/Mage.Sets/src/mage/cards/t/TasigurTheGoldenFang.java +++ b/Mage.Sets/src/mage/cards/t/TasigurTheGoldenFang.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterNonlandCard; import mage.filter.predicate.other.OwnerIdPredicate; @@ -49,6 +49,8 @@ import mage.target.Target; import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +59,7 @@ public class TasigurTheGoldenFang extends CardImpl { public TasigurTheGoldenFang(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Shaman"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/t/TatsumasaTheDragonsFang.java b/Mage.Sets/src/mage/cards/t/TatsumasaTheDragonsFang.java index 90758ebf672..f4df6dc7da7 100644 --- a/Mage.Sets/src/mage/cards/t/TatsumasaTheDragonsFang.java +++ b/Mage.Sets/src/mage/cards/t/TatsumasaTheDragonsFang.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -44,10 +43,7 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; @@ -56,6 +52,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -64,7 +62,7 @@ public class TatsumasaTheDragonsFang extends CardImpl { public TatsumasaTheDragonsFang(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{6}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Equipment"); // Equipped creature gets +5/+5. diff --git a/Mage.Sets/src/mage/cards/t/TatteredMummy.java b/Mage.Sets/src/mage/cards/t/TatteredMummy.java new file mode 100644 index 00000000000..b96dc4a4e85 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TatteredMummy.java @@ -0,0 +1,64 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.LoseLifeOpponentsEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class TatteredMummy extends CardImpl { + + public TatteredMummy(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}"); + + this.subtype.add("Zombie"); + this.subtype.add("Jackal"); + this.power = new MageInt(1); + this.toughness = new MageInt(2); + + // When Tattered Mummy dies, each opponent loses 2 life. + this.addAbility(new DiesTriggeredAbility(new LoseLifeOpponentsEffect(2))); + } + + public TatteredMummy(final TatteredMummy card) { + super(card); + } + + @Override + public TatteredMummy copy() { + return new TatteredMummy(this); + } +} diff --git a/Mage.Sets/src/mage/cards/t/TawnossWand.java b/Mage.Sets/src/mage/cards/t/TawnossWand.java index ba7a821057a..1c24ad38c9e 100644 --- a/Mage.Sets/src/mage/cards/t/TawnossWand.java +++ b/Mage.Sets/src/mage/cards/t/TawnossWand.java @@ -27,8 +27,8 @@ */ package mage.cards.t; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,11 +37,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author MarcoMarin @@ -51,7 +52,7 @@ public class TawnossWand extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 2 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } public TawnossWand(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/TectonicEdge.java b/Mage.Sets/src/mage/cards/t/TectonicEdge.java index 96cc829c3ad..91b7589d698 100644 --- a/Mage.Sets/src/mage/cards/t/TectonicEdge.java +++ b/Mage.Sets/src/mage/cards/t/TectonicEdge.java @@ -30,7 +30,7 @@ package mage.cards.t; import java.util.UUID; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.condition.common.OpponentControlsPermanentCondition; import mage.abilities.costs.Cost; @@ -67,7 +67,7 @@ public class TectonicEdge extends CardImpl { new ManaCostsImpl("{1}"), new OpponentControlsPermanentCondition( new FilterLandPermanent("an opponent controls four or more lands"), - CountType.MORE_THAN, 3)); + ComparisonType.MORE_THAN, 3)); ability.addCost(new TapSourceCost()); ability.addCost(new SacrificeSourceCost()); ability.addTarget(new TargetNonBasicLandPermanent()); diff --git a/Mage.Sets/src/mage/cards/t/TeferiMageOfZhalfir.java b/Mage.Sets/src/mage/cards/t/TeferiMageOfZhalfir.java index 5749d00991e..4c2d884ab37 100644 --- a/Mage.Sets/src/mage/cards/t/TeferiMageOfZhalfir.java +++ b/Mage.Sets/src/mage/cards/t/TeferiMageOfZhalfir.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -38,16 +37,13 @@ import mage.abilities.keyword.FlashAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,7 +52,7 @@ public class TeferiMageOfZhalfir extends CardImpl { public TeferiMageOfZhalfir(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/t/TeferisIsle.java b/Mage.Sets/src/mage/cards/t/TeferisIsle.java index 3ba8b5ff9c8..dd6c37c2d7e 100644 --- a/Mage.Sets/src/mage/cards/t/TeferisIsle.java +++ b/Mage.Sets/src/mage/cards/t/TeferisIsle.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.Mana; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -36,8 +35,11 @@ import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author LevelX2 @@ -46,7 +48,7 @@ public class TeferisIsle extends CardImpl { public TeferisIsle(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Phasing this.addAbility(PhasingAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/t/TeferisRealm.java b/Mage.Sets/src/mage/cards/t/TeferisRealm.java index c72e6b481da..eb3d2c2cd04 100644 --- a/Mage.Sets/src/mage/cards/t/TeferisRealm.java +++ b/Mage.Sets/src/mage/cards/t/TeferisRealm.java @@ -38,6 +38,7 @@ import mage.choices.Choice; import mage.choices.ChoiceImpl; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; @@ -56,7 +57,7 @@ public class TeferisRealm extends CardImpl { public TeferisRealm(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}{U}"); - this.supertype.add("World"); + addSuperType(SuperType.WORLD); // At the beginning of each player's upkeep, that player chooses artifact, creature, land, or non-Aura enchantment. All nontoken permanents of that type phase out. this.addAbility(new BeginningOfUpkeepTriggeredAbility(new TeferisRealmEffect(), TargetController.ANY, false)); diff --git a/Mage.Sets/src/mage/cards/t/TemmetVizierOfNaktamun.java b/Mage.Sets/src/mage/cards/t/TemmetVizierOfNaktamun.java new file mode 100644 index 00000000000..a0fd603e887 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TemmetVizierOfNaktamun.java @@ -0,0 +1,90 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.BeginningOfCombatTriggeredAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; +import mage.constants.TargetController; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.permanent.TokenPredicate; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class TemmetVizierOfNaktamun extends CardImpl { + + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature token you control"); + + static { + filter.add(new TokenPredicate()); + } + + public TemmetVizierOfNaktamun(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}{U}"); + + addSuperType(SuperType.LEGENDARY); + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // At the beginning of combat on your turn, target creature token you control gets +1/+1 until end of turn and can't be blocked this turn. + Ability ability = new BeginningOfCombatTriggeredAbility(new BoostTargetEffect(1, 1, Duration.EndOfTurn), TargetController.YOU, false); + Effect effect = new CantBeBlockedTargetEffect(); + effect.setText(" and can't be blocked this turn"); + ability.addEffect(effect); + ability.addTarget(new TargetControlledCreaturePermanent(filter)); + this.addAbility(ability); + + // Embalm {3}{W}{U} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{3}{W}{U}"), this)); + } + + public TemmetVizierOfNaktamun(final TemmetVizierOfNaktamun card) { + super(card); + } + + @Override + public TemmetVizierOfNaktamun copy() { + return new TemmetVizierOfNaktamun(this); + } +} diff --git a/Mage.Sets/src/mage/cards/t/TempleElder.java b/Mage.Sets/src/mage/cards/t/TempleElder.java index 8fc8b537e54..b57ce427419 100644 --- a/Mage.Sets/src/mage/cards/t/TempleElder.java +++ b/Mage.Sets/src/mage/cards/t/TempleElder.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -39,6 +38,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes @@ -54,7 +55,7 @@ public class TempleElder extends CardImpl { // {tap}: You gain 1 life. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new GainLifeEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new GainLifeEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/t/TempleOfTheFalseGod.java b/Mage.Sets/src/mage/cards/t/TempleOfTheFalseGod.java index 439b8d65d6e..31333db727e 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfTheFalseGod.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfTheFalseGod.java @@ -29,7 +29,7 @@ package mage.cards.t; import java.util.UUID; import mage.Mana; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.BasicManaEffect; @@ -56,7 +56,7 @@ public class TempleOfTheFalseGod extends CardImpl { Zone.BATTLEFIELD, new BasicManaEffect(Mana.ColorlessMana(2)), new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 4))); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 4))); } public TempleOfTheFalseGod(final TempleOfTheFalseGod card) { diff --git a/Mage.Sets/src/mage/cards/t/TemurAscendancy.java b/Mage.Sets/src/mage/cards/t/TemurAscendancy.java index d0894bf6a21..cd8a6fedc72 100644 --- a/Mage.Sets/src/mage/cards/t/TemurAscendancy.java +++ b/Mage.Sets/src/mage/cards/t/TemurAscendancy.java @@ -27,7 +27,7 @@ */ package mage.cards.t; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -38,11 +38,12 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -51,7 +52,7 @@ public class TemurAscendancy extends CardImpl { final private static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 4 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public TemurAscendancy(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/TemurCharm.java b/Mage.Sets/src/mage/cards/t/TemurCharm.java index 641d9a7c547..89b5949621c 100644 --- a/Mage.Sets/src/mage/cards/t/TemurCharm.java +++ b/Mage.Sets/src/mage/cards/t/TemurCharm.java @@ -27,7 +27,7 @@ */ package mage.cards.t; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.Effect; @@ -36,17 +36,19 @@ import mage.abilities.effects.common.FightTargetsEffect; import mage.abilities.effects.common.combat.CantBlockAllEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; -import mage.cards.CardSetInfo;import mage.target.Target; -import mage.target.common.TargetControlledCreaturePermanent; -import mage.target.common.TargetCreaturePermanent; +import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.TargetController; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import mage.target.Target; import mage.target.TargetSpell; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; /** * @@ -59,7 +61,7 @@ public class TemurCharm extends CardImpl { static { filter.add(new ControllerPredicate(TargetController.NOT_YOU)); - filterCantBlock.add(new PowerPredicate(Filter.ComparisonType.LessThan, 4)); + filterCantBlock.add(new PowerPredicate(ComparisonType.FEWER_THAN, 4)); } public TemurCharm(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/TenebTheHarvester.java b/Mage.Sets/src/mage/cards/t/TenebTheHarvester.java index 7841a13582e..8c42c31f6ca 100644 --- a/Mage.Sets/src/mage/cards/t/TenebTheHarvester.java +++ b/Mage.Sets/src/mage/cards/t/TenebTheHarvester.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -38,10 +37,13 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterCreatureCard; import mage.target.Target; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -50,7 +52,7 @@ public class TenebTheHarvester extends CardImpl { public TenebTheHarvester(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/t/TenzaGodosMaul.java b/Mage.Sets/src/mage/cards/t/TenzaGodosMaul.java index 7017f7aacd7..a0b2939c3c1 100644 --- a/Mage.Sets/src/mage/cards/t/TenzaGodosMaul.java +++ b/Mage.Sets/src/mage/cards/t/TenzaGodosMaul.java @@ -29,11 +29,6 @@ */ package mage.cards.t; -import java.util.UUID; - -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Zone; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.AttachedToMatchesFilterCondition; @@ -45,14 +40,15 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.Outcome; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** - * * @author LevelX */ @@ -65,20 +61,20 @@ public class TenzaGodosMaul extends CardImpl { private static final FilterCreaturePermanent redFilter = new FilterCreaturePermanent("red"); static { - legendaryFilter.add(new SupertypePredicate("Legendary")); + legendaryFilter.add(new SupertypePredicate(SuperType.LEGENDARY)); redFilter.add(new ColorPredicate(ObjectColor.RED)); } public TenzaGodosMaul(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); - this.supertype.add("Legendary"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Equipment"); // Equipped creature gets +1/+1. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1))); // As long as it's legendary, it gets an additional +2/+2. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BoostEquippedEffect(2, 2), + new BoostEquippedEffect(2, 2), new AttachedToMatchesFilterCondition(legendaryFilter), rule1))); // As long as it's red, it has trample. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( @@ -96,7 +92,7 @@ public class TenzaGodosMaul extends CardImpl { @Override public TenzaGodosMaul copy() { return new TenzaGodosMaul(this); - } + } } diff --git a/Mage.Sets/src/mage/cards/t/TerashisVerdict.java b/Mage.Sets/src/mage/cards/t/TerashisVerdict.java index 1a23445cc7b..dd314fa1f22 100644 --- a/Mage.Sets/src/mage/cards/t/TerashisVerdict.java +++ b/Mage.Sets/src/mage/cards/t/TerashisVerdict.java @@ -27,16 +27,17 @@ */ package mage.cards.t; -import java.util.UUID; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; import mage.filter.common.FilterAttackingCreature; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetAttackingCreature; +import java.util.UUID; + /** * * @author Loki @@ -46,7 +47,7 @@ public class TerashisVerdict extends CardImpl { private static final FilterAttackingCreature filter = new FilterAttackingCreature("attacking creature with power 3 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 4)); } public TerashisVerdict(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/TestamentOfFaith.java b/Mage.Sets/src/mage/cards/t/TestamentOfFaith.java index 752516f6275..4e864b2520e 100644 --- a/Mage.Sets/src/mage/cards/t/TestamentOfFaith.java +++ b/Mage.Sets/src/mage/cards/t/TestamentOfFaith.java @@ -112,7 +112,7 @@ class TestamentOfFaithBecomesCreatureSourceEffect extends ContinuousEffectImpl i if (!token.getCardType().isEmpty()) { for (CardType t : token.getCardType()) { if (!permanent.getCardType().contains(t)) { - permanent.getCardType().add(t); + permanent.addCardType(t); } } } diff --git a/Mage.Sets/src/mage/cards/t/TetheredGriffin.java b/Mage.Sets/src/mage/cards/t/TetheredGriffin.java index 5ef9d0f6887..7902996ce51 100644 --- a/Mage.Sets/src/mage/cards/t/TetheredGriffin.java +++ b/Mage.Sets/src/mage/cards/t/TetheredGriffin.java @@ -27,17 +27,18 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterEnchantmentPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -55,7 +56,7 @@ public class TetheredGriffin extends CardImpl { // When you control no enchantments, sacrifice Tethered Griffin. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterEnchantmentPermanent(), Filter.ComparisonType.Equal, 0, + new FilterEnchantmentPermanent(), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); } diff --git a/Mage.Sets/src/mage/cards/t/TethmosHighPriest.java b/Mage.Sets/src/mage/cards/t/TethmosHighPriest.java index 4958a8faa88..896bd5f5b2f 100644 --- a/Mage.Sets/src/mage/cards/t/TethmosHighPriest.java +++ b/Mage.Sets/src/mage/cards/t/TethmosHighPriest.java @@ -27,20 +27,21 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.keyword.HeroicAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -50,7 +51,7 @@ public class TethmosHighPriest extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("creature card with converted mana cost 2 or less from your graveyard"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); } public TethmosHighPriest(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/TetsuoUmezawa.java b/Mage.Sets/src/mage/cards/t/TetsuoUmezawa.java index 0c2695b330f..93e8f4fc699 100644 --- a/Mage.Sets/src/mage/cards/t/TetsuoUmezawa.java +++ b/Mage.Sets/src/mage/cards/t/TetsuoUmezawa.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,10 +37,7 @@ import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.BlockingPredicate; @@ -52,6 +48,8 @@ import mage.game.permanent.Permanent; import mage.game.stack.StackObject; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author JRHerlehy @@ -68,7 +66,7 @@ public class TetsuoUmezawa extends CardImpl { public TetsuoUmezawa(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Archer"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/t/TeysaEnvoyOfGhosts.java b/Mage.Sets/src/mage/cards/t/TeysaEnvoyOfGhosts.java index 7b7d4aecd2e..0edc6e2cb9a 100644 --- a/Mage.Sets/src/mage/cards/t/TeysaEnvoyOfGhosts.java +++ b/Mage.Sets/src/mage/cards/t/TeysaEnvoyOfGhosts.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.CreateTokenEffect; @@ -38,6 +37,7 @@ import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -47,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +57,7 @@ public class TeysaEnvoyOfGhosts extends CardImpl { public TeysaEnvoyOfGhosts(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); diff --git a/Mage.Sets/src/mage/cards/t/TeysaOrzhovScion.java b/Mage.Sets/src/mage/cards/t/TeysaOrzhovScion.java index 5e72e843d2c..72267755b4a 100644 --- a/Mage.Sets/src/mage/cards/t/TeysaOrzhovScion.java +++ b/Mage.Sets/src/mage/cards/t/TeysaOrzhovScion.java @@ -39,6 +39,7 @@ import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; @@ -67,7 +68,7 @@ public class TeysaOrzhovScion extends CardImpl { public TeysaOrzhovScion(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{B}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); diff --git a/Mage.Sets/src/mage/cards/t/TezzeretTheSeeker.java b/Mage.Sets/src/mage/cards/t/TezzeretTheSeeker.java index e70262927ba..9db4bfec204 100644 --- a/Mage.Sets/src/mage/cards/t/TezzeretTheSeeker.java +++ b/Mage.Sets/src/mage/cards/t/TezzeretTheSeeker.java @@ -27,9 +27,8 @@ */ package mage.cards.t; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; import mage.abilities.costs.Cost; @@ -40,13 +39,7 @@ import mage.abilities.effects.common.UntapTargetEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; +import mage.constants.*; import mage.filter.common.FilterArtifactCard; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -56,6 +49,9 @@ import mage.players.Player; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetCardInLibrary; +import java.util.List; +import java.util.UUID; + /** * * @author North @@ -119,7 +115,7 @@ class TezzeretTheSeekerEffect2 extends OneShotEffect { } FilterArtifactCard filter = new FilterArtifactCard("artifact card with converted mana cost " + cmc + " or less"); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, cmc + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, cmc + 1)); TargetCardInLibrary target = new TargetCardInLibrary(filter); if (controller.searchLibrary(target, game)) { @@ -160,10 +156,10 @@ class TezzeretTheSeekerEffect3 extends ContinuousEffectImpl { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { if (!permanent.isArtifact()) { - permanent.getCardType().add(CardType.ARTIFACT); + permanent.addCardType(CardType.ARTIFACT); } if (!permanent.isCreature()) { - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); } permanent.getSubtype(game).clear(); } diff --git a/Mage.Sets/src/mage/cards/t/TezzeretsAmbition.java b/Mage.Sets/src/mage/cards/t/TezzeretsAmbition.java index 8e120e76d84..acc3f2e72f4 100644 --- a/Mage.Sets/src/mage/cards/t/TezzeretsAmbition.java +++ b/Mage.Sets/src/mage/cards/t/TezzeretsAmbition.java @@ -29,7 +29,7 @@ package mage.cards.t; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; @@ -59,7 +59,7 @@ public class TezzeretsAmbition extends CardImpl { this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(3)); this.getSpellAbility().addEffect(new ConditionalOneShotEffect( new DiscardControllerEffect(1), - new PermanentsOnTheBattlefieldCondition(filter, CountType.EQUAL_TO, 0))); + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.EQUAL_TO, 0))); } public TezzeretsAmbition(final TezzeretsAmbition card) { diff --git a/Mage.Sets/src/mage/cards/t/ThadaAdelAcquisitor.java b/Mage.Sets/src/mage/cards/t/ThadaAdelAcquisitor.java index c9a9bf02f67..1da1ef37c6b 100644 --- a/Mage.Sets/src/mage/cards/t/ThadaAdelAcquisitor.java +++ b/Mage.Sets/src/mage/cards/t/ThadaAdelAcquisitor.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -39,17 +38,15 @@ import mage.abilities.keyword.IslandwalkAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterArtifactCard; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -58,7 +55,7 @@ public class ThadaAdelAcquisitor extends CardImpl { public ThadaAdelAcquisitor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Merfolk"); this.subtype.add("Rogue"); diff --git a/Mage.Sets/src/mage/cards/t/ThaliaGuardianOfThraben.java b/Mage.Sets/src/mage/cards/t/ThaliaGuardianOfThraben.java index 8651c179d16..05cc8d63102 100644 --- a/Mage.Sets/src/mage/cards/t/ThaliaGuardianOfThraben.java +++ b/Mage.Sets/src/mage/cards/t/ThaliaGuardianOfThraben.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.SpellAbility; @@ -38,14 +37,12 @@ import mage.abilities.keyword.FlashbackAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.CostModificationType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author BetaSteward @@ -54,7 +51,7 @@ public class ThaliaGuardianOfThraben extends CardImpl { public ThaliaGuardianOfThraben(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/t/ThaliaHereticCathar.java b/Mage.Sets/src/mage/cards/t/ThaliaHereticCathar.java index 1dfcdcc0df0..847f42b8ab3 100644 --- a/Mage.Sets/src/mage/cards/t/ThaliaHereticCathar.java +++ b/Mage.Sets/src/mage/cards/t/ThaliaHereticCathar.java @@ -35,10 +35,7 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.EntersTheBattlefieldEvent; import mage.game.events.GameEvent; @@ -52,7 +49,7 @@ public class ThaliaHereticCathar extends CardImpl { public ThaliaHereticCathar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(3); @@ -105,7 +102,7 @@ class ThaliaTapEffect extends ReplacementEffectImpl { if (game.getOpponents(source.getControllerId()).contains(event.getPlayerId())) { Permanent permanent = ((EntersTheBattlefieldEvent) event).getTarget(); if (permanent != null && (permanent.isCreature() || - (permanent.isLand() && !permanent.getSupertype().contains("Basic")))) { + (permanent.isLand() && !permanent.isBasic()))) { return true; } } diff --git a/Mage.Sets/src/mage/cards/t/ThaliasLancers.java b/Mage.Sets/src/mage/cards/t/ThaliasLancers.java index e7ec4b8343d..53a6c64fee7 100644 --- a/Mage.Sets/src/mage/cards/t/ThaliasLancers.java +++ b/Mage.Sets/src/mage/cards/t/ThaliasLancers.java @@ -36,6 +36,7 @@ import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInLibrary; @@ -49,7 +50,7 @@ public class ThaliasLancers extends CardImpl { private static final FilterCard filter = new FilterCard("legendary card"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public ThaliasLancers(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/ThassaGodOfTheSea.java b/Mage.Sets/src/mage/cards/t/ThassaGodOfTheSea.java index 54827573cff..0117da13155 100644 --- a/Mage.Sets/src/mage/cards/t/ThassaGodOfTheSea.java +++ b/Mage.Sets/src/mage/cards/t/ThassaGodOfTheSea.java @@ -28,7 +28,6 @@ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -38,18 +37,16 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.DevotionCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; -import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.effects.common.continuous.LoseCreatureTypeSourceEffect; +import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +56,7 @@ public class ThassaGodOfTheSea extends CardImpl { public ThassaGodOfTheSea(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.CREATURE},"{2}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/t/ThatWhichWasTaken.java b/Mage.Sets/src/mage/cards/t/ThatWhichWasTaken.java index b0462c585fc..23fdf108de9 100644 --- a/Mage.Sets/src/mage/cards/t/ThatWhichWasTaken.java +++ b/Mage.Sets/src/mage/cards/t/ThatWhichWasTaken.java @@ -27,9 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -41,6 +38,9 @@ import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.FilterPermanent; @@ -48,6 +48,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.CounterPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** @@ -66,7 +68,7 @@ public class ThatWhichWasTaken extends CardImpl { public ThatWhichWasTaken(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {4}, {T}: Put a divinity counter on target permanent other than That Which Was Taken. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.DIVINITY.createInstance()), new GenericManaCost(4)); diff --git a/Mage.Sets/src/mage/cards/t/TheAbyss.java b/Mage.Sets/src/mage/cards/t/TheAbyss.java index c89a472c2b5..741e5054b82 100644 --- a/Mage.Sets/src/mage/cards/t/TheAbyss.java +++ b/Mage.Sets/src/mage/cards/t/TheAbyss.java @@ -33,6 +33,7 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -52,7 +53,7 @@ public class TheAbyss extends CardImpl { public TheAbyss(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{B}"); - this.supertype.add("World"); + addSuperType(SuperType.WORLD); // At the beginning of each player's upkeep, destroy target nonartifact creature that player controls of his or her choice. It can't be regenerated. this.addAbility(new TheAbyssTriggeredAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TheChainVeil.java b/Mage.Sets/src/mage/cards/t/TheChainVeil.java index cd2e2a08d15..e88302184de 100644 --- a/Mage.Sets/src/mage/cards/t/TheChainVeil.java +++ b/Mage.Sets/src/mage/cards/t/TheChainVeil.java @@ -27,9 +27,6 @@ */ package mage.cards.t; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; @@ -41,20 +38,17 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; -import mage.constants.WatcherScope; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.stack.StackObject; import mage.players.Player; import mage.watchers.Watcher; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 @@ -63,7 +57,7 @@ public class TheChainVeil extends CardImpl { public TheChainVeil(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // At the beginning of your end step, if you didn't activate a loyalty ability of a planeswalker this turn, you lose 2 life. this.addAbility(new BeginningOfEndStepTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/t/TheDeathStar.java b/Mage.Sets/src/mage/cards/t/TheDeathStar.java index a0f4e157379..e61d0eb37ae 100644 --- a/Mage.Sets/src/mage/cards/t/TheDeathStar.java +++ b/Mage.Sets/src/mage/cards/t/TheDeathStar.java @@ -41,6 +41,7 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.target.TargetPermanent; @@ -54,7 +55,7 @@ public class TheDeathStar extends CardImpl { public TheDeathStar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TheGitrogMonster.java b/Mage.Sets/src/mage/cards/t/TheGitrogMonster.java index 96823e0cc6c..5f1fdc2b539 100644 --- a/Mage.Sets/src/mage/cards/t/TheGitrogMonster.java +++ b/Mage.Sets/src/mage/cards/t/TheGitrogMonster.java @@ -27,9 +27,6 @@ */ package mage.cards.t; -import java.util.List; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -42,16 +39,16 @@ import mage.abilities.keyword.DeathtouchAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledLandPermanent; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.ZoneChangeGroupEvent; import mage.target.common.TargetControlledPermanent; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +57,7 @@ public class TheGitrogMonster extends CardImpl { public TheGitrogMonster(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Frog"); this.subtype.add("Horror"); this.power = new MageInt(6); @@ -115,7 +112,7 @@ class TheGitrogMonsterTriggeredAbility extends TriggeredAbilityImpl { if (cardOwnerId != null && card.getOwnerId().equals(getControllerId()) && cardType != null - && cardType.contains(CardType.LAND)) { + && card.isLand()) { return true; } } diff --git a/Mage.Sets/src/mage/cards/t/TheLadyOfTheMountain.java b/Mage.Sets/src/mage/cards/t/TheLadyOfTheMountain.java index d1e34766247..bf719b92f72 100644 --- a/Mage.Sets/src/mage/cards/t/TheLadyOfTheMountain.java +++ b/Mage.Sets/src/mage/cards/t/TheLadyOfTheMountain.java @@ -27,11 +27,13 @@ */ package mage.cards.t; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -41,7 +43,7 @@ public class TheLadyOfTheMountain extends CardImpl { public TheLadyOfTheMountain(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Giant"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/t/TheMimeoplasm.java b/Mage.Sets/src/mage/cards/t/TheMimeoplasm.java index 58bac081731..fc9d2d8a78e 100644 --- a/Mage.Sets/src/mage/cards/t/TheMimeoplasm.java +++ b/Mage.Sets/src/mage/cards/t/TheMimeoplasm.java @@ -27,22 +27,14 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.dynamicvalue.common.CardsInAllGraveyardsCount; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CopyEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.cards.*; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterCreatureCard; import mage.game.Game; @@ -50,6 +42,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author emerald000 @@ -58,7 +52,7 @@ public class TheMimeoplasm extends CardImpl { public TheMimeoplasm(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Ooze"); this.power = new MageInt(0); diff --git a/Mage.Sets/src/mage/cards/t/TheTabernacleAtPendrellVale.java b/Mage.Sets/src/mage/cards/t/TheTabernacleAtPendrellVale.java index 07dd69ea823..a4493efd799 100644 --- a/Mage.Sets/src/mage/cards/t/TheTabernacleAtPendrellVale.java +++ b/Mage.Sets/src/mage/cards/t/TheTabernacleAtPendrellVale.java @@ -53,7 +53,7 @@ public class TheTabernacleAtPendrellVale extends CardImpl { public TheTabernacleAtPendrellVale(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // All creatures have "At the beginning of your upkeep, destroy this creature unless you pay {1}." Ability ability = new BeginningOfUpkeepTriggeredAbility(new DestroySourceUnlessPaysEffect(new ManaCostsImpl("{1}")), TargetController.YOU, false); diff --git a/Mage.Sets/src/mage/cards/t/TheUnspeakable.java b/Mage.Sets/src/mage/cards/t/TheUnspeakable.java index 890daf6fb8f..93b61d00b12 100644 --- a/Mage.Sets/src/mage/cards/t/TheUnspeakable.java +++ b/Mage.Sets/src/mage/cards/t/TheUnspeakable.java @@ -27,8 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -37,10 +35,14 @@ import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Loki @@ -55,7 +57,7 @@ public class TheUnspeakable extends CardImpl { public TheUnspeakable(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{U}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/t/ThelonOfHavenwood.java b/Mage.Sets/src/mage/cards/t/ThelonOfHavenwood.java index b848ab785d6..aa80073046d 100644 --- a/Mage.Sets/src/mage/cards/t/ThelonOfHavenwood.java +++ b/Mage.Sets/src/mage/cards/t/ThelonOfHavenwood.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,12 +37,7 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.counter.AddCountersAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.FilterCard; import mage.filter.FilterPermanent; @@ -53,6 +47,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCardInASingleGraveyard; +import java.util.UUID; + /** * * @author emerald000 @@ -68,7 +64,7 @@ public class ThelonOfHavenwood extends CardImpl { public ThelonOfHavenwood(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Druid"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/t/Thermokarst.java b/Mage.Sets/src/mage/cards/t/Thermokarst.java index 892921e0bd4..25e2ca73e62 100644 --- a/Mage.Sets/src/mage/cards/t/Thermokarst.java +++ b/Mage.Sets/src/mage/cards/t/Thermokarst.java @@ -85,7 +85,7 @@ class ThermokarstEffect extends OneShotEffect { Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source)); if (permanent != null && controller != null) { permanent.destroy(source.getSourceId(), game, false); - if (permanent.getSupertype().contains("Snow")) { + if (permanent.isSnow()) { controller.gainLife(1, game); } return true; diff --git a/Mage.Sets/src/mage/cards/t/Thermopod.java b/Mage.Sets/src/mage/cards/t/Thermopod.java index f215321c2a3..a2f883ba9ca 100644 --- a/Mage.Sets/src/mage/cards/t/Thermopod.java +++ b/Mage.Sets/src/mage/cards/t/Thermopod.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.Mana; import mage.abilities.common.SimpleActivatedAbility; @@ -40,10 +39,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -52,7 +54,7 @@ public class Thermopod extends CardImpl { public Thermopod(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Slug"); this.power = new MageInt(4); this.toughness = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/t/ThoseWhoServe.java b/Mage.Sets/src/mage/cards/t/ThoseWhoServe.java new file mode 100644 index 00000000000..fc16c575f9f --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/ThoseWhoServe.java @@ -0,0 +1,58 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; +import mage.MageInt; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class ThoseWhoServe extends CardImpl { + + public ThoseWhoServe(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); + + this.subtype.add("Zombie"); + this.power = new MageInt(2); + this.toughness = new MageInt(4); + } + + public ThoseWhoServe(final ThoseWhoServe card) { + super(card); + } + + @Override + public ThoseWhoServe copy() { + return new ThoseWhoServe(this); + } +} diff --git a/Mage.Sets/src/mage/cards/t/ThoughtReflection.java b/Mage.Sets/src/mage/cards/t/ThoughtReflection.java index 68f161bf8f9..39a743dc066 100644 --- a/Mage.Sets/src/mage/cards/t/ThoughtReflection.java +++ b/Mage.Sets/src/mage/cards/t/ThoughtReflection.java @@ -49,8 +49,8 @@ import mage.players.Player; public class ThoughtReflection extends CardImpl { public ThoughtReflection(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{U}{U}{U}"); - + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{U}{U}{U}"); + // If you would draw a card, draw two cards instead. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ThoughtReflectionReplacementEffect())); @@ -90,13 +90,13 @@ class ThoughtReflectionReplacementEffect extends ReplacementEffectImpl { @Override public boolean checksEventType(GameEvent event, Game game) { return event.getType() == GameEvent.EventType.DRAW_CARD; - } + } @Override public boolean applies(GameEvent event, Ability source, Game game) { return event.getPlayerId().equals(source.getControllerId()); } - + @Override public boolean replaceEvent(GameEvent event, Ability source, Game game) { Player you = game.getPlayer(event.getPlayerId()); @@ -104,5 +104,5 @@ class ThoughtReflectionReplacementEffect extends ReplacementEffectImpl { you.drawCards(2, game, event.getAppliedEffects()); } return true; - } + } } diff --git a/Mage.Sets/src/mage/cards/t/Thoughtbind.java b/Mage.Sets/src/mage/cards/t/Thoughtbind.java index eb0a7dbd35b..95f829fcf22 100644 --- a/Mage.Sets/src/mage/cards/t/Thoughtbind.java +++ b/Mage.Sets/src/mage/cards/t/Thoughtbind.java @@ -28,17 +28,17 @@ package mage.cards.t; -import java.util.UUID; - -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetSpell; +import java.util.UUID; + /** * @author Loki */ @@ -47,7 +47,7 @@ public class Thoughtbind extends CardImpl { private static final FilterSpell filter = new FilterSpell("spell with converted mana cost 4 or less"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 5)); } public Thoughtbind(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/ThranTurbine.java b/Mage.Sets/src/mage/cards/t/ThranTurbine.java index 8853d1bbee1..79eb14eceee 100644 --- a/Mage.Sets/src/mage/cards/t/ThranTurbine.java +++ b/Mage.Sets/src/mage/cards/t/ThranTurbine.java @@ -30,11 +30,9 @@ package mage.cards.t; import mage.ConditionalMana; import mage.Mana; import mage.abilities.Ability; -import mage.abilities.SpellAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.Condition; import mage.abilities.costs.Cost; -import mage.abilities.costs.mana.ManaCost; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.AddConditionalColorlessManaEffect; import mage.abilities.mana.builder.ConditionalManaBuilder; @@ -53,6 +51,7 @@ import mage.players.Player; import java.util.HashSet; import java.util.UUID; +import mage.game.stack.Spell; /** * @@ -61,7 +60,7 @@ import java.util.UUID; public class ThranTurbine extends CardImpl { public ThranTurbine(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}"); // At the beginning of your upkeep, you may add {C} or {C}{C} to your mana pool. You can't spend this mana to cast spells. this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new ThranTurbineEffect(), TargetController.YOU, true)); @@ -145,14 +144,9 @@ class ThranTurbineManaCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source, UUID originalId, Cost costToPay) { - if (!(source instanceof SpellAbility)) { - Permanent object = game.getPermanentOrLKIBattlefield(source.getSourceId()); - if (object != null && object.getColor(game).isColorless()) { - return true; - } - } - if (costToPay instanceof ManaCost) { - return ((ManaCost) costToPay).getText().contains("{C}"); + if (!(source instanceof Spell)) { + Permanent permanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); + return permanent != null; } return false; } diff --git a/Mage.Sets/src/mage/cards/t/ThrasiosTritonHero.java b/Mage.Sets/src/mage/cards/t/ThrasiosTritonHero.java index 15c0a0eecd2..f18953e906a 100644 --- a/Mage.Sets/src/mage/cards/t/ThrasiosTritonHero.java +++ b/Mage.Sets/src/mage/cards/t/ThrasiosTritonHero.java @@ -41,6 +41,7 @@ import mage.cards.CardSetInfo; import mage.cards.CardsImpl; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.players.Player; @@ -56,7 +57,7 @@ public class ThrasiosTritonHero extends CardImpl { public ThrasiosTritonHero(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Merfolk"); this.subtype.add("Wizard"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/t/Thraximundar.java b/Mage.Sets/src/mage/cards/t/Thraximundar.java index bc383739301..a2bf96e638b 100644 --- a/Mage.Sets/src/mage/cards/t/Thraximundar.java +++ b/Mage.Sets/src/mage/cards/t/Thraximundar.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.TriggeredAbilityImpl; @@ -38,6 +37,7 @@ import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledPermanent; @@ -47,6 +47,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -55,7 +57,7 @@ public class Thraximundar extends CardImpl { public Thraximundar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Assassin"); diff --git a/Mage.Sets/src/mage/cards/t/ThreadsOfDisloyalty.java b/Mage.Sets/src/mage/cards/t/ThreadsOfDisloyalty.java index cae54e293f5..8a2ea145e9e 100644 --- a/Mage.Sets/src/mage/cards/t/ThreadsOfDisloyalty.java +++ b/Mage.Sets/src/mage/cards/t/ThreadsOfDisloyalty.java @@ -28,23 +28,24 @@ package mage.cards.t; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.continuous.ControlEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +55,7 @@ public class ThreadsOfDisloyalty extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with converted mana cost 2 or less"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); } public ThreadsOfDisloyalty(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/ThresherLizard.java b/Mage.Sets/src/mage/cards/t/ThresherLizard.java new file mode 100644 index 00000000000..810b9e7e4af --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/ThresherLizard.java @@ -0,0 +1,75 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.HeckbentCondition; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.decorator.ConditionalContinuousEffect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.game.Game; + +/** + * + * @author stravant + */ +public class ThresherLizard extends CardImpl { + + public ThresherLizard(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); + + this.subtype.add("Lizard"); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // Thresher Lizard gets +1/+2 as long as you have one or fewer cards in hand. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, + new ConditionalContinuousEffect( + new BoostSourceEffect(1, 2, Duration.WhileOnBattlefield), + HeckbentCondition.instance, + "{this} gets +1/+2 as long as you have one or fewer cards in hand"))); + } + + public ThresherLizard(final ThresherLizard card) { + super(card); + } + + @Override + public ThresherLizard copy() { + return new ThresherLizard(this); + } +} diff --git a/Mage.Sets/src/mage/cards/t/ThrissNantukoPrimus.java b/Mage.Sets/src/mage/cards/t/ThrissNantukoPrimus.java index 1694fd2db99..f2ddb82a07b 100644 --- a/Mage.Sets/src/mage/cards/t/ThrissNantukoPrimus.java +++ b/Mage.Sets/src/mage/cards/t/ThrissNantukoPrimus.java @@ -27,10 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,8 +34,14 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; +import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Backfir3 @@ -48,7 +50,7 @@ public class ThrissNantukoPrimus extends CardImpl { public ThrissNantukoPrimus(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Insect"); this.subtype.add("Druid"); diff --git a/Mage.Sets/src/mage/cards/t/ThromokTheInsatiable.java b/Mage.Sets/src/mage/cards/t/ThromokTheInsatiable.java index 44359af8d68..b567dc372c2 100644 --- a/Mage.Sets/src/mage/cards/t/ThromokTheInsatiable.java +++ b/Mage.Sets/src/mage/cards/t/ThromokTheInsatiable.java @@ -27,13 +27,15 @@ */ package mage.cards.t; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.effects.common.DevourEffect.DevourFactor; import mage.abilities.keyword.DevourAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -43,7 +45,7 @@ public class ThromokTheInsatiable extends CardImpl { public ThromokTheInsatiable(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Hellion"); this.power = new MageInt(0); diff --git a/Mage.Sets/src/mage/cards/t/ThroneOfTheGodPharaoh.java b/Mage.Sets/src/mage/cards/t/ThroneOfTheGodPharaoh.java new file mode 100644 index 00000000000..35a918525ce --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/ThroneOfTheGodPharaoh.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; +import mage.abilities.common.BeginningOfEndStepTriggeredAbility; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.LoseLifeOpponentsEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.TargetController; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.permanent.TappedPredicate; + +/** + * + * @author Styxo + */ +public class ThroneOfTheGodPharaoh extends CardImpl { + + private static final FilterPermanent filter = new FilterControlledCreaturePermanent("tapped creature you control"); + + static { + filter.add(new TappedPredicate()); + } + + public ThroneOfTheGodPharaoh(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); + + addSuperType(SuperType.LEGENDARY); + + // At the beginning of your end step, each opponent loses life equal to the number of tapped creatures you control. + this.addAbility(new BeginningOfEndStepTriggeredAbility(new LoseLifeOpponentsEffect(new PermanentsOnBattlefieldCount(filter)), TargetController.YOU, false)); + } + + public ThroneOfTheGodPharaoh(final ThroneOfTheGodPharaoh card) { + super(card); + } + + @Override + public ThroneOfTheGodPharaoh copy() { + return new ThroneOfTheGodPharaoh(this); + } +} diff --git a/Mage.Sets/src/mage/cards/t/ThroneWarden.java b/Mage.Sets/src/mage/cards/t/ThroneWarden.java index 18b44a16dee..80836e4950f 100644 --- a/Mage.Sets/src/mage/cards/t/ThroneWarden.java +++ b/Mage.Sets/src/mage/cards/t/ThroneWarden.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.condition.common.MonarchIsSourceControllerCondition; @@ -39,6 +38,8 @@ import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +56,7 @@ public class ThroneWarden extends CardImpl { // At the beginning of your end step, if you're the monarch, put a +1/+1 counter on Throne Warden. this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()), - TargetController.YOU, MonarchIsSourceControllerCondition.getInstance(), false)); + TargetController.YOU, MonarchIsSourceControllerCondition.instance, false)); } public ThroneWarden(final ThroneWarden card) { diff --git a/Mage.Sets/src/mage/cards/t/ThrummingStone.java b/Mage.Sets/src/mage/cards/t/ThrummingStone.java index 7c1ba939885..0bea910ed05 100644 --- a/Mage.Sets/src/mage/cards/t/ThrummingStone.java +++ b/Mage.Sets/src/mage/cards/t/ThrummingStone.java @@ -28,15 +28,16 @@ package mage.cards.t; import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.continuous.GainAbilityControlledSpellsEffect; import mage.abilities.keyword.RippleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterSpell; import java.util.UUID; -import mage.abilities.effects.common.continuous.GainAbilityControlledSpellsEffect; /** * @author klayhamn @@ -45,7 +46,7 @@ public class ThrummingStone extends CardImpl { public ThrummingStone(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{5}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // spells you cast have Ripple 4 this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledSpellsEffect(new RippleAbility(4), new FilterSpell("spells")))); diff --git a/Mage.Sets/src/mage/cards/t/ThrunTheLastTroll.java b/Mage.Sets/src/mage/cards/t/ThrunTheLastTroll.java index 25a04fa913b..633da59a96b 100644 --- a/Mage.Sets/src/mage/cards/t/ThrunTheLastTroll.java +++ b/Mage.Sets/src/mage/cards/t/ThrunTheLastTroll.java @@ -27,10 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -40,6 +36,11 @@ import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.constants.Zone; + +import java.util.UUID; /** * @@ -49,7 +50,7 @@ public class ThrunTheLastTroll extends CardImpl { public ThrunTheLastTroll(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Troll"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/t/Thumbscrews.java b/Mage.Sets/src/mage/cards/t/Thumbscrews.java index 011ce8012f2..894b209f4a8 100644 --- a/Mage.Sets/src/mage/cards/t/Thumbscrews.java +++ b/Mage.Sets/src/mage/cards/t/Thumbscrews.java @@ -29,7 +29,7 @@ package mage.cards.t; import java.util.UUID; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.CardsInHandCondition; @@ -55,7 +55,7 @@ public class Thumbscrews extends CardImpl { TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), TargetController.YOU, false); ability.addTarget(new TargetOpponent()); - CardsInHandCondition condition = new CardsInHandCondition(CountType.MORE_THAN, 4); + CardsInHandCondition condition = new CardsInHandCondition(ComparisonType.MORE_THAN, 4); this.addAbility(new ConditionalTriggeredAbility(ability, condition, "At the beginning of your upkeep, if you have five or more cards in hand, {this} deals 1 damage to target opponent.")); } diff --git a/Mage.Sets/src/mage/cards/t/ThundercloudElemental.java b/Mage.Sets/src/mage/cards/t/ThundercloudElemental.java index 21a034f2a6d..311330feb10 100644 --- a/Mage.Sets/src/mage/cards/t/ThundercloudElemental.java +++ b/Mage.Sets/src/mage/cards/t/ThundercloudElemental.java @@ -27,10 +27,11 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.TapAllEffect; import mage.abilities.effects.common.continuous.LoseAbilityAllEffect; import mage.abilities.keyword.FlyingAbility; @@ -39,39 +40,43 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author fireshoes */ public class ThundercloudElemental extends CardImpl { - + private static final FilterCreaturePermanent toughnessFilter = new FilterCreaturePermanent("creatures with toughness 2 or less"); private static final FilterCreaturePermanent flyingFilter = new FilterCreaturePermanent("All other creatures"); static { - toughnessFilter.add(new ToughnessPredicate(Filter.ComparisonType.LessThan, 3)); + toughnessFilter.add(new ToughnessPredicate(ComparisonType.FEWER_THAN, 3)); flyingFilter.add(new AnotherPredicate()); } public ThundercloudElemental(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{U}{U}"); this.subtype.add("Elemental"); this.power = new MageInt(3); this.toughness = new MageInt(4); // Flying this.addAbility(FlyingAbility.getInstance()); - + // {3}{U}: Tap all creatures with toughness 2 or less. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapAllEffect(toughnessFilter), new ManaCostsImpl("{3}{U}"))); - + // {3}{U}: All other creatures lose flying until end of turn. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseAbilityAllEffect(flyingFilter, FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{3}{U}"))); + Effect effect = new LoseAbilityAllEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, flyingFilter); + effect.setText("All other creatures lose flying until end of turn"); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{3}{U}"))); + } public ThundercloudElemental(final ThundercloudElemental card) { diff --git a/Mage.Sets/src/mage/cards/t/TiborAndLumia.java b/Mage.Sets/src/mage/cards/t/TiborAndLumia.java index 9b4d0af9b85..84f4d9673d0 100644 --- a/Mage.Sets/src/mage/cards/t/TiborAndLumia.java +++ b/Mage.Sets/src/mage/cards/t/TiborAndLumia.java @@ -27,9 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -39,7 +36,9 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.FilterSpell; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.AbilityPredicate; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki @@ -65,7 +66,7 @@ public class TiborAndLumia extends CardImpl { public TiborAndLumia(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/t/TimeOfNeed.java b/Mage.Sets/src/mage/cards/t/TimeOfNeed.java index 66f9f41c878..f961efbb7a5 100644 --- a/Mage.Sets/src/mage/cards/t/TimeOfNeed.java +++ b/Mage.Sets/src/mage/cards/t/TimeOfNeed.java @@ -28,17 +28,18 @@ package mage.cards.t; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * @author Loki */ @@ -48,7 +49,7 @@ public class TimeOfNeed extends CardImpl { static { filter.add(new CardTypePredicate(CardType.CREATURE)); - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public TimeOfNeed(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/TimeToReflect.java b/Mage.Sets/src/mage/cards/t/TimeToReflect.java new file mode 100644 index 00000000000..6c5cb7513d4 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TimeToReflect.java @@ -0,0 +1,136 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.UUID; +import mage.MageObjectReference; +import mage.abilities.Ability; +import mage.abilities.SpellAbility; +import mage.abilities.effects.common.ExileTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.WatcherScope; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.permanent.PermanentIdPredicate; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; +import mage.watchers.Watcher; + +/** + * + * @author jeffwadsworth + */ +public class TimeToReflect extends CardImpl { + + public TimeToReflect(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{W}"); + + // Exile target creature that blocked or was blocked by a Zombie this turn. + this.getSpellAbility().addEffect(new ExileTargetEffect()); + this.getSpellAbility().addTarget(new TargetPermanent(new FilterCreaturePermanent("creature that blocked or was blocked by a Zombie this turn."))); + this.getSpellAbility().addWatcher(new BlockedOrWasBlockedByAZombieWatcher()); + + } + + @Override + public void adjustTargets(Ability ability, Game game) { + if (ability instanceof SpellAbility) { + List creaturesThatBlockedOrWereBlockedByAZombie = new ArrayList<>(); + FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that blocked or was blocked by a Zombie this turn.").copy(); + BlockedOrWasBlockedByAZombieWatcher watcher = (BlockedOrWasBlockedByAZombieWatcher) game.getState().getWatchers().get("BlockedOrWasBlockedByAZombieWatcher"); + if (watcher != null) { + for (MageObjectReference mor : watcher.getBlockedThisTurnCreatures()) { + creaturesThatBlockedOrWereBlockedByAZombie.add(new PermanentIdPredicate(mor.getPermanent(game).getId())); + } + } + filter.add(Predicates.or(creaturesThatBlockedOrWereBlockedByAZombie)); + ability.getTargets().clear(); + ability.addTarget(new TargetCreaturePermanent(filter)); + } + } + + public TimeToReflect(final TimeToReflect card) { + super(card); + } + + @Override + public TimeToReflect copy() { + return new TimeToReflect(this); + } +} + +class BlockedOrWasBlockedByAZombieWatcher extends Watcher { + + private final Set blockedOrWasBlockedByAZombieWatcher; + + public BlockedOrWasBlockedByAZombieWatcher() { + super("BlockedOrWasBlockedByAZombieWatcher", WatcherScope.GAME); + blockedOrWasBlockedByAZombieWatcher = new HashSet<>(); + } + + public BlockedOrWasBlockedByAZombieWatcher(final BlockedOrWasBlockedByAZombieWatcher watcher) { + super(watcher); + blockedOrWasBlockedByAZombieWatcher = new HashSet<>(watcher.blockedOrWasBlockedByAZombieWatcher); + } + + @Override + public BlockedOrWasBlockedByAZombieWatcher copy() { + return new BlockedOrWasBlockedByAZombieWatcher(this); + } + + @Override + public void watch(GameEvent event, Game game) { + if (event.getType() == GameEvent.EventType.BLOCKER_DECLARED) { + if (game.getPermanent(event.getTargetId()).getSubtype(game).contains("Zombie")) { + this.blockedOrWasBlockedByAZombieWatcher.add(new MageObjectReference(event.getSourceId(), game)); + } + if (game.getPermanent(event.getSourceId()).getSubtype(game).contains("Zombie")) { + this.blockedOrWasBlockedByAZombieWatcher.add(new MageObjectReference(event.getTargetId(), game)); + } + } + } + + public Set getBlockedThisTurnCreatures() { + return this.blockedOrWasBlockedByAZombieWatcher; + } + + @Override + public void reset() { + super.reset(); + blockedOrWasBlockedByAZombieWatcher.clear(); + } + +} diff --git a/Mage.Sets/src/mage/cards/t/TimelyHordemate.java b/Mage.Sets/src/mage/cards/t/TimelyHordemate.java index a502e47e4bd..88002bf99d3 100644 --- a/Mage.Sets/src/mage/cards/t/TimelyHordemate.java +++ b/Mage.Sets/src/mage/cards/t/TimelyHordemate.java @@ -27,9 +27,9 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.RaidCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -37,12 +37,13 @@ import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffec import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInYourGraveyard; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,7 +53,7 @@ public class TimelyHordemate extends CardImpl { private static final FilterCreatureCard filter = new FilterCreatureCard("creature card with converted mana cost 2 or less from your graveyard"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 3)); } public TimelyHordemate(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/TitaniaProtectorOfArgoth.java b/Mage.Sets/src/mage/cards/t/TitaniaProtectorOfArgoth.java index bc513652d0f..861d3ae86ed 100644 --- a/Mage.Sets/src/mage/cards/t/TitaniaProtectorOfArgoth.java +++ b/Mage.Sets/src/mage/cards/t/TitaniaProtectorOfArgoth.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -38,6 +37,7 @@ import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffec import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterLandCard; import mage.filter.common.FilterLandPermanent; @@ -45,6 +45,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.permanent.token.Token; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +61,7 @@ public class TitaniaProtectorOfArgoth extends CardImpl { public TitaniaProtectorOfArgoth(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elemental"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/t/TitaniasSong.java b/Mage.Sets/src/mage/cards/t/TitaniasSong.java index 97480346c8b..a4a04855809 100644 --- a/Mage.Sets/src/mage/cards/t/TitaniasSong.java +++ b/Mage.Sets/src/mage/cards/t/TitaniasSong.java @@ -100,7 +100,7 @@ class TitaniasSongEffect extends ContinuousEffectImpl { for(Permanent permanent : game.getBattlefield().getAllActivePermanents(filter, game)){ if(permanent != null){ affectedObjectList.add(new MageObjectReference(permanent, game)); - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); } } } diff --git a/Mage.Sets/src/mage/cards/t/TivadarOfThorn.java b/Mage.Sets/src/mage/cards/t/TivadarOfThorn.java index ced2ba97560..aec7dae19cd 100644 --- a/Mage.Sets/src/mage/cards/t/TivadarOfThorn.java +++ b/Mage.Sets/src/mage/cards/t/TivadarOfThorn.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -38,11 +37,14 @@ import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.Target; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -57,7 +59,7 @@ public class TivadarOfThorn extends CardImpl { public TivadarOfThorn(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Knight"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/t/TobiasAndrion.java b/Mage.Sets/src/mage/cards/t/TobiasAndrion.java index d4252bab1f7..739e2950c01 100644 --- a/Mage.Sets/src/mage/cards/t/TobiasAndrion.java +++ b/Mage.Sets/src/mage/cards/t/TobiasAndrion.java @@ -32,6 +32,7 @@ import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.SuperType; /** * @@ -41,7 +42,7 @@ public class TobiasAndrion extends CardImpl { public TobiasAndrion(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); diff --git a/Mage.Sets/src/mage/cards/t/ToilTrouble.java b/Mage.Sets/src/mage/cards/t/ToilTrouble.java index 73613fa694a..a6906f7d5c4 100644 --- a/Mage.Sets/src/mage/cards/t/ToilTrouble.java +++ b/Mage.Sets/src/mage/cards/t/ToilTrouble.java @@ -25,9 +25,9 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.t; +import java.util.UUID; import mage.abilities.dynamicvalue.common.CardsInTargetHandCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -36,20 +36,13 @@ import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; +import mage.constants.SpellAbilityType; import mage.target.TargetPlayer; -import java.util.UUID; - -/** - * - * @author LevelX2 - */ - - public class ToilTrouble extends SplitCard { public ToilTrouble(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}","{2}{R}",true); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}", "{2}{R}", SpellAbilityType.SPLIT_FUSED); // Toil // Target player draws two cards and loses 2 life. diff --git a/Mage.Sets/src/mage/cards/t/TolarianAcademy.java b/Mage.Sets/src/mage/cards/t/TolarianAcademy.java index 95578acb0d2..42f6508aadf 100644 --- a/Mage.Sets/src/mage/cards/t/TolarianAcademy.java +++ b/Mage.Sets/src/mage/cards/t/TolarianAcademy.java @@ -28,16 +28,18 @@ package mage.cards.t; -import java.util.UUID; -import mage.constants.CardType; import mage.Mana; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.mana.DynamicManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; +import java.util.UUID; + /** * * @author Backfir3 @@ -53,7 +55,7 @@ public class TolarianAcademy extends CardImpl { public TolarianAcademy(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); DynamicManaAbility ability = new DynamicManaAbility(Mana.BlueMana(1), new PermanentsOnBattlefieldCount(filter)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/t/TolsimirWolfblood.java b/Mage.Sets/src/mage/cards/t/TolsimirWolfblood.java index 1c2032fa86c..ab3783ebd86 100644 --- a/Mage.Sets/src/mage/cards/t/TolsimirWolfblood.java +++ b/Mage.Sets/src/mage/cards/t/TolsimirWolfblood.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleActivatedAbility; @@ -37,15 +36,14 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.permanent.token.Token; +import java.util.UUID; + /** * * @author Plopman @@ -64,7 +62,7 @@ public class TolsimirWolfblood extends CardImpl { public TolsimirWolfblood(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Warrior"); @@ -94,7 +92,7 @@ class VojaToken extends Token { public VojaToken() { super("Voja", "legendary 2/2 green and white Wolf creature token named Voja"); this.cardType.add(CardType.CREATURE); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Wolf"); this.color.setGreen(true); diff --git a/Mage.Sets/src/mage/cards/t/TombHex.java b/Mage.Sets/src/mage/cards/t/TombHex.java index 5a850d64f2c..897f7af93d0 100644 --- a/Mage.Sets/src/mage/cards/t/TombHex.java +++ b/Mage.Sets/src/mage/cards/t/TombHex.java @@ -27,19 +27,19 @@ */ package mage.cards.t; -import java.util.UUID; import mage.abilities.condition.LockedInCondition; - -import mage.constants.CardType; import mage.abilities.condition.common.LandfallCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; import mage.watchers.common.LandfallWatcher; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -53,7 +53,7 @@ public class TombHex extends CardImpl { // Landfall - If you had a land enter the battlefield under your control this turn, that creature gets -4/-4 until end of turn instead. this.getSpellAbility().addWatcher(new LandfallWatcher()); this.getSpellAbility().addEffect(new ConditionalContinuousEffect(new BoostTargetEffect(-4, -4, Duration.EndOfTurn), new BoostTargetEffect(-2, -2, Duration.EndOfTurn), - new LockedInCondition(LandfallCondition.getInstance()), + new LockedInCondition(LandfallCondition.instance), "Target creature gets -2/-2 until end of turn.
Landfall — If you had a land enter the battlefield under your control this turn, that creature gets -4/-4 until end of turn instead")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/cards/t/TombOfUrami.java b/Mage.Sets/src/mage/cards/t/TombOfUrami.java index f4fb189b9b0..2d564d52c0a 100644 --- a/Mage.Sets/src/mage/cards/t/TombOfUrami.java +++ b/Mage.Sets/src/mage/cards/t/TombOfUrami.java @@ -42,6 +42,7 @@ import mage.abilities.mana.BlackManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.game.Game; @@ -56,7 +57,7 @@ public class TombOfUrami extends CardImpl { public TombOfUrami(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); // {tap}: Add {B} to your mana pool. Tomb of Urami deals 1 damage to you if you don't control an Ogre. Ability ability = new BlackManaAbility(); @@ -121,7 +122,7 @@ class UramiToken extends Token { cardType.add(CardType.CREATURE); subtype.add("Demon"); subtype.add("Spirit"); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); color.setBlack(true); power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/t/TomorrowAzamisFamiliar.java b/Mage.Sets/src/mage/cards/t/TomorrowAzamisFamiliar.java index 075eb9e4a8b..e553b2f63c0 100644 --- a/Mage.Sets/src/mage/cards/t/TomorrowAzamisFamiliar.java +++ b/Mage.Sets/src/mage/cards/t/TomorrowAzamisFamiliar.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -36,14 +35,13 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** * * @author LevelX2 @@ -52,7 +50,7 @@ public class TomorrowAzamisFamiliar extends CardImpl { public TomorrowAzamisFamiliar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/t/ToolcraftExemplar.java b/Mage.Sets/src/mage/cards/t/ToolcraftExemplar.java index 2215ee4ede6..709de5f91b1 100644 --- a/Mage.Sets/src/mage/cards/t/ToolcraftExemplar.java +++ b/Mage.Sets/src/mage/cards/t/ToolcraftExemplar.java @@ -30,7 +30,7 @@ package mage.cards.t; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.condition.LockedInCondition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -64,7 +64,7 @@ public class ToolcraftExemplar extends CardImpl { // If you control at least 3 artifacts, it also gains first strike until end of turn. Effect effect = new ConditionalContinuousEffect( new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), - new LockedInCondition(new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), CountType.MORE_THAN, 2)), null); + new LockedInCondition(new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), ComparisonType.MORE_THAN, 2)), null); Ability ability = new ConditionalTriggeredAbility( new BeginningOfCombatTriggeredAbility(new BoostSourceEffect(2, 1, Duration.EndOfTurn), TargetController.YOU, false), new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent()), diff --git a/Mage.Sets/src/mage/cards/t/TorWauki.java b/Mage.Sets/src/mage/cards/t/TorWauki.java index 90c4c8764ca..c3d321c2bc4 100644 --- a/Mage.Sets/src/mage/cards/t/TorWauki.java +++ b/Mage.Sets/src/mage/cards/t/TorWauki.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -36,9 +35,12 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetAttackingOrBlockingCreature; +import java.util.UUID; + /** * * @author LoneFox @@ -47,7 +49,7 @@ public class TorWauki extends CardImpl { public TorWauki(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Archer"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/t/TorstenVonUrsus.java b/Mage.Sets/src/mage/cards/t/TorstenVonUrsus.java index aa16344f2e9..e52ae9169f5 100644 --- a/Mage.Sets/src/mage/cards/t/TorstenVonUrsus.java +++ b/Mage.Sets/src/mage/cards/t/TorstenVonUrsus.java @@ -27,11 +27,13 @@ */ package mage.cards.t; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -41,7 +43,7 @@ public class TorstenVonUrsus extends CardImpl { public TorstenVonUrsus(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); diff --git a/Mage.Sets/src/mage/cards/t/ToshiroUmezawa.java b/Mage.Sets/src/mage/cards/t/ToshiroUmezawa.java index 6f2c8a0ff0e..24fae5654b0 100644 --- a/Mage.Sets/src/mage/cards/t/ToshiroUmezawa.java +++ b/Mage.Sets/src/mage/cards/t/ToshiroUmezawa.java @@ -29,10 +29,7 @@ package mage.cards.t; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesCreatureTriggeredAbility; @@ -42,7 +39,6 @@ import mage.abilities.keyword.BushidoAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.TargetController; import mage.filter.FilterCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -71,7 +67,7 @@ public class ToshiroUmezawa extends CardImpl { public ToshiroUmezawa(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}{B}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Samurai"); diff --git a/Mage.Sets/src/mage/cards/t/TransgressTheMind.java b/Mage.Sets/src/mage/cards/t/TransgressTheMind.java index 7d5a4e4ba80..b2202476175 100644 --- a/Mage.Sets/src/mage/cards/t/TransgressTheMind.java +++ b/Mage.Sets/src/mage/cards/t/TransgressTheMind.java @@ -27,19 +27,20 @@ */ package mage.cards.t; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.Effect; import mage.abilities.effects.common.ExileCardYouChooseTargetOpponentEffect; import mage.abilities.keyword.DevoidAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author fireshoes @@ -49,7 +50,7 @@ public class TransgressTheMind extends CardImpl { private static final FilterCard filter = new FilterCard("a card from it with converted mana cost 3 or greater"); static { - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 2)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 2)); } public TransgressTheMind(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/TreasureMage.java b/Mage.Sets/src/mage/cards/t/TreasureMage.java index 0c794fdf987..ea9ed2f08d3 100644 --- a/Mage.Sets/src/mage/cards/t/TreasureMage.java +++ b/Mage.Sets/src/mage/cards/t/TreasureMage.java @@ -28,20 +28,21 @@ package mage.cards.t; -import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.SearchEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Loki @@ -52,7 +53,7 @@ public class TreasureMage extends CardImpl { static { filter.add(new CardTypePredicate(CardType.ARTIFACT)); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.GreaterThan, 5)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.MORE_THAN, 5)); } public TreasureMage (UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/TrespassersCurse.java b/Mage.Sets/src/mage/cards/t/TrespassersCurse.java new file mode 100644 index 00000000000..d918c5a861b --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TrespassersCurse.java @@ -0,0 +1,152 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; + +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.TargetPlayer; +import mage.abilities.Ability; +import mage.abilities.effects.common.AttachEffect; +import mage.constants.Outcome; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author stravant + */ +public class TrespassersCurse extends CardImpl { + + public TrespassersCurse(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}"); + + this.subtype.add("Aura"); + this.subtype.add("Curse"); + + // Enchant player + TargetPlayer auraTarget = new TargetPlayer(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // Whenever a creature enters the battlefield under enchanted player's control, that player loses 1 life and you gain 1 life. + this.addAbility(new TrespassersCurseTriggeredAbility()); + } + + public TrespassersCurse(final TrespassersCurse card) { + super(card); + } + + @Override + public TrespassersCurse copy() { + return new TrespassersCurse(this); + } +} + +class TrespassersCurseTriggeredAbility extends TriggeredAbilityImpl { + + public TrespassersCurseTriggeredAbility() { + super(Zone.BATTLEFIELD, new TrespassersCurseEffect(), false); // false because handled in effect + } + + public TrespassersCurseTriggeredAbility(final TrespassersCurseTriggeredAbility ability) { + super(ability); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + Permanent enchantment = game.getPermanent(this.sourceId); + if (enchantment != null + && enchantment.getAttachedTo() != null + && game.getControllerId(event.getTargetId()).equals(enchantment.getAttachedTo()) + && game.getPermanent(event.getTargetId()).isCreature()) { + for (Effect effect : this.getEffects()) { + effect.setTargetPointer(new FixedTarget(enchantment.getAttachedTo())); + } + return true; + } + return false; + } + + @Override + public String getRule() { + return new StringBuilder("Whenever a creature enters the battlefield under enchanted player's control, ").append(super.getRule()).toString(); + } + + @Override + public TrespassersCurseTriggeredAbility copy() { + return new TrespassersCurseTriggeredAbility(this); + } + +} + +class TrespassersCurseEffect extends OneShotEffect { + + public TrespassersCurseEffect() { + super(Outcome.Benefit); + this.staticText = "that player loses 1 life and you gain 1 life."; + } + + public TrespassersCurseEffect(final TrespassersCurseEffect effect) { + super(effect); + } + + @Override + public TrespassersCurseEffect copy() { + return new TrespassersCurseEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controllerOfCreature = game.getPlayer(this.getTargetPointer().getFirst(game, source)); + Player controller = game.getPlayer(source.getControllerId()); + if (controllerOfCreature != null) { + controllerOfCreature.loseLife(1, game, false); + controller.gainLife(1, game); + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/cards/t/TresserhornSinks.java b/Mage.Sets/src/mage/cards/t/TresserhornSinks.java index 0fee1fd498c..1c908a33a12 100644 --- a/Mage.Sets/src/mage/cards/t/TresserhornSinks.java +++ b/Mage.Sets/src/mage/cards/t/TresserhornSinks.java @@ -35,6 +35,7 @@ import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; /** * @@ -44,7 +45,7 @@ public class TresserhornSinks extends CardImpl { public TresserhornSinks(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Snow"); + this.addSuperType(SuperType.SNOW); // Tresserhorn Sinks enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TrevaTheRenewer.java b/Mage.Sets/src/mage/cards/t/TrevaTheRenewer.java index 47c21120b54..549682d312a 100644 --- a/Mage.Sets/src/mage/cards/t/TrevaTheRenewer.java +++ b/Mage.Sets/src/mage/cards/t/TrevaTheRenewer.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -41,11 +40,14 @@ import mage.cards.CardSetInfo; import mage.choices.ChoiceColor; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes @@ -54,7 +56,7 @@ public class TrevaTheRenewer extends CardImpl { public TrevaTheRenewer(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(6); this.toughness = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/t/TriadOfFates.java b/Mage.Sets/src/mage/cards/t/TriadOfFates.java index 806a5f862fa..6300761a7e8 100644 --- a/Mage.Sets/src/mage/cards/t/TriadOfFates.java +++ b/Mage.Sets/src/mage/cards/t/TriadOfFates.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,6 +41,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; @@ -53,6 +53,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -69,7 +71,7 @@ public class TriadOfFates extends CardImpl { public TriadOfFates(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/t/TrialError.java b/Mage.Sets/src/mage/cards/t/TrialError.java index ffff531c496..949cc57e9cc 100644 --- a/Mage.Sets/src/mage/cards/t/TrialError.java +++ b/Mage.Sets/src/mage/cards/t/TrialError.java @@ -38,6 +38,7 @@ import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SpellAbilityType; import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.MulticoloredPredicate; @@ -61,7 +62,7 @@ public class TrialError extends SplitCard { } public TrialError(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{W}{U}","{U}{B}",false); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{W}{U}", "{U}{B}", SpellAbilityType.SPLIT); // Trial // Return all creatures blocking or blocked by target creature to their owner's hand. diff --git a/Mage.Sets/src/mage/cards/t/TrialOfAmbition.java b/Mage.Sets/src/mage/cards/t/TrialOfAmbition.java new file mode 100644 index 00000000000..02a3f1e853e --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TrialOfAmbition.java @@ -0,0 +1,77 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.ReturnToHandSourceEffect; +import mage.abilities.effects.common.SacrificeEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.common.TargetOpponent; + +/** + * + * @author fireshoes + */ +public class TrialOfAmbition extends CardImpl { + + private static final FilterControlledPermanent filter = new FilterControlledPermanent("a Cartouche"); + + static { + filter.add(new SubtypePredicate("Cartouche")); + } + + public TrialOfAmbition(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}"); + + // When Trial of Ambition enters the battlefield, target opponent sacrifices a creature. + Ability ability = new EntersBattlefieldTriggeredAbility(new SacrificeEffect(new FilterCreaturePermanent(), 1, "Target opponent")); + ability.addTarget(new TargetOpponent()); + this.addAbility(ability); + + // When a Cartouche enters the battlefield under your control, return Trial of Ambition to its owner's hand. + this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new ReturnToHandSourceEffect(), filter, + "When a Cartouche enters the battlefield under your control, return {this} to its owner's hand")); + } + + public TrialOfAmbition(final TrialOfAmbition card) { + super(card); + } + + @Override + public TrialOfAmbition copy() { + return new TrialOfAmbition(this); + } +} diff --git a/Mage.Sets/src/mage/cards/t/TrialOfKnowledge.java b/Mage.Sets/src/mage/cards/t/TrialOfKnowledge.java new file mode 100644 index 00000000000..90533602571 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TrialOfKnowledge.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; +import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DrawDiscardControllerEffect; +import mage.abilities.effects.common.ReturnToHandSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; + +/** + * + * @author fireshoes + */ +public class TrialOfKnowledge extends CardImpl { + + private static final FilterControlledPermanent filter = new FilterControlledPermanent("a Cartouche"); + + static { + filter.add(new SubtypePredicate("Cartouche")); + } + + public TrialOfKnowledge(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{U}"); + + // When Trial of Knowledge enters the battlefield, draw three cards, then discard a card. + this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawDiscardControllerEffect(3, 1), false)); + + // When a Cartouche enters the battlefield under your control, return Trial of Knowledge to its owner's hand. + this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new ReturnToHandSourceEffect(), filter, + "When a Cartouche enters the battlefield under your control, return {this} to its owner's hand")); + } + + public TrialOfKnowledge(final TrialOfKnowledge card) { + super(card); + } + + @Override + public TrialOfKnowledge copy() { + return new TrialOfKnowledge(this); + } +} diff --git a/Mage.Sets/src/mage/cards/t/TrialOfSolidarity.java b/Mage.Sets/src/mage/cards/t/TrialOfSolidarity.java new file mode 100644 index 00000000000..27eb2fe9288 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TrialOfSolidarity.java @@ -0,0 +1,84 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.ReturnToHandSourceEffect; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.keyword.VigilanceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; + +/** + * + * @author fireshoes + */ +public class TrialOfSolidarity extends CardImpl { + + private static final FilterControlledPermanent filter = new FilterControlledPermanent("a Cartouche"); + + static { + filter.add(new SubtypePredicate("Cartouche")); + } + + public TrialOfSolidarity(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}"); + + // When Trial of Solidarity enters the battlefield, creatures you control get +2/+1 and gain vigilance until end of turn. + Effect effect = new BoostControlledEffect(2, 1, Duration.EndOfTurn, new FilterCreaturePermanent()); + effect.setText("creatures you control get +2/+1"); + Ability ability = new EntersBattlefieldTriggeredAbility(effect); + effect = new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent()); + effect.setText(" and gain vigilance until end of turn"); + ability.addEffect(effect); + this.addAbility(ability); + + // When a Cartouche enters the battlefield under you control, return Trial of Solidarity to its owner's hand. + this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new ReturnToHandSourceEffect(), filter, + "When a Cartouche enters the battlefield under your control, return {this} to its owner's hand")); + } + + public TrialOfSolidarity(final TrialOfSolidarity card) { + super(card); + } + + @Override + public TrialOfSolidarity copy() { + return new TrialOfSolidarity(this); + } +} diff --git a/Mage.Sets/src/mage/cards/t/TrialOfStrength.java b/Mage.Sets/src/mage/cards/t/TrialOfStrength.java new file mode 100644 index 00000000000..649c3ac3413 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TrialOfStrength.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; +import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.ReturnToHandSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.game.permanent.token.BeastToken3; + +/** + * + * @author fireshoes + */ +public class TrialOfStrength extends CardImpl { + + private static final FilterControlledPermanent filter = new FilterControlledPermanent("a Cartouche"); + + static { + filter.add(new SubtypePredicate("Cartouche")); + } + + public TrialOfStrength(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}"); + + // When Trial of Strength enters the battlefield, create a 4/2 green Beast creature token. + this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new BeastToken3()))); + + // When a Cartouche enters the battlefield under your control, return Trial of Strength to its owner's hand. + this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new ReturnToHandSourceEffect(), filter, + "When a Cartouche enters the battlefield under your control, return {this} to its owner's hand")); + } + + public TrialOfStrength(final TrialOfStrength card) { + super(card); + } + + @Override + public TrialOfStrength copy() { + return new TrialOfStrength(this); + } +} diff --git a/Mage.Sets/src/mage/cards/t/TrialOfZeal.java b/Mage.Sets/src/mage/cards/t/TrialOfZeal.java new file mode 100644 index 00000000000..60af306da04 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TrialOfZeal.java @@ -0,0 +1,76 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.ReturnToHandSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author fireshoes + */ +public class TrialOfZeal extends CardImpl { + + private static final FilterControlledPermanent filter = new FilterControlledPermanent("a Cartouche"); + + static { + filter.add(new SubtypePredicate("Cartouche")); + } + + public TrialOfZeal(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{R}"); + + // When Trial of Zeal enters the battlefield, it deals 3 damage to target creature or player. + Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(3)); + ability.addTarget(new TargetCreatureOrPlayer()); + this.addAbility(ability); + + // When a Cartouche enters the battlefield under your control, return Trial of Zeal to its owner's hand. + this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new ReturnToHandSourceEffect(), filter, + "When a Cartouche enters the battlefield under your control, return {this} to its owner's hand")); + } + + public TrialOfZeal(final TrialOfZeal card) { + super(card); + } + + @Override + public TrialOfZeal copy() { + return new TrialOfZeal(this); + } +} diff --git a/Mage.Sets/src/mage/cards/t/TrinketMage.java b/Mage.Sets/src/mage/cards/t/TrinketMage.java index 565d0d8eff5..d696734d956 100644 --- a/Mage.Sets/src/mage/cards/t/TrinketMage.java +++ b/Mage.Sets/src/mage/cards/t/TrinketMage.java @@ -28,14 +28,14 @@ package mage.cards.t; -import mage.constants.CardType; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.SearchEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -52,7 +52,7 @@ public class TrinketMage extends CardImpl { static { filter.add(new CardTypePredicate(CardType.ARTIFACT)); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 2)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 2)); } public TrinketMage(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/Tromokratis.java b/Mage.Sets/src/mage/cards/t/Tromokratis.java index 1ea1f6b789f..50df2af4849 100644 --- a/Mage.Sets/src/mage/cards/t/Tromokratis.java +++ b/Mage.Sets/src/mage/cards/t/Tromokratis.java @@ -42,10 +42,7 @@ import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterAttackingOrBlockingCreature; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -61,7 +58,7 @@ public class Tromokratis extends CardImpl { public Tromokratis(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Kraken"); this.power = new MageInt(8); diff --git a/Mage.Sets/src/mage/cards/t/TrophyMage.java b/Mage.Sets/src/mage/cards/t/TrophyMage.java index b313fd0894f..23017a37ee8 100644 --- a/Mage.Sets/src/mage/cards/t/TrophyMage.java +++ b/Mage.Sets/src/mage/cards/t/TrophyMage.java @@ -27,19 +27,20 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Styxo @@ -50,7 +51,7 @@ public class TrophyMage extends CardImpl { static { filter.add(new CardTypePredicate(CardType.ARTIFACT)); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, 3)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, 3)); } public TrophyMage(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/t/TrostaniSelesnyasVoice.java b/Mage.Sets/src/mage/cards/t/TrostaniSelesnyasVoice.java index 77ffbb0d064..a700a0acbd4 100644 --- a/Mage.Sets/src/mage/cards/t/TrostaniSelesnyasVoice.java +++ b/Mage.Sets/src/mage/cards/t/TrostaniSelesnyasVoice.java @@ -28,8 +28,6 @@ package mage.cards.t; -import java.util.Objects; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -43,6 +41,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -50,6 +49,9 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.Objects; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,7 +60,7 @@ public class TrostaniSelesnyasVoice extends CardImpl { public TrostaniSelesnyasVoice(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{G}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dryad"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/t/TrueheartDuelist.java b/Mage.Sets/src/mage/cards/t/TrueheartDuelist.java new file mode 100644 index 00000000000..8831695224d --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TrueheartDuelist.java @@ -0,0 +1,71 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.combat.CanBlockAdditionalCreatureEffect; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; + +/** + * + * @author fireshoes + */ +public class TrueheartDuelist extends CardImpl { + + public TrueheartDuelist(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); + + this.subtype.add("Human"); + this.subtype.add("Warrior"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Trueheart Duelist can block an additional creature each combat. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CanBlockAdditionalCreatureEffect(Duration.WhileOnBattlefield, 1))); + + // Embalm {2}{W} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{2}{W}"), this)); + } + + public TrueheartDuelist(final TrueheartDuelist card) { + super(card); + } + + @Override + public TrueheartDuelist copy() { + return new TrueheartDuelist(this); + } +} diff --git a/Mage.Sets/src/mage/cards/t/TrueheartTwins.java b/Mage.Sets/src/mage/cards/t/TrueheartTwins.java new file mode 100644 index 00000000000..1eca9ca7544 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TrueheartTwins.java @@ -0,0 +1,69 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.t; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.ExertCreatureControllerTriggeredAbility; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.abilities.keyword.ExertAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; + +/** + * + * @author stravant + */ +public class TrueheartTwins extends CardImpl { + + public TrueheartTwins(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}"); + + this.subtype.add("Jackal"); + this.subtype.add("Warrior"); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // You may exert Trueheart Twins as it attacks. + this.addAbility(new ExertAbility(null, false)); + + // Whenever you exert a creature, creatures you control get +1/+0 until end of turn. + this.addAbility(new ExertCreatureControllerTriggeredAbility(new BoostControlledEffect(1, 0, Duration.EndOfTurn))); + } + + public TrueheartTwins(final TrueheartTwins card) { + super(card); + } + + @Override + public TrueheartTwins copy() { + return new TrueheartTwins(this); + } +} diff --git a/Mage.Sets/src/mage/cards/t/TsaboTavoc.java b/Mage.Sets/src/mage/cards/t/TsaboTavoc.java index 758a2e55c0b..04cf89d8a69 100644 --- a/Mage.Sets/src/mage/cards/t/TsaboTavoc.java +++ b/Mage.Sets/src/mage/cards/t/TsaboTavoc.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,11 +38,14 @@ import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,13 +56,13 @@ public class TsaboTavoc extends CardImpl { private static final FilterCreaturePermanent filterDestroy = new FilterCreaturePermanent("legendary creature"); static { - filter.add(new SupertypePredicate("Legendary")); - filterDestroy.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); + filterDestroy.add(new SupertypePredicate(SuperType.LEGENDARY)); } public TsaboTavoc(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Horror"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/t/TuknirDeathlock.java b/Mage.Sets/src/mage/cards/t/TuknirDeathlock.java index 84b03b0eddd..adb4d80893d 100644 --- a/Mage.Sets/src/mage/cards/t/TuknirDeathlock.java +++ b/Mage.Sets/src/mage/cards/t/TuknirDeathlock.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,9 +38,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -50,7 +52,7 @@ public class TuknirDeathlock extends CardImpl { public TuknirDeathlock(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}{R}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/t/TuktukTheExplorer.java b/Mage.Sets/src/mage/cards/t/TuktukTheExplorer.java index b6210b1a1de..cbee92a6a68 100644 --- a/Mage.Sets/src/mage/cards/t/TuktukTheExplorer.java +++ b/Mage.Sets/src/mage/cards/t/TuktukTheExplorer.java @@ -36,6 +36,7 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.SuperType; import mage.game.permanent.token.Token; /** @@ -46,7 +47,7 @@ public class TuktukTheExplorer extends CardImpl { public TuktukTheExplorer (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.power = new MageInt(1); @@ -73,7 +74,7 @@ class TuktukTheReturnedToken extends Token { setOriginalExpansionSetCode(setCode); cardType.add(CardType.ARTIFACT); cardType.add(CardType.CREATURE); - supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); subtype.add("Goblin"); power = new MageInt(5); toughness = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/t/TurnBurn.java b/Mage.Sets/src/mage/cards/t/TurnBurn.java index 11eb1690de1..e90dec11338 100644 --- a/Mage.Sets/src/mage/cards/t/TurnBurn.java +++ b/Mage.Sets/src/mage/cards/t/TurnBurn.java @@ -27,6 +27,7 @@ */ package mage.cards.t; +import java.util.UUID; import mage.MageInt; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; @@ -35,12 +36,11 @@ import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SpellAbilityType; import mage.game.permanent.token.Token; import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; -import java.util.UUID; - /** * * @author LevelX2 @@ -48,7 +48,7 @@ import java.util.UUID; public class TurnBurn extends SplitCard { public TurnBurn(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{U}","{1}{R}",true); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}", "{1}{R}", SpellAbilityType.SPLIT_FUSED); // Turn // Until end of turn, target creature loses all abilities and becomes a red Weird with base power and toughness 0/1. diff --git a/Mage.Sets/src/mage/cards/t/TymaretTheMurderKing.java b/Mage.Sets/src/mage/cards/t/TymaretTheMurderKing.java index 94d28b303cc..915f587fea8 100644 --- a/Mage.Sets/src/mage/cards/t/TymaretTheMurderKing.java +++ b/Mage.Sets/src/mage/cards/t/TymaretTheMurderKing.java @@ -27,7 +27,6 @@ */ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,12 +37,15 @@ import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.TargetPlayer; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +59,7 @@ public class TymaretTheMurderKing extends CardImpl { public TymaretTheMurderKing(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Zombie"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/t/TymnaTheWeaver.java b/Mage.Sets/src/mage/cards/t/TymnaTheWeaver.java index 5c135c95755..1613562b680 100644 --- a/Mage.Sets/src/mage/cards/t/TymnaTheWeaver.java +++ b/Mage.Sets/src/mage/cards/t/TymnaTheWeaver.java @@ -41,10 +41,7 @@ import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.PartnerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.WatcherScope; +import mage.constants.*; import mage.game.Game; import mage.game.events.DamagedPlayerEvent; import mage.game.events.GameEvent; @@ -61,7 +58,7 @@ public class TymnaTheWeaver extends CardImpl { public TymnaTheWeaver(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{B}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Cleric"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/u/UbulSarGatekeepers.java b/Mage.Sets/src/mage/cards/u/UbulSarGatekeepers.java index ac0d9cbdfc7..d48946c05d3 100644 --- a/Mage.Sets/src/mage/cards/u/UbulSarGatekeepers.java +++ b/Mage.Sets/src/mage/cards/u/UbulSarGatekeepers.java @@ -30,7 +30,7 @@ package mage.cards.u; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -72,7 +72,7 @@ public class UbulSarGatekeepers extends CardImpl { // Whenever Ubul Sar Gatekeepers enters the battlefield, if you control two or more Gates, target creature an opponent controls gets -2/-2 until end of turn. Ability ability = new ConditionalTriggeredAbility( new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(-2, -2, Duration.EndOfTurn)), - new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 1), + new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1), "Whenever {this} enters the battlefield, if you control two or more Gates, target creature an opponent controls gets -2/-2 until end of turn."); Target target = new TargetCreaturePermanent(targetFilter); ability.addTarget(target); diff --git a/Mage.Sets/src/mage/cards/u/UginTheSpiritDragon.java b/Mage.Sets/src/mage/cards/u/UginTheSpiritDragon.java index 5babeb1e712..fd451648563 100644 --- a/Mage.Sets/src/mage/cards/u/UginTheSpiritDragon.java +++ b/Mage.Sets/src/mage/cards/u/UginTheSpiritDragon.java @@ -27,10 +27,8 @@ */ package mage.cards.u; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; import mage.abilities.costs.Cost; @@ -44,7 +42,6 @@ import mage.cards.CardsImpl; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterPermanent; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.Predicates; @@ -55,6 +52,10 @@ import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCreatureOrPlayer; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 @@ -122,7 +123,7 @@ class UginTheSpiritDragonEffect2 extends OneShotEffect { } FilterPermanent filter = new FilterPermanent("permanent with converted mana cost X or less that's one or more colors"); - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, cmc + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, cmc + 1)); filter.add(Predicates.not(new ColorlessPredicate())); Set permanentsToExile = new HashSet<>(); permanentsToExile.addAll(game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)); diff --git a/Mage.Sets/src/mage/cards/u/UginsNexus.java b/Mage.Sets/src/mage/cards/u/UginsNexus.java index 314f518ce6e..ef3c46735c5 100644 --- a/Mage.Sets/src/mage/cards/u/UginsNexus.java +++ b/Mage.Sets/src/mage/cards/u/UginsNexus.java @@ -27,7 +27,6 @@ */ package mage.cards.u; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -35,10 +34,7 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.common.turn.AddExtraTurnControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; @@ -46,6 +42,8 @@ import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -54,7 +52,7 @@ public class UginsNexus extends CardImpl { public UginsNexus(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // If a player would begin an extra turn, that player skips that turn instead. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new UginsNexusSkipExtraTurnsEffect())); diff --git a/Mage.Sets/src/mage/cards/u/UlamogTheCeaselessHunger.java b/Mage.Sets/src/mage/cards/u/UlamogTheCeaselessHunger.java index 0c1923cdea8..b0950720b16 100644 --- a/Mage.Sets/src/mage/cards/u/UlamogTheCeaselessHunger.java +++ b/Mage.Sets/src/mage/cards/u/UlamogTheCeaselessHunger.java @@ -27,7 +27,6 @@ */ package mage.cards.u; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -40,6 +39,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.game.Game; @@ -51,6 +51,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes @@ -59,7 +61,7 @@ public class UlamogTheCeaselessHunger extends CardImpl { public UlamogTheCeaselessHunger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{10}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Eldrazi"); this.power = new MageInt(10); this.toughness = new MageInt(10); diff --git a/Mage.Sets/src/mage/cards/u/UlamogTheInfiniteGyre.java b/Mage.Sets/src/mage/cards/u/UlamogTheInfiniteGyre.java index 0211f2b09de..c21417fc9ef 100644 --- a/Mage.Sets/src/mage/cards/u/UlamogTheInfiniteGyre.java +++ b/Mage.Sets/src/mage/cards/u/UlamogTheInfiniteGyre.java @@ -27,7 +27,6 @@ */ package mage.cards.u; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.PutIntoGraveFromAnywhereSourceTriggeredAbility; @@ -39,8 +38,11 @@ import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author maurer.it_at_gmail.com @@ -49,7 +51,7 @@ public class UlamogTheInfiniteGyre extends CardImpl { public UlamogTheInfiniteGyre(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{11}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Eldrazi"); this.power = new MageInt(10); diff --git a/Mage.Sets/src/mage/cards/u/UlashtTheHateSeed.java b/Mage.Sets/src/mage/cards/u/UlashtTheHateSeed.java index d2eee0d242f..37500c9404b 100644 --- a/Mage.Sets/src/mage/cards/u/UlashtTheHateSeed.java +++ b/Mage.Sets/src/mage/cards/u/UlashtTheHateSeed.java @@ -27,7 +27,6 @@ */ package mage.cards.u; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -44,6 +43,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; @@ -55,6 +55,8 @@ import mage.game.permanent.token.SaprolingToken; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author emerald000 @@ -63,7 +65,7 @@ public class UlashtTheHateSeed extends CardImpl { public UlashtTheHateSeed(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Hellion"); this.subtype.add("Hydra"); diff --git a/Mage.Sets/src/mage/cards/u/UlrichOfTheKrallenhorde.java b/Mage.Sets/src/mage/cards/u/UlrichOfTheKrallenhorde.java index 96c693c6323..58da11005a1 100644 --- a/Mage.Sets/src/mage/cards/u/UlrichOfTheKrallenhorde.java +++ b/Mage.Sets/src/mage/cards/u/UlrichOfTheKrallenhorde.java @@ -27,7 +27,6 @@ */ package mage.cards.u; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.TriggeredAbilityImpl; @@ -39,15 +38,14 @@ import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -56,7 +54,7 @@ public class UlrichOfTheKrallenhorde extends CardImpl { public UlrichOfTheKrallenhorde(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Werewolf"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/u/UlrichUncontestedAlpha.java b/Mage.Sets/src/mage/cards/u/UlrichUncontestedAlpha.java index 5603c1604f9..7b2f5da4f7b 100644 --- a/Mage.Sets/src/mage/cards/u/UlrichUncontestedAlpha.java +++ b/Mage.Sets/src/mage/cards/u/UlrichUncontestedAlpha.java @@ -27,7 +27,6 @@ */ package mage.cards.u; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbility; import mage.abilities.TriggeredAbilityImpl; @@ -40,6 +39,7 @@ import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; @@ -52,6 +52,8 @@ import mage.game.permanent.Permanent; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -60,7 +62,7 @@ public class UlrichUncontestedAlpha extends CardImpl { public UlrichUncontestedAlpha(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Werewolf"); this.power = new MageInt(6); this.toughness = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/u/UlvenwaldObserver.java b/Mage.Sets/src/mage/cards/u/UlvenwaldObserver.java index 79ba7ddd543..aec24748ad8 100644 --- a/Mage.Sets/src/mage/cards/u/UlvenwaldObserver.java +++ b/Mage.Sets/src/mage/cards/u/UlvenwaldObserver.java @@ -27,19 +27,20 @@ */ package mage.cards.u; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.TargetController; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -49,7 +50,7 @@ public class UlvenwaldObserver extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature you control with toughness 4 or greater"); static { - filter.add(new ToughnessPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 3)); filter.add(new ControllerPredicate(TargetController.YOU)); } diff --git a/Mage.Sets/src/mage/cards/u/UmezawasJitte.java b/Mage.Sets/src/mage/cards/u/UmezawasJitte.java index 830f3a2b2b1..26b4acc053e 100644 --- a/Mage.Sets/src/mage/cards/u/UmezawasJitte.java +++ b/Mage.Sets/src/mage/cards/u/UmezawasJitte.java @@ -57,7 +57,7 @@ public class UmezawasJitte extends CardImpl { public UmezawasJitte(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Equipment"); // Whenever equipped creature deals combat damage, put two charge counters on Umezawa's Jitte. diff --git a/Mage.Sets/src/mage/cards/u/Unburden.java b/Mage.Sets/src/mage/cards/u/Unburden.java index 136aafbd740..b6acd7fbfdf 100644 --- a/Mage.Sets/src/mage/cards/u/Unburden.java +++ b/Mage.Sets/src/mage/cards/u/Unburden.java @@ -48,6 +48,7 @@ public class Unburden extends CardImpl { // Target player discards two cards. this.getSpellAbility().addEffect(new DiscardTargetEffect(2)); this.getSpellAbility().addTarget(new TargetPlayer()); + // Cycling {2} this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); } diff --git a/Mage.Sets/src/mage/cards/u/UnderhandedDesigns.java b/Mage.Sets/src/mage/cards/u/UnderhandedDesigns.java index 1c4328c9a86..09e32628f32 100644 --- a/Mage.Sets/src/mage/cards/u/UnderhandedDesigns.java +++ b/Mage.Sets/src/mage/cards/u/UnderhandedDesigns.java @@ -29,7 +29,7 @@ package mage.cards.u; import java.util.UUID; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -68,7 +68,7 @@ public class UnderhandedDesigns extends CardImpl { Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{1}{B}"), - new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent("you control two or more artifacts"), CountType.MORE_THAN, 1)); + new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent("you control two or more artifacts"), ComparisonType.MORE_THAN, 1)); ability.addCost(new SacrificeSourceCost()); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/u/UnderworldSlums.java b/Mage.Sets/src/mage/cards/u/UnderworldSlums.java index 163c81824f5..40fd6b2296f 100644 --- a/Mage.Sets/src/mage/cards/u/UnderworldSlums.java +++ b/Mage.Sets/src/mage/cards/u/UnderworldSlums.java @@ -37,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.Predicate; @@ -92,7 +93,7 @@ public class UnderworldSlums extends CardImpl { subtypePredicates.add(new SubtypePredicate("Mountain")); subtypePredicates.add(new SubtypePredicate("Forest")); filter.add(Predicates.or(subtypePredicates)); - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); TargetCardInLibrary target = new TargetCardInLibrary(filter); addEffect(new SearchLibraryPutInPlayEffect(target, true, true, Outcome.PutLandInPlay)); } diff --git a/Mage.Sets/src/mage/cards/u/Unearth.java b/Mage.Sets/src/mage/cards/u/Unearth.java index 49b423f3ab5..0c72bff09a4 100644 --- a/Mage.Sets/src/mage/cards/u/Unearth.java +++ b/Mage.Sets/src/mage/cards/u/Unearth.java @@ -27,19 +27,20 @@ */ package mage.cards.u; -import java.util.UUID; -import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.keyword.CyclingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; import mage.filter.FilterCard; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Plopman @@ -49,7 +50,7 @@ public class Unearth extends CardImpl { private static final FilterCard filter = new FilterCreatureCard("creature card with converted mana cost 3 or less from your graveyard"); static { - filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public Unearth(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/u/UnscytheKillerOfKings.java b/Mage.Sets/src/mage/cards/u/UnscytheKillerOfKings.java index c4adbac5ab1..fcef3a127e5 100644 --- a/Mage.Sets/src/mage/cards/u/UnscytheKillerOfKings.java +++ b/Mage.Sets/src/mage/cards/u/UnscytheKillerOfKings.java @@ -27,7 +27,6 @@ */ package mage.cards.u; -import java.util.UUID; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; @@ -42,10 +41,7 @@ import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; @@ -56,6 +52,8 @@ import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -64,7 +62,7 @@ public class UnscytheKillerOfKings extends CardImpl { public UnscytheKillerOfKings(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{U}{B}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Equipment"); // Equipped creature gets +3/+3 and has first strike. diff --git a/Mage.Sets/src/mage/cards/u/UntaidakeTheCloudKeeper.java b/Mage.Sets/src/mage/cards/u/UntaidakeTheCloudKeeper.java index 7293d384c9b..cad94f417b1 100644 --- a/Mage.Sets/src/mage/cards/u/UntaidakeTheCloudKeeper.java +++ b/Mage.Sets/src/mage/cards/u/UntaidakeTheCloudKeeper.java @@ -44,6 +44,7 @@ import mage.abilities.mana.conditional.ManaCondition; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.game.Game; /** @@ -54,7 +55,7 @@ public class UntaidakeTheCloudKeeper extends CardImpl { public UntaidakeTheCloudKeeper(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); // Untaidake, the Cloud Keeper enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); @@ -103,7 +104,7 @@ class LegendaryCastManaCondition extends ManaCondition implements Condition { public boolean apply(Game game, Ability source) { if (source instanceof SpellAbility) { MageObject object = game.getObject(source.getSourceId()); - if (object != null && object.getSupertype().contains("Legendary")) { + if (object != null && object.isLegendary()) { return true; } } diff --git a/Mage.Sets/src/mage/cards/u/UnwaveringInitiate.java b/Mage.Sets/src/mage/cards/u/UnwaveringInitiate.java new file mode 100644 index 00000000000..c96e07d0285 --- /dev/null +++ b/Mage.Sets/src/mage/cards/u/UnwaveringInitiate.java @@ -0,0 +1,68 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.u; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.VigilanceAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class UnwaveringInitiate extends CardImpl { + + public UnwaveringInitiate(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); + + this.subtype.add("Human"); + this.subtype.add("Warrior"); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // Vigilance + this.addAbility(VigilanceAbility.getInstance()); + + // Embalm {4}{W} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{4}{W}"), this)); + } + + public UnwaveringInitiate(final UnwaveringInitiate card) { + super(card); + } + + @Override + public UnwaveringInitiate copy() { + return new UnwaveringInitiate(this); + } +} diff --git a/Mage.Sets/src/mage/cards/u/UrabraskTheHidden.java b/Mage.Sets/src/mage/cards/u/UrabraskTheHidden.java index 8b57905d742..a7d061fcdbc 100644 --- a/Mage.Sets/src/mage/cards/u/UrabraskTheHidden.java +++ b/Mage.Sets/src/mage/cards/u/UrabraskTheHidden.java @@ -27,7 +27,6 @@ */ package mage.cards.u; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -36,10 +35,7 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.game.events.EntersTheBattlefieldEvent; @@ -47,6 +43,8 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * * @author Loki @@ -55,7 +53,7 @@ public class UrabraskTheHidden extends CardImpl { public UrabraskTheHidden(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Praetor"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/u/Urborg.java b/Mage.Sets/src/mage/cards/u/Urborg.java index 5622c38b786..75ae3d69d87 100644 --- a/Mage.Sets/src/mage/cards/u/Urborg.java +++ b/Mage.Sets/src/mage/cards/u/Urborg.java @@ -27,7 +27,6 @@ */ package mage.cards.u; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,9 +37,12 @@ import mage.abilities.mana.BlackManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author anonymous @@ -49,7 +51,7 @@ public class Urborg extends CardImpl { public Urborg(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {B} to your mana pool. this.addAbility(new BlackManaAbility()); diff --git a/Mage.Sets/src/mage/cards/u/UrborgTombOfYawgmoth.java b/Mage.Sets/src/mage/cards/u/UrborgTombOfYawgmoth.java index 5c0818e58c3..946fc3c1078 100644 --- a/Mage.Sets/src/mage/cards/u/UrborgTombOfYawgmoth.java +++ b/Mage.Sets/src/mage/cards/u/UrborgTombOfYawgmoth.java @@ -47,7 +47,7 @@ public class UrborgTombOfYawgmoth extends CardImpl { public UrborgTombOfYawgmoth(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Each land is a Swamp in addition to its other land types. Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new BlackManaAbility(), Duration.WhileOnBattlefield, new FilterLandPermanent(), diff --git a/Mage.Sets/src/mage/cards/u/UrilTheMiststalker.java b/Mage.Sets/src/mage/cards/u/UrilTheMiststalker.java index 8851e23c4d2..857c0aa7f9e 100644 --- a/Mage.Sets/src/mage/cards/u/UrilTheMiststalker.java +++ b/Mage.Sets/src/mage/cards/u/UrilTheMiststalker.java @@ -27,7 +27,6 @@ */ package mage.cards.u; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.AuraAttachedCount; @@ -37,8 +36,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -47,7 +49,7 @@ public class UrilTheMiststalker extends CardImpl { public UrilTheMiststalker(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{G}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Beast"); diff --git a/Mage.Sets/src/mage/cards/u/UyoSilentProphet.java b/Mage.Sets/src/mage/cards/u/UyoSilentProphet.java index 397fecf4bbe..62b3693d690 100644 --- a/Mage.Sets/src/mage/cards/u/UyoSilentProphet.java +++ b/Mage.Sets/src/mage/cards/u/UyoSilentProphet.java @@ -27,9 +27,6 @@ */ package mage.cards.u; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,6 +36,8 @@ import mage.abilities.effects.common.CopyTargetSpellEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterSpell; import mage.filter.common.FilterControlledLandPermanent; @@ -47,6 +46,8 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.TargetSpell; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki @@ -63,7 +64,7 @@ public class UyoSilentProphet extends CardImpl { public UyoSilentProphet(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Moonfolk"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/v/VaevictisAsmadi.java b/Mage.Sets/src/mage/cards/v/VaevictisAsmadi.java index abf53b73a7b..fbdb85dc97f 100644 --- a/Mage.Sets/src/mage/cards/v/VaevictisAsmadi.java +++ b/Mage.Sets/src/mage/cards/v/VaevictisAsmadi.java @@ -27,7 +27,6 @@ */ package mage.cards.v; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -37,10 +36,9 @@ import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; + +import java.util.UUID; /** * @@ -50,7 +48,7 @@ public class VaevictisAsmadi extends CardImpl { public VaevictisAsmadi(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}{R}{R}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elder"); this.subtype.add("Dragon"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/v/VagrantPlowbeasts.java b/Mage.Sets/src/mage/cards/v/VagrantPlowbeasts.java index 1c37fe5572d..f638cf4caf1 100644 --- a/Mage.Sets/src/mage/cards/v/VagrantPlowbeasts.java +++ b/Mage.Sets/src/mage/cards/v/VagrantPlowbeasts.java @@ -27,20 +27,21 @@ */ package mage.cards.v; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.RegenerateTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.Filter.ComparisonType; +import mage.constants.CardType; +import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author North @@ -50,7 +51,7 @@ public class VagrantPlowbeasts extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); static { - filter.add(new PowerPredicate(ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public VagrantPlowbeasts(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/v/ValorousStance.java b/Mage.Sets/src/mage/cards/v/ValorousStance.java index 87478ab4201..bad35a2aa9c 100644 --- a/Mage.Sets/src/mage/cards/v/ValorousStance.java +++ b/Mage.Sets/src/mage/cards/v/ValorousStance.java @@ -27,7 +27,7 @@ */ package mage.cards.v; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -36,11 +36,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.ToughnessPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -50,7 +51,7 @@ public class ValorousStance extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with toughness 4 or greater"); static { - filter.add(new ToughnessPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 3)); } public ValorousStance(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/v/VampireLacerator.java b/Mage.Sets/src/mage/cards/v/VampireLacerator.java index daef1ff92b2..200d822b0df 100644 --- a/Mage.Sets/src/mage/cards/v/VampireLacerator.java +++ b/Mage.Sets/src/mage/cards/v/VampireLacerator.java @@ -27,19 +27,19 @@ */ package mage.cards.v; -import java.util.UUID; - -import mage.constants.CardType; import mage.MageInt; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; -import mage.abilities.condition.common.TenOrLessLifeCondition; import mage.abilities.condition.InvertCondition; +import mage.abilities.condition.common.XorLessLifeCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.TargetController; +import java.util.UUID; + /** * * @author maurer.it_at_gmail.com @@ -57,7 +57,7 @@ public class VampireLacerator extends CardImpl { this.addAbility(new BeginningOfUpkeepTriggeredAbility( new ConditionalOneShotEffect( new LoseLifeSourceControllerEffect(1), - new InvertCondition( new TenOrLessLifeCondition(TenOrLessLifeCondition.CheckType.AN_OPPONENT) ), + new InvertCondition( new XorLessLifeCondition(XorLessLifeCondition.CheckType.AN_OPPONENT, 10) ), "you lose 1 life unless an opponent has 10 or less life"), TargetController.YOU, false)); } diff --git a/Mage.Sets/src/mage/cards/v/VanquishTheFoul.java b/Mage.Sets/src/mage/cards/v/VanquishTheFoul.java index 9ab114745d6..d9d2a95a60f 100644 --- a/Mage.Sets/src/mage/cards/v/VanquishTheFoul.java +++ b/Mage.Sets/src/mage/cards/v/VanquishTheFoul.java @@ -27,18 +27,19 @@ */ package mage.cards.v; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -47,7 +48,7 @@ public class VanquishTheFoul extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 4 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } public VanquishTheFoul(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/v/VarolzTheScarStriped.java b/Mage.Sets/src/mage/cards/v/VarolzTheScarStriped.java index fc7c4dbe0da..bc89c12ad0e 100644 --- a/Mage.Sets/src/mage/cards/v/VarolzTheScarStriped.java +++ b/Mage.Sets/src/mage/cards/v/VarolzTheScarStriped.java @@ -29,8 +29,7 @@ package mage.cards.v; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Zone; +import mage.constants.*; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -43,10 +42,6 @@ import mage.abilities.keyword.ScavengeAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; @@ -67,7 +62,7 @@ public class VarolzTheScarStriped extends CardImpl { public VarolzTheScarStriped(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Troll"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/v/VassalsDuty.java b/Mage.Sets/src/mage/cards/v/VassalsDuty.java index 8ce8ef151a1..98db6b0aece 100644 --- a/Mage.Sets/src/mage/cards/v/VassalsDuty.java +++ b/Mage.Sets/src/mage/cards/v/VassalsDuty.java @@ -36,6 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; @@ -53,7 +54,7 @@ public class VassalsDuty extends CardImpl { private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("legendary creature you control"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public VassalsDuty(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/v/VeinfireBorderpost.java b/Mage.Sets/src/mage/cards/v/VeinfireBorderpost.java index 9f17b6b5d4a..dd2dfa13405 100644 --- a/Mage.Sets/src/mage/cards/v/VeinfireBorderpost.java +++ b/Mage.Sets/src/mage/cards/v/VeinfireBorderpost.java @@ -39,6 +39,7 @@ import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.RedManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.SuperType; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; @@ -53,7 +54,7 @@ public class VeinfireBorderpost extends CardImpl { private static final FilterControlledPermanent filter = new FilterControlledLandPermanent("a basic land"); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public VeinfireBorderpost (UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/v/VelaTheNightClad.java b/Mage.Sets/src/mage/cards/v/VelaTheNightClad.java index 4bef54d2435..5e1803ecefc 100644 --- a/Mage.Sets/src/mage/cards/v/VelaTheNightClad.java +++ b/Mage.Sets/src/mage/cards/v/VelaTheNightClad.java @@ -27,11 +27,6 @@ */ package mage.cards.v; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -41,9 +36,12 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.IntimidateAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,7 +56,7 @@ public class VelaTheNightClad extends CardImpl { public VelaTheNightClad(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/v/VeldraneOfSengir.java b/Mage.Sets/src/mage/cards/v/VeldraneOfSengir.java index 0b72b8aab67..34a24b76900 100644 --- a/Mage.Sets/src/mage/cards/v/VeldraneOfSengir.java +++ b/Mage.Sets/src/mage/cards/v/VeldraneOfSengir.java @@ -27,7 +27,6 @@ */ package mage.cards.v; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,8 +38,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; +import java.util.UUID; + /** * * @author fireshoes @@ -49,7 +51,7 @@ public class VeldraneOfSengir extends CardImpl { public VeldraneOfSengir(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rogue"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/v/VenarianGlimmer.java b/Mage.Sets/src/mage/cards/v/VenarianGlimmer.java index bfd5f8d2476..1c5e07197ce 100644 --- a/Mage.Sets/src/mage/cards/v/VenarianGlimmer.java +++ b/Mage.Sets/src/mage/cards/v/VenarianGlimmer.java @@ -27,8 +27,8 @@ */ package mage.cards.v; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.discard.DiscardCardYouChooseTargetEffect; @@ -37,7 +37,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.common.FilterNonlandCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -45,6 +44,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Styxo @@ -90,7 +91,7 @@ class VenarianGlimmerEffect extends OneShotEffect { Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { FilterCard filter = new FilterNonlandCard(); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, source.getManaCostsToPay().getX() + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, source.getManaCostsToPay().getX() + 1)); Effect effect = new DiscardCardYouChooseTargetEffect(filter, TargetController.ANY); effect.setTargetPointer(targetPointer); effect.apply(game, source); diff --git a/Mage.Sets/src/mage/cards/v/VendilionClique.java b/Mage.Sets/src/mage/cards/v/VendilionClique.java index f88ccafd573..c510d7cedcb 100644 --- a/Mage.Sets/src/mage/cards/v/VendilionClique.java +++ b/Mage.Sets/src/mage/cards/v/VendilionClique.java @@ -27,7 +27,6 @@ */ package mage.cards.v; -import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -41,6 +40,7 @@ import mage.cards.CardSetInfo; import mage.cards.CardsImpl; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterNonlandCard; import mage.game.Game; @@ -48,6 +48,8 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.TargetPlayer; +import java.util.UUID; + /** * * @author Loki @@ -56,7 +58,7 @@ public class VendilionClique extends CardImpl { public VendilionClique(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Faerie"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/v/VenserShaperSavant.java b/Mage.Sets/src/mage/cards/v/VenserShaperSavant.java index f17f53f3d5b..cbd0b412428 100644 --- a/Mage.Sets/src/mage/cards/v/VenserShaperSavant.java +++ b/Mage.Sets/src/mage/cards/v/VenserShaperSavant.java @@ -27,7 +27,6 @@ */ package mage.cards.v; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -36,9 +35,12 @@ import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.target.Target; import mage.target.common.TargetSpellOrPermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -47,7 +49,7 @@ public class VenserShaperSavant extends CardImpl { public VenserShaperSavant(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/v/VerdelothTheAncient.java b/Mage.Sets/src/mage/cards/v/VerdelothTheAncient.java index da0071c2d59..77722b7cb51 100644 --- a/Mage.Sets/src/mage/cards/v/VerdelothTheAncient.java +++ b/Mage.Sets/src/mage/cards/v/VerdelothTheAncient.java @@ -43,6 +43,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -61,7 +62,7 @@ public class VerdelothTheAncient extends CardImpl { public VerdelothTheAncient(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Treefolk"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/v/VesuvanDoppelganger.java b/Mage.Sets/src/mage/cards/v/VesuvanDoppelganger.java index d911fd2833f..49adeaeb519 100644 --- a/Mage.Sets/src/mage/cards/v/VesuvanDoppelganger.java +++ b/Mage.Sets/src/mage/cards/v/VesuvanDoppelganger.java @@ -113,7 +113,7 @@ class VesuvanDoppelgangerCopyEffect extends OneShotEffect { if (copyFromPermanent != null) { game.copyPermanent(copyFromPermanent, sourcePermanent.getId(), source, new ApplyToPermanent() { @Override - public boolean apply(Game game, Permanent permanent) { + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { permanent.getColor(game).setColor(sourcePermanent.getColor(game)); permanent.getAbilities().add(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new VesuvanDoppelgangerCopyEffect(), TargetController.YOU, true, false, rule2)); @@ -121,7 +121,7 @@ class VesuvanDoppelgangerCopyEffect extends OneShotEffect { } @Override - public boolean apply(Game game, MageObject mageObject) { + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { mageObject.getColor(game).setColor(sourcePermanent.getColor(game)); mageObject.getAbilities().add(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new VesuvanDoppelgangerCopyEffect(), TargetController.YOU, true, false, rule2)); diff --git a/Mage.Sets/src/mage/cards/v/VesuvanShapeshifter.java b/Mage.Sets/src/mage/cards/v/VesuvanShapeshifter.java index 2c03aeaa70f..355654e9d1d 100644 --- a/Mage.Sets/src/mage/cards/v/VesuvanShapeshifter.java +++ b/Mage.Sets/src/mage/cards/v/VesuvanShapeshifter.java @@ -28,7 +28,6 @@ package mage.cards.v; import java.util.UUID; - import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; @@ -105,7 +104,7 @@ public class VesuvanShapeshifter extends CardImpl { class VesuvanShapeShifterFaceUpApplier extends ApplyToPermanent { @Override - public boolean apply(Game game, Permanent permanent) { + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { Effect effect = new VesuvanShapeshifterFaceDownEffect(); Ability ability = new BeginningOfUpkeepTriggeredAbility(effect, TargetController.YOU, true); permanent.getAbilities().add(ability); @@ -114,7 +113,7 @@ class VesuvanShapeShifterFaceUpApplier extends ApplyToPermanent { } @Override - public boolean apply(Game game, MageObject mageObject) { + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { Effect effect = new VesuvanShapeshifterFaceDownEffect(); Ability ability = new BeginningOfUpkeepTriggeredAbility(effect, TargetController.YOU, true); mageObject.getAbilities().add(ability); diff --git a/Mage.Sets/src/mage/cards/v/VhatiIlDal.java b/Mage.Sets/src/mage/cards/v/VhatiIlDal.java index 7801dfdb9d1..3d3b3979751 100644 --- a/Mage.Sets/src/mage/cards/v/VhatiIlDal.java +++ b/Mage.Sets/src/mage/cards/v/VhatiIlDal.java @@ -27,7 +27,6 @@ */ package mage.cards.v; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,14 +38,13 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +53,7 @@ public class VhatiIlDal extends CardImpl { public VhatiIlDal(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/v/VialSmasherTheFierce.java b/Mage.Sets/src/mage/cards/v/VialSmasherTheFierce.java index 62682147599..de2d072c273 100644 --- a/Mage.Sets/src/mage/cards/v/VialSmasherTheFierce.java +++ b/Mage.Sets/src/mage/cards/v/VialSmasherTheFierce.java @@ -27,10 +27,6 @@ */ package mage.cards.v; -import java.util.Iterator; -import java.util.List; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SpellCastControllerTriggeredAbility; @@ -41,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.stack.Spell; @@ -48,6 +45,11 @@ import mage.players.Player; import mage.util.RandomUtil; import mage.watchers.common.SpellsCastWatcher; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +59,7 @@ public class VialSmasherTheFierce extends CardImpl { public VialSmasherTheFierce(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Berserker"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/v/VigorMortis.java b/Mage.Sets/src/mage/cards/v/VigorMortis.java index 7bf05119abe..4bf838e0998 100644 --- a/Mage.Sets/src/mage/cards/v/VigorMortis.java +++ b/Mage.Sets/src/mage/cards/v/VigorMortis.java @@ -30,17 +30,20 @@ package mage.cards.v; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.common.ManaWasSpentCondition; -import mage.abilities.decorator.ConditionalOneShotEffect; -import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.ReplacementEffectImpl; +import mage.abilities.effects.common.InfoEffect; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.ColoredManaSymbol; +import mage.constants.Duration; import mage.constants.Outcome; import mage.counters.CounterType; import mage.filter.common.FilterCreatureCard; import mage.game.Game; +import mage.game.events.EntersTheBattlefieldEvent; +import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.target.common.TargetCardInYourGraveyard; @@ -51,12 +54,14 @@ import mage.target.common.TargetCardInYourGraveyard; public class VigorMortis extends CardImpl { public VigorMortis(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}{B}"); // Return target creature card from your graveyard to the battlefield. If {G} was spent to cast Vigor Mortis, that creature enters the battlefield with an additional +1/+1 counter on it. + this.getSpellAbility().addEffect(new VigorMortisReplacementEffect()); // has to be added before the moving effect this.getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect()); + this.getSpellAbility().addEffect(new InfoEffect("If {G} was spent to cast {this}, that creature enters the battlefield with an additional +1/+1 counter on it")); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard())); - this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new VigorMortisAddCounterEffect(), new ManaWasSpentCondition(ColoredManaSymbol.G))); + } public VigorMortis(final VigorMortis card) { @@ -69,29 +74,46 @@ public class VigorMortis extends CardImpl { } } -class VigorMortisAddCounterEffect extends OneShotEffect { - - VigorMortisAddCounterEffect() { - super(Outcome.BoostCreature); - this.staticText = "that creature enters the battlefield with an additional +1/+1 counter on it"; +class VigorMortisReplacementEffect extends ReplacementEffectImpl { + + VigorMortisReplacementEffect() { + super(Duration.EndOfStep, Outcome.BoostCreature); } - - VigorMortisAddCounterEffect(final VigorMortisAddCounterEffect effect) { + + VigorMortisReplacementEffect(VigorMortisReplacementEffect effect) { super(effect); } - + @Override - public VigorMortisAddCounterEffect copy() { - return new VigorMortisAddCounterEffect(this); + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD; } - + @Override - public boolean apply(Game game, Ability source) { - // targetPointer can't be used because target moved from graveyard to battlefield - Permanent permanent = game.getPermanent(source.getFirstTarget()); - if (permanent != null) { - permanent.addCounters(CounterType.P1P1.createInstance(), source, game); + public boolean applies(GameEvent event, Ability source, Game game) { + if (event.getTargetId().equals(getTargetPointer().getFirst(game, source))) { + return new ManaWasSpentCondition(ColoredManaSymbol.G).apply(game, source); } return false; } + + @Override + public boolean apply(Game game, Ability source) { + return false; + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + Permanent creature = ((EntersTheBattlefieldEvent) event).getTarget(); + if (creature != null) { + creature.addCounters(CounterType.P1P1.createInstance(), source, game, event.getAppliedEffects()); + discard(); + } + return false; + } + + @Override + public VigorMortisReplacementEffect copy() { + return new VigorMortisReplacementEffect(this); + } } diff --git a/Mage.Sets/src/mage/cards/v/VillainousWealth.java b/Mage.Sets/src/mage/cards/v/VillainousWealth.java index 8e3181a2eb2..73f348d747b 100644 --- a/Mage.Sets/src/mage/cards/v/VillainousWealth.java +++ b/Mage.Sets/src/mage/cards/v/VillainousWealth.java @@ -27,19 +27,14 @@ */ package mage.cards.v; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.common.FilterNonlandCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -49,6 +44,8 @@ import mage.target.common.TargetCardInExile; import mage.target.common.TargetOpponent; import mage.util.CardUtil; +import java.util.UUID; + /** * * @author LevelX2 @@ -97,7 +94,7 @@ class VillainousWealthEffect extends OneShotEffect { if (controller != null) { Player player = game.getPlayer(targetPointer.getFirst(game, source)); FilterCard filter = new FilterNonlandCard(); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, source.getManaCostsToPay().getX() + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, source.getManaCostsToPay().getX() + 1)); UUID exileId = CardUtil.getCardExileZoneId(game, source); if (player != null) { Cards cardsToExile = new CardsImpl(); diff --git a/Mage.Sets/src/mage/cards/v/VineSnare.java b/Mage.Sets/src/mage/cards/v/VineSnare.java index f8267fc69cf..c541215452f 100644 --- a/Mage.Sets/src/mage/cards/v/VineSnare.java +++ b/Mage.Sets/src/mage/cards/v/VineSnare.java @@ -27,16 +27,17 @@ */ package mage.cards.v; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -46,7 +47,7 @@ public class VineSnare extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 4 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 5)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 5)); } public VineSnare(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/v/ViolentImpact.java b/Mage.Sets/src/mage/cards/v/ViolentImpact.java new file mode 100644 index 00000000000..75832a27b8c --- /dev/null +++ b/Mage.Sets/src/mage/cards/v/ViolentImpact.java @@ -0,0 +1,75 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.v; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.FilterPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.target.TargetPermanent; + +/** + * + * @author fireshoes + */ +public class ViolentImpact extends CardImpl { + + private static final FilterPermanent filter = new FilterPermanent("artifact or land"); + + static { + filter.add(Predicates.or(new CardTypePredicate(CardType.ARTIFACT), + new CardTypePredicate(CardType.LAND))); + } + + public ViolentImpact(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}"); + + // Destroy target artifact or land. + getSpellAbility().addEffect(new DestroyTargetEffect()); + getSpellAbility().addTarget(new TargetPermanent(filter)); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + + } + + public ViolentImpact(final ViolentImpact card) { + super(card); + } + + @Override + public ViolentImpact copy() { + return new ViolentImpact(this); + } +} diff --git a/Mage.Sets/src/mage/cards/v/VisaraTheDreadful.java b/Mage.Sets/src/mage/cards/v/VisaraTheDreadful.java index eba44489bb5..ae04aa2dd5c 100644 --- a/Mage.Sets/src/mage/cards/v/VisaraTheDreadful.java +++ b/Mage.Sets/src/mage/cards/v/VisaraTheDreadful.java @@ -27,7 +27,6 @@ */ package mage.cards.v; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -37,9 +36,12 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -48,7 +50,7 @@ public class VisaraTheDreadful extends CardImpl { public VisaraTheDreadful(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Gorgon"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/v/VishKalBloodArbiter.java b/Mage.Sets/src/mage/cards/v/VishKalBloodArbiter.java index 93361309cf3..4891dc7e04c 100644 --- a/Mage.Sets/src/mage/cards/v/VishKalBloodArbiter.java +++ b/Mage.Sets/src/mage/cards/v/VishKalBloodArbiter.java @@ -45,6 +45,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.Counter; import mage.counters.CounterType; @@ -64,7 +65,7 @@ public class VishKalBloodArbiter extends CardImpl { public VishKalBloodArbiter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Vampire"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/v/VizierOfDeferment.java b/Mage.Sets/src/mage/cards/v/VizierOfDeferment.java new file mode 100644 index 00000000000..0f5920131b5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/v/VizierOfDeferment.java @@ -0,0 +1,157 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.v; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import mage.MageInt; +import mage.MageObjectReference; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.ReturnToBattlefieldUnderOwnerControlTargetEffect; +import mage.abilities.keyword.FlashAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.permanent.PermanentIdPredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.common.TargetCreaturePermanent; +import mage.target.targetpointer.FixedTarget; +import mage.watchers.common.AttackedThisTurnWatcher; +import mage.watchers.common.BlockedThisTurnWatcher; + +/** + * + * @author jeffwadsworth + */ +public class VizierOfDeferment extends CardImpl { + + public VizierOfDeferment(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); + + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Flash + this.addAbility(FlashAbility.getInstance()); + + // When Vizier of Deferment enters the battlefield, you may exile target creature if it attacked or blocked this turn. Return that card to the battlefield under its owner's control at the beginning of the next end step. + Ability ability = new EntersBattlefieldTriggeredAbility(new VizierOfDefermentEffect(), true); + ability.addWatcher(new AttackedThisTurnWatcher()); + ability.addWatcher(new BlockedThisTurnWatcher()); + this.addAbility(ability); + + } + + @Override + public void adjustTargets(Ability ability, Game game) { + if (ability instanceof EntersBattlefieldTriggeredAbility) { + List creaturesThatCanBeTargeted = new ArrayList<>(); + FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that attacked or blocked this turn."); + AttackedThisTurnWatcher watcherAttacked = (AttackedThisTurnWatcher) game.getState().getWatchers().get(AttackedThisTurnWatcher.class.getName()); + BlockedThisTurnWatcher watcherBlocked = (BlockedThisTurnWatcher) game.getState().getWatchers().get("BlockedThisTurn"); + if (watcherAttacked != null) { + for (MageObjectReference mor : watcherAttacked.getAttackedThisTurnCreatures()) { + Permanent permanent = mor.getPermanent(game); + if (permanent != null) { + creaturesThatCanBeTargeted.add(new PermanentIdPredicate(permanent.getId())); + } + } + if (watcherBlocked != null) { + for (MageObjectReference mor : watcherBlocked.getBlockedThisTurnCreatures()) { + Permanent permanent = mor.getPermanent(game); + if (permanent != null) { + creaturesThatCanBeTargeted.add(new PermanentIdPredicate(permanent.getId())); + } + } + } + filter.add(Predicates.or(creaturesThatCanBeTargeted)); + ability.getTargets().clear(); + ability.addTarget(new TargetCreaturePermanent(filter)); + } + } + } + + public VizierOfDeferment(final VizierOfDeferment card) { + super(card); + } + + @Override + public VizierOfDeferment copy() { + return new VizierOfDeferment(this); + } +} + +class VizierOfDefermentEffect extends OneShotEffect { + + public VizierOfDefermentEffect() { + super(Outcome.Detriment); + staticText = "you may exile target creature if it attacked or blocked this turn. Return that card to the battlefield under its owner's control at the beginning of the next end step"; + } + + public VizierOfDefermentEffect(final VizierOfDefermentEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent permanent = game.getPermanent(source.getFirstTarget()); + Player controller = game.getPlayer(source.getControllerId()); + Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); + if (controller != null + && permanent != null + && sourcePermanent != null) { + if (controller.moveCardToExileWithInfo(permanent, source.getSourceId(), sourcePermanent.getIdName(), source.getSourceId(), game, Zone.BATTLEFIELD, true)) { + Effect effect = new ReturnToBattlefieldUnderOwnerControlTargetEffect(); + effect.setText("Return that card to the battlefield under its owner's control at the beginning of the next end step"); + effect.setTargetPointer(new FixedTarget(source.getFirstTarget(), game)); + game.addDelayedTriggeredAbility(new AtTheBeginOfNextEndStepDelayedTriggeredAbility(effect), source); + return true; + } + } + return false; + } + + @Override + public VizierOfDefermentEffect copy() { + return new VizierOfDefermentEffect(this); + } + +} diff --git a/Mage.Sets/src/mage/cards/v/VizierOfManyFaces.java b/Mage.Sets/src/mage/cards/v/VizierOfManyFaces.java new file mode 100644 index 00000000000..62ae1b9d40e --- /dev/null +++ b/Mage.Sets/src/mage/cards/v/VizierOfManyFaces.java @@ -0,0 +1,156 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.v; + +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; +import mage.MageInt; +import mage.MageObject; +import mage.MageObjectReference; +import mage.ObjectColor; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CopyPermanentEffect; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.WatcherScope; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.game.permanent.PermanentToken; +import mage.util.functions.ApplyToPermanent; +import mage.watchers.Watcher; + +/** + * + * @author LevelX2 + */ +public class VizierOfManyFaces extends CardImpl { + + public VizierOfManyFaces(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}{U}"); + + this.subtype.add("Shapeshifter"); + this.subtype.add("Cleric"); + this.power = new MageInt(0); + this.toughness = new MageInt(0); + + // You may have Vizier of Many Faces enter the battlefield as a copy of any creature on the battlefield, except if Vizier of Many Faces was embalmed, the token has no mana cost, it's white, and it's a Zombie in addition to its other types. + Effect effect = new CopyPermanentEffect(new VizierOfManyFacesApplyToPermanent()); + effect.setText("as a copy of any creature on the battlefield, except if {this} was embalmed, the token has no mana cost, it's white, and it's a Zombie in addition to its other types."); + this.addAbility(new EntersBattlefieldAbility(effect, true), new EmbalmedThisTurnWatcher()); + + // Embalm {3}{U}{U} + this.addAbility(new EmbalmAbility(new ManaCostsImpl("{3}{U}{U}"), this)); + + } + + public VizierOfManyFaces(final VizierOfManyFaces card) { + super(card); + } + + @Override + public VizierOfManyFaces copy() { + return new VizierOfManyFaces(this); + } +} + +class VizierOfManyFacesApplyToPermanent extends ApplyToPermanent { + + @Override + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { + return true; + } + + @Override + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { + for (Permanent entering : game.getPermanentsEntering().values()) { + if (entering.getId().equals(copyToObjectId) && entering instanceof PermanentToken) { + UUID originalCardId = ((PermanentToken) entering).getToken().getCopySourceCard().getId(); + EmbalmedThisTurnWatcher watcher = (EmbalmedThisTurnWatcher) game.getState().getWatchers().get(EmbalmedThisTurnWatcher.class.getName()); + if (watcher != null) { + for (MageObjectReference mor : watcher.getEmbalmedThisTurnCards()) { + if (mor.getSourceId().equals(originalCardId) && game.getState().getZoneChangeCounter(originalCardId) == mor.getZoneChangeCounter()) { + permanent.getManaCost().clear(); + if (!permanent.getSubtype(game).contains("Zombie")) { + permanent.getSubtype(game).add("Zombie"); + } + permanent.getColor(game).setColor(ObjectColor.WHITE); + + } + } + } + } + } + return true; + } + +} + +class EmbalmedThisTurnWatcher extends Watcher { + + private final Set embalmedThisTurnTokens; + + public EmbalmedThisTurnWatcher() { + super(EmbalmedThisTurnWatcher.class.getName(), WatcherScope.GAME); + embalmedThisTurnTokens = new HashSet<>(); + } + + public EmbalmedThisTurnWatcher(final EmbalmedThisTurnWatcher watcher) { + super(watcher); + embalmedThisTurnTokens = new HashSet<>(watcher.embalmedThisTurnTokens); + } + + @Override + public Watcher copy() { + return new EmbalmedThisTurnWatcher(this); + } + + @Override + public void watch(GameEvent event, Game game) { + if (event.getType() == GameEvent.EventType.EMBALMED_CREATURE) { + this.embalmedThisTurnTokens.add(new MageObjectReference(event.getSourceId(), game)); + } + } + + public Set getEmbalmedThisTurnCards() { + return this.embalmedThisTurnTokens; + } + + @Override + public void reset() { + super.reset(); + embalmedThisTurnTokens.clear(); + } + +} diff --git a/Mage.Sets/src/mage/cards/v/VizierOfRemedies.java b/Mage.Sets/src/mage/cards/v/VizierOfRemedies.java new file mode 100644 index 00000000000..ba7c6813c7c --- /dev/null +++ b/Mage.Sets/src/mage/cards/v/VizierOfRemedies.java @@ -0,0 +1,113 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.v; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.ReplacementEffectImpl; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.game.Game; +import mage.game.events.DamageCreatureEvent; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author anonymous + */ +public class VizierOfRemedies extends CardImpl { + + public VizierOfRemedies(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); + + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // If one or more -1/-1 counters would be put on a creature you control, that many -1/-1 counters minus one are put on it instead. + addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VizierOfRemediesReplacementEffect())); + + } + + public VizierOfRemedies(final VizierOfRemedies card) { + super(card); + } + + @Override + public VizierOfRemedies copy() { + return new VizierOfRemedies(this); + } +} + +class VizierOfRemediesReplacementEffect extends ReplacementEffectImpl { + + public VizierOfRemediesReplacementEffect() { + super(Duration.WhileOnBattlefield, Outcome.Benefit); + staticText = "If one or more -1/-1 counters would be put on a creature you control, that many -1/-1 counters minus one are put on it instead."; + } + + public VizierOfRemediesReplacementEffect(final VizierOfRemediesReplacementEffect effect) { + super(effect); + } + + @Override + public VizierOfRemediesReplacementEffect copy() { + return new VizierOfRemediesReplacementEffect(this); + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + event.setAmount(event.getAmount() - 1); + return false; + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.ADD_COUNTERS; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + boolean weControlTarget = game.getControllerId(event.getTargetId()).equals(source.getControllerId()); + boolean isM1M1Counters = event.getData().equals(CounterType.M1M1.getName()); + boolean isOneOrMore = event.getAmount() > 0; + return weControlTarget && isM1M1Counters && isOneOrMore; + } +} diff --git a/Mage.Sets/src/mage/cards/v/VizierOfTheMenagerie.java b/Mage.Sets/src/mage/cards/v/VizierOfTheMenagerie.java new file mode 100644 index 00000000000..e0f028c991e --- /dev/null +++ b/Mage.Sets/src/mage/cards/v/VizierOfTheMenagerie.java @@ -0,0 +1,198 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.v; + +import java.util.UUID; +import mage.MageInt; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.AsThoughEffectImpl; +import mage.abilities.effects.AsThoughManaEffect; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AsThoughEffectType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Layer; +import mage.constants.ManaType; +import mage.constants.Outcome; +import mage.constants.SubLayer; +import mage.constants.Zone; +import mage.game.Game; +import mage.players.ManaPoolItem; +import mage.players.Player; + +/** + * + * @author jeffwadsworth + */ +public class VizierOfTheMenagerie extends CardImpl { + + public VizierOfTheMenagerie(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}"); + this.subtype.add("Naga"); + this.subtype.add("Cleric"); + this.power = new MageInt(3); + this.toughness = new MageInt(4); + + // You may look at the top card of your library. (You may do this at any time.) + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VizierOfTheMenagerieTopCardRevealedEffect())); + + // You may cast the top card of your library if it's a creature card. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VizierOfTheMenagerieTopCardCastEffect())); + + // You may spend mana as though it were mana of any type to cast creature spells. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VizierOfTheMenagerieManaEffect())); + + } + + public VizierOfTheMenagerie(final VizierOfTheMenagerie card) { + super(card); + } + + @Override + public VizierOfTheMenagerie copy() { + return new VizierOfTheMenagerie(this); + } +} + +class VizierOfTheMenagerieTopCardRevealedEffect extends ContinuousEffectImpl { + + public VizierOfTheMenagerieTopCardRevealedEffect() { + super(Duration.WhileOnBattlefield, Layer.PlayerEffects, SubLayer.NA, Outcome.Benefit); + staticText = "You may look at the top card of your library. (You may do this at any time.)"; + } + + public VizierOfTheMenagerieTopCardRevealedEffect(final VizierOfTheMenagerieTopCardRevealedEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + Card topCard = controller.getLibrary().getFromTop(game); + if (topCard != null) { + MageObject vizierOfTheMenagerie = source.getSourceObject(game); + if (vizierOfTheMenagerie != null) { + controller.lookAtCards("Top card of " + vizierOfTheMenagerie.getLogName() + " controller's library", topCard, game); + } + } + } + return true; + } + + @Override + public VizierOfTheMenagerieTopCardRevealedEffect copy() { + return new VizierOfTheMenagerieTopCardRevealedEffect(this); + } +} + +class VizierOfTheMenagerieTopCardCastEffect extends AsThoughEffectImpl { + + public VizierOfTheMenagerieTopCardCastEffect() { + super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.WhileOnBattlefield, Outcome.Benefit); + staticText = "You may cast the top card of your library if it's a creature card"; + } + + public VizierOfTheMenagerieTopCardCastEffect(final VizierOfTheMenagerieTopCardCastEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public VizierOfTheMenagerieTopCardCastEffect copy() { + return new VizierOfTheMenagerieTopCardCastEffect(this); + } + + @Override + public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) { + if (affectedControllerId.equals(source.getControllerId())) { + Card card = game.getCard(objectId); + if (card != null) { + Player controller = game.getPlayer(affectedControllerId); + if (controller != null) { + Card topCard = controller.getLibrary().getFromTop(game); + MageObject vizierOfTheMenagerie = game.getObject(source.getSourceId()); + if (vizierOfTheMenagerie != null + && topCard != null) { + if (topCard == card + && topCard.isCreature()) { + return controller.cast(topCard.getSpellAbility(), game, false); + } + } + } + } + } + return false; + } +} + +class VizierOfTheMenagerieManaEffect extends AsThoughEffectImpl implements AsThoughManaEffect { + + public VizierOfTheMenagerieManaEffect() { + super(AsThoughEffectType.SPEND_OTHER_MANA, Duration.WhileOnBattlefield, Outcome.Benefit); + staticText = "You may spend mana as though it were mana of any type to cast creature spells"; + } + + public VizierOfTheMenagerieManaEffect(final VizierOfTheMenagerieManaEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public VizierOfTheMenagerieManaEffect copy() { + return new VizierOfTheMenagerieManaEffect(this); + } + + @Override + public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) { + if (source.getControllerId().equals(affectedControllerId)) { + MageObject mageObject = game.getObject(objectId); + return mageObject != null + && mageObject.isCreature(); + } + return false; + } + + @Override + public ManaType getAsThoughManaType(ManaType manaType, ManaPoolItem mana, UUID affectedControllerId, Ability source, Game game) { + return mana.getFirstAvailable(); + } +} diff --git a/Mage.Sets/src/mage/cards/v/VizierOfTumblingSands.java b/Mage.Sets/src/mage/cards/v/VizierOfTumblingSands.java new file mode 100644 index 00000000000..1af269c970e --- /dev/null +++ b/Mage.Sets/src/mage/cards/v/VizierOfTumblingSands.java @@ -0,0 +1,92 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.v; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.CycleTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.UntapTargetEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.filter.FilterPermanent; +import mage.filter.predicate.permanent.AnotherPredicate; +import mage.target.TargetPermanent; + +/** + * + * @author fireshoes + */ +public class VizierOfTumblingSands extends CardImpl { + + private static final FilterPermanent filter = new FilterPermanent("another target permanent"); + + static { + filter.add(new AnotherPredicate()); + } + + public VizierOfTumblingSands(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}"); + + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.power = new MageInt(1); + this.toughness = new MageInt(3); + + // {T}: Untap another target permanent. + Effect effect = new UntapTargetEffect(); + effect.setText("Untap another target permanent"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost()); + ability.addTarget(new TargetPermanent(filter)); + this.addAbility(ability); + + // Cycling {1}{U} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{1}{U}"))); + + // When you cycle Vizier of Tumbling Sands, untap target permanent. + ability = new CycleTriggeredAbility(new UntapTargetEffect()); + ability.addTarget(new TargetPermanent()); + this.addAbility(ability); + } + + public VizierOfTumblingSands(final VizierOfTumblingSands card) { + super(card); + } + + @Override + public VizierOfTumblingSands copy() { + return new VizierOfTumblingSands(this); + } +} diff --git a/Mage.Sets/src/mage/cards/v/VodalianKnights.java b/Mage.Sets/src/mage/cards/v/VodalianKnights.java index 32ed0da6632..929f27ceb32 100644 --- a/Mage.Sets/src/mage/cards/v/VodalianKnights.java +++ b/Mage.Sets/src/mage/cards/v/VodalianKnights.java @@ -27,8 +27,8 @@ */ package mage.cards.v; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.ControlsPermanentsControllerTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -43,9 +43,10 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -67,7 +68,7 @@ public class VodalianKnights extends CardImpl { // When you control no Islands, sacrifice Vodalian Knights. this.addAbility(new ControlsPermanentsControllerTriggeredAbility( - new FilterLandPermanent("Island", "no Islands"), Filter.ComparisonType.Equal, 0, + new FilterLandPermanent("Island", "no Islands"), ComparisonType.EQUAL_TO, 0, new SacrificeSourceEffect())); // {U}: Vodalian Knights gains flying until end of turn. diff --git a/Mage.Sets/src/mage/cards/v/Void.java b/Mage.Sets/src/mage/cards/v/Void.java index 8a1045ec6b7..b60deedb9b2 100644 --- a/Mage.Sets/src/mage/cards/v/Void.java +++ b/Mage.Sets/src/mage/cards/v/Void.java @@ -27,10 +27,8 @@ */ package mage.cards.v; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; @@ -39,7 +37,6 @@ import mage.choices.Choice; import mage.choices.ChoiceImpl; import mage.constants.CardType; import mage.constants.Outcome; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -49,14 +46,17 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** - * * @author LevelX2 */ public class Void extends CardImpl { public Void(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{B}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{B}{R}"); // Choose a number. Destroy all artifacts and creatures with converted mana cost equal to that number. Then target player reveals his or her hand and discards all nonland cards with converted mana cost equal to the number. this.getSpellAbility().addTarget(new TargetPlayer()); @@ -110,7 +110,7 @@ class VoidEffect extends OneShotEffect { } } FilterCard filterCard = new FilterCard(); - filterCard.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, number)); + filterCard.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, number)); filterCard.add(Predicates.not(new CardTypePredicate(CardType.LAND))); Player targetPlayer = game.getPlayer(targetPointer.getFirst(game, source)); diff --git a/Mage.Sets/src/mage/cards/v/VolcanicOffering.java b/Mage.Sets/src/mage/cards/v/VolcanicOffering.java index 2313bd7358f..ec13544e3b0 100644 --- a/Mage.Sets/src/mage/cards/v/VolcanicOffering.java +++ b/Mage.Sets/src/mage/cards/v/VolcanicOffering.java @@ -27,7 +27,6 @@ */ package mage.cards.v; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.effects.OneShotEffect; @@ -35,6 +34,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterLandPermanent; @@ -48,6 +48,8 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetOpponentsChoicePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -58,7 +60,7 @@ public class VolcanicOffering extends CardImpl { private static final FilterCreaturePermanent filterCreature = new FilterCreaturePermanent("creature you don't control"); static { filterLand.add(new ControllerPredicate(TargetController.NOT_YOU)); - filterLand.add(Predicates.not(new SupertypePredicate("Basic"))); + filterLand.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); filterCreature.add(new ControllerPredicate(TargetController.NOT_YOU)); } public VolcanicOffering(UUID ownerId, CardSetInfo setInfo) { @@ -84,7 +86,7 @@ public class VolcanicOffering extends CardImpl { ability.getTargets().clear(); ability.addTarget(new TargetPermanent(filterLand)); FilterLandPermanent filterLandForOpponent = new FilterLandPermanent("nonbasic land not controlled by " + controller.getLogName()); - filterLandForOpponent.add(Predicates.not(new SupertypePredicate("Basic"))); + filterLandForOpponent.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); filterLandForOpponent.add(Predicates.not(new ControllerIdPredicate(controller.getId()))); ability.addTarget(new TargetOpponentsChoicePermanent(1, 1, filterLandForOpponent, false, true)); diff --git a/Mage.Sets/src/mage/cards/v/VolrathTheFallen.java b/Mage.Sets/src/mage/cards/v/VolrathTheFallen.java index 4f26fdf2b1d..4cf757680c8 100644 --- a/Mage.Sets/src/mage/cards/v/VolrathTheFallen.java +++ b/Mage.Sets/src/mage/cards/v/VolrathTheFallen.java @@ -27,7 +27,6 @@ */ package mage.cards.v; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -40,9 +39,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; +import java.util.UUID; + /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) @@ -51,7 +53,7 @@ public class VolrathTheFallen extends CardImpl { public VolrathTheFallen(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Shapeshifter"); this.power = new MageInt(6); this.toughness = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/v/VolrathsShapeshifter.java b/Mage.Sets/src/mage/cards/v/VolrathsShapeshifter.java index 1e167548d4f..b91eb925cac 100644 --- a/Mage.Sets/src/mage/cards/v/VolrathsShapeshifter.java +++ b/Mage.Sets/src/mage/cards/v/VolrathsShapeshifter.java @@ -27,8 +27,6 @@ */ package mage.cards.v; -import java.util.UUID; - import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -39,15 +37,12 @@ import mage.abilities.effects.common.discard.DiscardControllerEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * @author ImperatorPrime */ @@ -109,7 +104,7 @@ class VolrathsShapeshifterEffect extends ContinuousEffectImpl { permanent.setName(card.getName()); for (CardType type : card.getCardType()) { - permanent.getCardType().add(type); + permanent.addCardType(type); } permanent.getSubtype(game).clear(); @@ -119,11 +114,10 @@ class VolrathsShapeshifterEffect extends ContinuousEffectImpl { } } - permanent.getSupertype().clear(); - for (String type : card.getSupertype()) { - if (!permanent.getSupertype().contains(type)) { - permanent.getSupertype().add(type); - } + permanent.getSuperType().clear(); + for (SuperType type : card.getSuperType()) { + permanent.addSuperType(type); + } for (Ability ability : card.getAbilities()) { diff --git a/Mage.Sets/src/mage/cards/v/VolrathsStronghold.java b/Mage.Sets/src/mage/cards/v/VolrathsStronghold.java index 71b462cc54e..454b8bdbb9f 100644 --- a/Mage.Sets/src/mage/cards/v/VolrathsStronghold.java +++ b/Mage.Sets/src/mage/cards/v/VolrathsStronghold.java @@ -27,9 +27,6 @@ */ package mage.cards.v; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -38,11 +35,15 @@ import mage.abilities.effects.common.PutOnLibraryTargetEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -57,7 +58,7 @@ public class VolrathsStronghold extends CardImpl { public VolrathsStronghold(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/v/VorelOfTheHullClade.java b/Mage.Sets/src/mage/cards/v/VorelOfTheHullClade.java index ed574cb2eaa..0c77619012d 100644 --- a/Mage.Sets/src/mage/cards/v/VorelOfTheHullClade.java +++ b/Mage.Sets/src/mage/cards/v/VorelOfTheHullClade.java @@ -27,7 +27,6 @@ */ package mage.cards.v; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +37,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.Counter; import mage.filter.FilterPermanent; @@ -47,6 +47,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -64,7 +66,7 @@ public class VorelOfTheHullClade extends CardImpl { public VorelOfTheHullClade(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Merfolk"); diff --git a/Mage.Sets/src/mage/cards/v/VorinclexVoiceOfHunger.java b/Mage.Sets/src/mage/cards/v/VorinclexVoiceOfHunger.java index 699155036a5..2bf3c492309 100644 --- a/Mage.Sets/src/mage/cards/v/VorinclexVoiceOfHunger.java +++ b/Mage.Sets/src/mage/cards/v/VorinclexVoiceOfHunger.java @@ -27,7 +27,6 @@ */ package mage.cards.v; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.TapForManaAllTriggeredManaAbility; @@ -39,6 +38,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SetTargetPointer; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.game.Game; @@ -47,6 +47,8 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author BetaSteward @@ -55,7 +57,7 @@ public class VorinclexVoiceOfHunger extends CardImpl { public VorinclexVoiceOfHunger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Praetor"); this.power = new MageInt(7); diff --git a/Mage.Sets/src/mage/cards/v/VoroshTheHunter.java b/Mage.Sets/src/mage/cards/v/VoroshTheHunter.java index ee59bc7959a..656d90470ae 100644 --- a/Mage.Sets/src/mage/cards/v/VoroshTheHunter.java +++ b/Mage.Sets/src/mage/cards/v/VoroshTheHunter.java @@ -27,7 +27,6 @@ */ package mage.cards.v; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -37,8 +36,11 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 @@ -47,7 +49,7 @@ public class VoroshTheHunter extends CardImpl { public VoroshTheHunter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/w/WallOfShards.java b/Mage.Sets/src/mage/cards/w/WallOfShards.java index ddc48b6f15d..f1e525c7a79 100644 --- a/Mage.Sets/src/mage/cards/w/WallOfShards.java +++ b/Mage.Sets/src/mage/cards/w/WallOfShards.java @@ -27,15 +27,17 @@ */ package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.abilities.costs.common.GainLifeOpponentCost; +import mage.abilities.keyword.CumulativeUpkeepAbility; import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.FlyingAbility; -import mage.abilities.keyword.CumulativeUpkeepAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -45,7 +47,7 @@ public class WallOfShards extends CardImpl { public WallOfShards(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}"); - this.supertype.add("Snow"); + addSuperType(SuperType.SNOW); this.subtype.add("Wall"); this.power = new MageInt(1); this.toughness = new MageInt(8); diff --git a/Mage.Sets/src/mage/cards/w/WanderInDeath.java b/Mage.Sets/src/mage/cards/w/WanderInDeath.java new file mode 100644 index 00000000000..13587301d98 --- /dev/null +++ b/Mage.Sets/src/mage/cards/w/WanderInDeath.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.w; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterCreatureCard; +import mage.target.common.TargetCardInGraveyard; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author anonymous + */ +public class WanderInDeath extends CardImpl { + + public WanderInDeath(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}"); + + // Return up to two target creature cards from your graveyard to your hand. + getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 2, new FilterCreatureCard("creature cards from your graveyard"))); + getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect()); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + } + + public WanderInDeath(final WanderInDeath card) { + super(card); + } + + @Override + public WanderInDeath copy() { + return new WanderInDeath(this); + } +} diff --git a/Mage.Sets/src/mage/cards/w/WarNameAspirant.java b/Mage.Sets/src/mage/cards/w/WarNameAspirant.java index 4caee17f46b..48494065fd6 100644 --- a/Mage.Sets/src/mage/cards/w/WarNameAspirant.java +++ b/Mage.Sets/src/mage/cards/w/WarNameAspirant.java @@ -27,8 +27,8 @@ */ package mage.cards.w; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.condition.common.RaidCondition; @@ -39,11 +39,12 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.watchers.common.PlayerAttackedWatcher; +import java.util.UUID; + /** * * @author emerald000 @@ -53,7 +54,7 @@ public class WarNameAspirant extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 1 or less"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 2)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 2)); } public WarNameAspirant(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/w/WarfireJavelineer.java b/Mage.Sets/src/mage/cards/w/WarfireJavelineer.java new file mode 100644 index 00000000000..9fab807880e --- /dev/null +++ b/Mage.Sets/src/mage/cards/w/WarfireJavelineer.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.w; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterInstantOrSorceryCard; +import mage.target.common.TargetOpponentsCreaturePermanent; + +/** + * + * @author anonymous + */ +public class WarfireJavelineer extends CardImpl { + + public WarfireJavelineer(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); + + this.subtype.add("Minotaur"); + this.subtype.add("Warrior"); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // When Warfire Javelineer enters the battlefield, it deals X damage to target creature an opponent controls, where X is the number of instant and sorcery cards in your graveyard. + EntersBattlefieldTriggeredAbility ability = + new EntersBattlefieldTriggeredAbility( + new DamageTargetEffect( + new CardsInControllerGraveyardCount(new FilterInstantOrSorceryCard())) + .setText("it deals X damage to target creature an opponent controls, where X is the number of instant and sorcery cards in your graveyard.")); + ability.addTarget(new TargetOpponentsCreaturePermanent()); + this.addAbility(ability); + } + + public WarfireJavelineer(final WarfireJavelineer card) { + super(card); + } + + @Override + public WarfireJavelineer copy() { + return new WarfireJavelineer(this); + } +} diff --git a/Mage.Sets/src/mage/cards/w/WarpingWail.java b/Mage.Sets/src/mage/cards/w/WarpingWail.java index b4f5f30064b..bf94e31c9a2 100644 --- a/Mage.Sets/src/mage/cards/w/WarpingWail.java +++ b/Mage.Sets/src/mage/cards/w/WarpingWail.java @@ -27,7 +27,7 @@ */ package mage.cards.w; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CounterTargetEffect; @@ -36,8 +36,6 @@ import mage.abilities.effects.common.ExileTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterSpell; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; @@ -48,6 +46,8 @@ import mage.game.permanent.token.EldraziScionToken; import mage.target.TargetSpell; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -59,8 +59,8 @@ public class WarpingWail extends CardImpl { static { filterCreature.add(Predicates.or( - new PowerPredicate(Filter.ComparisonType.LessThan, 2), - new ToughnessPredicate(ComparisonType.LessThan, 2))); + new PowerPredicate(ComparisonType.FEWER_THAN, 2), + new ToughnessPredicate(ComparisonType.FEWER_THAN, 2))); filterSorcery.add(new CardTypePredicate(CardType.SORCERY)); } diff --git a/Mage.Sets/src/mage/cards/w/WastelandScorpion.java b/Mage.Sets/src/mage/cards/w/WastelandScorpion.java new file mode 100644 index 00000000000..ee7b9a0fee0 --- /dev/null +++ b/Mage.Sets/src/mage/cards/w/WastelandScorpion.java @@ -0,0 +1,68 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.w; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.DeathtouchAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class WastelandScorpion extends CardImpl { + + public WastelandScorpion(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); + + this.subtype.add("Scorpion"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Deathtouch + this.addAbility(DeathtouchAbility.getInstance()); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + + } + + public WastelandScorpion(final WastelandScorpion card) { + super(card); + } + + @Override + public WastelandScorpion copy() { + return new WastelandScorpion(this); + } +} diff --git a/Mage.Sets/src/mage/cards/w/Wastes.java b/Mage.Sets/src/mage/cards/w/Wastes.java index 46575754727..8ceab0ceb73 100644 --- a/Mage.Sets/src/mage/cards/w/Wastes.java +++ b/Mage.Sets/src/mage/cards/w/Wastes.java @@ -32,6 +32,7 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; /** * @@ -41,7 +42,7 @@ public class Wastes extends CardImpl { public Wastes(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Basic"); + addSuperType(SuperType.BASIC); // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/w/WatchersOfTheDead.java b/Mage.Sets/src/mage/cards/w/WatchersOfTheDead.java new file mode 100644 index 00000000000..ff0588d8653 --- /dev/null +++ b/Mage.Sets/src/mage/cards/w/WatchersOfTheDead.java @@ -0,0 +1,119 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.w; + +import java.util.UUID; +import mage.MageInt; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.ExileSourceCost; +import mage.abilities.effects.OneShotEffect; +import mage.cards.*; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.game.Game; +import mage.players.Player; +import mage.target.TargetCard; +import mage.target.common.TargetCardInYourGraveyard; +import mage.util.CardUtil; + +/** + * + * @author jeffwadsworth + */ +public class WatchersOfTheDead extends CardImpl { + + public WatchersOfTheDead(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{2}"); + this.subtype.add("Cat"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Exile Watchers of the Dead: Each opponent chooses 2 cards in his or her graveyard and exiles the rest. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new WatchersOfTheDeadEffect(), new ExileSourceCost())); + + } + + public WatchersOfTheDead(final WatchersOfTheDead card) { + super(card); + } + + @Override + public WatchersOfTheDead copy() { + return new WatchersOfTheDead(this); + } +} + +class WatchersOfTheDeadEffect extends OneShotEffect { + + public WatchersOfTheDeadEffect() { + super(Outcome.Benefit); + this.staticText = "Each opponent chooses 2 cards in his or her graveyard and exiles the rest"; + } + + public WatchersOfTheDeadEffect(final WatchersOfTheDeadEffect effect) { + super(effect); + } + + @Override + public WatchersOfTheDeadEffect copy() { + return new WatchersOfTheDeadEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + MageObject sourceObject = game.getLastKnownInformation(source.getSourceId(), Zone.BATTLEFIELD); + if (controller != null) { + for (UUID opponentId : game.getState().getPlayersInRange(controller.getId(), game)) { + Player opponent = game.getPlayer(opponentId); + if (opponent != null + && opponent != controller) { + TargetCard target = new TargetCardInYourGraveyard(2, 2, new FilterCard()); + target.setNotTarget(true); + Cards cardsInGraveyard = opponent.getGraveyard(); + if (cardsInGraveyard.size() > 1) { + opponent.choose(outcome, cardsInGraveyard, target, game); + for (Card cardInGraveyard : cardsInGraveyard.getCards(game)) { + if (!target.getTargets().contains(cardInGraveyard.getId())) { + opponent.moveCardToExileWithInfo(cardInGraveyard, CardUtil.getCardExileZoneId(game, source.getId()), + sourceObject.getLogName(), source.getId(), game, Zone.GRAVEYARD, true); + } + } + } + + } + } + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/cards/w/WatchfulNaga.java b/Mage.Sets/src/mage/cards/w/WatchfulNaga.java new file mode 100644 index 00000000000..3c98e18bdad --- /dev/null +++ b/Mage.Sets/src/mage/cards/w/WatchfulNaga.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.w; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.keyword.ExertAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class WatchfulNaga extends CardImpl { + + public WatchfulNaga(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); + + this.subtype.add("Naga"); + this.subtype.add("Wizard"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // You may exert Watchful Naga as it attacks. When you do, draw a card. + BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(new DrawCardSourceControllerEffect(1)); + this.addAbility(new ExertAbility(ability)); + } + + public WatchfulNaga(final WatchfulNaga card) { + super(card); + } + + @Override + public WatchfulNaga copy() { + return new WatchfulNaga(this); + } +} diff --git a/Mage.Sets/src/mage/cards/w/WaveOfVitriol.java b/Mage.Sets/src/mage/cards/w/WaveOfVitriol.java index 82194f7b133..d190a207214 100644 --- a/Mage.Sets/src/mage/cards/w/WaveOfVitriol.java +++ b/Mage.Sets/src/mage/cards/w/WaveOfVitriol.java @@ -27,11 +27,6 @@ */ package mage.cards.w; -import java.util.HashMap; -import java.util.LinkedHashSet; -import java.util.Map; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -40,6 +35,7 @@ import mage.cards.Cards; import mage.cards.CardsImpl; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterBasicLandCard; @@ -51,6 +47,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.*; + /** * * @author LevelX2 @@ -85,7 +83,7 @@ class WaveOfVitriolEffect extends OneShotEffect { new CardTypePredicate(CardType.ENCHANTMENT), Predicates.and( new CardTypePredicate(CardType.LAND), - Predicates.not(new SupertypePredicate("Basic")) + Predicates.not(new SupertypePredicate(SuperType.BASIC)) ) )); } diff --git a/Mage.Sets/src/mage/cards/w/WaxWane.java b/Mage.Sets/src/mage/cards/w/WaxWane.java index 766c5462661..5b0aa63310e 100644 --- a/Mage.Sets/src/mage/cards/w/WaxWane.java +++ b/Mage.Sets/src/mage/cards/w/WaxWane.java @@ -34,6 +34,7 @@ import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SpellAbilityType; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetEnchantmentPermanent; @@ -44,7 +45,7 @@ import mage.target.common.TargetEnchantmentPermanent; public class WaxWane extends SplitCard { public WaxWane(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{G}","{W}",false); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}", "{W}", SpellAbilityType.SPLIT); // Wax // Target creature gets +2/+2 until end of turn. diff --git a/Mage.Sets/src/mage/cards/w/WaywardServant.java b/Mage.Sets/src/mage/cards/w/WaywardServant.java new file mode 100644 index 00000000000..c8f521ed547 --- /dev/null +++ b/Mage.Sets/src/mage/cards/w/WaywardServant.java @@ -0,0 +1,83 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.w; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.LoseLifeOpponentsEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.AnotherPredicate; + +/** + * + * @author jeffwadsworth + */ +public class WaywardServant extends CardImpl { + + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another Zombie"); + + static { + filter.add(new SubtypePredicate("Zombie")); + filter.add(new AnotherPredicate()); + } + + private static final String rule = "Whenever another Zombie enters the battlefield under your control, each opponent loses 1 life and you gain 1 life."; + + public WaywardServant(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}{B}"); + + this.subtype.add("Zombie"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Whenever another Zombie enters the battlefield under your control, each opponent loses 1 life and you gain 1 life. + Effect effect = new LoseLifeOpponentsEffect(1); + Effect effect2 = new GainLifeEffect(1); + Ability ability = new EntersBattlefieldAllTriggeredAbility(effect, filter, rule); + ability.addEffect(effect2); + this.addAbility(ability); + + } + + public WaywardServant(final WaywardServant card) { + super(card); + } + + @Override + public WaywardServant copy() { + return new WaywardServant(this); + } +} diff --git a/Mage.Sets/src/mage/cards/w/WearTear.java b/Mage.Sets/src/mage/cards/w/WearTear.java index 4e7fa9aac17..4a803ac26e2 100644 --- a/Mage.Sets/src/mage/cards/w/WearTear.java +++ b/Mage.Sets/src/mage/cards/w/WearTear.java @@ -28,10 +28,11 @@ package mage.cards.w; import java.util.UUID; -import mage.constants.CardType; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardSetInfo; import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.SpellAbilityType; import mage.target.Target; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetEnchantmentPermanent; @@ -43,7 +44,7 @@ import mage.target.common.TargetEnchantmentPermanent; public class WearTear extends SplitCard { public WearTear(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{R}","{W}",true); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{R}", "{W}", SpellAbilityType.SPLIT_FUSED); // Wear // Destroy target artifact. diff --git a/Mage.Sets/src/mage/cards/w/WeaverOfCurrents.java b/Mage.Sets/src/mage/cards/w/WeaverOfCurrents.java new file mode 100644 index 00000000000..dfd1541ce2f --- /dev/null +++ b/Mage.Sets/src/mage/cards/w/WeaverOfCurrents.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.w; + +import java.util.UUID; +import mage.MageInt; +import mage.Mana; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; + +/** + * + * @author anonymous + */ +public class WeaverOfCurrents extends CardImpl { + + public WeaverOfCurrents(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{U}"); + + this.subtype.add("Naga"); + this.subtype.add("Druid"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // {T}: Add {C}{C} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost())); + } + + public WeaverOfCurrents(final WeaverOfCurrents card) { + super(card); + } + + @Override + public WeaverOfCurrents copy() { + return new WeaverOfCurrents(this); + } +} diff --git a/Mage.Sets/src/mage/cards/w/WeightOfConscience.java b/Mage.Sets/src/mage/cards/w/WeightOfConscience.java index dad82f569fb..b77db39c7b7 100644 --- a/Mage.Sets/src/mage/cards/w/WeightOfConscience.java +++ b/Mage.Sets/src/mage/cards/w/WeightOfConscience.java @@ -27,10 +27,6 @@ */ package mage.cards.w; -import java.util.HashSet; -import java.util.Objects; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -56,6 +52,11 @@ import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; import mage.util.CardUtil; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; +import java.util.UUID; + /** * * @author emerald000 @@ -158,7 +159,7 @@ class WeightOfConscienceTarget extends TargetControlledCreaturePermanent { Permanent firstTargetCreature = game.getPermanent(firstTargetId); if (firstTargetCreature != null) { for (Permanent permanent : game.getBattlefield().getActivePermanents(filterUntapped, sourceControllerId, game)) { - if (!permanent.getId().equals(firstTargetId) && CardUtil.shareSubtypes(firstTargetCreature, permanent, game)) { + if (!permanent.getId().equals(firstTargetId) && firstTargetCreature.shareSubtypes(permanent, game)) { possibleTargets.add(permanent.getId()); } } @@ -172,7 +173,7 @@ class WeightOfConscienceTarget extends TargetControlledCreaturePermanent { public boolean canChoose(UUID sourceId, UUID sourceControllerId, Game game) { for (Permanent permanent1 : game.getBattlefield().getActivePermanents(filterUntapped, sourceControllerId, game)) { for (Permanent permanent2 : game.getBattlefield().getActivePermanents(filterUntapped, sourceControllerId, game)) { - if (!Objects.equals(permanent1, permanent2) && CardUtil.shareSubtypes(permanent1, permanent2, game)) { + if (!Objects.equals(permanent1, permanent2) && permanent1.shareSubtypes(permanent2, game)) { return true; } } @@ -198,7 +199,7 @@ class WeightOfConscienceTarget extends TargetControlledCreaturePermanent { } else { Permanent firstTarget = game.getPermanent(this.getTargets().get(0)); - if (firstTarget != null && CardUtil.shareSubtypes(firstTarget, targetPermanent, game)) { + if (firstTarget != null && firstTarget.shareSubtypes(targetPermanent, game)) { return true; } } diff --git a/Mage.Sets/src/mage/cards/w/WhereAncientsTread.java b/Mage.Sets/src/mage/cards/w/WhereAncientsTread.java index 90c9bdb64f6..a0f7e4de84c 100644 --- a/Mage.Sets/src/mage/cards/w/WhereAncientsTread.java +++ b/Mage.Sets/src/mage/cards/w/WhereAncientsTread.java @@ -27,20 +27,20 @@ */ package mage.cards.w; -import java.util.UUID; - -import mage.constants.CardType; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author Plopman @@ -49,7 +49,7 @@ import mage.target.common.TargetCreatureOrPlayer; private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 4)); } public WhereAncientsTread(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/w/WhipOfErebos.java b/Mage.Sets/src/mage/cards/w/WhipOfErebos.java index 543dcbf8316..b7408e74e4c 100644 --- a/Mage.Sets/src/mage/cards/w/WhipOfErebos.java +++ b/Mage.Sets/src/mage/cards/w/WhipOfErebos.java @@ -46,10 +46,7 @@ import mage.abilities.keyword.LifelinkAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -68,7 +65,7 @@ public class WhipOfErebos extends CardImpl { public WhipOfErebos(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.ARTIFACT},"{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // Creatures you control have lifelink. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(LifelinkAbility.getInstance(), Duration.WhileOnBattlefield, new FilterCreaturePermanent("Creatures")))); diff --git a/Mage.Sets/src/mage/cards/w/Whiteout.java b/Mage.Sets/src/mage/cards/w/Whiteout.java index fcdd727ca1d..8dbb1648801 100644 --- a/Mage.Sets/src/mage/cards/w/Whiteout.java +++ b/Mage.Sets/src/mage/cards/w/Whiteout.java @@ -27,9 +27,9 @@ */ package mage.cards.w; -import java.util.UUID; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.abilities.effects.common.continuous.LoseAbilityAllEffect; import mage.abilities.keyword.FlyingAbility; @@ -37,30 +37,35 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes */ public class Whiteout extends CardImpl { - + private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("a snow land"); static { - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); } public Whiteout(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}"); // All creatures lose flying until end of turn. - this.getSpellAbility().addEffect(new LoseAbilityAllEffect(new FilterCreaturePermanent(), FlyingAbility.getInstance(), Duration.EndOfTurn)); - + Effect effect = new LoseAbilityAllEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent()); + effect.setText("All creatures lose flying until end of turn"); + this.getSpellAbility().addEffect(effect); + // Sacrifice a snow land: Return Whiteout from your graveyard to your hand. this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnToHandSourceEffect(), new SacrificeTargetCost(new TargetControlledPermanent(filter)))); } diff --git a/Mage.Sets/src/mage/cards/w/WildPair.java b/Mage.Sets/src/mage/cards/w/WildPair.java index 3813014b4d4..fb2ba5744e0 100644 --- a/Mage.Sets/src/mage/cards/w/WildPair.java +++ b/Mage.Sets/src/mage/cards/w/WildPair.java @@ -27,9 +27,9 @@ */ package mage.cards.w; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.condition.Condition; import mage.abilities.decorator.ConditionalTriggeredAbility; @@ -37,12 +37,7 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.SetTargetPointer; -import mage.constants.TargetController; -import mage.constants.Zone; -import mage.filter.Filter; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.IntComparePredicate; @@ -54,6 +49,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.watchers.common.CastFromHandWatcher; +import java.util.UUID; + /** * * @author fenhl @@ -111,7 +108,7 @@ class WildPairEffect extends OneShotEffect { if (permanent != null) { int totalPT = permanent.getPower().getValue() + permanent.getToughness().getValue(); FilterCreatureCard filter = new FilterCreatureCard("creature card with total power and toughness " + totalPT); - filter.add(new TotalPowerAndToughnessPredicate(Filter.ComparisonType.Equal, totalPT)); + filter.add(new TotalPowerAndToughnessPredicate(ComparisonType.EQUAL_TO, totalPT)); TargetCardInLibrary target = new TargetCardInLibrary(1, filter); if (controller.searchLibrary(target, game)) { if (!target.getTargets().isEmpty()) { @@ -132,7 +129,7 @@ class WildPairEffect extends OneShotEffect { */ class TotalPowerAndToughnessPredicate extends IntComparePredicate { - public TotalPowerAndToughnessPredicate(Filter.ComparisonType type, int value) { + public TotalPowerAndToughnessPredicate(ComparisonType type, int value) { super(type, value); } diff --git a/Mage.Sets/src/mage/cards/w/WildernessElemental.java b/Mage.Sets/src/mage/cards/w/WildernessElemental.java index 4cabdd32755..3838a628998 100644 --- a/Mage.Sets/src/mage/cards/w/WildernessElemental.java +++ b/Mage.Sets/src/mage/cards/w/WildernessElemental.java @@ -27,7 +27,6 @@ */ package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; @@ -35,15 +34,14 @@ import mage.abilities.effects.common.continuous.SetPowerSourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** * * @author LoneFox @@ -53,7 +51,7 @@ public class WildernessElemental extends CardImpl { private static final FilterLandPermanent filter = new FilterLandPermanent("nonbasic lands your opponents control"); static { - filter.add(Predicates.not(new SupertypePredicate("Basic"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); filter.add(new ControllerPredicate(TargetController.OPPONENT)); } diff --git a/Mage.Sets/src/mage/cards/w/WildfieldBorderpost.java b/Mage.Sets/src/mage/cards/w/WildfieldBorderpost.java index 9b43932cf2e..85fa05d7e04 100644 --- a/Mage.Sets/src/mage/cards/w/WildfieldBorderpost.java +++ b/Mage.Sets/src/mage/cards/w/WildfieldBorderpost.java @@ -28,9 +28,7 @@ package mage.cards.w; -import java.util.UUID; import mage.abilities.Ability; -import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.costs.AlternativeCostSourceAbility; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; @@ -39,11 +37,15 @@ import mage.abilities.mana.GreenManaAbility; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author Loki @@ -53,7 +55,7 @@ public class WildfieldBorderpost extends CardImpl { private static final FilterControlledPermanent filter = new FilterControlledLandPermanent("a basic land"); static { - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); } public WildfieldBorderpost (UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/w/WillowSatyr.java b/Mage.Sets/src/mage/cards/w/WillowSatyr.java index 1ed358b37e1..5d3b86bb1a0 100644 --- a/Mage.Sets/src/mage/cards/w/WillowSatyr.java +++ b/Mage.Sets/src/mage/cards/w/WillowSatyr.java @@ -27,7 +27,6 @@ */ package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -42,11 +41,14 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -56,7 +58,7 @@ public class WillowSatyr extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("legendary creature"); static { - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); } public WillowSatyr(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/w/WindsOfRebuke.java b/Mage.Sets/src/mage/cards/w/WindsOfRebuke.java new file mode 100644 index 00000000000..070c4ed1269 --- /dev/null +++ b/Mage.Sets/src/mage/cards/w/WindsOfRebuke.java @@ -0,0 +1,63 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.w; + +import java.util.UUID; + +import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.target.common.TargetNonlandPermanent; + +/** + * + * @author anonymous + */ +public class WindsOfRebuke extends CardImpl { + + public WindsOfRebuke(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}"); + + // Return target nonland permanent to its owner's hand. Each player puts the top two cards of his or her library into his or her graveyard. + getSpellAbility().addTarget(new TargetNonlandPermanent()); + getSpellAbility().addEffect(new ReturnToHandTargetEffect()); + getSpellAbility().addEffect(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(2, TargetController.ANY)); + } + + public WindsOfRebuke(final WindsOfRebuke card) { + super(card); + } + + @Override + public WindsOfRebuke copy() { + return new WindsOfRebuke(this); + } +} diff --git a/Mage.Sets/src/mage/cards/w/WingedShepherd.java b/Mage.Sets/src/mage/cards/w/WingedShepherd.java new file mode 100644 index 00000000000..df0e8428973 --- /dev/null +++ b/Mage.Sets/src/mage/cards/w/WingedShepherd.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.w; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.VigilanceAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class WingedShepherd extends CardImpl { + + public WingedShepherd(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{W}"); + + this.subtype.add("Angel"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Vigilance + this.addAbility(VigilanceAbility.getInstance()); + + // Cycling {W} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{W}"))); + + } + + public WingedShepherd(final WingedShepherd card) { + super(card); + } + + @Override + public WingedShepherd copy() { + return new WingedShepherd(this); + } +} diff --git a/Mage.Sets/src/mage/cards/w/WireflyHive.java b/Mage.Sets/src/mage/cards/w/WireflyHive.java index 46539044fb0..a57ec8e7668 100644 --- a/Mage.Sets/src/mage/cards/w/WireflyHive.java +++ b/Mage.Sets/src/mage/cards/w/WireflyHive.java @@ -79,7 +79,7 @@ class WireflyToken extends Token { this.getPower().modifyBaseValue(2); this.getToughness().modifyBaseValue(2); this.getSubtype(null).add("Insect"); - this.getCardType().add(CardType.ARTIFACT); - this.getCardType().add(CardType.CREATURE); + this.addCardType(CardType.ARTIFACT); + this.addCardType(CardType.CREATURE); } } diff --git a/Mage.Sets/src/mage/cards/w/WisdomOfTheJedi.java b/Mage.Sets/src/mage/cards/w/WisdomOfTheJedi.java index 9119596e310..a98dc38d695 100644 --- a/Mage.Sets/src/mage/cards/w/WisdomOfTheJedi.java +++ b/Mage.Sets/src/mage/cards/w/WisdomOfTheJedi.java @@ -27,7 +27,7 @@ */ package mage.cards.w; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.Mode; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CounterTargetEffect; @@ -38,12 +38,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetSpell; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author Styxo @@ -53,7 +54,7 @@ public class WisdomOfTheJedi extends CardImpl { private static final FilterSpell filterSpell = new FilterSpell("spell with converted mana cost of 3 or less"); static { - filterSpell.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filterSpell.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public WisdomOfTheJedi(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/w/WithengarUnbound.java b/Mage.Sets/src/mage/cards/w/WithengarUnbound.java index f1164e0380f..d804e4e438d 100644 --- a/Mage.Sets/src/mage/cards/w/WithengarUnbound.java +++ b/Mage.Sets/src/mage/cards/w/WithengarUnbound.java @@ -27,7 +27,6 @@ */ package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -37,12 +36,15 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import java.util.UUID; + /** * * @author BetaSteward @@ -51,7 +53,7 @@ public class WithengarUnbound extends CardImpl { public WithengarUnbound(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.color.setBlack(true); diff --git a/Mage.Sets/src/mage/cards/w/WoodbornBehemoth.java b/Mage.Sets/src/mage/cards/w/WoodbornBehemoth.java index 928aa8c78ac..ef34e9cb648 100644 --- a/Mage.Sets/src/mage/cards/w/WoodbornBehemoth.java +++ b/Mage.Sets/src/mage/cards/w/WoodbornBehemoth.java @@ -30,7 +30,7 @@ package mage.cards.w; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalContinuousEffect; @@ -58,7 +58,7 @@ public class WoodbornBehemoth extends CardImpl { this.toughness = new MageInt(4); // As long as you control eight or more lands, Woodborn Behemoth gets +4/+4 and has trample. - PermanentsOnTheBattlefieldCondition eightOrMoreLandCondition = new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), CountType.MORE_THAN,7); + PermanentsOnTheBattlefieldCondition eightOrMoreLandCondition = new PermanentsOnTheBattlefieldCondition(new FilterLandPermanent(), ComparisonType.MORE_THAN,7); ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect( new BoostSourceEffect(4,4, Duration.WhileOnBattlefield), eightOrMoreLandCondition, "As long as you control eight or more lands, {this} gets +4/+4"); diff --git a/Mage.Sets/src/mage/cards/w/WoodlandBellower.java b/Mage.Sets/src/mage/cards/w/WoodlandBellower.java index 84b0cfac0a7..35cfe5b8d94 100644 --- a/Mage.Sets/src/mage/cards/w/WoodlandBellower.java +++ b/Mage.Sets/src/mage/cards/w/WoodlandBellower.java @@ -27,10 +27,10 @@ */ package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -38,8 +38,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -50,6 +50,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author fireshoes @@ -96,8 +98,8 @@ class WoodlandBellowerEffect extends OneShotEffect { FilterCard filter = new FilterCard("nonlegendary green creature card with converted mana cost 3 or less"); filter.add(new ColorPredicate(ObjectColor.GREEN)); filter.add(new CardTypePredicate(CardType.CREATURE)); - filter.add(Predicates.not(new SupertypePredicate("Legendary"))); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(Predicates.not(new SupertypePredicate(SuperType.LEGENDARY))); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); TargetCardInLibrary target = new TargetCardInLibrary(filter); if (controller.searchLibrary(target, game)) { if (!target.getTargets().isEmpty()) { diff --git a/Mage.Sets/src/mage/cards/w/WoodlandCemetery.java b/Mage.Sets/src/mage/cards/w/WoodlandCemetery.java index a375f460575..6da88f127fc 100644 --- a/Mage.Sets/src/mage/cards/w/WoodlandCemetery.java +++ b/Mage.Sets/src/mage/cards/w/WoodlandCemetery.java @@ -28,7 +28,7 @@ package mage.cards.w; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.constants.CardType; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.Condition; @@ -60,7 +60,7 @@ public class WoodlandCemetery extends CardImpl { public WoodlandCemetery(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); - Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0)); + Condition controls = new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 0)); String abilityText = "tap it unless you control a Swamp or a Forest"; this.addAbility(new EntersBattlefieldAbility(new ConditionalOneShotEffect(new TapSourceEffect(), controls, abilityText), abilityText)); this.addAbility(new BlackManaAbility()); diff --git a/Mage.Sets/src/mage/cards/w/WookieeMystic.java b/Mage.Sets/src/mage/cards/w/WookieeMystic.java index ff84557fb03..05211b93998 100644 --- a/Mage.Sets/src/mage/cards/w/WookieeMystic.java +++ b/Mage.Sets/src/mage/cards/w/WookieeMystic.java @@ -120,7 +120,7 @@ class WookieeMysticWatcher extends Watcher { @Override public void watch(GameEvent event, Game game) { - if (event.getType() == GameEvent.EventType.MANA_PAYED) { + if (event.getType() == GameEvent.EventType.MANA_PAID) { MageObject target = game.getObject(event.getTargetId()); if (event.getSourceId() != null && event.getSourceId().equals(this.getSourceId()) diff --git a/Mage.Sets/src/mage/cards/w/WorldAtWar.java b/Mage.Sets/src/mage/cards/w/WorldAtWar.java index eb86e803159..88af98857ca 100644 --- a/Mage.Sets/src/mage/cards/w/WorldAtWar.java +++ b/Mage.Sets/src/mage/cards/w/WorldAtWar.java @@ -29,6 +29,7 @@ package mage.cards.w; import java.util.Set; import java.util.UUID; +import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.effects.OneShotEffect; @@ -52,7 +53,7 @@ import mage.watchers.common.AttackedThisTurnWatcher; public class WorldAtWar extends CardImpl { public WorldAtWar(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{R}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}{R}"); // After the first postcombat main phase this turn, there's an additional combat phase followed by an additional main phase. At the beginning of that combat, untap all creatures that attacked this turn. this.getSpellAbility().addEffect(new WorldAtWarEffect()); @@ -167,11 +168,11 @@ class UntapAttackingThisTurnEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Watcher watcher = game.getState().getWatchers().get("AttackedThisTurn"); + Watcher watcher = game.getState().getWatchers().get(AttackedThisTurnWatcher.class.getName()); if (watcher != null && watcher instanceof AttackedThisTurnWatcher) { - Set attackedThisTurn = ((AttackedThisTurnWatcher) watcher).getAttackedThisTurnCreatures(); - for (UUID uuid : attackedThisTurn) { - Permanent permanent = game.getPermanent(uuid); + Set attackedThisTurn = ((AttackedThisTurnWatcher) watcher).getAttackedThisTurnCreatures(); + for (MageObjectReference mor : attackedThisTurn) { + Permanent permanent = mor.getPermanent(game); if (permanent != null && permanent.isCreature()) { permanent.untap(game); } diff --git a/Mage.Sets/src/mage/cards/w/WortBoggartAuntie.java b/Mage.Sets/src/mage/cards/w/WortBoggartAuntie.java index 5911838d82f..021d3e5293c 100644 --- a/Mage.Sets/src/mage/cards/w/WortBoggartAuntie.java +++ b/Mage.Sets/src/mage/cards/w/WortBoggartAuntie.java @@ -27,7 +27,6 @@ */ package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -36,11 +35,14 @@ import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author Loki @@ -55,7 +57,7 @@ public class WortBoggartAuntie extends CardImpl { public WortBoggartAuntie(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/w/WortTheRaidmother.java b/Mage.Sets/src/mage/cards/w/WortTheRaidmother.java index 64ffa7ef8b4..c19d807ae12 100644 --- a/Mage.Sets/src/mage/cards/w/WortTheRaidmother.java +++ b/Mage.Sets/src/mage/cards/w/WortTheRaidmother.java @@ -27,7 +27,6 @@ */ package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -38,12 +37,7 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.ConspireAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterInstantOrSorcerySpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; @@ -52,6 +46,8 @@ import mage.game.permanent.token.Token; import mage.game.stack.Spell; import mage.game.stack.StackObject; +import java.util.UUID; + /** * * @author LevelX2 @@ -60,7 +56,7 @@ public class WortTheRaidmother extends CardImpl { public WortTheRaidmother(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R/G}{R/G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Shaman"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/w/Wrangle.java b/Mage.Sets/src/mage/cards/w/Wrangle.java index 9837a6c5153..48740feb46c 100644 --- a/Mage.Sets/src/mage/cards/w/Wrangle.java +++ b/Mage.Sets/src/mage/cards/w/Wrangle.java @@ -27,7 +27,7 @@ */ package mage.cards.w; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.effects.Effect; import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -37,11 +37,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.Filter.ComparisonType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -51,7 +52,7 @@ public class Wrangle extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 4 or less"); static { - filter.add(new PowerPredicate(ComparisonType.LessThan, 5)); + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 5)); } public Wrangle(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java b/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java index d0c137f8af6..05026961343 100644 --- a/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java +++ b/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java @@ -27,7 +27,6 @@ */ package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -38,10 +37,7 @@ import mage.abilities.keyword.SwampwalkAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -55,6 +51,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInGraveyard; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -63,7 +61,7 @@ public class WrexialTheRisenDeep extends CardImpl { public WrexialTheRisenDeep(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Kraken"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/w/WuLongbowman.java b/Mage.Sets/src/mage/cards/w/WuLongbowman.java index cf38566b308..90d121577e0 100644 --- a/Mage.Sets/src/mage/cards/w/WuLongbowman.java +++ b/Mage.Sets/src/mage/cards/w/WuLongbowman.java @@ -27,7 +27,6 @@ */ package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -40,6 +39,8 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.target.common.TargetCreatureOrPlayer; +import java.util.UUID; + /** * * @author fireshoes @@ -56,7 +57,7 @@ public class WuLongbowman extends CardImpl { // {tap}: Wu Longbowman deals 1 damage to target creature or player. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new DamageTargetEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new DamageTargetEffect(1), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCreatureOrPlayer()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/w/WydwenTheBitingGale.java b/Mage.Sets/src/mage/cards/w/WydwenTheBitingGale.java index d6f977f980a..428667ea452 100644 --- a/Mage.Sets/src/mage/cards/w/WydwenTheBitingGale.java +++ b/Mage.Sets/src/mage/cards/w/WydwenTheBitingGale.java @@ -27,7 +27,6 @@ */ package mage.cards.w; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -38,6 +37,8 @@ import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import java.util.UUID; @@ -50,7 +51,7 @@ public class WydwenTheBitingGale extends CardImpl { public WydwenTheBitingGale(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Faerie"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/x/XenagosGodOfRevels.java b/Mage.Sets/src/mage/cards/x/XenagosGodOfRevels.java index fe3bd422282..3d51d48577e 100644 --- a/Mage.Sets/src/mage/cards/x/XenagosGodOfRevels.java +++ b/Mage.Sets/src/mage/cards/x/XenagosGodOfRevels.java @@ -27,7 +27,6 @@ */ package mage.cards.x; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; @@ -43,18 +42,15 @@ import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -68,7 +64,7 @@ public class XenagosGodOfRevels extends CardImpl { public XenagosGodOfRevels(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT,CardType.CREATURE},"{3}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("God"); this.power = new MageInt(6); diff --git a/Mage.Sets/src/mage/cards/x/XenicPoltergeist.java b/Mage.Sets/src/mage/cards/x/XenicPoltergeist.java index 2198066f5f8..62e232b9583 100644 --- a/Mage.Sets/src/mage/cards/x/XenicPoltergeist.java +++ b/Mage.Sets/src/mage/cards/x/XenicPoltergeist.java @@ -145,7 +145,7 @@ class XenicPoltergeistEffect extends ContinuousEffectImpl { UUID permanentId = targetPointer.getFirst(game, source); Permanent permanent = game.getPermanentOrLKIBattlefield(permanentId); if(permanent != null){ - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); } } break; diff --git a/Mage.Sets/src/mage/cards/x/XiahouDunTheOneEyed.java b/Mage.Sets/src/mage/cards/x/XiahouDunTheOneEyed.java index 05c62821d62..434e5697b91 100644 --- a/Mage.Sets/src/mage/cards/x/XiahouDunTheOneEyed.java +++ b/Mage.Sets/src/mage/cards/x/XiahouDunTheOneEyed.java @@ -27,7 +27,6 @@ */ package mage.cards.x; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; @@ -39,11 +38,14 @@ import mage.abilities.keyword.HorsemanshipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author fireshoes @@ -58,7 +60,7 @@ public class XiahouDunTheOneEyed extends CardImpl { public XiahouDunTheOneEyed(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(3); @@ -69,7 +71,7 @@ public class XiahouDunTheOneEyed extends CardImpl { // Sacrifice Xiahou Dun, the One-Eyed: Return target black card from your graveyard to your hand. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new ReturnFromGraveyardToHandTargetEffect(), new SacrificeSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new ReturnFromGraveyardToHandTargetEffect(), new SacrificeSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCardInYourGraveyard(filter)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/x/XiraArien.java b/Mage.Sets/src/mage/cards/x/XiraArien.java index f60ead35cdf..2d9eef2e5e9 100644 --- a/Mage.Sets/src/mage/cards/x/XiraArien.java +++ b/Mage.Sets/src/mage/cards/x/XiraArien.java @@ -38,6 +38,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.TargetPlayer; @@ -49,7 +50,7 @@ public class XiraArien extends CardImpl { public XiraArien(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Insect"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/x/XunYuWeiAdvisor.java b/Mage.Sets/src/mage/cards/x/XunYuWeiAdvisor.java index defee2e52a0..c2c33a8cade 100644 --- a/Mage.Sets/src/mage/cards/x/XunYuWeiAdvisor.java +++ b/Mage.Sets/src/mage/cards/x/XunYuWeiAdvisor.java @@ -27,7 +27,6 @@ */ package mage.cards.x; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -38,9 +37,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -49,7 +51,7 @@ public class XunYuWeiAdvisor extends CardImpl { public XunYuWeiAdvisor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}{B}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); this.power = new MageInt(1); @@ -57,7 +59,7 @@ public class XunYuWeiAdvisor extends CardImpl { // {tap}: Target creature you control gets +2/+0 until end of turn. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new BoostTargetEffect(2, 0, Duration.EndOfTurn), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new BoostTargetEffect(2, 0, Duration.EndOfTurn), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetControlledCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/y/YahenniUndyingPartisan.java b/Mage.Sets/src/mage/cards/y/YahenniUndyingPartisan.java index f1a38f4a96e..0e8bcfdaf36 100644 --- a/Mage.Sets/src/mage/cards/y/YahenniUndyingPartisan.java +++ b/Mage.Sets/src/mage/cards/y/YahenniUndyingPartisan.java @@ -27,7 +27,6 @@ */ package mage.cards.y; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -40,6 +39,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; @@ -47,6 +47,8 @@ import mage.filter.common.FilterOpponentsCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -62,7 +64,7 @@ public class YahenniUndyingPartisan extends CardImpl { public YahenniUndyingPartisan(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Aetherborn"); this.subtype.add("Vampire"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/y/YasovaDragonclaw.java b/Mage.Sets/src/mage/cards/y/YasovaDragonclaw.java index 79a9f159a61..5f0731526c5 100644 --- a/Mage.Sets/src/mage/cards/y/YasovaDragonclaw.java +++ b/Mage.Sets/src/mage/cards/y/YasovaDragonclaw.java @@ -27,7 +27,6 @@ */ package mage.cards.y; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; @@ -43,6 +42,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.ObjectSourcePlayer; @@ -52,6 +52,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -67,7 +69,7 @@ public class YasovaDragonclaw extends CardImpl { public YasovaDragonclaw(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Warrior"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/y/YavimayaHollow.java b/Mage.Sets/src/mage/cards/y/YavimayaHollow.java index da2ed09d1f5..eec20585583 100644 --- a/Mage.Sets/src/mage/cards/y/YavimayaHollow.java +++ b/Mage.Sets/src/mage/cards/y/YavimayaHollow.java @@ -27,7 +27,6 @@ */ package mage.cards.y; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -37,9 +36,12 @@ import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -48,7 +50,7 @@ public class YavimayaHollow extends CardImpl { public YavimayaHollow(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/y/YevaNaturesHerald.java b/Mage.Sets/src/mage/cards/y/YevaNaturesHerald.java index 2493e290691..6df148dc385 100644 --- a/Mage.Sets/src/mage/cards/y/YevaNaturesHerald.java +++ b/Mage.Sets/src/mage/cards/y/YevaNaturesHerald.java @@ -27,7 +27,6 @@ */ package mage.cards.y; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; @@ -37,10 +36,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * * @author North @@ -54,7 +56,7 @@ public class YevaNaturesHerald extends CardImpl { public YevaNaturesHerald(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Elf"); this.subtype.add("Shaman"); diff --git a/Mage.Sets/src/mage/cards/y/YidrisMaelstromWielder.java b/Mage.Sets/src/mage/cards/y/YidrisMaelstromWielder.java index 47e36a19ab5..f3e59a75040 100644 --- a/Mage.Sets/src/mage/cards/y/YidrisMaelstromWielder.java +++ b/Mage.Sets/src/mage/cards/y/YidrisMaelstromWielder.java @@ -27,7 +27,6 @@ */ package mage.cards.y; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; @@ -36,17 +35,14 @@ import mage.abilities.keyword.CascadeAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.stack.Spell; import mage.game.stack.StackObject; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -56,7 +52,7 @@ public class YidrisMaelstromWielder extends CardImpl { public YidrisMaelstromWielder(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}{B}{R}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Ogre"); this.subtype.add("Wizard"); this.power = new MageInt(5); diff --git a/Mage.Sets/src/mage/cards/y/YisanTheWandererBard.java b/Mage.Sets/src/mage/cards/y/YisanTheWandererBard.java index c62fe643903..ade8b598029 100644 --- a/Mage.Sets/src/mage/cards/y/YisanTheWandererBard.java +++ b/Mage.Sets/src/mage/cards/y/YisanTheWandererBard.java @@ -27,9 +27,9 @@ */ package mage.cards.y; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.PutCountersSourceCost; import mage.abilities.costs.common.TapSourceCost; @@ -40,9 +40,9 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.Counter; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; @@ -51,6 +51,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +61,7 @@ public class YisanTheWandererBard extends CardImpl { public YisanTheWandererBard(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Rogue"); @@ -106,7 +108,7 @@ class YisanTheWandererBardEffect extends OneShotEffect { if (sourcePermanent != null && controller != null) { int newConvertedCost = sourcePermanent.getCounters(game).getCount("verse"); FilterCard filter = new FilterCard("creature card with converted mana cost " + newConvertedCost); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, newConvertedCost)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, newConvertedCost)); filter.add(new CardTypePredicate(CardType.CREATURE)); TargetCardInLibrary target = new TargetCardInLibrary(filter); if (controller.searchLibrary(target, game)) { diff --git a/Mage.Sets/src/mage/cards/y/YomijiWhoBarsTheWay.java b/Mage.Sets/src/mage/cards/y/YomijiWhoBarsTheWay.java index 0eaa6fe76d0..226c33f8241 100644 --- a/Mage.Sets/src/mage/cards/y/YomijiWhoBarsTheWay.java +++ b/Mage.Sets/src/mage/cards/y/YomijiWhoBarsTheWay.java @@ -27,7 +27,6 @@ */ package mage.cards.y; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility; import mage.abilities.effects.Effect; @@ -35,10 +34,13 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.filter.predicate.permanent.AnotherPredicate; +import java.util.UUID; + /** * * @author LevelX2 @@ -47,7 +49,7 @@ public class YomijiWhoBarsTheWay extends CardImpl { public YomijiWhoBarsTheWay(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Spirit"); this.power = new MageInt(4); @@ -56,7 +58,7 @@ public class YomijiWhoBarsTheWay extends CardImpl { // Whenever a legendary permanent other than Yomiji, Who Bars the Way is put into a graveyard from the battlefield, return that card to its owner's hand. FilterPermanent filter = new FilterPermanent("a legendary permanent other than " + getName()); filter.add(new AnotherPredicate()); - filter.add(new SupertypePredicate("Legendary")); + filter.add(new SupertypePredicate(SuperType.LEGENDARY)); Effect effect = new ReturnToHandTargetEffect(); effect.setText("return that card to its owner's hand"); this.addAbility(new PutIntoGraveFromBattlefieldAllTriggeredAbility(effect, false, filter, true)); diff --git a/Mage.Sets/src/mage/cards/y/YoseiTheMorningStar.java b/Mage.Sets/src/mage/cards/y/YoseiTheMorningStar.java index e4a970a6cf8..0f18d87dd88 100644 --- a/Mage.Sets/src/mage/cards/y/YoseiTheMorningStar.java +++ b/Mage.Sets/src/mage/cards/y/YoseiTheMorningStar.java @@ -27,9 +27,6 @@ */ package mage.cards.y; -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -39,6 +36,9 @@ import mage.abilities.effects.common.SkipNextPlayerUntapStepEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.FilterPermanent; import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; @@ -49,6 +49,8 @@ import mage.target.TargetPermanent; import mage.target.TargetPlayer; import mage.target.Targets; +import java.util.UUID; + /** * * @author LevelX @@ -57,7 +59,7 @@ public class YoseiTheMorningStar extends CardImpl { public YoseiTheMorningStar(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Dragon"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/y/YuanShaoTheIndecisive.java b/Mage.Sets/src/mage/cards/y/YuanShaoTheIndecisive.java index 45bb86f97f6..689d4fb0309 100644 --- a/Mage.Sets/src/mage/cards/y/YuanShaoTheIndecisive.java +++ b/Mage.Sets/src/mage/cards/y/YuanShaoTheIndecisive.java @@ -27,7 +27,6 @@ */ package mage.cards.y; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantBeBlockedByMoreThanOneAllEffect; @@ -35,9 +34,12 @@ import mage.abilities.keyword.HorsemanshipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -46,7 +48,7 @@ public class YuanShaoTheIndecisive extends CardImpl { public YuanShaoTheIndecisive(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/y/YukoraThePrisoner.java b/Mage.Sets/src/mage/cards/y/YukoraThePrisoner.java index d8a6fc9ce1a..34d20948ceb 100644 --- a/Mage.Sets/src/mage/cards/y/YukoraThePrisoner.java +++ b/Mage.Sets/src/mage/cards/y/YukoraThePrisoner.java @@ -27,8 +27,6 @@ */ package mage.cards.y; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LeavesBattlefieldTriggeredAbility; @@ -37,12 +35,16 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.List; +import java.util.UUID; + /** * * @author LevelX2 @@ -57,7 +59,7 @@ public class YukoraThePrisoner extends CardImpl { public YukoraThePrisoner(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Demon"); this.subtype.add("Spirit"); diff --git a/Mage.Sets/src/mage/cards/z/ZadaHedronGrinder.java b/Mage.Sets/src/mage/cards/z/ZadaHedronGrinder.java index d127d6c115f..e944f90d035 100644 --- a/Mage.Sets/src/mage/cards/z/ZadaHedronGrinder.java +++ b/Mage.Sets/src/mage/cards/z/ZadaHedronGrinder.java @@ -27,7 +27,6 @@ */ package mage.cards.z; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -37,6 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -47,6 +47,8 @@ import mage.players.Player; import mage.target.Target; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX2 @@ -55,7 +57,7 @@ public class ZadaHedronGrinder extends CardImpl { public ZadaHedronGrinder(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Ally"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/z/ZamWesell.java b/Mage.Sets/src/mage/cards/z/ZamWesell.java index 23351edfc4e..b20cd69bf5e 100644 --- a/Mage.Sets/src/mage/cards/z/ZamWesell.java +++ b/Mage.Sets/src/mage/cards/z/ZamWesell.java @@ -27,7 +27,6 @@ */ package mage.cards.z; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -37,16 +36,15 @@ import mage.abilities.effects.common.RevealHandTargetEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** * * @author Styxo @@ -55,7 +53,7 @@ public class ZamWesell extends CardImpl { public ZamWesell(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Shapeshifter"); this.subtype.add("Hunter"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/z/ZameckGuildmage.java b/Mage.Sets/src/mage/cards/z/ZameckGuildmage.java index 986e717a004..b691159e4f0 100644 --- a/Mage.Sets/src/mage/cards/z/ZameckGuildmage.java +++ b/Mage.Sets/src/mage/cards/z/ZameckGuildmage.java @@ -55,7 +55,7 @@ import mage.target.common.TargetControlledCreaturePermanent; public class ZameckGuildmage extends CardImpl { public ZameckGuildmage(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}{U}"); this.subtype.add("Elf"); this.subtype.add("Wizard"); @@ -112,7 +112,7 @@ class ZameckGuildmageEntersBattlefieldEffect extends ReplacementEffectImpl { public boolean replaceEvent(GameEvent event, Ability source, Game game) { Permanent target = ((EntersTheBattlefieldEvent) event).getTarget(); if (target != null) { - target.addCounters(CounterType.P1P1.createInstance(), source, game); + target.addCounters(CounterType.P1P1.createInstance(), source, game, event.getAppliedEffects()); } return false; } diff --git a/Mage.Sets/src/mage/cards/z/ZedruuTheGreathearted.java b/Mage.Sets/src/mage/cards/z/ZedruuTheGreathearted.java index fec7a17f5a4..02cbf8ae876 100644 --- a/Mage.Sets/src/mage/cards/z/ZedruuTheGreathearted.java +++ b/Mage.Sets/src/mage/cards/z/ZedruuTheGreathearted.java @@ -41,13 +41,7 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetControlledPermanent; @@ -61,7 +55,7 @@ public class ZedruuTheGreathearted extends CardImpl { public ZedruuTheGreathearted(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}{W}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Minotaur"); this.subtype.add("Monk"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/z/ZenithSeeker.java b/Mage.Sets/src/mage/cards/z/ZenithSeeker.java new file mode 100644 index 00000000000..fc42e21f046 --- /dev/null +++ b/Mage.Sets/src/mage/cards/z/ZenithSeeker.java @@ -0,0 +1,76 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.cards.z; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.CycleOrDiscardControllerTriggeredAbility; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author anonymous + */ +public class ZenithSeeker extends CardImpl { + + public ZenithSeeker(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); + + this.subtype.add("Bird"); + this.subtype.add("Wizard"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Whenever you cycle or discard a card, target creature gains flying until end of turn. + Ability ability = + new CycleOrDiscardControllerTriggeredAbility( + new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn)); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + + } + + public ZenithSeeker(final ZenithSeeker card) { + super(card); + } + + @Override + public ZenithSeeker copy() { + return new ZenithSeeker(this); + } +} diff --git a/Mage.Sets/src/mage/cards/z/ZhangFeiFierceWarrior.java b/Mage.Sets/src/mage/cards/z/ZhangFeiFierceWarrior.java index 590679816d5..a87324deea0 100644 --- a/Mage.Sets/src/mage/cards/z/ZhangFeiFierceWarrior.java +++ b/Mage.Sets/src/mage/cards/z/ZhangFeiFierceWarrior.java @@ -34,6 +34,7 @@ import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; /** * @@ -43,7 +44,7 @@ public class ZhangFeiFierceWarrior extends CardImpl { public ZhangFeiFierceWarrior(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{W}"); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/z/ZhangHeWeiGeneral.java b/Mage.Sets/src/mage/cards/z/ZhangHeWeiGeneral.java index 08cebeef145..63c940a6b7b 100644 --- a/Mage.Sets/src/mage/cards/z/ZhangHeWeiGeneral.java +++ b/Mage.Sets/src/mage/cards/z/ZhangHeWeiGeneral.java @@ -27,7 +27,6 @@ */ package mage.cards.z; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; @@ -36,8 +35,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -46,7 +48,7 @@ public class ZhangHeWeiGeneral extends CardImpl { public ZhangHeWeiGeneral(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(4); diff --git a/Mage.Sets/src/mage/cards/z/ZhangLiaoHeroOfHefei.java b/Mage.Sets/src/mage/cards/z/ZhangLiaoHeroOfHefei.java index a50bf4c0f5f..78e98ec34ad 100644 --- a/Mage.Sets/src/mage/cards/z/ZhangLiaoHeroOfHefei.java +++ b/Mage.Sets/src/mage/cards/z/ZhangLiaoHeroOfHefei.java @@ -27,13 +27,15 @@ */ package mage.cards.z; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsDamageToOpponentTriggeredAbility; import mage.abilities.effects.common.discard.DiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -43,7 +45,7 @@ public class ZhangLiaoHeroOfHefei extends CardImpl { public ZhangLiaoHeroOfHefei(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/z/ZhaoZilongTigerGeneral.java b/Mage.Sets/src/mage/cards/z/ZhaoZilongTigerGeneral.java index dcdce3fe06f..22f0c56b70e 100644 --- a/Mage.Sets/src/mage/cards/z/ZhaoZilongTigerGeneral.java +++ b/Mage.Sets/src/mage/cards/z/ZhaoZilongTigerGeneral.java @@ -27,7 +27,6 @@ */ package mage.cards.z; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BlocksTriggeredAbility; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -36,6 +35,9 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; + +import java.util.UUID; /** * @@ -45,7 +47,7 @@ public class ZhaoZilongTigerGeneral extends CardImpl { public ZhaoZilongTigerGeneral(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/z/ZhouYuChiefCommander.java b/Mage.Sets/src/mage/cards/z/ZhouYuChiefCommander.java index ed090cfd1b4..007c511f37b 100644 --- a/Mage.Sets/src/mage/cards/z/ZhouYuChiefCommander.java +++ b/Mage.Sets/src/mage/cards/z/ZhouYuChiefCommander.java @@ -27,16 +27,18 @@ */ package mage.cards.z; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantAttackUnlessDefenderControllsPermanent; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -45,7 +47,7 @@ public class ZhouYuChiefCommander extends CardImpl { public ZhouYuChiefCommander(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Soldier"); this.power = new MageInt(8); diff --git a/Mage.Sets/src/mage/cards/z/ZhugeJinWuStrategist.java b/Mage.Sets/src/mage/cards/z/ZhugeJinWuStrategist.java index 4a06d83ef25..00f4e5f0a4c 100644 --- a/Mage.Sets/src/mage/cards/z/ZhugeJinWuStrategist.java +++ b/Mage.Sets/src/mage/cards/z/ZhugeJinWuStrategist.java @@ -27,7 +27,6 @@ */ package mage.cards.z; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; @@ -38,9 +37,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -49,7 +51,7 @@ public class ZhugeJinWuStrategist extends CardImpl { public ZhugeJinWuStrategist(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{U}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); @@ -58,7 +60,7 @@ public class ZhugeJinWuStrategist extends CardImpl { // {tap}: Target creature can't be blocked this turn. Activate this ability only during your turn, before attackers are declared. Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, - new CantBeBlockedTargetEffect(Duration.EndOfTurn), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.getInstance()); + new CantBeBlockedTargetEffect(Duration.EndOfTurn), new TapSourceCost(), MyTurnBeforeAttackersDeclaredCondition.instance); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/z/ZirilanOfTheClaw.java b/Mage.Sets/src/mage/cards/z/ZirilanOfTheClaw.java index c636470678a..38d15c06569 100644 --- a/Mage.Sets/src/mage/cards/z/ZirilanOfTheClaw.java +++ b/Mage.Sets/src/mage/cards/z/ZirilanOfTheClaw.java @@ -27,7 +27,6 @@ */ package mage.cards.z; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.DelayedTriggeredAbility; @@ -43,10 +42,7 @@ import mage.abilities.keyword.HasteAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; @@ -55,6 +51,8 @@ import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author fireshoes @@ -63,7 +61,7 @@ public class ZirilanOfTheClaw extends CardImpl { public ZirilanOfTheClaw(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Viashino"); this.subtype.add("Shaman"); this.power = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/z/ZoZuThePunisher.java b/Mage.Sets/src/mage/cards/z/ZoZuThePunisher.java index db42c2bab7f..9fa034d4bc5 100644 --- a/Mage.Sets/src/mage/cards/z/ZoZuThePunisher.java +++ b/Mage.Sets/src/mage/cards/z/ZoZuThePunisher.java @@ -27,7 +27,6 @@ */ package mage.cards.z; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; @@ -35,6 +34,7 @@ import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; @@ -43,6 +43,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * * @author LevelX @@ -51,7 +53,7 @@ public class ZoZuThePunisher extends CardImpl { public ZoZuThePunisher(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Goblin"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/cards/z/ZuberiGoldenFeather.java b/Mage.Sets/src/mage/cards/z/ZuberiGoldenFeather.java index 51cff78f448..055235b3971 100644 --- a/Mage.Sets/src/mage/cards/z/ZuberiGoldenFeather.java +++ b/Mage.Sets/src/mage/cards/z/ZuberiGoldenFeather.java @@ -27,7 +27,6 @@ */ package mage.cards.z; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; @@ -36,9 +35,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; +import java.util.UUID; + /** * * @author nigelzor @@ -49,7 +51,7 @@ public class ZuberiGoldenFeather extends CardImpl { public ZuberiGoldenFeather(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Griffin"); this.power = new MageInt(3); this.toughness = new MageInt(3); diff --git a/Mage.Sets/src/mage/cards/z/ZuoCiTheMockingSage.java b/Mage.Sets/src/mage/cards/z/ZuoCiTheMockingSage.java index b5a5178a867..11237a83f57 100644 --- a/Mage.Sets/src/mage/cards/z/ZuoCiTheMockingSage.java +++ b/Mage.Sets/src/mage/cards/z/ZuoCiTheMockingSage.java @@ -27,7 +27,6 @@ */ package mage.cards.z; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleEvasionAbility; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; @@ -37,9 +36,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author LoneFox @@ -54,7 +56,7 @@ public class ZuoCiTheMockingSage extends CardImpl { public ZuoCiTheMockingSage(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{G}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Advisor"); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/z/ZurTheEnchanter.java b/Mage.Sets/src/mage/cards/z/ZurTheEnchanter.java index fce7ecb247c..85313ef6640 100644 --- a/Mage.Sets/src/mage/cards/z/ZurTheEnchanter.java +++ b/Mage.Sets/src/mage/cards/z/ZurTheEnchanter.java @@ -27,20 +27,22 @@ */ package mage.cards.z; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.Filter; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author LevelX2 @@ -51,12 +53,12 @@ public class ZurTheEnchanter extends CardImpl { static { filter.add(new CardTypePredicate(CardType.ENCHANTMENT)); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 4)); } public ZurTheEnchanter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{U}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage.Sets/src/mage/cards/z/ZurgoBellstriker.java b/Mage.Sets/src/mage/cards/z/ZurgoBellstriker.java index b7b235d46a4..fbffff7cdd7 100644 --- a/Mage.Sets/src/mage/cards/z/ZurgoBellstriker.java +++ b/Mage.Sets/src/mage/cards/z/ZurgoBellstriker.java @@ -27,19 +27,21 @@ */ package mage.cards.z; -import java.util.UUID; import mage.MageInt; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.combat.CantBlockCreaturesSourceEffect; import mage.abilities.keyword.DashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; +import java.util.UUID; + /** * * @author fireshoes @@ -49,12 +51,12 @@ public class ZurgoBellstriker extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or greater"); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 1)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 1)); } public ZurgoBellstriker(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Orc"); this.subtype.add("Warrior"); this.power = new MageInt(2); diff --git a/Mage.Sets/src/mage/cards/z/ZurgoHelmsmasher.java b/Mage.Sets/src/mage/cards/z/ZurgoHelmsmasher.java index 467e99f3309..0ab0340d05c 100644 --- a/Mage.Sets/src/mage/cards/z/ZurgoHelmsmasher.java +++ b/Mage.Sets/src/mage/cards/z/ZurgoHelmsmasher.java @@ -27,7 +27,6 @@ */ package mage.cards.z; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksEachCombatStaticAbility; import mage.abilities.common.DealtDamageAndDiedTriggeredAbility; @@ -42,9 +41,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SuperType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author LevelX2 @@ -53,7 +55,7 @@ public class ZurgoHelmsmasher extends CardImpl { public ZurgoHelmsmasher(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{W}{B}"); - this.supertype.add("Legendary"); + addSuperType(SuperType.LEGENDARY); this.subtype.add("Orc"); this.subtype.add("Warrior"); diff --git a/Mage.Sets/src/mage/sets/AetherRevolt.java b/Mage.Sets/src/mage/sets/AetherRevolt.java index 21d57b6747b..df82862824e 100644 --- a/Mage.Sets/src/mage/sets/AetherRevolt.java +++ b/Mage.Sets/src/mage/sets/AetherRevolt.java @@ -27,8 +27,6 @@ */ package mage.sets; -import java.util.ArrayList; -import java.util.List; import mage.cards.ExpansionSet; import mage.cards.repository.CardCriteria; import mage.cards.repository.CardInfo; @@ -36,6 +34,9 @@ import mage.cards.repository.CardRepository; import mage.constants.Rarity; import mage.constants.SetType; +import java.util.ArrayList; +import java.util.List; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/sets/AjaniVsNicolBolas.java b/Mage.Sets/src/mage/sets/AjaniVsNicolBolas.java index d6be2178e8d..fef67a6f615 100644 --- a/Mage.Sets/src/mage/sets/AjaniVsNicolBolas.java +++ b/Mage.Sets/src/mage/sets/AjaniVsNicolBolas.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Alliances.java b/Mage.Sets/src/mage/sets/Alliances.java index 732d3a6e9e1..d8161aa45d3 100644 --- a/Mage.Sets/src/mage/sets/Alliances.java +++ b/Mage.Sets/src/mage/sets/Alliances.java @@ -1,5 +1,6 @@ package mage.sets; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.a.AesthirGlider; import mage.cards.a.AgentOfStromgald; @@ -18,10 +19,8 @@ import mage.cards.s.SoldeviSage; import mage.cards.s.StormShaman; import mage.cards.s.SwampMosquito; import mage.cards.w.WhipVine; -import mage.constants.SetType; - import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; public class Alliances extends ExpansionSet { private static final Alliances instance = new Alliances(); diff --git a/Mage.Sets/src/mage/sets/Amonkhet.java b/Mage.Sets/src/mage/sets/Amonkhet.java index ccc9987dc15..a8eb00ed636 100644 --- a/Mage.Sets/src/mage/sets/Amonkhet.java +++ b/Mage.Sets/src/mage/sets/Amonkhet.java @@ -1,55 +1,360 @@ -/* - * Copyright 2011 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ -package mage.sets; - -import mage.cards.ExpansionSet; -import mage.constants.SetType; - -/** - * - * @author fireshoes - */ -public class Amonkhet extends ExpansionSet { - - private static final Amonkhet instance = new Amonkhet(); - - public static Amonkhet getInstance() { - return instance; - } - - private Amonkhet() { - super("Amonkhet", "AKH", ExpansionSet.buildDate(2017, 4, 28), SetType.EXPANSION); - this.blockName = "Amonkhet"; - this.hasBoosters = true; - this.numBoosterLands = 1; - this.numBoosterCommon = 10; - this.numBoosterUncommon = 3; - this.numBoosterRare = 1; - this.ratioBoosterMythic = 8; - } -} +/* + * Copyright 2011 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets; + +import java.util.ArrayList; +import java.util.List; +import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.cards.repository.CardCriteria; +import mage.cards.repository.CardInfo; +import mage.cards.repository.CardRepository; +import mage.constants.Rarity; +import mage.constants.SetType; + +/** + * + * @author fireshoes + */ +public class Amonkhet extends ExpansionSet { + + private static final Amonkhet instance = new Amonkhet(); + + public static Amonkhet getInstance() { + return instance; + } + + protected final List savedSpecialLand = new ArrayList<>(); + + private Amonkhet() { + super("Amonkhet", "AKH", ExpansionSet.buildDate(2017, 4, 28), SetType.EXPANSION); + this.blockName = "Amonkhet"; + this.hasBoosters = true; + this.hasBasicLands = true; + this.numBoosterLands = 1; + this.numBoosterCommon = 10; + this.numBoosterUncommon = 3; + this.numBoosterRare = 1; + this.ratioBoosterMythic = 8; + this.maxCardNumberInBooster = 269; + this.ratioBoosterSpecialLand = 144; + + cards.add(new SetCardInfo("Ahn-Crop Champion", 194, Rarity.UNCOMMON, mage.cards.a.AhnCropChampion.class)); + cards.add(new SetCardInfo("Ahn-Crop Crasher", 117, Rarity.UNCOMMON, mage.cards.a.AhnCropCrasher.class)); + cards.add(new SetCardInfo("Ancient Crab", 40, Rarity.COMMON, mage.cards.a.AncientCrab.class)); + cards.add(new SetCardInfo("Angel of Sanctions", 1, Rarity.MYTHIC, mage.cards.a.AngelOfSanctions.class)); + cards.add(new SetCardInfo("Angler Drake", 41, Rarity.UNCOMMON, mage.cards.a.AnglerDrake.class)); + cards.add(new SetCardInfo("Anointed Procession", 2, Rarity.RARE, mage.cards.a.AnointedProcession.class)); + cards.add(new SetCardInfo("Anointer Priest", 3, Rarity.COMMON, mage.cards.a.AnointerPriest.class)); + cards.add(new SetCardInfo("Approach of the Second Sun", 4, Rarity.RARE, mage.cards.a.ApproachOfTheSecondSun.class)); + cards.add(new SetCardInfo("Archfiend of Ifnir", 78, Rarity.RARE, mage.cards.a.ArchfiendOfIfnir.class)); + cards.add(new SetCardInfo("As Foretold", 42, Rarity.MYTHIC, mage.cards.a.AsForetold.class)); + cards.add(new SetCardInfo("Aven Initiate", 43, Rarity.COMMON, mage.cards.a.AvenInitiate.class)); + cards.add(new SetCardInfo("Aven Mindcensor", 5, Rarity.RARE, mage.cards.a.AvenMindcensor.class)); + cards.add(new SetCardInfo("Aven Wind Guide", 195, Rarity.UNCOMMON, mage.cards.a.AvenWindGuide.class)); + cards.add(new SetCardInfo("Baleful Ammit", 79, Rarity.UNCOMMON, mage.cards.b.BalefulAmmit.class)); + cards.add(new SetCardInfo("Battlefield Scavenger", 118, Rarity.UNCOMMON, mage.cards.b.BattlefieldScavenger.class)); + cards.add(new SetCardInfo("Benefaction of Rhonas", 156, Rarity.COMMON, mage.cards.b.BenefactionOfRhonas.class)); + cards.add(new SetCardInfo("Binding Mummy", 6, Rarity.COMMON, mage.cards.b.BindingMummy.class)); + cards.add(new SetCardInfo("Bitterblade Warrior", 157, Rarity.COMMON, mage.cards.b.BitterbladeWarrior.class)); + cards.add(new SetCardInfo("Blazing Volley", 119, Rarity.COMMON, mage.cards.b.BlazingVolley.class)); + cards.add(new SetCardInfo("Blighted Bat", 80, Rarity.COMMON, mage.cards.b.BlightedBat.class)); + cards.add(new SetCardInfo("Bloodlust Inciter", 120, Rarity.COMMON, mage.cards.b.BloodlustInciter.class)); + cards.add(new SetCardInfo("Bloodrage Brawler", 121, Rarity.UNCOMMON, mage.cards.b.BloodrageBrawler.class)); + cards.add(new SetCardInfo("Bone Picker", 81, Rarity.UNCOMMON, mage.cards.b.BonePicker.class)); + cards.add(new SetCardInfo("Bounty of the Luxa", 196, Rarity.RARE, mage.cards.b.BountyOfTheLuxa.class)); + cards.add(new SetCardInfo("Bontu's Monument", 225, Rarity.UNCOMMON, mage.cards.b.BontusMonument.class)); + cards.add(new SetCardInfo("Bontu the Glorified", 82, Rarity.MYTHIC, mage.cards.b.BontuTheGlorified.class)); + cards.add(new SetCardInfo("Brute Strength", 122, Rarity.COMMON, mage.cards.b.BruteStrength.class)); + cards.add(new SetCardInfo("By Force", 123, Rarity.UNCOMMON, mage.cards.b.ByForce.class)); + cards.add(new SetCardInfo("Cancel", 44, Rarity.COMMON, mage.cards.c.Cancel.class)); + cards.add(new SetCardInfo("Canyon Slough", 239, Rarity.RARE, mage.cards.c.CanyonSlough.class)); + cards.add(new SetCardInfo("Cartouche of Ambition", 83, Rarity.COMMON, mage.cards.c.CartoucheOfAmbition.class)); + cards.add(new SetCardInfo("Cartouche of Knowledge", 45, Rarity.COMMON, mage.cards.c.CartoucheOfKnowledge.class)); + cards.add(new SetCardInfo("Cartouche of Solidarity", 7, Rarity.COMMON, mage.cards.c.CartoucheOfSolidarity.class)); + cards.add(new SetCardInfo("Cartouche of Strength", 158, Rarity.COMMON, mage.cards.c.CartoucheOfStrength.class)); + cards.add(new SetCardInfo("Cartouche of Zeal", 124, Rarity.COMMON, mage.cards.c.CartoucheOfZeal.class)); + cards.add(new SetCardInfo("Cascading Cataracts", 240, Rarity.RARE, mage.cards.c.CascadingCataracts.class)); + cards.add(new SetCardInfo("Cast Out", 8, Rarity.UNCOMMON, mage.cards.c.CastOut.class)); + cards.add(new SetCardInfo("Censor", 46, Rarity.UNCOMMON, mage.cards.c.Censor.class)); + cards.add(new SetCardInfo("Champion of Rhonas", 159, Rarity.RARE, mage.cards.c.ChampionOfRhonas.class)); + cards.add(new SetCardInfo("Channeler Initiate", 160, Rarity.RARE, mage.cards.c.ChannelerInitiate.class)); + cards.add(new SetCardInfo("Colossapede", 161, Rarity.COMMON, mage.cards.c.Colossapede.class)); + cards.add(new SetCardInfo("Combat Celebrant", 125, Rarity.MYTHIC, mage.cards.c.CombatCelebrant.class)); + cards.add(new SetCardInfo("Commit // Memory", 211, Rarity.RARE, mage.cards.c.CommitMemory.class)); + cards.add(new SetCardInfo("Companion of the Trials", 271, Rarity.UNCOMMON, mage.cards.c.CompanionOfTheTrials.class)); + cards.add(new SetCardInfo("Compelling Argument", 47, Rarity.COMMON, mage.cards.c.CompellingArgument.class)); + cards.add(new SetCardInfo("Compulsory Rest", 9, Rarity.COMMON, mage.cards.c.CompulsoryRest.class)); + cards.add(new SetCardInfo("Consuming Fervor", 126, Rarity.UNCOMMON, mage.cards.c.ConsumingFervor.class)); + cards.add(new SetCardInfo("Cradle of the Accursed", 241, Rarity.COMMON, mage.cards.c.CradleOfTheAccursed.class)); + cards.add(new SetCardInfo("Crocodile of the Crossing", 162, Rarity.UNCOMMON, mage.cards.c.CrocodileOfTheCrossing.class)); + cards.add(new SetCardInfo("Cryptic Serpent", 48, Rarity.UNCOMMON, mage.cards.c.CrypticSerpent.class)); + cards.add(new SetCardInfo("Cruel Reality", 84, Rarity.MYTHIC, mage.cards.c.CruelReality.class)); + cards.add(new SetCardInfo("Curator of Mysteries", 49, Rarity.RARE, mage.cards.c.CuratorOfMysteries.class)); + cards.add(new SetCardInfo("Cursed Minotaur", 85, Rarity.COMMON, mage.cards.c.CursedMinotaur.class)); + cards.add(new SetCardInfo("Cut // Ribbons", 223, Rarity.RARE, mage.cards.c.CutRibbons.class)); + cards.add(new SetCardInfo("Decimator Beetle", 197, Rarity.UNCOMMON, mage.cards.d.DecimatorBeetle.class)); + cards.add(new SetCardInfo("Decision Paralysis", 50, Rarity.COMMON, mage.cards.d.DecisionParalysis.class)); + cards.add(new SetCardInfo("Deem Worthy", 127, Rarity.UNCOMMON, mage.cards.d.DeemWorthy.class)); + cards.add(new SetCardInfo("Defiant Greatmaw", 163, Rarity.UNCOMMON, mage.cards.d.DefiantGreatmaw.class)); + cards.add(new SetCardInfo("Desert Cerodon", 128, Rarity.COMMON, mage.cards.d.DesertCerodon.class)); + cards.add(new SetCardInfo("Desiccated Naga", 276, Rarity.UNCOMMON, mage.cards.d.DesiccatedNaga.class)); + cards.add(new SetCardInfo("Destined // Lead", 217, Rarity.UNCOMMON, mage.cards.d.DestinedLead.class)); + cards.add(new SetCardInfo("Devoted Crop-Mate", 10, Rarity.UNCOMMON, mage.cards.d.DevotedCropMate.class)); + cards.add(new SetCardInfo("Dispossess", 86, Rarity.RARE, mage.cards.d.Dispossess.class)); + cards.add(new SetCardInfo("Dissenter's Deliverance", 164, Rarity.COMMON, mage.cards.d.DissentersDeliverance.class)); + cards.add(new SetCardInfo("Djeru's Resolve", 11, Rarity.COMMON, mage.cards.d.DjerusResolve.class)); + cards.add(new SetCardInfo("Doomed Dissenter", 87, Rarity.COMMON, mage.cards.d.DoomedDissenter.class)); + cards.add(new SetCardInfo("Drake Haven", 51, Rarity.RARE, mage.cards.d.DrakeHaven.class)); + cards.add(new SetCardInfo("Dread Wanderer", 88, Rarity.RARE, mage.cards.d.DreadWanderer.class)); + cards.add(new SetCardInfo("Dune Beetle", 89, Rarity.COMMON, mage.cards.d.DuneBeetle.class)); + cards.add(new SetCardInfo("Dusk // Dawn", 210, Rarity.RARE, mage.cards.d.DuskDawn.class)); + cards.add(new SetCardInfo("Edifice of Authority", 226, Rarity.UNCOMMON, mage.cards.e.EdificeOfAuthority.class)); + cards.add(new SetCardInfo("Electrify", 129, Rarity.COMMON, mage.cards.e.Electrify.class)); + cards.add(new SetCardInfo("Embalmer's Tools", 227, Rarity.UNCOMMON, mage.cards.e.EmbalmersTools.class)); + cards.add(new SetCardInfo("Emberhorn Minotaur", 130, Rarity.COMMON, mage.cards.e.EmberhornMinotaur.class)); + cards.add(new SetCardInfo("Enigma Drake", 198, Rarity.UNCOMMON, mage.cards.e.EnigmaDrake.class)); + cards.add(new SetCardInfo("Essence Scatter", 52, Rarity.COMMON, mage.cards.e.EssenceScatter.class)); + cards.add(new SetCardInfo("Evolving Wilds", 242, Rarity.COMMON, mage.cards.e.EvolvingWilds.class)); + cards.add(new SetCardInfo("Exemplar of Strength", 165, Rarity.UNCOMMON, mage.cards.e.ExemplarOfStrength.class)); + cards.add(new SetCardInfo("Failure // Comply", 221, Rarity.RARE, mage.cards.f.FailureComply.class)); + cards.add(new SetCardInfo("Faith of the Devoted", 90, Rarity.UNCOMMON, mage.cards.f.FaithOfTheDevoted.class)); + cards.add(new SetCardInfo("Fan Bearer", 12, Rarity.COMMON, mage.cards.f.FanBearer.class)); + cards.add(new SetCardInfo("Festering Mummy", 91, Rarity.COMMON, mage.cards.f.FesteringMummy.class)); + cards.add(new SetCardInfo("Fetid Pools", 243, Rarity.RARE, mage.cards.f.FetidPools.class)); + cards.add(new SetCardInfo("Final Reward", 92, Rarity.COMMON, mage.cards.f.FinalReward.class)); + cards.add(new SetCardInfo("Flameblade Adept", 131, Rarity.UNCOMMON, mage.cards.f.FlamebladeAdept.class)); + cards.add(new SetCardInfo("Fling", 132, Rarity.COMMON, mage.cards.f.Fling.class)); + cards.add(new SetCardInfo("Floodwaters", 53, Rarity.COMMON, mage.cards.f.Floodwaters.class)); + cards.add(new SetCardInfo("Forest", 254, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Forest", 267, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Forest", 268, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Forest", 269, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Forsake the Worldly", 13, Rarity.COMMON, mage.cards.f.ForsakeTheWorldly.class)); + cards.add(new SetCardInfo("Foul Orchard", 279, Rarity.COMMON, mage.cards.f.FoulOrchard.class)); + cards.add(new SetCardInfo("Galestrike", 54, Rarity.UNCOMMON, mage.cards.g.Galestrike.class)); + cards.add(new SetCardInfo("Gate to the Afterlife", 228, Rarity.UNCOMMON, mage.cards.g.GateToTheAfterlife.class)); + cards.add(new SetCardInfo("Giant Spider", 166, Rarity.COMMON, mage.cards.g.GiantSpider.class)); + cards.add(new SetCardInfo("Gideon of the Trials", 14, Rarity.MYTHIC, mage.cards.g.GideonOfTheTrials.class)); + cards.add(new SetCardInfo("Gideon's Intervention", 15, Rarity.RARE, mage.cards.g.GideonsIntervention.class)); + cards.add(new SetCardInfo("Gideon's Resolve", 272, Rarity.RARE, mage.cards.g.GideonsResolve.class)); + cards.add(new SetCardInfo("Gideon, Martial Paragon", 270, Rarity.MYTHIC, mage.cards.g.GideonMartialParagon.class)); + cards.add(new SetCardInfo("Gift of Paradise", 167, Rarity.COMMON, mage.cards.g.GiftOfParadise.class)); + cards.add(new SetCardInfo("Glorious End", 133, Rarity.MYTHIC, mage.cards.g.GloriousEnd.class)); + cards.add(new SetCardInfo("Glory-Bound Initiate", 16, Rarity.RARE, mage.cards.g.GloryBoundInitiate.class)); + cards.add(new SetCardInfo("Glorybringer", 134, Rarity.RARE, mage.cards.g.Glorybringer.class)); + cards.add(new SetCardInfo("Glyph Keeper", 55, Rarity.RARE, mage.cards.g.GlyphKeeper.class)); + cards.add(new SetCardInfo("Graceful Cat", 273, Rarity.COMMON, mage.cards.g.GracefulCat.class)); + cards.add(new SetCardInfo("Grasping Dunes", 244, Rarity.UNCOMMON, mage.cards.g.GraspingDunes.class)); + cards.add(new SetCardInfo("Gravedigger", 93, Rarity.UNCOMMON, mage.cards.g.Gravedigger.class)); + cards.add(new SetCardInfo("Greater Sandwurm", 168, Rarity.COMMON, mage.cards.g.GreaterSandwurm.class)); + cards.add(new SetCardInfo("Grim Strider", 94, Rarity.UNCOMMON, mage.cards.g.GrimStrider.class)); + cards.add(new SetCardInfo("Gust Walker", 17, Rarity.COMMON, mage.cards.g.GustWalker.class)); + cards.add(new SetCardInfo("Hapatra's Mark", 169, Rarity.UNCOMMON, mage.cards.h.HapatrasMark.class)); + cards.add(new SetCardInfo("Hapatra, Vizier of Poisons", 199, Rarity.RARE, mage.cards.h.HapatraVizierOfPoisons.class)); + cards.add(new SetCardInfo("Harsh Mentor", 135, Rarity.RARE, mage.cards.h.HarshMentor.class)); + cards.add(new SetCardInfo("Harvest Season", 170, Rarity.RARE, mage.cards.h.HarvestSeason.class)); + cards.add(new SetCardInfo("Haze of Pollen", 171, Rarity.COMMON, mage.cards.h.HazeOfPollen.class)); + cards.add(new SetCardInfo("Hazoret the Fervent", 136, Rarity.MYTHIC, mage.cards.h.HazoretTheFervent.class)); + cards.add(new SetCardInfo("Hazoret's Favor", 137, Rarity.RARE, mage.cards.h.HazoretsFavor.class)); + cards.add(new SetCardInfo("Hazoret's Monument", 229, Rarity.UNCOMMON, mage.cards.h.HazoretsMonument.class)); + cards.add(new SetCardInfo("Heart-Piercer Manticore", 138, Rarity.RARE, mage.cards.h.HeartPiercerManticore.class)); + cards.add(new SetCardInfo("Heaven // Earth", 224, Rarity.RARE, mage.cards.h.HeavenEarth.class)); + cards.add(new SetCardInfo("Hekma Sentinels", 56, Rarity.COMMON, mage.cards.h.HekmaSentinels.class)); + cards.add(new SetCardInfo("Hieroglyphic Illumination", 57, Rarity.COMMON, mage.cards.h.HieroglyphicIllumination.class)); + cards.add(new SetCardInfo("Honed Khopesh", 230, Rarity.COMMON, mage.cards.h.HonedKhopesh.class)); + cards.add(new SetCardInfo("Honored Crop-Captain", 200, Rarity.UNCOMMON, mage.cards.h.HonoredCropCaptain.class)); + cards.add(new SetCardInfo("Honored Hydra", 172, Rarity.RARE, mage.cards.h.HonoredHydra.class)); + cards.add(new SetCardInfo("Hooded Brawler", 173, Rarity.COMMON, mage.cards.h.HoodedBrawler.class)); + cards.add(new SetCardInfo("Horror of the Broken Lands", 95, Rarity.COMMON, mage.cards.h.HorrorOfTheBrokenLands.class)); + cards.add(new SetCardInfo("Hyena Pack", 139, Rarity.COMMON, mage.cards.h.HyenaPack.class)); + cards.add(new SetCardInfo("Illusory Wrappings", 58, Rarity.COMMON, mage.cards.i.IllusoryWrappings.class)); + cards.add(new SetCardInfo("Impeccable Timing", 18, Rarity.COMMON, mage.cards.i.ImpeccableTiming.class)); + cards.add(new SetCardInfo("In Oketra's Name", 19, Rarity.COMMON, mage.cards.i.InOketrasName.class)); + cards.add(new SetCardInfo("Initiate's Companion", 174, Rarity.COMMON, mage.cards.i.InitiatesCompanion.class)); + cards.add(new SetCardInfo("Insult // Injury", 213, Rarity.RARE, mage.cards.i.InsultInjury.class)); + cards.add(new SetCardInfo("Irrigated Farmland", 245, Rarity.RARE, mage.cards.i.IrrigatedFarmland.class)); + cards.add(new SetCardInfo("Island", 251, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Island", 258, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Island", 259, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Island", 260, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Kefnet the Mindful", 59, Rarity.MYTHIC, mage.cards.k.KefnetTheMindful.class)); + cards.add(new SetCardInfo("Kefnet's Monument", 231, Rarity.UNCOMMON, mage.cards.k.KefnetsMonument.class)); + cards.add(new SetCardInfo("Khenra Charioteer", 201, Rarity.UNCOMMON, mage.cards.k.KhenraCharioteer.class)); + cards.add(new SetCardInfo("Labyrinth Guardian", 60, Rarity.UNCOMMON, mage.cards.l.LabyrinthGuardian.class)); + cards.add(new SetCardInfo("Lay Bare the Heart", 96, Rarity.UNCOMMON, mage.cards.l.LayBareTheHeart.class)); + cards.add(new SetCardInfo("Lay Claim", 61, Rarity.UNCOMMON, mage.cards.l.LayClaim.class)); + cards.add(new SetCardInfo("Liliana's Influence", 277, Rarity.RARE, mage.cards.l.LilianasInfluence.class)); + cards.add(new SetCardInfo("Liliana's Mastery", 98, Rarity.RARE, mage.cards.l.LilianasMastery.class)); + cards.add(new SetCardInfo("Liliana, Death Wielder", 275, Rarity.MYTHIC, mage.cards.l.LilianaDeathWielder.class)); + cards.add(new SetCardInfo("Liliana, Death's Majesty", 97, Rarity.MYTHIC, mage.cards.l.LilianaDeathsMajesty.class)); + cards.add(new SetCardInfo("Limits of Solidarity", 140, Rarity.UNCOMMON, mage.cards.l.LimitsOfSolidarity.class)); + cards.add(new SetCardInfo("Lord of the Accursed", 99, Rarity.UNCOMMON, mage.cards.l.LordOfTheAccursed.class)); + cards.add(new SetCardInfo("Luxa River Shrine", 232, Rarity.COMMON, mage.cards.l.LuxaRiverShrine.class)); + cards.add(new SetCardInfo("Magma Spray", 141, Rarity.COMMON, mage.cards.m.MagmaSpray.class)); + cards.add(new SetCardInfo("Manglehorn", 175, Rarity.UNCOMMON, mage.cards.m.Manglehorn.class)); + cards.add(new SetCardInfo("Manticore of the Gauntlet", 142, Rarity.COMMON, mage.cards.m.ManticoreOfTheGauntlet.class)); + cards.add(new SetCardInfo("Merciless Javelineer", 202, Rarity.UNCOMMON, mage.cards.m.MercilessJavelineer.class)); + cards.add(new SetCardInfo("Miasmic Mummy", 100, Rarity.COMMON, mage.cards.m.MiasmicMummy.class)); + cards.add(new SetCardInfo("Mighty Leap", 20, Rarity.COMMON, mage.cards.m.MightyLeap.class)); + cards.add(new SetCardInfo("Minotaur Sureshot", 143, Rarity.COMMON, mage.cards.m.MinotaurSureshot.class)); + cards.add(new SetCardInfo("Mountain", 253, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Mountain", 264, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Mountain", 265, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Mountain", 266, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Mouth // Feed", 214, Rarity.RARE, mage.cards.m.MouthFeed.class)); + cards.add(new SetCardInfo("Naga Oracle", 62, Rarity.COMMON, mage.cards.n.NagaOracle.class)); + cards.add(new SetCardInfo("Naga Vitalist", 176, Rarity.COMMON, mage.cards.n.NagaVitalist.class)); + cards.add(new SetCardInfo("Nef-Crop Entangler", 144, Rarity.COMMON, mage.cards.n.NefCropEntangler.class)); + cards.add(new SetCardInfo("Neheb, the Worthy", 203, Rarity.RARE, mage.cards.n.NehebTheWorthy.class)); + cards.add(new SetCardInfo("Nest of Scarabs", 101, Rarity.UNCOMMON, mage.cards.n.NestOfScarabs.class)); + cards.add(new SetCardInfo("Never // Return", 212, Rarity.RARE, mage.cards.n.NeverReturn.class)); + cards.add(new SetCardInfo("New Perspectives", 63, Rarity.RARE, mage.cards.n.NewPerspectives.class)); + cards.add(new SetCardInfo("Nimble-Blade Khenra", 145, Rarity.COMMON, mage.cards.n.NimbleBladeKhenra.class)); + cards.add(new SetCardInfo("Nissa, Steward of Elements", 204, Rarity.MYTHIC, mage.cards.n.NissaStewardOfElements.class)); + cards.add(new SetCardInfo("Oashra Cultivator", 177, Rarity.COMMON, mage.cards.o.OashraCultivator.class)); + cards.add(new SetCardInfo("Oketra the True", 21, Rarity.MYTHIC, mage.cards.o.OketraTheTrue.class)); + cards.add(new SetCardInfo("Oketra's Attendant", 22, Rarity.UNCOMMON, mage.cards.o.OketrasAttendant.class)); + cards.add(new SetCardInfo("Oketra's Monument", 233, Rarity.UNCOMMON, mage.cards.o.OketrasMonument.class)); + cards.add(new SetCardInfo("Onward // Victory", 218, Rarity.UNCOMMON, mage.cards.o.OnwardVictory.class)); + cards.add(new SetCardInfo("Open into Wonder", 64, Rarity.UNCOMMON, mage.cards.o.OpenIntoWonder.class)); + cards.add(new SetCardInfo("Oracle's Vault", 234, Rarity.RARE, mage.cards.o.OraclesVault.class)); + cards.add(new SetCardInfo("Ornery Kudu", 178, Rarity.COMMON, mage.cards.o.OrneryKudu.class)); + cards.add(new SetCardInfo("Painful Lesson", 102, Rarity.COMMON, mage.cards.p.PainfulLesson.class)); + cards.add(new SetCardInfo("Painted Bluffs", 246, Rarity.COMMON, mage.cards.p.PaintedBluffs.class)); + cards.add(new SetCardInfo("Pathmaker Initiate", 146, Rarity.COMMON, mage.cards.p.PathmakerInitiate.class)); + cards.add(new SetCardInfo("Pitiless Vizier", 103, Rarity.COMMON, mage.cards.p.PitilessVizier.class)); + cards.add(new SetCardInfo("Plague Belcher", 104, Rarity.RARE, mage.cards.p.PlagueBelcher.class)); + cards.add(new SetCardInfo("Pyramid of the Pantheon", 235, Rarity.RARE, mage.cards.p.PyramidOfThePantheon.class)); + cards.add(new SetCardInfo("Plains", 250, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Plains", 255, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Plains", 256, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Plains", 257, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Pouncing Cheetah", 179, Rarity.COMMON, mage.cards.p.PouncingCheetah.class)); + cards.add(new SetCardInfo("Prepare // Fight", 220, Rarity.RARE, mage.cards.p.PrepareFight.class)); + cards.add(new SetCardInfo("Protection of the Hekma", 23, Rarity.UNCOMMON, mage.cards.p.ProtectionOfTheHekma.class)); + cards.add(new SetCardInfo("Prowling Serpopard", 180, Rarity.RARE, mage.cards.p.ProwlingSerpopard.class)); + cards.add(new SetCardInfo("Pull from Tomorrow", 65, Rarity.RARE, mage.cards.p.PullFromTomorrow.class)); + cards.add(new SetCardInfo("Pursue Glory", 147, Rarity.COMMON, mage.cards.p.PursueGlory.class)); + cards.add(new SetCardInfo("Quarry Hauler", 181, Rarity.COMMON, mage.cards.q.QuarryHauler.class)); + cards.add(new SetCardInfo("Rags // Riches", 222, Rarity.RARE, mage.cards.r.RagsRiches.class)); + cards.add(new SetCardInfo("Reduce // Rubble", 216, Rarity.UNCOMMON, mage.cards.r.ReduceRubble.class)); + cards.add(new SetCardInfo("Regal Caracal", 24, Rarity.RARE, mage.cards.r.RegalCaracal.class)); + cards.add(new SetCardInfo("Renewed Faith", 25, Rarity.UNCOMMON, mage.cards.r.RenewedFaith.class)); + cards.add(new SetCardInfo("Rhet-Crop Spearmaster", 26, Rarity.COMMON, mage.cards.r.RhetCropSpearmaster.class)); + cards.add(new SetCardInfo("Rhonas's Monument", 236, Rarity.UNCOMMON, mage.cards.r.RhonassMonument.class)); + cards.add(new SetCardInfo("Rhonas the Indomitable", 182, Rarity.MYTHIC, mage.cards.r.RhonasTheIndomitable.class)); + cards.add(new SetCardInfo("River Serpent", 66, Rarity.COMMON, mage.cards.r.RiverSerpent.class)); + cards.add(new SetCardInfo("Ruthless Sniper", 105, Rarity.UNCOMMON, mage.cards.r.RuthlessSniper.class)); + cards.add(new SetCardInfo("Sacred Cat", 27, Rarity.COMMON, mage.cards.s.SacredCat.class)); + cards.add(new SetCardInfo("Sacred Excavation", 67, Rarity.UNCOMMON, mage.cards.s.SacredExcavation.class)); + cards.add(new SetCardInfo("Samut, Voice of Dissent", 205, Rarity.MYTHIC, mage.cards.s.SamutVoiceOfDissent.class)); + cards.add(new SetCardInfo("Sandwurm Convergence", 183, Rarity.RARE, mage.cards.s.SandwurmConvergence.class)); + cards.add(new SetCardInfo("Scaled Behemoth", 184, Rarity.UNCOMMON, mage.cards.s.ScaledBehemoth.class)); + cards.add(new SetCardInfo("Scarab Feast", 106, Rarity.COMMON, mage.cards.s.ScarabFeast.class)); + cards.add(new SetCardInfo("Scattered Groves", 247, Rarity.RARE, mage.cards.s.ScatteredGroves.class)); + cards.add(new SetCardInfo("Scribe of the Mindful", 68, Rarity.COMMON, mage.cards.s.ScribeOfTheMindful.class)); + cards.add(new SetCardInfo("Seeker of Insight", 69, Rarity.COMMON, mage.cards.s.SeekerOfInsight.class)); + cards.add(new SetCardInfo("Seraph of the Suns", 28, Rarity.UNCOMMON, mage.cards.s.SeraphOfTheSuns.class)); + cards.add(new SetCardInfo("Shadow of the Grave", 107, Rarity.RARE, mage.cards.s.ShadowOfTheGrave.class)); + cards.add(new SetCardInfo("Shadowstorm Vizier", 206, Rarity.UNCOMMON, mage.cards.s.ShadowstormVizier.class)); + cards.add(new SetCardInfo("Shed Weakness", 185, Rarity.COMMON, mage.cards.s.ShedWeakness.class)); + cards.add(new SetCardInfo("Shefet Monitor", 186, Rarity.UNCOMMON, mage.cards.s.ShefetMonitor.class)); + cards.add(new SetCardInfo("Sheltered Thicket", 248, Rarity.RARE, mage.cards.s.ShelteredThicket.class)); + cards.add(new SetCardInfo("Shimmerscale Drake", 70, Rarity.COMMON, mage.cards.s.ShimmerscaleDrake.class)); + cards.add(new SetCardInfo("Sixth Sense", 187, Rarity.UNCOMMON, mage.cards.s.SixthSense.class)); + cards.add(new SetCardInfo("Slither Blade", 71, Rarity.COMMON, mage.cards.s.SlitherBlade.class)); + cards.add(new SetCardInfo("Soul-Scar Mage", 148, Rarity.RARE, mage.cards.s.SoulScarMage.class)); + cards.add(new SetCardInfo("Soulstinger", 108, Rarity.COMMON, mage.cards.s.Soulstinger.class)); + cards.add(new SetCardInfo("Sparring Mummy", 29, Rarity.COMMON, mage.cards.s.SparringMummy.class)); + cards.add(new SetCardInfo("Spidery Grasp", 188, Rarity.COMMON, mage.cards.s.SpideryGrasp.class)); + cards.add(new SetCardInfo("Splendid Agony", 109, Rarity.COMMON, mage.cards.s.SplendidAgony.class)); + cards.add(new SetCardInfo("Spring // Mind", 219, Rarity.UNCOMMON, mage.cards.s.SpringMind.class)); + cards.add(new SetCardInfo("Start // Finish", 215, Rarity.UNCOMMON, mage.cards.s.StartFinish.class)); + cards.add(new SetCardInfo("Stinging Shot", 189, Rarity.COMMON, mage.cards.s.StingingShot.class)); + cards.add(new SetCardInfo("Stir the Sands", 110, Rarity.UNCOMMON, mage.cards.s.StirTheSands.class)); + cards.add(new SetCardInfo("Stone Quarry", 274, Rarity.COMMON, mage.cards.s.StoneQuarry.class)); + cards.add(new SetCardInfo("Sunscorched Desert", 249, Rarity.COMMON, mage.cards.s.SunscorchedDesert.class)); + cards.add(new SetCardInfo("Supernatural Stamina", 111, Rarity.COMMON, mage.cards.s.SupernaturalStamina.class)); + cards.add(new SetCardInfo("Supply Caravan", 30, Rarity.COMMON, mage.cards.s.SupplyCaravan.class)); + cards.add(new SetCardInfo("Swamp", 252, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Swamp", 261, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Swamp", 262, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Swamp", 263, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Sweltering Suns", 149, Rarity.RARE, mage.cards.s.SwelteringSuns.class)); + cards.add(new SetCardInfo("Synchronized Strike", 190, Rarity.UNCOMMON, mage.cards.s.SynchronizedStrike.class)); + cards.add(new SetCardInfo("Tah-Crop Elite", 31, Rarity.COMMON, mage.cards.t.TahCropElite.class)); + cards.add(new SetCardInfo("Tah-Crop Skirmisher", 72, Rarity.COMMON, mage.cards.t.TahCropSkirmisher.class)); + cards.add(new SetCardInfo("Tattered Mummy", 278, Rarity.COMMON, mage.cards.t.TatteredMummy.class)); + cards.add(new SetCardInfo("Temmet, Vizier of Naktamun", 207, Rarity.RARE, mage.cards.t.TemmetVizierOfNaktamun.class)); + cards.add(new SetCardInfo("Those Who Serve", 32, Rarity.COMMON, mage.cards.t.ThoseWhoServe.class)); + cards.add(new SetCardInfo("Thresher Lizard", 150, Rarity.COMMON, mage.cards.t.ThresherLizard.class)); + cards.add(new SetCardInfo("Throne of the God-Pharaoh", 237, Rarity.RARE, mage.cards.t.ThroneOfTheGodPharaoh.class)); + cards.add(new SetCardInfo("Time to Reflect", 33, Rarity.UNCOMMON, mage.cards.t.TimeToReflect.class)); + cards.add(new SetCardInfo("Tormenting Voice", 151, Rarity.COMMON, mage.cards.t.TormentingVoice.class)); + cards.add(new SetCardInfo("Trespasser's Curse", 112, Rarity.COMMON, mage.cards.t.TrespassersCurse.class)); + cards.add(new SetCardInfo("Trial of Ambition", 113, Rarity.UNCOMMON, mage.cards.t.TrialOfAmbition.class)); + cards.add(new SetCardInfo("Trial of Knowledge", 73, Rarity.UNCOMMON, mage.cards.t.TrialOfKnowledge.class)); + cards.add(new SetCardInfo("Trial of Solidarity", 34, Rarity.UNCOMMON, mage.cards.t.TrialOfSolidarity.class)); + cards.add(new SetCardInfo("Trial of Strength", 191, Rarity.UNCOMMON, mage.cards.t.TrialOfStrength.class)); + cards.add(new SetCardInfo("Trial of Zeal", 152, Rarity.UNCOMMON, mage.cards.t.TrialOfZeal.class)); + cards.add(new SetCardInfo("Trueheart Duelist", 35, Rarity.UNCOMMON, mage.cards.t.TrueheartDuelist.class)); + cards.add(new SetCardInfo("Trueheart Twins", 153, Rarity.UNCOMMON, mage.cards.t.TrueheartTwins.class)); + cards.add(new SetCardInfo("Unburden", 114, Rarity.COMMON, mage.cards.u.Unburden.class)); + cards.add(new SetCardInfo("Unwavering Initiate", 36, Rarity.COMMON, mage.cards.u.UnwaveringInitiate.class)); + cards.add(new SetCardInfo("Violent Impact", 154, Rarity.COMMON, mage.cards.v.ViolentImpact.class)); + cards.add(new SetCardInfo("Vizier of Deferment", 37, Rarity.UNCOMMON, mage.cards.v.VizierOfDeferment.class)); + cards.add(new SetCardInfo("Vizier of Many Faces", 74, Rarity.RARE, mage.cards.v.VizierOfManyFaces.class)); + cards.add(new SetCardInfo("Vizier of Remedies", 38, Rarity.UNCOMMON, mage.cards.v.VizierOfRemedies.class)); + cards.add(new SetCardInfo("Vizier of Tumbling Sands", 75, Rarity.UNCOMMON, mage.cards.v.VizierOfTumblingSands.class)); + cards.add(new SetCardInfo("Vizier of the Menagerie", 192, Rarity.MYTHIC, mage.cards.v.VizierOfTheMenagerie.class)); + cards.add(new SetCardInfo("Wander in Death", 115, Rarity.COMMON, mage.cards.w.WanderInDeath.class)); + cards.add(new SetCardInfo("Warfire Javelineer", 155, Rarity.UNCOMMON, mage.cards.w.WarfireJavelineer.class)); + cards.add(new SetCardInfo("Wasteland Scorpion", 116, Rarity.COMMON, mage.cards.w.WastelandScorpion.class)); + cards.add(new SetCardInfo("Watchers of the Dead", 238, Rarity.UNCOMMON, mage.cards.w.WatchersOfTheDead.class)); + cards.add(new SetCardInfo("Watchful Naga", 193, Rarity.UNCOMMON, mage.cards.w.WatchfulNaga.class)); + cards.add(new SetCardInfo("Wayward Servant", 208, Rarity.UNCOMMON, mage.cards.w.WaywardServant.class)); + cards.add(new SetCardInfo("Weaver of Currents", 209, Rarity.UNCOMMON, mage.cards.w.WeaverOfCurrents.class)); + cards.add(new SetCardInfo("Winds of Rebuke", 76, Rarity.COMMON, mage.cards.w.WindsOfRebuke.class)); + cards.add(new SetCardInfo("Winged Shepherd", 39, Rarity.COMMON, mage.cards.w.WingedShepherd.class)); + cards.add(new SetCardInfo("Zenith Seeker", 77, Rarity.UNCOMMON, mage.cards.z.ZenithSeeker.class)); + } + + @Override + public List getSpecialLand() { + if (savedSpecialLand.isEmpty()) { + CardCriteria criteria = new CardCriteria(); + criteria.setCodes("MPS-AKH"); + criteria.minCardNumber(1); + criteria.maxCardNumber(30); + savedSpecialLand.addAll(CardRepository.instance.findCards(criteria)); + } + + return new ArrayList<>(savedSpecialLand); + } +} diff --git a/Mage.Sets/src/mage/sets/Antiquities.java b/Mage.Sets/src/mage/sets/Antiquities.java index c3f94b8ce87..91a19a76fea 100644 --- a/Mage.Sets/src/mage/sets/Antiquities.java +++ b/Mage.Sets/src/mage/sets/Antiquities.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Apocalypse.java b/Mage.Sets/src/mage/sets/Apocalypse.java index fcc294d49ad..8dd861e76e9 100644 --- a/Mage.Sets/src/mage/sets/Apocalypse.java +++ b/Mage.Sets/src/mage/sets/Apocalypse.java @@ -1,8 +1,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; public class Apocalypse extends ExpansionSet { private static final Apocalypse instance = new Apocalypse(); @@ -72,6 +72,7 @@ public class Apocalypse extends ExpansionSet { cards.add(new SetCardInfo("Grave Defiler", 40, Rarity.UNCOMMON, mage.cards.g.GraveDefiler.class)); cards.add(new SetCardInfo("Haunted Angel", 12, Rarity.UNCOMMON, mage.cards.h.HauntedAngel.class)); cards.add(new SetCardInfo("Helionaut", 13, Rarity.COMMON, mage.cards.h.Helionaut.class)); + cards.add(new SetCardInfo("Ice Cave", 24, Rarity.RARE, mage.cards.i.IceCave.class)); cards.add(new SetCardInfo("Illuminate", 63, Rarity.UNCOMMON, mage.cards.i.Illuminate.class)); cards.add(new SetCardInfo("Illusion // Reality", 129, Rarity.UNCOMMON, mage.cards.i.IllusionReality.class)); cards.add(new SetCardInfo("Index", 25, Rarity.COMMON, mage.cards.i.Index.class)); diff --git a/Mage.Sets/src/mage/sets/ArabianNights.java b/Mage.Sets/src/mage/sets/ArabianNights.java index a1bb8fc7029..88a578a7519 100644 --- a/Mage.Sets/src/mage/sets/ArabianNights.java +++ b/Mage.Sets/src/mage/sets/ArabianNights.java @@ -27,6 +27,7 @@ */ package mage.sets; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.a.ArmyOfAllah; import mage.cards.f.FishliverOil; @@ -35,9 +36,8 @@ import mage.cards.o.Oubliette; import mage.cards.p.Piety; import mage.cards.r.RukhEgg; import mage.cards.s.StoneThrowingDevils; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Archenemy.java b/Mage.Sets/src/mage/sets/Archenemy.java index 5c2ad23170f..a38e906637c 100644 --- a/Mage.Sets/src/mage/sets/Archenemy.java +++ b/Mage.Sets/src/mage/sets/Archenemy.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/ArenaLeague.java b/Mage.Sets/src/mage/sets/ArenaLeague.java index 2318bca3d88..a3da2323cfe 100644 --- a/Mage.Sets/src/mage/sets/ArenaLeague.java +++ b/Mage.Sets/src/mage/sets/ArenaLeague.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/AsiaPacificLandProgram.java b/Mage.Sets/src/mage/sets/AsiaPacificLandProgram.java index f8b8ce308fa..d327c5e295b 100644 --- a/Mage.Sets/src/mage/sets/AsiaPacificLandProgram.java +++ b/Mage.Sets/src/mage/sets/AsiaPacificLandProgram.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/AvacynRestored.java b/Mage.Sets/src/mage/sets/AvacynRestored.java index 6f3862c984a..7a29c9dd579 100644 --- a/Mage.Sets/src/mage/sets/AvacynRestored.java +++ b/Mage.Sets/src/mage/sets/AvacynRestored.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.constants.SetType; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/BattleForZendikar.java b/Mage.Sets/src/mage/sets/BattleForZendikar.java index aa532e35ee0..41f48359b17 100644 --- a/Mage.Sets/src/mage/sets/BattleForZendikar.java +++ b/Mage.Sets/src/mage/sets/BattleForZendikar.java @@ -27,16 +27,17 @@ */ package mage.sets; -import java.util.ArrayList; -import java.util.List; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; +import mage.cards.FrameStyle; import mage.cards.repository.CardCriteria; import mage.cards.repository.CardInfo; import mage.cards.repository.CardRepository; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; -import mage.cards.FrameStyle; +import mage.constants.SetType; + +import java.util.ArrayList; +import java.util.List; /** * diff --git a/Mage.Sets/src/mage/sets/BetrayersOfKamigawa.java b/Mage.Sets/src/mage/sets/BetrayersOfKamigawa.java index adbc90bbb62..d950e678eff 100644 --- a/Mage.Sets/src/mage/sets/BetrayersOfKamigawa.java +++ b/Mage.Sets/src/mage/sets/BetrayersOfKamigawa.java @@ -27,9 +27,9 @@ */ package mage.sets; -import mage.constants.SetType; import mage.cards.ExpansionSet; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/BlessedVsCursed.java b/Mage.Sets/src/mage/sets/BlessedVsCursed.java index 888b9b7bb9b..282e35abd30 100644 --- a/Mage.Sets/src/mage/sets/BlessedVsCursed.java +++ b/Mage.Sets/src/mage/sets/BlessedVsCursed.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/BornOfTheGods.java b/Mage.Sets/src/mage/sets/BornOfTheGods.java index 6456a7d9076..9c72e443b8d 100644 --- a/Mage.Sets/src/mage/sets/BornOfTheGods.java +++ b/Mage.Sets/src/mage/sets/BornOfTheGods.java @@ -29,8 +29,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/ChampionsOfKamigawa.java b/Mage.Sets/src/mage/sets/ChampionsOfKamigawa.java index afc0cc8aa59..06a82cdaf9d 100644 --- a/Mage.Sets/src/mage/sets/ChampionsOfKamigawa.java +++ b/Mage.Sets/src/mage/sets/ChampionsOfKamigawa.java @@ -1,10 +1,10 @@ package mage.sets; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.b.BrothersYamazaki; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; public class ChampionsOfKamigawa extends ExpansionSet { private static final ChampionsOfKamigawa instance = new ChampionsOfKamigawa(); diff --git a/Mage.Sets/src/mage/sets/Champs.java b/Mage.Sets/src/mage/sets/Champs.java index 4c6b34821a0..190ada247da 100644 --- a/Mage.Sets/src/mage/sets/Champs.java +++ b/Mage.Sets/src/mage/sets/Champs.java @@ -28,8 +28,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Chronicles.java b/Mage.Sets/src/mage/sets/Chronicles.java index 31822147e42..7c470a6b519 100644 --- a/Mage.Sets/src/mage/sets/Chronicles.java +++ b/Mage.Sets/src/mage/sets/Chronicles.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/ClashPack.java b/Mage.Sets/src/mage/sets/ClashPack.java index 6e13659c534..f90951d9a8d 100644 --- a/Mage.Sets/src/mage/sets/ClashPack.java +++ b/Mage.Sets/src/mage/sets/ClashPack.java @@ -29,8 +29,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/ClassicSixthEdition.java b/Mage.Sets/src/mage/sets/ClassicSixthEdition.java index ec44f1d75c0..126381d200b 100644 --- a/Mage.Sets/src/mage/sets/ClassicSixthEdition.java +++ b/Mage.Sets/src/mage/sets/ClassicSixthEdition.java @@ -27,15 +27,15 @@ */ package mage.sets; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.d.DrySpell; import mage.cards.f.FeastOfTheUnicorn; import mage.cards.m.MesaFalcon; import mage.cards.s.SoldeviSage; import mage.cards.v.VodalianSoldiers; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Coldsnap.java b/Mage.Sets/src/mage/sets/Coldsnap.java index 97217e0a497..a778326a04b 100644 --- a/Mage.Sets/src/mage/sets/Coldsnap.java +++ b/Mage.Sets/src/mage/sets/Coldsnap.java @@ -28,8 +28,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Commander.java b/Mage.Sets/src/mage/sets/Commander.java index 98c6da9b7a5..4249e15a877 100644 --- a/Mage.Sets/src/mage/sets/Commander.java +++ b/Mage.Sets/src/mage/sets/Commander.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.constants.SetType; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Commander2013.java b/Mage.Sets/src/mage/sets/Commander2013.java index 151d8ac74b5..2dc69fe51d6 100644 --- a/Mage.Sets/src/mage/sets/Commander2013.java +++ b/Mage.Sets/src/mage/sets/Commander2013.java @@ -28,11 +28,11 @@ package mage.sets; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.n.NightSoil; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Commander2014.java b/Mage.Sets/src/mage/sets/Commander2014.java index b6e073691c8..3e617892a9f 100644 --- a/Mage.Sets/src/mage/sets/Commander2014.java +++ b/Mage.Sets/src/mage/sets/Commander2014.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Commander2015.java b/Mage.Sets/src/mage/sets/Commander2015.java index c24ab32f39f..8ecf206916f 100644 --- a/Mage.Sets/src/mage/sets/Commander2015.java +++ b/Mage.Sets/src/mage/sets/Commander2015.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/CommandersArsenal.java b/Mage.Sets/src/mage/sets/CommandersArsenal.java index 7f9ece8cea7..91cde737601 100644 --- a/Mage.Sets/src/mage/sets/CommandersArsenal.java +++ b/Mage.Sets/src/mage/sets/CommandersArsenal.java @@ -28,8 +28,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Conflux.java b/Mage.Sets/src/mage/sets/Conflux.java index b2ced401946..4e78923fab7 100644 --- a/Mage.Sets/src/mage/sets/Conflux.java +++ b/Mage.Sets/src/mage/sets/Conflux.java @@ -28,9 +28,9 @@ package mage.sets; -import mage.constants.SetType; import mage.cards.ExpansionSet; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Conspiracy.java b/Mage.Sets/src/mage/sets/Conspiracy.java index 56fbffe3c68..64cbdc98643 100644 --- a/Mage.Sets/src/mage/sets/Conspiracy.java +++ b/Mage.Sets/src/mage/sets/Conspiracy.java @@ -29,8 +29,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/ConspiracyTakeTheCrown.java b/Mage.Sets/src/mage/sets/ConspiracyTakeTheCrown.java index 30fa1fdbf70..9f0f6800d93 100644 --- a/Mage.Sets/src/mage/sets/ConspiracyTakeTheCrown.java +++ b/Mage.Sets/src/mage/sets/ConspiracyTakeTheCrown.java @@ -29,8 +29,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/DarkAscension.java b/Mage.Sets/src/mage/sets/DarkAscension.java index 9ff75e90855..919dab51ce3 100644 --- a/Mage.Sets/src/mage/sets/DarkAscension.java +++ b/Mage.Sets/src/mage/sets/DarkAscension.java @@ -27,9 +27,9 @@ */ package mage.sets; -import mage.constants.SetType; import mage.cards.ExpansionSet; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Darksteel.java b/Mage.Sets/src/mage/sets/Darksteel.java index e926542e3be..d4a474951f2 100644 --- a/Mage.Sets/src/mage/sets/Darksteel.java +++ b/Mage.Sets/src/mage/sets/Darksteel.java @@ -1,9 +1,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; - import mage.constants.Rarity; +import mage.constants.SetType; public class Darksteel extends ExpansionSet { @@ -59,6 +58,7 @@ public class Darksteel extends ExpansionSet { cards.add(new SetCardInfo("Darksteel Reactor", 114, Rarity.RARE, mage.cards.d.DarksteelReactor.class)); cards.add(new SetCardInfo("Death Cloud", 40, Rarity.RARE, mage.cards.d.DeathCloud.class)); cards.add(new SetCardInfo("Demon's Horn", 116, Rarity.UNCOMMON, mage.cards.d.DemonsHorn.class)); + cards.add(new SetCardInfo("Dismantle", 57, Rarity.UNCOMMON, mage.cards.d.Dismantle.class)); cards.add(new SetCardInfo("Dragon's Claw", 117, Rarity.UNCOMMON, mage.cards.d.DragonsClaw.class)); cards.add(new SetCardInfo("Drill-Skimmer", 118, Rarity.COMMON, mage.cards.d.DrillSkimmer.class)); cards.add(new SetCardInfo("Drooling Ogre", 58, Rarity.COMMON, mage.cards.d.DroolingOgre.class)); @@ -96,7 +96,7 @@ public class Darksteel extends ExpansionSet { cards.add(new SetCardInfo("Leonin Shikari", 6, Rarity.RARE, mage.cards.l.LeoninShikari.class)); cards.add(new SetCardInfo("Lich's Tomb", 128, Rarity.RARE, mage.cards.l.LichsTomb.class)); cards.add(new SetCardInfo("Loxodon Mystic", 7, Rarity.COMMON, mage.cards.l.LoxodonMystic.class)); - cards.add(new SetCardInfo("Machinate", 24, Rarity.COMMON, mage.cards.m.Machinate.class)); + cards.add(new SetCardInfo("Machinate", 24, Rarity.COMMON, mage.cards.m.Machinate.class)); cards.add(new SetCardInfo("Magnetic Flux", 25, Rarity.COMMON, mage.cards.m.MagneticFlux.class)); cards.add(new SetCardInfo("Memnarch", 129, Rarity.RARE, mage.cards.m.Memnarch.class)); cards.add(new SetCardInfo("Mephitic Ooze", 47, Rarity.RARE, mage.cards.m.MephiticOoze.class)); diff --git a/Mage.Sets/src/mage/sets/Dissension.java b/Mage.Sets/src/mage/sets/Dissension.java index 3362ed00ac2..f1d9450fbf1 100644 --- a/Mage.Sets/src/mage/sets/Dissension.java +++ b/Mage.Sets/src/mage/sets/Dissension.java @@ -28,9 +28,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; - import mage.constants.Rarity; +import mage.constants.SetType; /** * Created by IntelliJ IDEA. User: Loki Date: 20.12.10 Time: 21:40 @@ -74,6 +73,7 @@ public class Dissension extends ExpansionSet { cards.add(new SetCardInfo("Bound // Determined", 149, Rarity.RARE, mage.cards.b.BoundDetermined.class)); cards.add(new SetCardInfo("Brain Pry", 39, Rarity.UNCOMMON, mage.cards.b.BrainPry.class)); cards.add(new SetCardInfo("Breeding Pool", 172, Rarity.RARE, mage.cards.b.BreedingPool.class)); + cards.add(new SetCardInfo("Bronze Bombshell", 160, Rarity.RARE, mage.cards.b.BronzeBombshell.class)); cards.add(new SetCardInfo("Cackling Flames", 59, Rarity.COMMON, mage.cards.c.CacklingFlames.class)); cards.add(new SetCardInfo("Carom", 6, Rarity.COMMON, mage.cards.c.Carom.class)); cards.add(new SetCardInfo("Celestial Ancient", 7, Rarity.RARE, mage.cards.c.CelestialAncient.class)); diff --git a/Mage.Sets/src/mage/sets/DivineVsDemonic.java b/Mage.Sets/src/mage/sets/DivineVsDemonic.java index c18dfb7d741..4d099484425 100644 --- a/Mage.Sets/src/mage/sets/DivineVsDemonic.java +++ b/Mage.Sets/src/mage/sets/DivineVsDemonic.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/DragonsMaze.java b/Mage.Sets/src/mage/sets/DragonsMaze.java index a022fee617d..63bb3521665 100644 --- a/Mage.Sets/src/mage/sets/DragonsMaze.java +++ b/Mage.Sets/src/mage/sets/DragonsMaze.java @@ -28,17 +28,17 @@ package mage.sets; -import java.util.ArrayList; -import java.util.List; - -import mage.constants.CardType; -import mage.constants.Rarity; import mage.cards.ExpansionSet; import mage.cards.repository.CardCriteria; import mage.cards.repository.CardInfo; import mage.cards.repository.CardRepository; +import mage.constants.CardType; +import mage.constants.Rarity; import mage.constants.SetType; +import java.util.ArrayList; +import java.util.List; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/sets/DragonsOfTarkir.java b/Mage.Sets/src/mage/sets/DragonsOfTarkir.java index beee02ce178..d7a34ef976f 100644 --- a/Mage.Sets/src/mage/sets/DragonsOfTarkir.java +++ b/Mage.Sets/src/mage/sets/DragonsOfTarkir.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/DuelsOfThePlaneswalkers.java b/Mage.Sets/src/mage/sets/DuelsOfThePlaneswalkers.java index e8d85320fea..90e6b7ee4aa 100644 --- a/Mage.Sets/src/mage/sets/DuelsOfThePlaneswalkers.java +++ b/Mage.Sets/src/mage/sets/DuelsOfThePlaneswalkers.java @@ -29,8 +29,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/ElspethVsKiora.java b/Mage.Sets/src/mage/sets/ElspethVsKiora.java index e88da2c2f33..27dd394e363 100644 --- a/Mage.Sets/src/mage/sets/ElspethVsKiora.java +++ b/Mage.Sets/src/mage/sets/ElspethVsKiora.java @@ -27,11 +27,11 @@ */ package mage.sets; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.i.IcatianJavelineers; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/ElspethVsTezzeret.java b/Mage.Sets/src/mage/sets/ElspethVsTezzeret.java index 1720d1d64ab..289bc176f2d 100644 --- a/Mage.Sets/src/mage/sets/ElspethVsTezzeret.java +++ b/Mage.Sets/src/mage/sets/ElspethVsTezzeret.java @@ -1,10 +1,9 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; - -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; public class ElspethVsTezzeret extends ExpansionSet { private static final ElspethVsTezzeret instance = new ElspethVsTezzeret(); diff --git a/Mage.Sets/src/mage/sets/ElvesVsGoblins.java b/Mage.Sets/src/mage/sets/ElvesVsGoblins.java index b026d3d66dc..ebc7834bb32 100644 --- a/Mage.Sets/src/mage/sets/ElvesVsGoblins.java +++ b/Mage.Sets/src/mage/sets/ElvesVsGoblins.java @@ -6,10 +6,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/EternalMasters.java b/Mage.Sets/src/mage/sets/EternalMasters.java index 944b3d7de12..34725c51ce3 100644 --- a/Mage.Sets/src/mage/sets/EternalMasters.java +++ b/Mage.Sets/src/mage/sets/EternalMasters.java @@ -30,8 +30,8 @@ package mage.sets; import mage.cards.ExpansionSet; import mage.cards.h.HymnToTourach; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Eventide.java b/Mage.Sets/src/mage/sets/Eventide.java index ec865bae5b1..825c59b56fe 100644 --- a/Mage.Sets/src/mage/sets/Eventide.java +++ b/Mage.Sets/src/mage/sets/Eventide.java @@ -1,9 +1,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; - import mage.constants.Rarity; +import mage.constants.SetType; public class Eventide extends ExpansionSet { private static final Eventide instance = new Eventide(); diff --git a/Mage.Sets/src/mage/sets/FallenEmpires.java b/Mage.Sets/src/mage/sets/FallenEmpires.java index 987ac79ab1f..dfd8deabd21 100644 --- a/Mage.Sets/src/mage/sets/FallenEmpires.java +++ b/Mage.Sets/src/mage/sets/FallenEmpires.java @@ -27,6 +27,7 @@ */ package mage.sets; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.a.ArmorThrull; import mage.cards.b.BasalThrull; @@ -58,9 +59,8 @@ import mage.cards.o.OrderOfTheEbonHand; import mage.cards.t.ThornThallid; import mage.cards.v.VodalianMage; import mage.cards.v.VodalianSoldiers; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/FateReforged.java b/Mage.Sets/src/mage/sets/FateReforged.java index 58c65acfe48..ba8da915c29 100644 --- a/Mage.Sets/src/mage/sets/FateReforged.java +++ b/Mage.Sets/src/mage/sets/FateReforged.java @@ -27,8 +27,7 @@ */ package mage.sets; -import java.util.ArrayList; -import java.util.List; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.repository.CardCriteria; import mage.cards.repository.CardInfo; @@ -36,7 +35,9 @@ import mage.cards.repository.CardRepository; import mage.constants.CardType; import mage.constants.Rarity; import mage.constants.SetType; -import mage.cards.CardGraphicInfo; + +import java.util.ArrayList; +import java.util.List; /** * diff --git a/Mage.Sets/src/mage/sets/FifthDawn.java b/Mage.Sets/src/mage/sets/FifthDawn.java index 94ab5799520..b1cd70b3244 100644 --- a/Mage.Sets/src/mage/sets/FifthDawn.java +++ b/Mage.Sets/src/mage/sets/FifthDawn.java @@ -27,9 +27,9 @@ */ package mage.sets; -import mage.constants.SetType; import mage.cards.ExpansionSet; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/FifthEdition.java b/Mage.Sets/src/mage/sets/FifthEdition.java index 9cb9aa2bc22..50bc493f8c3 100644 --- a/Mage.Sets/src/mage/sets/FifthEdition.java +++ b/Mage.Sets/src/mage/sets/FifthEdition.java @@ -1,5 +1,6 @@ package mage.sets; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.b.BrassclawOrcs; import mage.cards.d.DwarvenSoldier; @@ -13,9 +14,8 @@ import mage.cards.n.Necrite; import mage.cards.r.ReefPirates; import mage.cards.t.Torture; import mage.cards.v.VodalianSoldiers; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; public class FifthEdition extends ExpansionSet { diff --git a/Mage.Sets/src/mage/sets/FourthEdition.java b/Mage.Sets/src/mage/sets/FourthEdition.java index ecfa16be06c..3c7e79e1f70 100644 --- a/Mage.Sets/src/mage/sets/FourthEdition.java +++ b/Mage.Sets/src/mage/sets/FourthEdition.java @@ -27,12 +27,12 @@ */ package mage.sets; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.n.NafsAsp; import mage.cards.p.Piety; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/FutureSight.java b/Mage.Sets/src/mage/sets/FutureSight.java index 1e3b4139169..732eea8de60 100644 --- a/Mage.Sets/src/mage/sets/FutureSight.java +++ b/Mage.Sets/src/mage/sets/FutureSight.java @@ -27,9 +27,9 @@ */ package mage.sets; -import mage.constants.SetType; import mage.cards.ExpansionSet; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/GameDay.java b/Mage.Sets/src/mage/sets/GameDay.java index 3c73abfb6d1..dc77cc23e5f 100644 --- a/Mage.Sets/src/mage/sets/GameDay.java +++ b/Mage.Sets/src/mage/sets/GameDay.java @@ -28,9 +28,9 @@ package mage.sets; -import mage.constants.SetType; import mage.cards.ExpansionSet; import mage.constants.Rarity; +import mage.constants.SetType; /** * @@ -61,6 +61,7 @@ public class GameDay extends ExpansionSet { cards.add(new SetCardInfo("Elite Inquisitor", 13, Rarity.RARE, mage.cards.e.EliteInquisitor.class)); cards.add(new SetCardInfo("Essence Extraction", 55, Rarity.UNCOMMON, mage.cards.e.EssenceExtraction.class)); cards.add(new SetCardInfo("Firemane Avenger", 24, Rarity.RARE, mage.cards.f.FiremaneAvenger.class)); + cards.add(new SetCardInfo("Glorybringer", 59, Rarity.RARE, mage.cards.g.Glorybringer.class)); cards.add(new SetCardInfo("Goblin Diplomats", 29, Rarity.RARE, mage.cards.g.GoblinDiplomats.class)); cards.add(new SetCardInfo("Hall of Triumph", 36, Rarity.RARE, mage.cards.h.HallOfTriumph.class)); cards.add(new SetCardInfo("Heir of the Wilds", 37, Rarity.UNCOMMON, mage.cards.h.HeirOfTheWilds.class)); diff --git a/Mage.Sets/src/mage/sets/GarrukVsLiliana.java b/Mage.Sets/src/mage/sets/GarrukVsLiliana.java index 4d70715e31c..c36005cf86d 100644 --- a/Mage.Sets/src/mage/sets/GarrukVsLiliana.java +++ b/Mage.Sets/src/mage/sets/GarrukVsLiliana.java @@ -6,10 +6,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Gatecrash.java b/Mage.Sets/src/mage/sets/Gatecrash.java index 52696e47b53..54a06ec5678 100644 --- a/Mage.Sets/src/mage/sets/Gatecrash.java +++ b/Mage.Sets/src/mage/sets/Gatecrash.java @@ -27,9 +27,9 @@ */ package mage.sets; -import mage.constants.SetType; import mage.cards.ExpansionSet; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Guildpact.java b/Mage.Sets/src/mage/sets/Guildpact.java index a2c6b59b631..9e4901744b0 100644 --- a/Mage.Sets/src/mage/sets/Guildpact.java +++ b/Mage.Sets/src/mage/sets/Guildpact.java @@ -29,9 +29,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; - import mage.constants.Rarity; +import mage.constants.SetType; /** * Created by IntelliJ IDEA. User: Loki Date: 20.12.10 Time: 21:01 diff --git a/Mage.Sets/src/mage/sets/Guru.java b/Mage.Sets/src/mage/sets/Guru.java index 16c6b0979f6..4e61a7e1c8b 100644 --- a/Mage.Sets/src/mage/sets/Guru.java +++ b/Mage.Sets/src/mage/sets/Guru.java @@ -1,9 +1,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; - import mage.constants.Rarity; +import mage.constants.SetType; public class Guru extends ExpansionSet { private static final Guru instance = new Guru(); diff --git a/Mage.Sets/src/mage/sets/HeroesVsMonsters.java b/Mage.Sets/src/mage/sets/HeroesVsMonsters.java index 9feee99f996..7d9c655bc47 100644 --- a/Mage.Sets/src/mage/sets/HeroesVsMonsters.java +++ b/Mage.Sets/src/mage/sets/HeroesVsMonsters.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Homelands.java b/Mage.Sets/src/mage/sets/Homelands.java index 3580843344b..82e5ec6bd64 100644 --- a/Mage.Sets/src/mage/sets/Homelands.java +++ b/Mage.Sets/src/mage/sets/Homelands.java @@ -27,6 +27,7 @@ */ package mage.sets; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.a.AbbeyMatron; import mage.cards.a.AlibansTower; @@ -40,9 +41,8 @@ import mage.cards.r.ReefPirates; import mage.cards.s.SengirBats; import mage.cards.t.Torture; import mage.cards.w.WillowFaerie; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/IceAge.java b/Mage.Sets/src/mage/sets/IceAge.java index 71ee7713be3..1605d5537f9 100644 --- a/Mage.Sets/src/mage/sets/IceAge.java +++ b/Mage.Sets/src/mage/sets/IceAge.java @@ -247,6 +247,7 @@ public class IceAge extends ExpansionSet { cards.add(new SetCardInfo("Soldevi Simulacrum", 314, Rarity.UNCOMMON, mage.cards.s.SoldeviSimulacrum.class)); cards.add(new SetCardInfo("Songs of the Damned", 48, Rarity.COMMON, mage.cards.s.SongsOfTheDamned.class)); cards.add(new SetCardInfo("Soul Barrier", 103, Rarity.UNCOMMON, mage.cards.s.SoulBarrier.class)); + cards.add(new SetCardInfo("Soul Burn", 361, Rarity.COMMON, mage.cards.s.SoulBurn.class)); cards.add(new SetCardInfo("Soul Kiss", 50, Rarity.COMMON, mage.cards.s.SoulKiss.class)); cards.add(new SetCardInfo("Spoils of Evil", 51, Rarity.RARE, mage.cards.s.SpoilsOfEvil.class)); cards.add(new SetCardInfo("Stampede", 153, Rarity.RARE, mage.cards.s.Stampede.class)); diff --git a/Mage.Sets/src/mage/sets/Innistrad.java b/Mage.Sets/src/mage/sets/Innistrad.java index 66ab52956da..941a17076a5 100644 --- a/Mage.Sets/src/mage/sets/Innistrad.java +++ b/Mage.Sets/src/mage/sets/Innistrad.java @@ -28,11 +28,10 @@ package mage.sets; -import mage.constants.SetType; -import mage.cards.ExpansionSet; - -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * @author BetaSteward_at_googlemail.com diff --git a/Mage.Sets/src/mage/sets/Invasion.java b/Mage.Sets/src/mage/sets/Invasion.java index e682d03e317..4099bbcccee 100644 --- a/Mage.Sets/src/mage/sets/Invasion.java +++ b/Mage.Sets/src/mage/sets/Invasion.java @@ -75,7 +75,6 @@ public class Invasion extends ExpansionSet { cards.add(new SetCardInfo("Aura Mutation", 232, Rarity.RARE, mage.cards.a.AuraMutation.class)); cards.add(new SetCardInfo("Aura Shards", 233, Rarity.UNCOMMON, mage.cards.a.AuraShards.class)); cards.add(new SetCardInfo("Backlash", 234, Rarity.UNCOMMON, mage.cards.b.Backlash.class)); - cards.add(new SetCardInfo("Barrin's Spite", 235, Rarity.RARE, mage.cards.b.BarrinsSpite.class)); cards.add(new SetCardInfo("Benalish Emissary", 5, Rarity.UNCOMMON, mage.cards.b.BenalishEmissary.class)); cards.add(new SetCardInfo("Benalish Heralds", 6, Rarity.UNCOMMON, mage.cards.b.BenalishHeralds.class)); cards.add(new SetCardInfo("Benalish Lancer", 7, Rarity.COMMON, mage.cards.b.BenalishLancer.class)); @@ -287,6 +286,7 @@ public class Invasion extends ExpansionSet { cards.add(new SetCardInfo("Slimy Kavu", 170, Rarity.COMMON, mage.cards.s.SlimyKavu.class)); cards.add(new SetCardInfo("Slinking Serpent", 274, Rarity.UNCOMMON, mage.cards.s.SlinkingSerpent.class)); cards.add(new SetCardInfo("Smoldering Tar", 275, Rarity.UNCOMMON, mage.cards.s.SmolderingTar.class)); + cards.add(new SetCardInfo("Soul Burn", 351, Rarity.COMMON, mage.cards.s.SoulBurn.class)); cards.add(new SetCardInfo("Sparring Golem", 312, Rarity.UNCOMMON, mage.cards.s.SparringGolem.class)); cards.add(new SetCardInfo("Spinal Embrace", 276, Rarity.RARE, mage.cards.s.SpinalEmbrace.class)); cards.add(new SetCardInfo("Spirit of Resistance", 38, Rarity.RARE, mage.cards.s.SpiritOfResistance.class)); diff --git a/Mage.Sets/src/mage/sets/IzzetVsGolgari.java b/Mage.Sets/src/mage/sets/IzzetVsGolgari.java index ced023966ea..5e70a916d36 100644 --- a/Mage.Sets/src/mage/sets/IzzetVsGolgari.java +++ b/Mage.Sets/src/mage/sets/IzzetVsGolgari.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/JaceVsChandra.java b/Mage.Sets/src/mage/sets/JaceVsChandra.java index bc0f1f1377e..53a029e63de 100644 --- a/Mage.Sets/src/mage/sets/JaceVsChandra.java +++ b/Mage.Sets/src/mage/sets/JaceVsChandra.java @@ -6,10 +6,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/JaceVsVraska.java b/Mage.Sets/src/mage/sets/JaceVsVraska.java index 5f0fa22e184..329eb9251fc 100644 --- a/Mage.Sets/src/mage/sets/JaceVsVraska.java +++ b/Mage.Sets/src/mage/sets/JaceVsVraska.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/JourneyIntoNyx.java b/Mage.Sets/src/mage/sets/JourneyIntoNyx.java index aa7a33202f5..d8c195adad2 100644 --- a/Mage.Sets/src/mage/sets/JourneyIntoNyx.java +++ b/Mage.Sets/src/mage/sets/JourneyIntoNyx.java @@ -29,8 +29,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Kaladesh.java b/Mage.Sets/src/mage/sets/Kaladesh.java index 2a146aeb3b1..e35054d987e 100644 --- a/Mage.Sets/src/mage/sets/Kaladesh.java +++ b/Mage.Sets/src/mage/sets/Kaladesh.java @@ -27,15 +27,16 @@ */ package mage.sets; -import java.util.ArrayList; -import java.util.List; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.repository.CardCriteria; import mage.cards.repository.CardInfo; import mage.cards.repository.CardRepository; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; + +import java.util.ArrayList; +import java.util.List; /** * diff --git a/Mage.Sets/src/mage/sets/KhansOfTarkir.java b/Mage.Sets/src/mage/sets/KhansOfTarkir.java index 8fd693de698..129344b824b 100644 --- a/Mage.Sets/src/mage/sets/KhansOfTarkir.java +++ b/Mage.Sets/src/mage/sets/KhansOfTarkir.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/KnightsVsDragons.java b/Mage.Sets/src/mage/sets/KnightsVsDragons.java index 64c9e2ecbc7..2a7ace74fa4 100644 --- a/Mage.Sets/src/mage/sets/KnightsVsDragons.java +++ b/Mage.Sets/src/mage/sets/KnightsVsDragons.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/LaunchParty.java b/Mage.Sets/src/mage/sets/LaunchParty.java index 0fb2d13d1a7..13123cebec0 100644 --- a/Mage.Sets/src/mage/sets/LaunchParty.java +++ b/Mage.Sets/src/mage/sets/LaunchParty.java @@ -1,92 +1,93 @@ -/* -* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without modification, are -* permitted provided that the following conditions are met: -* -* 1. Redistributions of source code must retain the above copyright notice, this list of -* conditions and the following disclaimer. -* -* 2. Redistributions in binary form must reproduce the above copyright notice, this list -* of conditions and the following disclaimer in the documentation and/or other materials -* provided with the distribution. -* -* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED -* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR -* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -* The views and conclusions contained in the software and documentation are those of the -* authors and should not be interpreted as representing official policies, either expressed -* or implied, of BetaSteward_at_googlemail.com. -*/ - -package mage.sets; - -import mage.constants.SetType; -import mage.cards.ExpansionSet; -import mage.constants.Rarity; - -/** - * - * @author fireshoes - */ -public class LaunchParty extends ExpansionSet { - - private static final LaunchParty instance = new LaunchParty(); - - public static LaunchParty getInstance() { - return instance; - } - - private LaunchParty() { - super("Launch Party", "MLP", ExpansionSet.buildDate(2011, 6, 17), SetType.PROMOTIONAL); - this.hasBoosters = false; - this.hasBasicLands = false; - cards.add(new SetCardInfo("Ajani Vengeant", 4, Rarity.MYTHIC, mage.cards.a.AjaniVengeant.class)); - cards.add(new SetCardInfo("Ancient Hellkite", 11, Rarity.RARE, mage.cards.a.AncientHellkite.class)); - cards.add(new SetCardInfo("Angel of Deliverance", 35, Rarity.RARE, mage.cards.a.AngelOfDeliverance.class)); - cards.add(new SetCardInfo("Ant Queen", 7, Rarity.RARE, mage.cards.a.AntQueen.class)); - cards.add(new SetCardInfo("Bident of Thassa", 24, Rarity.RARE, mage.cards.b.BidentOfThassa.class)); - cards.add(new SetCardInfo("Blight Herder", 32, Rarity.RARE, mage.cards.b.BlightHerder.class)); - cards.add(new SetCardInfo("Breaking // Entering", 22, Rarity.RARE, mage.cards.b.BreakingEntering.class)); - cards.add(new SetCardInfo("Colossal Whale", 23, Rarity.RARE, mage.cards.c.ColossalWhale.class)); - cards.add(new SetCardInfo("Deadbridge Goliath", 20, Rarity.RARE, mage.cards.d.DeadbridgeGoliath.class)); - cards.add(new SetCardInfo("Deathbringer Regent", 30, Rarity.RARE, mage.cards.d.DeathbringerRegent.class)); - cards.add(new SetCardInfo("Dictate of the Twin Gods", 26, Rarity.RARE, mage.cards.d.DictateOfTheTwinGods.class)); - cards.add(new SetCardInfo("Dragon Throne of Tarkir", 27, Rarity.RARE, mage.cards.d.DragonThroneOfTarkir.class)); - cards.add(new SetCardInfo("Earwig Squad", 1, Rarity.RARE, mage.cards.e.EarwigSquad.class)); - cards.add(new SetCardInfo("Endbringer", 34, Rarity.RARE, mage.cards.e.Endbringer.class)); - cards.add(new SetCardInfo("Figure of Destiny", 3, Rarity.RARE, mage.cards.f.FigureOfDestiny.class)); - cards.add(new SetCardInfo("Garruk's Horde", 15, Rarity.RARE, mage.cards.g.GarruksHorde.class)); - cards.add(new SetCardInfo("Identity Thief", 33, Rarity.RARE, mage.cards.i.IdentityThief.class)); - cards.add(new SetCardInfo("In Garruk's Wake", 28, Rarity.RARE, mage.cards.i.InGarruksWake.class)); - cards.add(new SetCardInfo("Joraga Warcaller", 9, Rarity.RARE, mage.cards.j.JoragaWarcaller.class)); - cards.add(new SetCardInfo("Knight of New Alara", 6, Rarity.RARE, mage.cards.k.KnightOfNewAlara.class)); - cards.add(new SetCardInfo("Lord of Shatterskull Pass", 10, Rarity.RARE, mage.cards.l.LordOfShatterskullPass.class)); - cards.add(new SetCardInfo("Ludevic's Abomination", 1064, Rarity.RARE, mage.cards.l.LudevicsAbomination.class)); - cards.add(new SetCardInfo("Ludevic's Test Subject", 16, Rarity.RARE, mage.cards.l.LudevicsTestSubject.class)); - cards.add(new SetCardInfo("Mizzium Meddler", 31, Rarity.RARE, mage.cards.m.MizziumMeddler.class)); - cards.add(new SetCardInfo("Mondronen Shaman", 17, Rarity.RARE, mage.cards.m.MondronenShaman.class)); - cards.add(new SetCardInfo("Obelisk of Alara", 5, Rarity.RARE, mage.cards.o.ObeliskOfAlara.class)); - cards.add(new SetCardInfo("Phyrexian Metamorph", 14, Rarity.RARE, mage.cards.p.PhyrexianMetamorph.class)); - cards.add(new SetCardInfo("Quicksmith Rebel", 38, Rarity.RARE, mage.cards.q.QuicksmithRebel.class)); - cards.add(new SetCardInfo("Restoration Angel", 18, Rarity.RARE, mage.cards.r.RestorationAngel.class)); - cards.add(new SetCardInfo("Saheeli's Artistry", 37, Rarity.RARE, mage.cards.s.SaheelisArtistry.class)); - cards.add(new SetCardInfo("Sandsteppe Mastodon", 29, Rarity.RARE, mage.cards.s.SandsteppeMastodon.class)); - cards.add(new SetCardInfo("Skarrg Goliath", 21, Rarity.RARE, mage.cards.s.SkarrgGoliath.class)); - cards.add(new SetCardInfo("Staff of Nin", 19, Rarity.RARE, mage.cards.s.StaffOfNin.class)); - cards.add(new SetCardInfo("Steel Hellkite", 12, Rarity.RARE, mage.cards.s.SteelHellkite.class)); - cards.add(new SetCardInfo("Thopter Assembly", 13, Rarity.RARE, mage.cards.t.ThopterAssembly.class)); - cards.add(new SetCardInfo("Tovolar's Magehunter", 98, Rarity.RARE, mage.cards.t.TovolarsMagehunter.class)); - cards.add(new SetCardInfo("Tromokratis", 25, Rarity.RARE, mage.cards.t.Tromokratis.class)); - cards.add(new SetCardInfo("Valakut, the Molten Pinnacle", 8, Rarity.RARE, mage.cards.v.ValakutTheMoltenPinnacle.class)); - cards.add(new SetCardInfo("Vexing Shusher", 2, Rarity.RARE, mage.cards.v.VexingShusher.class)); - } - -} +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.sets; + +import mage.constants.SetType; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; + +/** + * + * @author fireshoes + */ +public class LaunchParty extends ExpansionSet { + + private static final LaunchParty instance = new LaunchParty(); + + public static LaunchParty getInstance() { + return instance; + } + + private LaunchParty() { + super("Launch Party", "MLP", ExpansionSet.buildDate(2011, 6, 17), SetType.PROMOTIONAL); + this.hasBoosters = false; + this.hasBasicLands = false; + cards.add(new SetCardInfo("Ajani Vengeant", 4, Rarity.MYTHIC, mage.cards.a.AjaniVengeant.class)); + cards.add(new SetCardInfo("Ancient Hellkite", 11, Rarity.RARE, mage.cards.a.AncientHellkite.class)); + cards.add(new SetCardInfo("Angel of Deliverance", 35, Rarity.RARE, mage.cards.a.AngelOfDeliverance.class)); + cards.add(new SetCardInfo("Ant Queen", 7, Rarity.RARE, mage.cards.a.AntQueen.class)); + cards.add(new SetCardInfo("Bident of Thassa", 24, Rarity.RARE, mage.cards.b.BidentOfThassa.class)); + cards.add(new SetCardInfo("Blight Herder", 32, Rarity.RARE, mage.cards.b.BlightHerder.class)); + cards.add(new SetCardInfo("Breaking // Entering", 22, Rarity.RARE, mage.cards.b.BreakingEntering.class)); + cards.add(new SetCardInfo("Colossal Whale", 23, Rarity.RARE, mage.cards.c.ColossalWhale.class)); + cards.add(new SetCardInfo("Deadbridge Goliath", 20, Rarity.RARE, mage.cards.d.DeadbridgeGoliath.class)); + cards.add(new SetCardInfo("Deathbringer Regent", 30, Rarity.RARE, mage.cards.d.DeathbringerRegent.class)); + cards.add(new SetCardInfo("Dictate of the Twin Gods", 26, Rarity.RARE, mage.cards.d.DictateOfTheTwinGods.class)); + cards.add(new SetCardInfo("Dragon Throne of Tarkir", 27, Rarity.RARE, mage.cards.d.DragonThroneOfTarkir.class)); + cards.add(new SetCardInfo("Earwig Squad", 1, Rarity.RARE, mage.cards.e.EarwigSquad.class)); + cards.add(new SetCardInfo("Endbringer", 34, Rarity.RARE, mage.cards.e.Endbringer.class)); + cards.add(new SetCardInfo("Figure of Destiny", 3, Rarity.RARE, mage.cards.f.FigureOfDestiny.class)); + cards.add(new SetCardInfo("Garruk's Horde", 15, Rarity.RARE, mage.cards.g.GarruksHorde.class)); + cards.add(new SetCardInfo("Identity Thief", 33, Rarity.RARE, mage.cards.i.IdentityThief.class)); + cards.add(new SetCardInfo("In Garruk's Wake", 28, Rarity.RARE, mage.cards.i.InGarruksWake.class)); + cards.add(new SetCardInfo("Joraga Warcaller", 9, Rarity.RARE, mage.cards.j.JoragaWarcaller.class)); + cards.add(new SetCardInfo("Knight of New Alara", 6, Rarity.RARE, mage.cards.k.KnightOfNewAlara.class)); + cards.add(new SetCardInfo("Lord of Shatterskull Pass", 10, Rarity.RARE, mage.cards.l.LordOfShatterskullPass.class)); + cards.add(new SetCardInfo("Ludevic's Abomination", 1064, Rarity.RARE, mage.cards.l.LudevicsAbomination.class)); + cards.add(new SetCardInfo("Ludevic's Test Subject", 16, Rarity.RARE, mage.cards.l.LudevicsTestSubject.class)); + cards.add(new SetCardInfo("Mizzium Meddler", 31, Rarity.RARE, mage.cards.m.MizziumMeddler.class)); + cards.add(new SetCardInfo("Mondronen Shaman", 17, Rarity.RARE, mage.cards.m.MondronenShaman.class)); + cards.add(new SetCardInfo("Obelisk of Alara", 5, Rarity.RARE, mage.cards.o.ObeliskOfAlara.class)); + cards.add(new SetCardInfo("Oracle's Vault", 39, Rarity.RARE, mage.cards.o.OraclesVault.class)); + cards.add(new SetCardInfo("Phyrexian Metamorph", 14, Rarity.RARE, mage.cards.p.PhyrexianMetamorph.class)); + cards.add(new SetCardInfo("Quicksmith Rebel", 38, Rarity.RARE, mage.cards.q.QuicksmithRebel.class)); + cards.add(new SetCardInfo("Restoration Angel", 18, Rarity.RARE, mage.cards.r.RestorationAngel.class)); + cards.add(new SetCardInfo("Saheeli's Artistry", 37, Rarity.RARE, mage.cards.s.SaheelisArtistry.class)); + cards.add(new SetCardInfo("Sandsteppe Mastodon", 29, Rarity.RARE, mage.cards.s.SandsteppeMastodon.class)); + cards.add(new SetCardInfo("Skarrg Goliath", 21, Rarity.RARE, mage.cards.s.SkarrgGoliath.class)); + cards.add(new SetCardInfo("Staff of Nin", 19, Rarity.RARE, mage.cards.s.StaffOfNin.class)); + cards.add(new SetCardInfo("Steel Hellkite", 12, Rarity.RARE, mage.cards.s.SteelHellkite.class)); + cards.add(new SetCardInfo("Thopter Assembly", 13, Rarity.RARE, mage.cards.t.ThopterAssembly.class)); + cards.add(new SetCardInfo("Tovolar's Magehunter", 98, Rarity.RARE, mage.cards.t.TovolarsMagehunter.class)); + cards.add(new SetCardInfo("Tromokratis", 25, Rarity.RARE, mage.cards.t.Tromokratis.class)); + cards.add(new SetCardInfo("Valakut, the Molten Pinnacle", 8, Rarity.RARE, mage.cards.v.ValakutTheMoltenPinnacle.class)); + cards.add(new SetCardInfo("Vexing Shusher", 2, Rarity.RARE, mage.cards.v.VexingShusher.class)); + } + +} diff --git a/Mage.Sets/src/mage/sets/Magic2014.java b/Mage.Sets/src/mage/sets/Magic2014.java index ae86c59ba82..846d0e1d2c3 100644 --- a/Mage.Sets/src/mage/sets/Magic2014.java +++ b/Mage.Sets/src/mage/sets/Magic2014.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Magic2015.java b/Mage.Sets/src/mage/sets/Magic2015.java index 6226014def8..7bd50098953 100644 --- a/Mage.Sets/src/mage/sets/Magic2015.java +++ b/Mage.Sets/src/mage/sets/Magic2015.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/MagicOrigins.java b/Mage.Sets/src/mage/sets/MagicOrigins.java index ab45377667f..9549124cff8 100644 --- a/Mage.Sets/src/mage/sets/MagicOrigins.java +++ b/Mage.Sets/src/mage/sets/MagicOrigins.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/MasterpieceSeries.java b/Mage.Sets/src/mage/sets/MasterpieceSeries.java index 16996b94917..affbb7260e2 100644 --- a/Mage.Sets/src/mage/sets/MasterpieceSeries.java +++ b/Mage.Sets/src/mage/sets/MasterpieceSeries.java @@ -47,6 +47,7 @@ public class MasterpieceSeries extends ExpansionSet { private MasterpieceSeries() { super("Masterpiece Series", "MPS", ExpansionSet.buildDate(2016, 9, 30), SetType.PROMOTIONAL); + this.blockName = "Masterpiece Series"; this.hasBoosters = false; this.hasBasicLands = false; CardGraphicInfo cardGraphicInfo = new CardGraphicInfo(FrameStyle.KLD_INVENTION, false); diff --git a/Mage.Sets/src/mage/sets/MasterpieceSeriesAmonkhet.java b/Mage.Sets/src/mage/sets/MasterpieceSeriesAmonkhet.java new file mode 100644 index 00000000000..18b783f0038 --- /dev/null +++ b/Mage.Sets/src/mage/sets/MasterpieceSeriesAmonkhet.java @@ -0,0 +1,84 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets; + +import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.cards.FrameStyle; +import mage.constants.Rarity; +import mage.constants.SetType; + +/** + * + * @author fireshoes + */ +public class MasterpieceSeriesAmonkhet extends ExpansionSet { + + private static final MasterpieceSeriesAmonkhet instance = new MasterpieceSeriesAmonkhet(); + + public static MasterpieceSeriesAmonkhet getInstance() { + return instance; + } + + private MasterpieceSeriesAmonkhet() { + super("Masterpiece Series Amonkhet", "MPS-AKH", ExpansionSet.buildDate(2017, 4, 28), SetType.PROMOTIONAL); + this.blockName = "Masterpiece Series"; + this.hasBoosters = false; + this.hasBasicLands = false; + CardGraphicInfo cardGraphicInfo = new CardGraphicInfo(FrameStyle.KLD_INVENTION, false); + + cards.add(new SetCardInfo("Aggravated Assault", 25, Rarity.SPECIAL, mage.cards.a.AggravatedAssault.class)); + cards.add(new SetCardInfo("Attrition", 19, Rarity.SPECIAL, mage.cards.a.Attrition.class)); + cards.add(new SetCardInfo("Austere Command", 1, Rarity.SPECIAL, mage.cards.a.AustereCommand.class)); + cards.add(new SetCardInfo("Aven Mindcensor", 2, Rarity.SPECIAL, mage.cards.a.AvenMindcensor.class)); + cards.add(new SetCardInfo("Chain Lightning", 26, Rarity.SPECIAL, mage.cards.c.ChainLightning.class)); + cards.add(new SetCardInfo("Consecrated Sphinx", 8, Rarity.SPECIAL, mage.cards.c.ConsecratedSphinx.class)); + cards.add(new SetCardInfo("Containment Priest", 3, Rarity.SPECIAL, mage.cards.c.ContainmentPriest.class)); + cards.add(new SetCardInfo("Counterbalance", 9, Rarity.SPECIAL, mage.cards.c.Counterbalance.class)); + cards.add(new SetCardInfo("Counterspell", 10, Rarity.SPECIAL, mage.cards.c.Counterspell.class)); + cards.add(new SetCardInfo("Cryptic Command", 11, Rarity.SPECIAL, mage.cards.c.CrypticCommand.class)); + cards.add(new SetCardInfo("Dark Ritual", 21, Rarity.SPECIAL, mage.cards.d.DarkRitual.class)); + cards.add(new SetCardInfo("Daze", 12, Rarity.SPECIAL, mage.cards.d.Daze.class)); + cards.add(new SetCardInfo("Diabolic Intent", 22, Rarity.SPECIAL, mage.cards.d.DiabolicIntent.class)); + cards.add(new SetCardInfo("Divert", 13, Rarity.SPECIAL, mage.cards.d.Divert.class)); + cards.add(new SetCardInfo("Entomb", 23, Rarity.SPECIAL, mage.cards.e.Entomb.class)); + cards.add(new SetCardInfo("Force of Will", 14, Rarity.SPECIAL, mage.cards.f.ForceOfWill.class)); + cards.add(new SetCardInfo("Hazoret the Fervent", 27, Rarity.SPECIAL, mage.cards.h.HazoretTheFervent.class)); + cards.add(new SetCardInfo("Kefnet the Mindful", 15, Rarity.SPECIAL, mage.cards.k.KefnetTheMindful.class)); + cards.add(new SetCardInfo("Loyal Retainers", 4, Rarity.SPECIAL, mage.cards.l.LoyalRetainers.class)); + cards.add(new SetCardInfo("Maelstrom Pulse", 29, Rarity.SPECIAL, mage.cards.m.MaelstromPulse.class)); + cards.add(new SetCardInfo("Mind Twist", 24, Rarity.SPECIAL, mage.cards.m.MindTwist.class)); + cards.add(new SetCardInfo("Oketra the True", 5, Rarity.SPECIAL, mage.cards.o.OketraTheTrue.class)); + cards.add(new SetCardInfo("Pact of Negation", 16, Rarity.SPECIAL, mage.cards.p.PactOfNegation.class)); + cards.add(new SetCardInfo("Spell Pierce", 17, Rarity.SPECIAL, mage.cards.s.SpellPierce.class)); + cards.add(new SetCardInfo("Stifle", 18, Rarity.SPECIAL, mage.cards.s.Stifle.class)); + cards.add(new SetCardInfo("Vindicate", 30, Rarity.SPECIAL, mage.cards.v.Vindicate.class)); + cards.add(new SetCardInfo("Worship", 6, Rarity.SPECIAL, mage.cards.w.Worship.class)); + cards.add(new SetCardInfo("Wrath of God", 7, Rarity.SPECIAL, mage.cards.w.WrathOfGod.class)); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/MastersEdition.java b/Mage.Sets/src/mage/sets/MastersEdition.java index 54995bdd0ed..e2e2be9182f 100644 --- a/Mage.Sets/src/mage/sets/MastersEdition.java +++ b/Mage.Sets/src/mage/sets/MastersEdition.java @@ -27,6 +27,7 @@ */ package mage.sets; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.b.BasalThrull; import mage.cards.d.DwarvenSoldier; @@ -40,9 +41,8 @@ import mage.cards.o.OrderOfTheEbonHand; import mage.cards.o.Oubliette; import mage.cards.p.PhyrexianWarBeast; import mage.cards.t.ThornThallid; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/MastersEditionII.java b/Mage.Sets/src/mage/sets/MastersEditionII.java index b6c629f95c5..a33aa038c0d 100644 --- a/Mage.Sets/src/mage/sets/MastersEditionII.java +++ b/Mage.Sets/src/mage/sets/MastersEditionII.java @@ -40,8 +40,8 @@ import mage.cards.l.LimDulsHighGuard; import mage.cards.n.Necrite; import mage.cards.n.NightSoil; import mage.cards.o.OrcishVeteran; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/MastersEditionIII.java b/Mage.Sets/src/mage/sets/MastersEditionIII.java index 45c57430699..f8c3a19949b 100644 --- a/Mage.Sets/src/mage/sets/MastersEditionIII.java +++ b/Mage.Sets/src/mage/sets/MastersEditionIII.java @@ -27,11 +27,11 @@ */ package mage.sets; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.f.FeveredStrength; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/MastersEditionIV.java b/Mage.Sets/src/mage/sets/MastersEditionIV.java index 46d047be1fd..242d0a6856b 100644 --- a/Mage.Sets/src/mage/sets/MastersEditionIV.java +++ b/Mage.Sets/src/mage/sets/MastersEditionIV.java @@ -30,8 +30,8 @@ package mage.sets; import mage.cards.ExpansionSet; import mage.cards.a.AesthirGlider; import mage.cards.e.EliteCatWarrior; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/MediaInserts.java b/Mage.Sets/src/mage/sets/MediaInserts.java index 9a0d085ff7a..267eaa48dde 100644 --- a/Mage.Sets/src/mage/sets/MediaInserts.java +++ b/Mage.Sets/src/mage/sets/MediaInserts.java @@ -1,221 +1,222 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ -package mage.sets; - -import mage.cards.CardGraphicInfo; -import mage.cards.ExpansionSet; -import mage.cards.h.HighTide; -import mage.constants.Rarity; -import mage.constants.SetType; - -public class MediaInserts extends ExpansionSet { - - private static final MediaInserts instance = new MediaInserts(); - - public static MediaInserts getInstance() { - return instance; - } - - private MediaInserts() { - super("Media Inserts", "MBP", ExpansionSet.buildDate(1990, 1, 1), SetType.PROMOTIONAL); - this.hasBoosters = false; - this.hasBasicLands = false; - cards.add(new SetCardInfo("Acquire", 83, Rarity.RARE, mage.cards.a.Acquire.class)); - cards.add(new SetCardInfo("Aeronaut Tinkerer", 118, Rarity.COMMON, mage.cards.a.AeronautTinkerer.class)); - cards.add(new SetCardInfo("Ajani, Caller of the Pride", 72, Rarity.MYTHIC, mage.cards.a.AjaniCallerOfThePride.class)); - cards.add(new SetCardInfo("Ajani Steadfast", 99, Rarity.MYTHIC, mage.cards.a.AjaniSteadfast.class)); - cards.add(new SetCardInfo("Alhammarret, High Arbiter", 124, Rarity.SPECIAL, mage.cards.a.AlhammarretHighArbiter.class)); - cards.add(new SetCardInfo("Angelic Skirmisher", 90, Rarity.RARE, mage.cards.a.AngelicSkirmisher.class)); - cards.add(new SetCardInfo("Angel of Glory's Rise", 59, Rarity.RARE, mage.cards.a.AngelOfGlorysRise.class)); - cards.add(new SetCardInfo("Ankle Shanker", 93, Rarity.RARE, mage.cards.a.AnkleShanker.class)); - cards.add(new SetCardInfo("Arashin Sovereign", 112, Rarity.SPECIAL, mage.cards.a.ArashinSovereign.class)); - cards.add(new SetCardInfo("Archfiend of Depravity", 109, Rarity.SPECIAL, mage.cards.a.ArchfiendOfDepravity.class)); - cards.add(new SetCardInfo("Arena", 1, Rarity.SPECIAL, mage.cards.a.Arena.class)); - cards.add(new SetCardInfo("Arrest", 53, Rarity.COMMON, mage.cards.a.Arrest.class)); - cards.add(new SetCardInfo("Assembled Alphas", 160, Rarity.RARE, mage.cards.a.AssembledAlphas.class)); - cards.add(new SetCardInfo("Avalanche Tusker", 94, Rarity.RARE, mage.cards.a.AvalancheTusker.class)); - cards.add(new SetCardInfo("Barrage Tyrant", 139, Rarity.SPECIAL, mage.cards.b.BarrageTyrant.class)); - cards.add(new SetCardInfo("Birds of Paradise", 28, Rarity.RARE, mage.cards.b.BirdsOfParadise.class)); - cards.add(new SetCardInfo("Bloodthrone Vampire", 31, Rarity.COMMON, mage.cards.b.BloodthroneVampire.class)); - cards.add(new SetCardInfo("Blue Elemental Blast", 5, Rarity.COMMON, mage.cards.b.BlueElementalBlast.class)); - cards.add(new SetCardInfo("Boltwing Marauder", 115, Rarity.SPECIAL, mage.cards.b.BoltwingMarauder.class)); - cards.add(new SetCardInfo("Bonescythe Sliver", 68, Rarity.RARE, mage.cards.b.BonescytheSliver.class)); - cards.add(new SetCardInfo("Breath of Malfegor", 58, Rarity.COMMON, mage.cards.b.BreathOfMalfegor.class)); - cards.add(new SetCardInfo("Brion Stoutarm", 17, Rarity.RARE, mage.cards.b.BrionStoutarm.class)); - cards.add(new SetCardInfo("Broodmate Dragon", 19, Rarity.RARE, mage.cards.b.BroodmateDragon.class)); - cards.add(new SetCardInfo("Cathedral of War", 51, Rarity.RARE, mage.cards.c.CathedralOfWar.class)); - cards.add(new SetCardInfo("Celestial Colonnade", 23, Rarity.SPECIAL, mage.cards.c.CelestialColonnade.class)); - cards.add(new SetCardInfo("Chandra, Fire of Kaladesh", 997, Rarity.SPECIAL, mage.cards.c.ChandraFireOfKaladesh.class)); - cards.add(new SetCardInfo("Chandra, Pyromaster", 75, Rarity.MYTHIC, mage.cards.c.ChandraPyromaster.class)); - cards.add(new SetCardInfo("Chandra, Pyromaster", 102, Rarity.MYTHIC, mage.cards.c.ChandraPyromaster.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Chandra, Roaring Flame", 997, Rarity.SPECIAL, mage.cards.c.ChandraRoaringFlame.class)); - cards.add(new SetCardInfo("Chandra's Fury", 65, Rarity.COMMON, mage.cards.c.ChandrasFury.class)); - cards.add(new SetCardInfo("Chandra's Phoenix", 37, Rarity.RARE, mage.cards.c.ChandrasPhoenix.class)); - cards.add(new SetCardInfo("Consume Spirit", 54, Rarity.UNCOMMON, mage.cards.c.ConsumeSpirit.class)); - cards.add(new SetCardInfo("Corrupt", 64, Rarity.UNCOMMON, mage.cards.c.Corrupt.class)); - cards.add(new SetCardInfo("Day of Judgment", 22, Rarity.RARE, mage.cards.d.DayOfJudgment.class)); - cards.add(new SetCardInfo("Deepfathom Skulker", 144, Rarity.RARE, mage.cards.d.DeepfathomSkulker.class)); - cards.add(new SetCardInfo("Defiant Bloodlord", 138, Rarity.SPECIAL, mage.cards.d.DefiantBloodlord.class)); - cards.add(new SetCardInfo("Devil's Play", 40, Rarity.RARE, mage.cards.d.DevilsPlay.class)); - cards.add(new SetCardInfo("Dragon Fodder", 119, Rarity.COMMON, mage.cards.d.DragonFodder.class)); - cards.add(new SetCardInfo("Dragonlord's Servant", 120, Rarity.SPECIAL, mage.cards.d.DragonlordsServant.class)); - cards.add(new SetCardInfo("Dragonscale General", 107, Rarity.SPECIAL, mage.cards.d.DragonscaleGeneral.class)); - cards.add(new SetCardInfo("Dread Defiler", 145, Rarity.RARE, mage.cards.d.DreadDefiler.class)); - cards.add(new SetCardInfo("Dreg Mangler", 55, Rarity.UNCOMMON, mage.cards.d.DregMangler.class)); - cards.add(new SetCardInfo("Drogskol Cavalry", 149, Rarity.RARE, mage.cards.d.DrogskolCavalry.class)); - cards.add(new SetCardInfo("Dromoka, the Eternal", 132, Rarity.SPECIAL, mage.cards.d.DromokaTheEternal.class)); - cards.add(new SetCardInfo("Drowner of Hope", 137, Rarity.SPECIAL, mage.cards.d.DrownerOfHope.class)); - cards.add(new SetCardInfo("Duress", 84, Rarity.COMMON, mage.cards.d.Duress.class)); - cards.add(new SetCardInfo("Dwynen, Gilt-Leaf Daen", 125, Rarity.SPECIAL, mage.cards.d.DwynenGiltLeafDaen.class)); - cards.add(new SetCardInfo("Eidolon of Blossoms", 85, Rarity.RARE, mage.cards.e.EidolonOfBlossoms.class)); - cards.add(new SetCardInfo("Electrolyze", 42, Rarity.UNCOMMON, mage.cards.e.Electrolyze.class)); - cards.add(new SetCardInfo("Elusive Tormentor", 154, Rarity.RARE, mage.cards.e.ElusiveTormentor.class)); - cards.add(new SetCardInfo("Emrakul, the Aeons Torn", 163, Rarity.MYTHIC, mage.cards.e.EmrakulTheAeonsTorn.class)); - cards.add(new SetCardInfo("Evolving Wilds", 121, Rarity.COMMON, mage.cards.e.EvolvingWilds.class)); - cards.add(new SetCardInfo("Faithless Looting", 39, Rarity.COMMON, mage.cards.f.FaithlessLooting.class)); - cards.add(new SetCardInfo("Fated Conflagration", 79, Rarity.RARE, mage.cards.f.FatedConflagration.class)); - cards.add(new SetCardInfo("Feast of Blood", 43, Rarity.UNCOMMON, mage.cards.f.FeastOfBlood.class)); - cards.add(new SetCardInfo("Fireball", 4, Rarity.COMMON, mage.cards.f.Fireball.class)); - cards.add(new SetCardInfo("Flameblade Angel", 152, Rarity.RARE, mage.cards.f.FlamebladeAngel.class)); - cards.add(new SetCardInfo("Flamerush Rider", 110, Rarity.SPECIAL, mage.cards.f.FlamerushRider.class)); - cards.add(new SetCardInfo("Foe-Razer Regent", 122, Rarity.SPECIAL, mage.cards.f.FoeRazerRegent.class)); - cards.add(new SetCardInfo("Frost Titan", 34, Rarity.MYTHIC, mage.cards.f.FrostTitan.class)); - cards.add(new SetCardInfo("Garruk, Apex Predator", 104, Rarity.MYTHIC, mage.cards.g.GarrukApexPredator.class)); - cards.add(new SetCardInfo("Garruk, Caller of Beasts", 76, Rarity.MYTHIC, mage.cards.g.GarrukCallerOfBeasts.class)); - cards.add(new SetCardInfo("Garruk Wildspeaker", 16, Rarity.RARE, mage.cards.g.GarrukWildspeaker.class)); - cards.add(new SetCardInfo("Gaze of Granite", 81, Rarity.RARE, mage.cards.g.GazeOfGranite.class)); - cards.add(new SetCardInfo("Genesis Hydra", 142, Rarity.SPECIAL, mage.cards.g.GenesisHydra.class)); - cards.add(new SetCardInfo("Giant Badger", 8, Rarity.SPECIAL, mage.cards.g.GiantBadger.class)); - cards.add(new SetCardInfo("Gideon, Battle-Forged", 994, Rarity.SPECIAL, mage.cards.g.GideonBattleForged.class)); - cards.add(new SetCardInfo("Gladehart Cavalry", 147, Rarity.RARE, mage.cards.g.GladehartCavalry.class)); - cards.add(new SetCardInfo("Goblin Dark-Dwellers", 148, Rarity.RARE, mage.cards.g.GoblinDarkDwellers.class)); - cards.add(new SetCardInfo("Goblin Rabblemaster", 98, Rarity.RARE, mage.cards.g.GoblinRabblemaster.class)); - cards.add(new SetCardInfo("Gravecrawler", 41, Rarity.RARE, mage.cards.g.Gravecrawler.class)); - cards.add(new SetCardInfo("Grave Titan", 35, Rarity.MYTHIC, mage.cards.g.GraveTitan.class)); - cards.add(new SetCardInfo("Guul Draz Assassin", 26, Rarity.RARE, mage.cards.g.GuulDrazAssassin.class)); - cards.add(new SetCardInfo("Hamletback Goliath", 71, Rarity.RARE, mage.cards.h.HamletbackGoliath.class)); - cards.add(new SetCardInfo("Harbinger of the Hunt", 116, Rarity.SPECIAL, mage.cards.h.HarbingerOfTheHunt.class)); - cards.add(new SetCardInfo("Hero of Goma Fada", 136, Rarity.SPECIAL, mage.cards.h.HeroOfGomaFada.class)); - cards.add(new SetCardInfo("High Tide", 80, Rarity.COMMON, HighTide.class)); - cards.add(new SetCardInfo("Hixus, Prison Warden", 126, Rarity.SPECIAL, mage.cards.h.HixusPrisonWarden.class)); - cards.add(new SetCardInfo("Honored Hierarch", 129, Rarity.SPECIAL, mage.cards.h.HonoredHierarch.class)); - cards.add(new SetCardInfo("Honor of the Pure", 20, Rarity.RARE, mage.cards.h.HonorOfThePure.class)); - cards.add(new SetCardInfo("Inferno Titan", 36, Rarity.MYTHIC, mage.cards.i.InfernoTitan.class)); - cards.add(new SetCardInfo("Insidious Mist", 154, Rarity.RARE, mage.cards.i.InsidiousMist.class)); - cards.add(new SetCardInfo("Ivorytusk Fortress", 95, Rarity.RARE, mage.cards.i.IvorytuskFortress.class)); - cards.add(new SetCardInfo("Jace Beleren", 15, Rarity.RARE, mage.cards.j.JaceBeleren.class)); - cards.add(new SetCardInfo("Jace, Memory Adept", 73, Rarity.MYTHIC, mage.cards.j.JaceMemoryAdept.class)); - cards.add(new SetCardInfo("Jace, Telepath Unbound", 995, Rarity.SPECIAL, mage.cards.j.JaceTelepathUnbound.class)); - cards.add(new SetCardInfo("Jace, the Living Guildpact", 100, Rarity.MYTHIC, mage.cards.j.JaceTheLivingGuildpact.class)); - cards.add(new SetCardInfo("Jace, Vryn's Prodigy", 995, Rarity.SPECIAL, mage.cards.j.JaceVrynsProdigy.class)); - cards.add(new SetCardInfo("Jaya Ballard, Task Mage", 18, Rarity.RARE, mage.cards.j.JayaBallardTaskMage.class)); - cards.add(new SetCardInfo("Karametra's Acolyte", 78, Rarity.UNCOMMON, mage.cards.k.KarametrasAcolyte.class)); - cards.add(new SetCardInfo("Knight Exemplar", 46, Rarity.RARE, mage.cards.k.KnightExemplar.class)); - cards.add(new SetCardInfo("Kor Skyfisher", 25, Rarity.COMMON, mage.cards.k.KorSkyfisher.class)); - cards.add(new SetCardInfo("Kothophed, Soul Hoarder", 127, Rarity.SPECIAL, mage.cards.k.KothophedSoulHoarder.class)); - cards.add(new SetCardInfo("Kytheon, Hero of Akros", 994, Rarity.SPECIAL, mage.cards.k.KytheonHeroOfAkros.class)); - cards.add(new SetCardInfo("Lightning Hounds", 10, Rarity.SPECIAL, mage.cards.l.LightningHounds.class)); - cards.add(new SetCardInfo("Liliana, Defiant Necromancer", 996, Rarity.SPECIAL, mage.cards.l.LilianaDefiantNecromancer.class)); - cards.add(new SetCardInfo("Liliana, Heretical Healer", 996, Rarity.SPECIAL, mage.cards.l.LilianaHereticalHealer.class)); - cards.add(new SetCardInfo("Liliana of the Dark Realms", 74, Rarity.MYTHIC, mage.cards.l.LilianaOfTheDarkRealms.class)); - cards.add(new SetCardInfo("Liliana Vess", 30, Rarity.RARE, mage.cards.l.LilianaVess.class)); - cards.add(new SetCardInfo("Liliana Vess", 101, Rarity.MYTHIC, mage.cards.l.LilianaVess.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Magister of Worth", 86, Rarity.SPECIAL, mage.cards.m.MagisterOfWorth.class)); - cards.add(new SetCardInfo("Mana Crypt", 6, Rarity.RARE, mage.cards.m.ManaCrypt.class)); - cards.add(new SetCardInfo("Markov Dreadknight", 151, Rarity.RARE, mage.cards.m.MarkovDreadknight.class)); - cards.add(new SetCardInfo("Memoricide", 29, Rarity.RARE, mage.cards.m.Memoricide.class)); - cards.add(new SetCardInfo("Merfolk Mesmerist", 45, Rarity.COMMON, mage.cards.m.MerfolkMesmerist.class)); - cards.add(new SetCardInfo("Mirran Crusader", 32, Rarity.RARE, mage.cards.m.MirranCrusader.class)); - cards.add(new SetCardInfo("Munda's Vanguard", 143, Rarity.RARE, mage.cards.m.MundasVanguard.class)); - cards.add(new SetCardInfo("Necromaster Dragon", 114, Rarity.SPECIAL, mage.cards.n.NecromasterDragon.class)); - cards.add(new SetCardInfo("Nephalia Moondrakes", 150, Rarity.RARE, mage.cards.n.NephaliaMoondrakes.class)); - cards.add(new SetCardInfo("Niblis of Frost", 158, Rarity.RARE, mage.cards.n.NiblisOfFrost.class)); - cards.add(new SetCardInfo("Nightveil Specter", 61, Rarity.RARE, mage.cards.n.NightveilSpecter.class)); - cards.add(new SetCardInfo("Nissa Revane", 27, Rarity.MYTHIC, mage.cards.n.NissaRevane.class)); - cards.add(new SetCardInfo("Nissa, Sage Animist", 998, Rarity.SPECIAL, mage.cards.n.NissaSageAnimist.class)); - cards.add(new SetCardInfo("Nissa, Vastwood Seer", 998, Rarity.SPECIAL, mage.cards.n.NissaVastwoodSeer.class)); - cards.add(new SetCardInfo("Nissa, Worldwaker", 103, Rarity.MYTHIC, mage.cards.n.NissaWorldwaker.class)); - cards.add(new SetCardInfo("Noosegraf Mob", 159, Rarity.RARE, mage.cards.n.NoosegrafMob.class)); - cards.add(new SetCardInfo("Ogre Arsonist", 63, Rarity.SPECIAL, mage.cards.o.OgreArsonist.class)); - cards.add(new SetCardInfo("Ogre Battledriver", 69, Rarity.RARE, mage.cards.o.OgreBattledriver.class)); - cards.add(new SetCardInfo("Ojutai's Command", 106, Rarity.SPECIAL, mage.cards.o.OjutaisCommand.class)); - cards.add(new SetCardInfo("Oran-Rief Hydra", 140, Rarity.SPECIAL, mage.cards.o.OranRiefHydra.class)); - cards.add(new SetCardInfo("Phyrexian Rager", 14, Rarity.COMMON, mage.cards.p.PhyrexianRager.class)); - cards.add(new SetCardInfo("Pia and Kiran Nalaar", 128, Rarity.SPECIAL, mage.cards.p.PiaAndKiranNalaar.class)); - cards.add(new SetCardInfo("Primordial Hydra", 49, Rarity.MYTHIC, mage.cards.p.PrimordialHydra.class)); - cards.add(new SetCardInfo("Pristine Skywise", 113, Rarity.SPECIAL, mage.cards.p.PristineSkywise.class)); - cards.add(new SetCardInfo("Rakshasa Vizier", 96, Rarity.RARE, mage.cards.r.RakshasaVizier.class)); - cards.add(new SetCardInfo("Ratchet Bomb", 67, Rarity.RARE, mage.cards.r.RatchetBomb.class)); - cards.add(new SetCardInfo("Rattleclaw Mystic", 92, Rarity.RARE, mage.cards.r.RattleclawMystic.class)); - cards.add(new SetCardInfo("Ravenous Bloodseeker", 155, Rarity.UNCOMMON, mage.cards.r.RavenousBloodseeker.class)); - cards.add(new SetCardInfo("Relic Seeker", 123, Rarity.RARE, mage.cards.r.RelicSeeker.class)); - cards.add(new SetCardInfo("Render Silent", 66, Rarity.RARE, mage.cards.r.RenderSilent.class)); - cards.add(new SetCardInfo("Retaliator Griffin", 24, Rarity.RARE, mage.cards.r.RetaliatorGriffin.class)); - cards.add(new SetCardInfo("Ruinous Path", 135, Rarity.SPECIAL, mage.cards.r.RuinousPath.class)); - cards.add(new SetCardInfo("Sage-Eye Avengers", 108, Rarity.SPECIAL, mage.cards.s.SageEyeAvengers.class)); - cards.add(new SetCardInfo("Sage of the Inward Eye", 97, Rarity.RARE, mage.cards.s.SageOfTheInwardEye.class)); - cards.add(new SetCardInfo("Sanctifier of Souls", 157, Rarity.RARE, mage.cards.s.SanctifierOfSouls.class)); - cards.add(new SetCardInfo("Sandsteppe Citadel", 134, Rarity.SPECIAL, mage.cards.s.SandsteppeCitadel.class)); - cards.add(new SetCardInfo("Scavenging Ooze", 70, Rarity.RARE, mage.cards.s.ScavengingOoze.class)); - cards.add(new SetCardInfo("Scrap Trawler", 164, Rarity.RARE, mage.cards.s.ScrapTrawler.class)); - cards.add(new SetCardInfo("Scythe Leopard", 141, Rarity.SPECIAL, mage.cards.s.ScytheLeopard.class)); - cards.add(new SetCardInfo("Seeker of the Way", 130, Rarity.SPECIAL, mage.cards.s.SeekerOfTheWay.class)); - cards.add(new SetCardInfo("Serra Avatar", 48, Rarity.MYTHIC, mage.cards.s.SerraAvatar.class)); - cards.add(new SetCardInfo("Shamanic Revelation", 105, Rarity.SPECIAL, mage.cards.s.ShamanicRevelation.class)); - cards.add(new SetCardInfo("Siege Rhino", 133, Rarity.SPECIAL, mage.cards.s.SiegeRhino.class)); - cards.add(new SetCardInfo("Silverblade Paladin", 44, Rarity.RARE, mage.cards.s.SilverbladePaladin.class)); - cards.add(new SetCardInfo("Silver Drake", 13, Rarity.SPECIAL, mage.cards.s.SilverDrake.class)); - cards.add(new SetCardInfo("Skyship Stalker", 162, Rarity.RARE, mage.cards.s.SkyshipStalker.class)); - cards.add(new SetCardInfo("Soul of Ravnica", 87, Rarity.MYTHIC, mage.cards.s.SoulOfRavnica.class)); - cards.add(new SetCardInfo("Soul of Zendikar", 88, Rarity.MYTHIC, mage.cards.s.SoulOfZendikar.class)); - cards.add(new SetCardInfo("Soul Swallower", 153, Rarity.RARE, mage.cards.s.SoulSwallower.class)); - cards.add(new SetCardInfo("Spined Wurm", 11, Rarity.SPECIAL, mage.cards.s.SpinedWurm.class)); - cards.add(new SetCardInfo("Standstill", 57, Rarity.UNCOMMON, mage.cards.s.Standstill.class)); - cards.add(new SetCardInfo("Stealer of Secrets", 89, Rarity.COMMON, mage.cards.s.StealerOfSecrets.class)); - cards.add(new SetCardInfo("Steward of Valeron", 21, Rarity.COMMON, mage.cards.s.StewardOfValeron.class)); - cards.add(new SetCardInfo("Sultai Charm", 117, Rarity.SPECIAL, mage.cards.s.SultaiCharm.class)); - cards.add(new SetCardInfo("Sunblast Angel", 47, Rarity.RARE, mage.cards.s.SunblastAngel.class)); - cards.add(new SetCardInfo("Supreme Verdict", 56, Rarity.RARE, mage.cards.s.SupremeVerdict.class)); - cards.add(new SetCardInfo("Surgical Extraction", 33, Rarity.RARE, mage.cards.s.SurgicalExtraction.class)); - cards.add(new SetCardInfo("Sylvan Caryatid", 77, Rarity.RARE, mage.cards.s.SylvanCaryatid.class)); - cards.add(new SetCardInfo("Temur War Shaman", 111, Rarity.SPECIAL, mage.cards.t.TemurWarShaman.class)); - cards.add(new SetCardInfo("Terastodon", 52, Rarity.RARE, mage.cards.t.Terastodon.class)); - cards.add(new SetCardInfo("Thalia, Heretic Cathar", 156, Rarity.RARE, mage.cards.t.ThaliaHereticCathar.class)); - cards.add(new SetCardInfo("Treasure Hunt", 38, Rarity.COMMON, mage.cards.t.TreasureHunt.class)); - cards.add(new SetCardInfo("Turnabout", 60, Rarity.UNCOMMON, mage.cards.t.Turnabout.class)); - cards.add(new SetCardInfo("Tyrant of Valakut", 146, Rarity.RARE, mage.cards.t.TyrantOfValakut.class)); - cards.add(new SetCardInfo("Ulvenwald Observer", 161, Rarity.RARE, mage.cards.u.UlvenwaldObserver.class)); - cards.add(new SetCardInfo("Valorous Stance", 131, Rarity.SPECIAL, mage.cards.v.ValorousStance.class)); - cards.add(new SetCardInfo("Vampire Nocturnus", 50, Rarity.MYTHIC, mage.cards.v.VampireNocturnus.class)); - cards.add(new SetCardInfo("Voidmage Husher", 62, Rarity.SPECIAL, mage.cards.v.VoidmageHusher.class)); - cards.add(new SetCardInfo("Warmonger", 12, Rarity.SPECIAL, mage.cards.w.Warmonger.class)); - cards.add(new SetCardInfo("Wash Out", 82, Rarity.UNCOMMON, mage.cards.w.WashOut.class)); - cards.add(new SetCardInfo("Windseeker Centaur", 7, Rarity.SPECIAL, mage.cards.w.WindseekerCentaur.class)); - cards.add(new SetCardInfo("Xathrid Necromancer", 91, Rarity.SPECIAL, mage.cards.x.XathridNecromancer.class)); - } -} +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets; + +import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.cards.h.HighTide; +import mage.constants.Rarity; +import mage.constants.SetType; + +public class MediaInserts extends ExpansionSet { + + private static final MediaInserts instance = new MediaInserts(); + + public static MediaInserts getInstance() { + return instance; + } + + private MediaInserts() { + super("Media Inserts", "MBP", ExpansionSet.buildDate(1990, 1, 1), SetType.PROMOTIONAL); + this.hasBoosters = false; + this.hasBasicLands = false; + cards.add(new SetCardInfo("Acquire", 83, Rarity.RARE, mage.cards.a.Acquire.class)); + cards.add(new SetCardInfo("Aeronaut Tinkerer", 118, Rarity.COMMON, mage.cards.a.AeronautTinkerer.class)); + cards.add(new SetCardInfo("Ajani, Caller of the Pride", 72, Rarity.MYTHIC, mage.cards.a.AjaniCallerOfThePride.class)); + cards.add(new SetCardInfo("Ajani Steadfast", 99, Rarity.MYTHIC, mage.cards.a.AjaniSteadfast.class)); + cards.add(new SetCardInfo("Alhammarret, High Arbiter", 124, Rarity.SPECIAL, mage.cards.a.AlhammarretHighArbiter.class)); + cards.add(new SetCardInfo("Angelic Skirmisher", 90, Rarity.RARE, mage.cards.a.AngelicSkirmisher.class)); + cards.add(new SetCardInfo("Angel of Glory's Rise", 59, Rarity.RARE, mage.cards.a.AngelOfGlorysRise.class)); + cards.add(new SetCardInfo("Ankle Shanker", 93, Rarity.RARE, mage.cards.a.AnkleShanker.class)); + cards.add(new SetCardInfo("Arashin Sovereign", 112, Rarity.SPECIAL, mage.cards.a.ArashinSovereign.class)); + cards.add(new SetCardInfo("Archfiend of Depravity", 109, Rarity.SPECIAL, mage.cards.a.ArchfiendOfDepravity.class)); + cards.add(new SetCardInfo("Archfiend of Ifnir", 165, Rarity.RARE, mage.cards.a.ArchfiendOfIfnir.class)); + cards.add(new SetCardInfo("Arena", 1, Rarity.SPECIAL, mage.cards.a.Arena.class)); + cards.add(new SetCardInfo("Arrest", 53, Rarity.COMMON, mage.cards.a.Arrest.class)); + cards.add(new SetCardInfo("Assembled Alphas", 160, Rarity.RARE, mage.cards.a.AssembledAlphas.class)); + cards.add(new SetCardInfo("Avalanche Tusker", 94, Rarity.RARE, mage.cards.a.AvalancheTusker.class)); + cards.add(new SetCardInfo("Barrage Tyrant", 139, Rarity.SPECIAL, mage.cards.b.BarrageTyrant.class)); + cards.add(new SetCardInfo("Birds of Paradise", 28, Rarity.RARE, mage.cards.b.BirdsOfParadise.class)); + cards.add(new SetCardInfo("Bloodthrone Vampire", 31, Rarity.COMMON, mage.cards.b.BloodthroneVampire.class)); + cards.add(new SetCardInfo("Blue Elemental Blast", 5, Rarity.COMMON, mage.cards.b.BlueElementalBlast.class)); + cards.add(new SetCardInfo("Boltwing Marauder", 115, Rarity.SPECIAL, mage.cards.b.BoltwingMarauder.class)); + cards.add(new SetCardInfo("Bonescythe Sliver", 68, Rarity.RARE, mage.cards.b.BonescytheSliver.class)); + cards.add(new SetCardInfo("Breath of Malfegor", 58, Rarity.COMMON, mage.cards.b.BreathOfMalfegor.class)); + cards.add(new SetCardInfo("Brion Stoutarm", 17, Rarity.RARE, mage.cards.b.BrionStoutarm.class)); + cards.add(new SetCardInfo("Broodmate Dragon", 19, Rarity.RARE, mage.cards.b.BroodmateDragon.class)); + cards.add(new SetCardInfo("Cathedral of War", 51, Rarity.RARE, mage.cards.c.CathedralOfWar.class)); + cards.add(new SetCardInfo("Celestial Colonnade", 23, Rarity.SPECIAL, mage.cards.c.CelestialColonnade.class)); + cards.add(new SetCardInfo("Chandra, Fire of Kaladesh", 997, Rarity.SPECIAL, mage.cards.c.ChandraFireOfKaladesh.class)); + cards.add(new SetCardInfo("Chandra, Pyromaster", 75, Rarity.MYTHIC, mage.cards.c.ChandraPyromaster.class)); + cards.add(new SetCardInfo("Chandra, Pyromaster", 102, Rarity.MYTHIC, mage.cards.c.ChandraPyromaster.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Chandra, Roaring Flame", 997, Rarity.SPECIAL, mage.cards.c.ChandraRoaringFlame.class)); + cards.add(new SetCardInfo("Chandra's Fury", 65, Rarity.COMMON, mage.cards.c.ChandrasFury.class)); + cards.add(new SetCardInfo("Chandra's Phoenix", 37, Rarity.RARE, mage.cards.c.ChandrasPhoenix.class)); + cards.add(new SetCardInfo("Consume Spirit", 54, Rarity.UNCOMMON, mage.cards.c.ConsumeSpirit.class)); + cards.add(new SetCardInfo("Corrupt", 64, Rarity.UNCOMMON, mage.cards.c.Corrupt.class)); + cards.add(new SetCardInfo("Day of Judgment", 22, Rarity.RARE, mage.cards.d.DayOfJudgment.class)); + cards.add(new SetCardInfo("Deepfathom Skulker", 144, Rarity.RARE, mage.cards.d.DeepfathomSkulker.class)); + cards.add(new SetCardInfo("Defiant Bloodlord", 138, Rarity.SPECIAL, mage.cards.d.DefiantBloodlord.class)); + cards.add(new SetCardInfo("Devil's Play", 40, Rarity.RARE, mage.cards.d.DevilsPlay.class)); + cards.add(new SetCardInfo("Dragon Fodder", 119, Rarity.COMMON, mage.cards.d.DragonFodder.class)); + cards.add(new SetCardInfo("Dragonlord's Servant", 120, Rarity.SPECIAL, mage.cards.d.DragonlordsServant.class)); + cards.add(new SetCardInfo("Dragonscale General", 107, Rarity.SPECIAL, mage.cards.d.DragonscaleGeneral.class)); + cards.add(new SetCardInfo("Dread Defiler", 145, Rarity.RARE, mage.cards.d.DreadDefiler.class)); + cards.add(new SetCardInfo("Dreg Mangler", 55, Rarity.UNCOMMON, mage.cards.d.DregMangler.class)); + cards.add(new SetCardInfo("Drogskol Cavalry", 149, Rarity.RARE, mage.cards.d.DrogskolCavalry.class)); + cards.add(new SetCardInfo("Dromoka, the Eternal", 132, Rarity.SPECIAL, mage.cards.d.DromokaTheEternal.class)); + cards.add(new SetCardInfo("Drowner of Hope", 137, Rarity.SPECIAL, mage.cards.d.DrownerOfHope.class)); + cards.add(new SetCardInfo("Duress", 84, Rarity.COMMON, mage.cards.d.Duress.class)); + cards.add(new SetCardInfo("Dwynen, Gilt-Leaf Daen", 125, Rarity.SPECIAL, mage.cards.d.DwynenGiltLeafDaen.class)); + cards.add(new SetCardInfo("Eidolon of Blossoms", 85, Rarity.RARE, mage.cards.e.EidolonOfBlossoms.class)); + cards.add(new SetCardInfo("Electrolyze", 42, Rarity.UNCOMMON, mage.cards.e.Electrolyze.class)); + cards.add(new SetCardInfo("Elusive Tormentor", 154, Rarity.RARE, mage.cards.e.ElusiveTormentor.class)); + cards.add(new SetCardInfo("Emrakul, the Aeons Torn", 163, Rarity.MYTHIC, mage.cards.e.EmrakulTheAeonsTorn.class)); + cards.add(new SetCardInfo("Evolving Wilds", 121, Rarity.COMMON, mage.cards.e.EvolvingWilds.class)); + cards.add(new SetCardInfo("Faithless Looting", 39, Rarity.COMMON, mage.cards.f.FaithlessLooting.class)); + cards.add(new SetCardInfo("Fated Conflagration", 79, Rarity.RARE, mage.cards.f.FatedConflagration.class)); + cards.add(new SetCardInfo("Feast of Blood", 43, Rarity.UNCOMMON, mage.cards.f.FeastOfBlood.class)); + cards.add(new SetCardInfo("Fireball", 4, Rarity.COMMON, mage.cards.f.Fireball.class)); + cards.add(new SetCardInfo("Flameblade Angel", 152, Rarity.RARE, mage.cards.f.FlamebladeAngel.class)); + cards.add(new SetCardInfo("Flamerush Rider", 110, Rarity.SPECIAL, mage.cards.f.FlamerushRider.class)); + cards.add(new SetCardInfo("Foe-Razer Regent", 122, Rarity.SPECIAL, mage.cards.f.FoeRazerRegent.class)); + cards.add(new SetCardInfo("Frost Titan", 34, Rarity.MYTHIC, mage.cards.f.FrostTitan.class)); + cards.add(new SetCardInfo("Garruk, Apex Predator", 104, Rarity.MYTHIC, mage.cards.g.GarrukApexPredator.class)); + cards.add(new SetCardInfo("Garruk, Caller of Beasts", 76, Rarity.MYTHIC, mage.cards.g.GarrukCallerOfBeasts.class)); + cards.add(new SetCardInfo("Garruk Wildspeaker", 16, Rarity.RARE, mage.cards.g.GarrukWildspeaker.class)); + cards.add(new SetCardInfo("Gaze of Granite", 81, Rarity.RARE, mage.cards.g.GazeOfGranite.class)); + cards.add(new SetCardInfo("Genesis Hydra", 142, Rarity.SPECIAL, mage.cards.g.GenesisHydra.class)); + cards.add(new SetCardInfo("Giant Badger", 8, Rarity.SPECIAL, mage.cards.g.GiantBadger.class)); + cards.add(new SetCardInfo("Gideon, Battle-Forged", 994, Rarity.SPECIAL, mage.cards.g.GideonBattleForged.class)); + cards.add(new SetCardInfo("Gladehart Cavalry", 147, Rarity.RARE, mage.cards.g.GladehartCavalry.class)); + cards.add(new SetCardInfo("Goblin Dark-Dwellers", 148, Rarity.RARE, mage.cards.g.GoblinDarkDwellers.class)); + cards.add(new SetCardInfo("Goblin Rabblemaster", 98, Rarity.RARE, mage.cards.g.GoblinRabblemaster.class)); + cards.add(new SetCardInfo("Gravecrawler", 41, Rarity.RARE, mage.cards.g.Gravecrawler.class)); + cards.add(new SetCardInfo("Grave Titan", 35, Rarity.MYTHIC, mage.cards.g.GraveTitan.class)); + cards.add(new SetCardInfo("Guul Draz Assassin", 26, Rarity.RARE, mage.cards.g.GuulDrazAssassin.class)); + cards.add(new SetCardInfo("Hamletback Goliath", 71, Rarity.RARE, mage.cards.h.HamletbackGoliath.class)); + cards.add(new SetCardInfo("Harbinger of the Hunt", 116, Rarity.SPECIAL, mage.cards.h.HarbingerOfTheHunt.class)); + cards.add(new SetCardInfo("Hero of Goma Fada", 136, Rarity.SPECIAL, mage.cards.h.HeroOfGomaFada.class)); + cards.add(new SetCardInfo("High Tide", 80, Rarity.COMMON, HighTide.class)); + cards.add(new SetCardInfo("Hixus, Prison Warden", 126, Rarity.SPECIAL, mage.cards.h.HixusPrisonWarden.class)); + cards.add(new SetCardInfo("Honored Hierarch", 129, Rarity.SPECIAL, mage.cards.h.HonoredHierarch.class)); + cards.add(new SetCardInfo("Honor of the Pure", 20, Rarity.RARE, mage.cards.h.HonorOfThePure.class)); + cards.add(new SetCardInfo("Inferno Titan", 36, Rarity.MYTHIC, mage.cards.i.InfernoTitan.class)); + cards.add(new SetCardInfo("Insidious Mist", 154, Rarity.RARE, mage.cards.i.InsidiousMist.class)); + cards.add(new SetCardInfo("Ivorytusk Fortress", 95, Rarity.RARE, mage.cards.i.IvorytuskFortress.class)); + cards.add(new SetCardInfo("Jace Beleren", 15, Rarity.RARE, mage.cards.j.JaceBeleren.class)); + cards.add(new SetCardInfo("Jace, Memory Adept", 73, Rarity.MYTHIC, mage.cards.j.JaceMemoryAdept.class)); + cards.add(new SetCardInfo("Jace, Telepath Unbound", 995, Rarity.SPECIAL, mage.cards.j.JaceTelepathUnbound.class)); + cards.add(new SetCardInfo("Jace, the Living Guildpact", 100, Rarity.MYTHIC, mage.cards.j.JaceTheLivingGuildpact.class)); + cards.add(new SetCardInfo("Jace, Vryn's Prodigy", 995, Rarity.SPECIAL, mage.cards.j.JaceVrynsProdigy.class)); + cards.add(new SetCardInfo("Jaya Ballard, Task Mage", 18, Rarity.RARE, mage.cards.j.JayaBallardTaskMage.class)); + cards.add(new SetCardInfo("Karametra's Acolyte", 78, Rarity.UNCOMMON, mage.cards.k.KarametrasAcolyte.class)); + cards.add(new SetCardInfo("Knight Exemplar", 46, Rarity.RARE, mage.cards.k.KnightExemplar.class)); + cards.add(new SetCardInfo("Kor Skyfisher", 25, Rarity.COMMON, mage.cards.k.KorSkyfisher.class)); + cards.add(new SetCardInfo("Kothophed, Soul Hoarder", 127, Rarity.SPECIAL, mage.cards.k.KothophedSoulHoarder.class)); + cards.add(new SetCardInfo("Kytheon, Hero of Akros", 994, Rarity.SPECIAL, mage.cards.k.KytheonHeroOfAkros.class)); + cards.add(new SetCardInfo("Lightning Hounds", 10, Rarity.SPECIAL, mage.cards.l.LightningHounds.class)); + cards.add(new SetCardInfo("Liliana, Defiant Necromancer", 996, Rarity.SPECIAL, mage.cards.l.LilianaDefiantNecromancer.class)); + cards.add(new SetCardInfo("Liliana, Heretical Healer", 996, Rarity.SPECIAL, mage.cards.l.LilianaHereticalHealer.class)); + cards.add(new SetCardInfo("Liliana of the Dark Realms", 74, Rarity.MYTHIC, mage.cards.l.LilianaOfTheDarkRealms.class)); + cards.add(new SetCardInfo("Liliana Vess", 30, Rarity.RARE, mage.cards.l.LilianaVess.class)); + cards.add(new SetCardInfo("Liliana Vess", 101, Rarity.MYTHIC, mage.cards.l.LilianaVess.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Magister of Worth", 86, Rarity.SPECIAL, mage.cards.m.MagisterOfWorth.class)); + cards.add(new SetCardInfo("Mana Crypt", 6, Rarity.RARE, mage.cards.m.ManaCrypt.class)); + cards.add(new SetCardInfo("Markov Dreadknight", 151, Rarity.RARE, mage.cards.m.MarkovDreadknight.class)); + cards.add(new SetCardInfo("Memoricide", 29, Rarity.RARE, mage.cards.m.Memoricide.class)); + cards.add(new SetCardInfo("Merfolk Mesmerist", 45, Rarity.COMMON, mage.cards.m.MerfolkMesmerist.class)); + cards.add(new SetCardInfo("Mirran Crusader", 32, Rarity.RARE, mage.cards.m.MirranCrusader.class)); + cards.add(new SetCardInfo("Munda's Vanguard", 143, Rarity.RARE, mage.cards.m.MundasVanguard.class)); + cards.add(new SetCardInfo("Necromaster Dragon", 114, Rarity.SPECIAL, mage.cards.n.NecromasterDragon.class)); + cards.add(new SetCardInfo("Nephalia Moondrakes", 150, Rarity.RARE, mage.cards.n.NephaliaMoondrakes.class)); + cards.add(new SetCardInfo("Niblis of Frost", 158, Rarity.RARE, mage.cards.n.NiblisOfFrost.class)); + cards.add(new SetCardInfo("Nightveil Specter", 61, Rarity.RARE, mage.cards.n.NightveilSpecter.class)); + cards.add(new SetCardInfo("Nissa Revane", 27, Rarity.MYTHIC, mage.cards.n.NissaRevane.class)); + cards.add(new SetCardInfo("Nissa, Sage Animist", 998, Rarity.SPECIAL, mage.cards.n.NissaSageAnimist.class)); + cards.add(new SetCardInfo("Nissa, Vastwood Seer", 998, Rarity.SPECIAL, mage.cards.n.NissaVastwoodSeer.class)); + cards.add(new SetCardInfo("Nissa, Worldwaker", 103, Rarity.MYTHIC, mage.cards.n.NissaWorldwaker.class)); + cards.add(new SetCardInfo("Noosegraf Mob", 159, Rarity.RARE, mage.cards.n.NoosegrafMob.class)); + cards.add(new SetCardInfo("Ogre Arsonist", 63, Rarity.SPECIAL, mage.cards.o.OgreArsonist.class)); + cards.add(new SetCardInfo("Ogre Battledriver", 69, Rarity.RARE, mage.cards.o.OgreBattledriver.class)); + cards.add(new SetCardInfo("Ojutai's Command", 106, Rarity.SPECIAL, mage.cards.o.OjutaisCommand.class)); + cards.add(new SetCardInfo("Oran-Rief Hydra", 140, Rarity.SPECIAL, mage.cards.o.OranRiefHydra.class)); + cards.add(new SetCardInfo("Phyrexian Rager", 14, Rarity.COMMON, mage.cards.p.PhyrexianRager.class)); + cards.add(new SetCardInfo("Pia and Kiran Nalaar", 128, Rarity.SPECIAL, mage.cards.p.PiaAndKiranNalaar.class)); + cards.add(new SetCardInfo("Primordial Hydra", 49, Rarity.MYTHIC, mage.cards.p.PrimordialHydra.class)); + cards.add(new SetCardInfo("Pristine Skywise", 113, Rarity.SPECIAL, mage.cards.p.PristineSkywise.class)); + cards.add(new SetCardInfo("Rakshasa Vizier", 96, Rarity.RARE, mage.cards.r.RakshasaVizier.class)); + cards.add(new SetCardInfo("Ratchet Bomb", 67, Rarity.RARE, mage.cards.r.RatchetBomb.class)); + cards.add(new SetCardInfo("Rattleclaw Mystic", 92, Rarity.RARE, mage.cards.r.RattleclawMystic.class)); + cards.add(new SetCardInfo("Ravenous Bloodseeker", 155, Rarity.UNCOMMON, mage.cards.r.RavenousBloodseeker.class)); + cards.add(new SetCardInfo("Relic Seeker", 123, Rarity.RARE, mage.cards.r.RelicSeeker.class)); + cards.add(new SetCardInfo("Render Silent", 66, Rarity.RARE, mage.cards.r.RenderSilent.class)); + cards.add(new SetCardInfo("Retaliator Griffin", 24, Rarity.RARE, mage.cards.r.RetaliatorGriffin.class)); + cards.add(new SetCardInfo("Ruinous Path", 135, Rarity.SPECIAL, mage.cards.r.RuinousPath.class)); + cards.add(new SetCardInfo("Sage-Eye Avengers", 108, Rarity.SPECIAL, mage.cards.s.SageEyeAvengers.class)); + cards.add(new SetCardInfo("Sage of the Inward Eye", 97, Rarity.RARE, mage.cards.s.SageOfTheInwardEye.class)); + cards.add(new SetCardInfo("Sanctifier of Souls", 157, Rarity.RARE, mage.cards.s.SanctifierOfSouls.class)); + cards.add(new SetCardInfo("Sandsteppe Citadel", 134, Rarity.SPECIAL, mage.cards.s.SandsteppeCitadel.class)); + cards.add(new SetCardInfo("Scavenging Ooze", 70, Rarity.RARE, mage.cards.s.ScavengingOoze.class)); + cards.add(new SetCardInfo("Scrap Trawler", 164, Rarity.RARE, mage.cards.s.ScrapTrawler.class)); + cards.add(new SetCardInfo("Scythe Leopard", 141, Rarity.SPECIAL, mage.cards.s.ScytheLeopard.class)); + cards.add(new SetCardInfo("Seeker of the Way", 130, Rarity.SPECIAL, mage.cards.s.SeekerOfTheWay.class)); + cards.add(new SetCardInfo("Serra Avatar", 48, Rarity.MYTHIC, mage.cards.s.SerraAvatar.class)); + cards.add(new SetCardInfo("Shamanic Revelation", 105, Rarity.SPECIAL, mage.cards.s.ShamanicRevelation.class)); + cards.add(new SetCardInfo("Siege Rhino", 133, Rarity.SPECIAL, mage.cards.s.SiegeRhino.class)); + cards.add(new SetCardInfo("Silverblade Paladin", 44, Rarity.RARE, mage.cards.s.SilverbladePaladin.class)); + cards.add(new SetCardInfo("Silver Drake", 13, Rarity.SPECIAL, mage.cards.s.SilverDrake.class)); + cards.add(new SetCardInfo("Skyship Stalker", 162, Rarity.RARE, mage.cards.s.SkyshipStalker.class)); + cards.add(new SetCardInfo("Soul of Ravnica", 87, Rarity.MYTHIC, mage.cards.s.SoulOfRavnica.class)); + cards.add(new SetCardInfo("Soul of Zendikar", 88, Rarity.MYTHIC, mage.cards.s.SoulOfZendikar.class)); + cards.add(new SetCardInfo("Soul Swallower", 153, Rarity.RARE, mage.cards.s.SoulSwallower.class)); + cards.add(new SetCardInfo("Spined Wurm", 11, Rarity.SPECIAL, mage.cards.s.SpinedWurm.class)); + cards.add(new SetCardInfo("Standstill", 57, Rarity.UNCOMMON, mage.cards.s.Standstill.class)); + cards.add(new SetCardInfo("Stealer of Secrets", 89, Rarity.COMMON, mage.cards.s.StealerOfSecrets.class)); + cards.add(new SetCardInfo("Steward of Valeron", 21, Rarity.COMMON, mage.cards.s.StewardOfValeron.class)); + cards.add(new SetCardInfo("Sultai Charm", 117, Rarity.SPECIAL, mage.cards.s.SultaiCharm.class)); + cards.add(new SetCardInfo("Sunblast Angel", 47, Rarity.RARE, mage.cards.s.SunblastAngel.class)); + cards.add(new SetCardInfo("Supreme Verdict", 56, Rarity.RARE, mage.cards.s.SupremeVerdict.class)); + cards.add(new SetCardInfo("Surgical Extraction", 33, Rarity.RARE, mage.cards.s.SurgicalExtraction.class)); + cards.add(new SetCardInfo("Sylvan Caryatid", 77, Rarity.RARE, mage.cards.s.SylvanCaryatid.class)); + cards.add(new SetCardInfo("Temur War Shaman", 111, Rarity.SPECIAL, mage.cards.t.TemurWarShaman.class)); + cards.add(new SetCardInfo("Terastodon", 52, Rarity.RARE, mage.cards.t.Terastodon.class)); + cards.add(new SetCardInfo("Thalia, Heretic Cathar", 156, Rarity.RARE, mage.cards.t.ThaliaHereticCathar.class)); + cards.add(new SetCardInfo("Treasure Hunt", 38, Rarity.COMMON, mage.cards.t.TreasureHunt.class)); + cards.add(new SetCardInfo("Turnabout", 60, Rarity.UNCOMMON, mage.cards.t.Turnabout.class)); + cards.add(new SetCardInfo("Tyrant of Valakut", 146, Rarity.RARE, mage.cards.t.TyrantOfValakut.class)); + cards.add(new SetCardInfo("Ulvenwald Observer", 161, Rarity.RARE, mage.cards.u.UlvenwaldObserver.class)); + cards.add(new SetCardInfo("Valorous Stance", 131, Rarity.SPECIAL, mage.cards.v.ValorousStance.class)); + cards.add(new SetCardInfo("Vampire Nocturnus", 50, Rarity.MYTHIC, mage.cards.v.VampireNocturnus.class)); + cards.add(new SetCardInfo("Voidmage Husher", 62, Rarity.SPECIAL, mage.cards.v.VoidmageHusher.class)); + cards.add(new SetCardInfo("Warmonger", 12, Rarity.SPECIAL, mage.cards.w.Warmonger.class)); + cards.add(new SetCardInfo("Wash Out", 82, Rarity.UNCOMMON, mage.cards.w.WashOut.class)); + cards.add(new SetCardInfo("Windseeker Centaur", 7, Rarity.SPECIAL, mage.cards.w.WindseekerCentaur.class)); + cards.add(new SetCardInfo("Xathrid Necromancer", 91, Rarity.SPECIAL, mage.cards.x.XathridNecromancer.class)); + } +} diff --git a/Mage.Sets/src/mage/sets/MercadianMasques.java b/Mage.Sets/src/mage/sets/MercadianMasques.java index 2a41ed9a488..cbde16664ef 100644 --- a/Mage.Sets/src/mage/sets/MercadianMasques.java +++ b/Mage.Sets/src/mage/sets/MercadianMasques.java @@ -1,323 +1,324 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ -package mage.sets; - -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; - -/** - * - * @author North - */ -public class MercadianMasques extends ExpansionSet { - - private static final MercadianMasques instance = new MercadianMasques(); - - public static MercadianMasques getInstance() { - return instance; - } - - private MercadianMasques() { - super("Mercadian Masques", "MMQ", ExpansionSet.buildDate(1999, 8, 25), SetType.EXPANSION); - this.blockName = "Masques"; - this.hasBoosters = true; - this.numBoosterLands = 0; - this.numBoosterCommon = 11; - this.numBoosterUncommon = 3; - this.numBoosterRare = 1; - this.ratioBoosterMythic = 0; - cards.add(new SetCardInfo("Afterlife", 1, Rarity.UNCOMMON, mage.cards.a.Afterlife.class)); - cards.add(new SetCardInfo("Alabaster Wall", 2, Rarity.COMMON, mage.cards.a.AlabasterWall.class)); - cards.add(new SetCardInfo("Alley Grifters", 115, Rarity.COMMON, mage.cards.a.AlleyGrifters.class)); - cards.add(new SetCardInfo("Ancestral Mask", 229, Rarity.COMMON, mage.cards.a.AncestralMask.class)); - cards.add(new SetCardInfo("Armistice", 3, Rarity.RARE, mage.cards.a.Armistice.class)); - cards.add(new SetCardInfo("Arms Dealer", 172, Rarity.UNCOMMON, mage.cards.a.ArmsDealer.class)); - cards.add(new SetCardInfo("Arrest", 4, Rarity.UNCOMMON, mage.cards.a.Arrest.class)); - cards.add(new SetCardInfo("Ballista Squad", 5, Rarity.UNCOMMON, mage.cards.b.BallistaSquad.class)); - cards.add(new SetCardInfo("Balloon Peddler", 59, Rarity.COMMON, mage.cards.b.BalloonPeddler.class)); - cards.add(new SetCardInfo("Battle Rampart", 173, Rarity.COMMON, mage.cards.b.BattleRampart.class)); - cards.add(new SetCardInfo("Battle Squadron", 174, Rarity.RARE, mage.cards.b.BattleSquadron.class)); - cards.add(new SetCardInfo("Black Market", 116, Rarity.RARE, mage.cards.b.BlackMarket.class)); - cards.add(new SetCardInfo("Blaster Mage", 175, Rarity.COMMON, mage.cards.b.BlasterMage.class)); - cards.add(new SetCardInfo("Blockade Runner", 60, Rarity.COMMON, mage.cards.b.BlockadeRunner.class)); - cards.add(new SetCardInfo("Bog Smugglers", 117, Rarity.COMMON, mage.cards.b.BogSmugglers.class)); - cards.add(new SetCardInfo("Bog Witch", 118, Rarity.COMMON, mage.cards.b.BogWitch.class)); - cards.add(new SetCardInfo("Brainstorm", 61, Rarity.COMMON, mage.cards.b.Brainstorm.class)); - cards.add(new SetCardInfo("Bribery", 62, Rarity.RARE, mage.cards.b.Bribery.class)); - cards.add(new SetCardInfo("Buoyancy", 63, Rarity.COMMON, mage.cards.b.Buoyancy.class)); - cards.add(new SetCardInfo("Cackling Witch", 119, Rarity.UNCOMMON, mage.cards.c.CacklingWitch.class)); - cards.add(new SetCardInfo("Cateran Brute", 120, Rarity.COMMON, mage.cards.c.CateranBrute.class)); - cards.add(new SetCardInfo("Cateran Enforcer", 121, Rarity.UNCOMMON, mage.cards.c.CateranEnforcer.class)); - cards.add(new SetCardInfo("Cateran Kidnappers", 122, Rarity.UNCOMMON, mage.cards.c.CateranKidnappers.class)); - cards.add(new SetCardInfo("Cateran Overlord", 123, Rarity.RARE, mage.cards.c.CateranOverlord.class)); - cards.add(new SetCardInfo("Cateran Persuader", 124, Rarity.COMMON, mage.cards.c.CateranPersuader.class)); - cards.add(new SetCardInfo("Cateran Slaver", 125, Rarity.RARE, mage.cards.c.CateranSlaver.class)); - cards.add(new SetCardInfo("Cateran Summons", 126, Rarity.UNCOMMON, mage.cards.c.CateranSummons.class)); - cards.add(new SetCardInfo("Caustic Wasps", 234, Rarity.UNCOMMON, mage.cards.c.CausticWasps.class)); - cards.add(new SetCardInfo("Cave-In", 180, Rarity.RARE, mage.cards.c.CaveIn.class)); - cards.add(new SetCardInfo("Cavern Crawler", 181, Rarity.COMMON, mage.cards.c.CavernCrawler.class)); - cards.add(new SetCardInfo("Cave Sense", 179, Rarity.COMMON, mage.cards.c.CaveSense.class)); - cards.add(new SetCardInfo("Chambered Nautilus", 64, Rarity.UNCOMMON, mage.cards.c.ChamberedNautilus.class)); - cards.add(new SetCardInfo("Cho-Arrim Alchemist", 8, Rarity.RARE, mage.cards.c.ChoArrimAlchemist.class)); - cards.add(new SetCardInfo("Cho-Arrim Bruiser", 9, Rarity.RARE, mage.cards.c.ChoArrimBruiser.class)); - cards.add(new SetCardInfo("Cho-Arrim Legate", 10, Rarity.UNCOMMON, mage.cards.c.ChoArrimLegate.class)); - cards.add(new SetCardInfo("Cho-Manno, Revolutionary", 11, Rarity.RARE, mage.cards.c.ChoMannoRevolutionary.class)); - cards.add(new SetCardInfo("Cho-Manno's Blessing", 12, Rarity.COMMON, mage.cards.c.ChoMannosBlessing.class)); - cards.add(new SetCardInfo("Cinder Elemental", 183, Rarity.UNCOMMON, mage.cards.c.CinderElemental.class)); - cards.add(new SetCardInfo("Close Quarters", 184, Rarity.UNCOMMON, mage.cards.c.CloseQuarters.class)); - cards.add(new SetCardInfo("Cloud Sprite", 67, Rarity.COMMON, mage.cards.c.CloudSprite.class)); - cards.add(new SetCardInfo("Coastal Piracy", 68, Rarity.UNCOMMON, mage.cards.c.CoastalPiracy.class)); - cards.add(new SetCardInfo("Collective Unconscious", 236, Rarity.RARE, mage.cards.c.CollectiveUnconscious.class)); - cards.add(new SetCardInfo("Conspiracy", 127, Rarity.RARE, mage.cards.c.Conspiracy.class)); - cards.add(new SetCardInfo("Corrupt Official", 128, Rarity.RARE, mage.cards.c.CorruptOfficial.class)); - cards.add(new SetCardInfo("Counterspell", 69, Rarity.COMMON, mage.cards.c.Counterspell.class)); - cards.add(new SetCardInfo("Cowardice", 70, Rarity.RARE, mage.cards.c.Cowardice.class)); - cards.add(new SetCardInfo("Crackdown", 15, Rarity.RARE, mage.cards.c.Crackdown.class)); - cards.add(new SetCardInfo("Crash", 186, Rarity.COMMON, mage.cards.c.Crash.class)); - cards.add(new SetCardInfo("Crenellated Wall", 290, Rarity.UNCOMMON, mage.cards.c.CrenellatedWall.class)); - cards.add(new SetCardInfo("Crossbow Infantry", 16, Rarity.COMMON, mage.cards.c.CrossbowInfantry.class)); - cards.add(new SetCardInfo("Crumbling Sanctuary", 292, Rarity.RARE, mage.cards.c.CrumblingSanctuary.class)); - cards.add(new SetCardInfo("Dark Ritual", 129, Rarity.COMMON, mage.cards.d.DarkRitual.class)); - cards.add(new SetCardInfo("Darting Merfolk", 72, Rarity.COMMON, mage.cards.d.DartingMerfolk.class)); - cards.add(new SetCardInfo("Dawnstrider", 237, Rarity.RARE, mage.cards.d.Dawnstrider.class)); - cards.add(new SetCardInfo("Deadly Insect", 238, Rarity.COMMON, mage.cards.d.DeadlyInsect.class)); - cards.add(new SetCardInfo("Deathgazer", 130, Rarity.UNCOMMON, mage.cards.d.Deathgazer.class)); - cards.add(new SetCardInfo("Deepwood Drummer", 239, Rarity.COMMON, mage.cards.d.DeepwoodDrummer.class)); - cards.add(new SetCardInfo("Deepwood Ghoul", 131, Rarity.COMMON, mage.cards.d.DeepwoodGhoul.class)); - cards.add(new SetCardInfo("Deepwood Legate", 132, Rarity.UNCOMMON, mage.cards.d.DeepwoodLegate.class)); - cards.add(new SetCardInfo("Deepwood Tantiv", 241, Rarity.UNCOMMON, mage.cards.d.DeepwoodTantiv.class)); - cards.add(new SetCardInfo("Deepwood Wolverine", 242, Rarity.COMMON, mage.cards.d.DeepwoodWolverine.class)); - cards.add(new SetCardInfo("Dehydration", 73, Rarity.COMMON, mage.cards.d.Dehydration.class)); - cards.add(new SetCardInfo("Desert Twister", 243, Rarity.UNCOMMON, mage.cards.d.DesertTwister.class)); - cards.add(new SetCardInfo("Devout Witness", 17, Rarity.COMMON, mage.cards.d.DevoutWitness.class)); - cards.add(new SetCardInfo("Diplomatic Escort", 74, Rarity.UNCOMMON, mage.cards.d.DiplomaticEscort.class)); - cards.add(new SetCardInfo("Diplomatic Immunity", 75, Rarity.COMMON, mage.cards.d.DiplomaticImmunity.class)); - cards.add(new SetCardInfo("Disenchant", 18, Rarity.COMMON, mage.cards.d.Disenchant.class)); - cards.add(new SetCardInfo("Distorting Lens", 293, Rarity.RARE, mage.cards.d.DistortingLens.class)); - cards.add(new SetCardInfo("Drake Hatchling", 76, Rarity.COMMON, mage.cards.d.DrakeHatchling.class)); - cards.add(new SetCardInfo("Dust Bowl", 316, Rarity.RARE, mage.cards.d.DustBowl.class)); - cards.add(new SetCardInfo("Embargo", 77, Rarity.RARE, mage.cards.e.Embargo.class)); - cards.add(new SetCardInfo("Energy Flux", 78, Rarity.UNCOMMON, mage.cards.e.EnergyFlux.class)); - cards.add(new SetCardInfo("Eye of Ramos", 294, Rarity.RARE, mage.cards.e.EyeOfRamos.class)); - cards.add(new SetCardInfo("False Demise", 80, Rarity.UNCOMMON, mage.cards.f.FalseDemise.class)); - cards.add(new SetCardInfo("Flailing Manticore", 187, Rarity.RARE, mage.cards.f.FlailingManticore.class)); - cards.add(new SetCardInfo("Flailing Ogre", 188, Rarity.UNCOMMON, mage.cards.f.FlailingOgre.class)); - cards.add(new SetCardInfo("Flailing Soldier", 189, Rarity.COMMON, mage.cards.f.FlailingSoldier.class)); - cards.add(new SetCardInfo("Food Chain", 246, Rarity.RARE, mage.cards.f.FoodChain.class)); - cards.add(new SetCardInfo("Forced March", 136, Rarity.RARE, mage.cards.f.ForcedMarch.class)); - cards.add(new SetCardInfo("Forest", 347, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Forest", 348, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Forest", 349, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Forest", 350, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Foster", 247, Rarity.RARE, mage.cards.f.Foster.class)); - cards.add(new SetCardInfo("Fountain of Cho", 317, Rarity.UNCOMMON, mage.cards.f.FountainOfCho.class)); - cards.add(new SetCardInfo("Fountain Watch", 19, Rarity.RARE, mage.cards.f.FountainWatch.class)); - cards.add(new SetCardInfo("Fresh Volunteers", 20, Rarity.COMMON, mage.cards.f.FreshVolunteers.class)); - cards.add(new SetCardInfo("Furious Assault", 191, Rarity.COMMON, mage.cards.f.FuriousAssault.class)); - cards.add(new SetCardInfo("Gerrard's Irregulars", 192, Rarity.COMMON, mage.cards.g.GerrardsIrregulars.class)); - cards.add(new SetCardInfo("Ghoul's Feast", 137, Rarity.UNCOMMON, mage.cards.g.GhoulsFeast.class)); - cards.add(new SetCardInfo("Giant Caterpillar", 249, Rarity.COMMON, mage.cards.g.GiantCaterpillar.class)); - cards.add(new SetCardInfo("Groundskeeper", 250, Rarity.UNCOMMON, mage.cards.g.Groundskeeper.class)); - cards.add(new SetCardInfo("Gush", 82, Rarity.COMMON, mage.cards.g.Gush.class)); - cards.add(new SetCardInfo("Hammer Mage", 193, Rarity.UNCOMMON, mage.cards.h.HammerMage.class)); - cards.add(new SetCardInfo("Haunted Crossroads", 138, Rarity.UNCOMMON, mage.cards.h.HauntedCrossroads.class)); - cards.add(new SetCardInfo("Heart of Ramos", 296, Rarity.RARE, mage.cards.h.HeartOfRamos.class)); - cards.add(new SetCardInfo("Henge Guardian", 297, Rarity.UNCOMMON, mage.cards.h.HengeGuardian.class)); - cards.add(new SetCardInfo("Henge of Ramos", 318, Rarity.UNCOMMON, mage.cards.h.HengeOfRamos.class)); - cards.add(new SetCardInfo("Hickory Woodlot", 319, Rarity.COMMON, mage.cards.h.HickoryWoodlot.class)); - cards.add(new SetCardInfo("High Market", 320, Rarity.RARE, mage.cards.h.HighMarket.class)); - cards.add(new SetCardInfo("High Seas", 83, Rarity.UNCOMMON, mage.cards.h.HighSeas.class)); - cards.add(new SetCardInfo("Highway Robber", 139, Rarity.COMMON, mage.cards.h.HighwayRobber.class)); - cards.add(new SetCardInfo("Hoodwink", 84, Rarity.COMMON, mage.cards.h.Hoodwink.class)); - cards.add(new SetCardInfo("Horned Troll", 251, Rarity.COMMON, mage.cards.h.HornedTroll.class)); - cards.add(new SetCardInfo("Horn of Plenty", 298, Rarity.RARE, mage.cards.h.HornOfPlenty.class)); - cards.add(new SetCardInfo("Horn of Ramos", 299, Rarity.RARE, mage.cards.h.HornOfRamos.class)); - cards.add(new SetCardInfo("Howling Wolf", 252, Rarity.COMMON, mage.cards.h.HowlingWolf.class)); - cards.add(new SetCardInfo("Hunted Wumpus", 253, Rarity.UNCOMMON, mage.cards.h.HuntedWumpus.class)); - cards.add(new SetCardInfo("Ignoble Soldier", 22, Rarity.UNCOMMON, mage.cards.i.IgnobleSoldier.class)); - cards.add(new SetCardInfo("Instigator", 140, Rarity.RARE, mage.cards.i.Instigator.class)); - cards.add(new SetCardInfo("Intimidation", 142, Rarity.UNCOMMON, mage.cards.i.Intimidation.class)); - cards.add(new SetCardInfo("Invigorate", 254, Rarity.COMMON, mage.cards.i.Invigorate.class)); - cards.add(new SetCardInfo("Iron Lance", 300, Rarity.UNCOMMON, mage.cards.i.IronLance.class)); - cards.add(new SetCardInfo("Island", 335, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Island", 336, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Island", 337, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Island", 338, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Ivory Mask", 24, Rarity.RARE, mage.cards.i.IvoryMask.class)); - cards.add(new SetCardInfo("Jhovall Queen", 25, Rarity.RARE, mage.cards.j.JhovallQueen.class)); - cards.add(new SetCardInfo("Jhovall Rider", 26, Rarity.UNCOMMON, mage.cards.j.JhovallRider.class)); - cards.add(new SetCardInfo("Kris Mage", 195, Rarity.COMMON, mage.cards.k.KrisMage.class)); - cards.add(new SetCardInfo("Kyren Glider", 196, Rarity.COMMON, mage.cards.k.KyrenGlider.class)); - cards.add(new SetCardInfo("Kyren Legate", 197, Rarity.UNCOMMON, mage.cards.k.KyrenLegate.class)); - cards.add(new SetCardInfo("Kyren Sniper", 199, Rarity.COMMON, mage.cards.k.KyrenSniper.class)); - cards.add(new SetCardInfo("Kyren Toy", 303, Rarity.RARE, mage.cards.k.KyrenToy.class)); - cards.add(new SetCardInfo("Land Grant", 255, Rarity.COMMON, mage.cards.l.LandGrant.class)); - cards.add(new SetCardInfo("Larceny", 143, Rarity.UNCOMMON, mage.cards.l.Larceny.class)); - cards.add(new SetCardInfo("Last Breath", 27, Rarity.UNCOMMON, mage.cards.l.LastBreath.class)); - cards.add(new SetCardInfo("Lava Runner", 200, Rarity.RARE, mage.cards.l.LavaRunner.class)); - cards.add(new SetCardInfo("Lightning Hounds", 201, Rarity.COMMON, mage.cards.l.LightningHounds.class)); - cards.add(new SetCardInfo("Lithophage", 202, Rarity.RARE, mage.cards.l.Lithophage.class)); - cards.add(new SetCardInfo("Lumbering Satyr", 257, Rarity.UNCOMMON, mage.cards.l.LumberingSatyr.class)); - cards.add(new SetCardInfo("Lunge", 203, Rarity.COMMON, mage.cards.l.Lunge.class)); - cards.add(new SetCardInfo("Lure", 258, Rarity.UNCOMMON, mage.cards.l.Lure.class)); - cards.add(new SetCardInfo("Maggot Therapy", 145, Rarity.COMMON, mage.cards.m.MaggotTherapy.class)); - cards.add(new SetCardInfo("Magistrate's Scepter", 304, Rarity.RARE, mage.cards.m.MagistratesScepter.class)); - cards.add(new SetCardInfo("Magistrate's Veto", 204, Rarity.UNCOMMON, mage.cards.m.MagistratesVeto.class)); - cards.add(new SetCardInfo("Mercadian Bazaar", 321, Rarity.UNCOMMON, mage.cards.m.MercadianBazaar.class)); - cards.add(new SetCardInfo("Midnight Ritual", 146, Rarity.RARE, mage.cards.m.MidnightRitual.class)); - cards.add(new SetCardInfo("Misdirection", 87, Rarity.RARE, mage.cards.m.Misdirection.class)); - cards.add(new SetCardInfo("Misshapen Fiend", 147, Rarity.COMMON, mage.cards.m.MisshapenFiend.class)); - cards.add(new SetCardInfo("Misstep", 88, Rarity.COMMON, mage.cards.m.Misstep.class)); - cards.add(new SetCardInfo("Molting Harpy", 148, Rarity.UNCOMMON, mage.cards.m.MoltingHarpy.class)); - cards.add(new SetCardInfo("Moment of Silence", 28, Rarity.COMMON, mage.cards.m.MomentOfSilence.class)); - cards.add(new SetCardInfo("Monkey Cage", 307, Rarity.RARE, mage.cards.m.MonkeyCage.class)); - cards.add(new SetCardInfo("Moonlit Wake", 29, Rarity.UNCOMMON, mage.cards.m.MoonlitWake.class)); - cards.add(new SetCardInfo("Mountain", 343, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Mountain", 344, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Mountain", 345, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Mountain", 346, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Muzzle", 30, Rarity.COMMON, mage.cards.m.Muzzle.class)); - cards.add(new SetCardInfo("Natural Affinity", 260, Rarity.RARE, mage.cards.n.NaturalAffinity.class)); - cards.add(new SetCardInfo("Nether Spirit", 149, Rarity.RARE, mage.cards.n.NetherSpirit.class)); - cards.add(new SetCardInfo("Nightwind Glider", 31, Rarity.COMMON, mage.cards.n.NightwindGlider.class)); - cards.add(new SetCardInfo("Noble Purpose", 32, Rarity.UNCOMMON, mage.cards.n.NoblePurpose.class)); - cards.add(new SetCardInfo("Notorious Assassin", 150, Rarity.RARE, mage.cards.n.NotoriousAssassin.class)); - cards.add(new SetCardInfo("Ogre Taskmaster", 206, Rarity.UNCOMMON, mage.cards.o.OgreTaskmaster.class)); - cards.add(new SetCardInfo("Overtaker", 89, Rarity.RARE, mage.cards.o.Overtaker.class)); - cards.add(new SetCardInfo("Pangosaur", 261, Rarity.RARE, mage.cards.p.Pangosaur.class)); - cards.add(new SetCardInfo("Peat Bog", 322, Rarity.COMMON, mage.cards.p.PeatBog.class)); - cards.add(new SetCardInfo("Pious Warrior", 34, Rarity.COMMON, mage.cards.p.PiousWarrior.class)); - cards.add(new SetCardInfo("Plains", 331, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Plains", 332, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Plains", 333, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Plains", 334, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Power Matrix", 309, Rarity.RARE, mage.cards.p.PowerMatrix.class)); - cards.add(new SetCardInfo("Primeval Shambler", 152, Rarity.UNCOMMON, mage.cards.p.PrimevalShambler.class)); - cards.add(new SetCardInfo("Pulverize", 207, Rarity.RARE, mage.cards.p.Pulverize.class)); - cards.add(new SetCardInfo("Puppet's Verdict", 208, Rarity.RARE, mage.cards.p.PuppetsVerdict.class)); - cards.add(new SetCardInfo("Quagmire Lamprey", 154, Rarity.UNCOMMON, mage.cards.q.QuagmireLamprey.class)); - cards.add(new SetCardInfo("Rain of Tears", 155, Rarity.UNCOMMON, mage.cards.r.RainOfTears.class)); - cards.add(new SetCardInfo("Ramosian Captain", 35, Rarity.UNCOMMON, mage.cards.r.RamosianCaptain.class)); - cards.add(new SetCardInfo("Ramosian Commander", 36, Rarity.UNCOMMON, mage.cards.r.RamosianCommander.class)); - cards.add(new SetCardInfo("Ramosian Lieutenant", 37, Rarity.COMMON, mage.cards.r.RamosianLieutenant.class)); - cards.add(new SetCardInfo("Ramosian Rally", 38, Rarity.COMMON, mage.cards.r.RamosianRally.class)); - cards.add(new SetCardInfo("Ramosian Sergeant", 39, Rarity.COMMON, mage.cards.r.RamosianSergeant.class)); - cards.add(new SetCardInfo("Ramosian Sky Marshal", 40, Rarity.RARE, mage.cards.r.RamosianSkyMarshal.class)); - cards.add(new SetCardInfo("Rampart Crawler", 156, Rarity.COMMON, mage.cards.r.RampartCrawler.class)); - cards.add(new SetCardInfo("Rappelling Scouts", 41, Rarity.RARE, mage.cards.r.RappellingScouts.class)); - cards.add(new SetCardInfo("Remote Farm", 323, Rarity.COMMON, mage.cards.r.RemoteFarm.class)); - cards.add(new SetCardInfo("Revive", 262, Rarity.UNCOMMON, mage.cards.r.Revive.class)); - cards.add(new SetCardInfo("Righteous Aura", 45, Rarity.UNCOMMON, mage.cards.r.RighteousAura.class)); - cards.add(new SetCardInfo("Rishadan Airship", 91, Rarity.COMMON, mage.cards.r.RishadanAirship.class)); - cards.add(new SetCardInfo("Rishadan Brigand", 92, Rarity.RARE, mage.cards.r.RishadanBrigand.class)); - cards.add(new SetCardInfo("Rishadan Cutpurse", 93, Rarity.COMMON, mage.cards.r.RishadanCutpurse.class)); - cards.add(new SetCardInfo("Rishadan Footpad", 94, Rarity.UNCOMMON, mage.cards.r.RishadanFootpad.class)); - cards.add(new SetCardInfo("Rishadan Port", 324, Rarity.RARE, mage.cards.r.RishadanPort.class)); - cards.add(new SetCardInfo("Rock Badger", 210, Rarity.UNCOMMON, mage.cards.r.RockBadger.class)); - cards.add(new SetCardInfo("Rushwood Dryad", 263, Rarity.COMMON, mage.cards.r.RushwoodDryad.class)); - cards.add(new SetCardInfo("Rushwood Elemental", 264, Rarity.RARE, mage.cards.r.RushwoodElemental.class)); - cards.add(new SetCardInfo("Rushwood Grove", 325, Rarity.UNCOMMON, mage.cards.r.RushwoodGrove.class)); - cards.add(new SetCardInfo("Rushwood Herbalist", 265, Rarity.COMMON, mage.cards.r.RushwoodHerbalist.class)); - cards.add(new SetCardInfo("Rushwood Legate", 266, Rarity.UNCOMMON, mage.cards.r.RushwoodLegate.class)); - cards.add(new SetCardInfo("Saber Ants", 267, Rarity.UNCOMMON, mage.cards.s.SaberAnts.class)); - cards.add(new SetCardInfo("Sacred Prey", 268, Rarity.COMMON, mage.cards.s.SacredPrey.class)); - cards.add(new SetCardInfo("Sand Squid", 96, Rarity.RARE, mage.cards.s.SandSquid.class)); - cards.add(new SetCardInfo("Sandstone Needle", 326, Rarity.COMMON, mage.cards.s.SandstoneNeedle.class)); - cards.add(new SetCardInfo("Saprazzan Cove", 327, Rarity.UNCOMMON, mage.cards.s.SaprazzanCove.class)); - cards.add(new SetCardInfo("Saprazzan Heir", 99, Rarity.RARE, mage.cards.s.SaprazzanHeir.class)); - cards.add(new SetCardInfo("Saprazzan Legate", 100, Rarity.UNCOMMON, mage.cards.s.SaprazzanLegate.class)); - cards.add(new SetCardInfo("Saprazzan Raider", 102, Rarity.COMMON, mage.cards.s.SaprazzanRaider.class)); - cards.add(new SetCardInfo("Saprazzan Skerry", 328, Rarity.COMMON, mage.cards.s.SaprazzanSkerry.class)); - cards.add(new SetCardInfo("Seismic Mage", 211, Rarity.RARE, mage.cards.s.SeismicMage.class)); - cards.add(new SetCardInfo("Sever Soul", 159, Rarity.COMMON, mage.cards.s.SeverSoul.class)); - cards.add(new SetCardInfo("Shock Troops", 212, Rarity.COMMON, mage.cards.s.ShockTroops.class)); - cards.add(new SetCardInfo("Silverglade Elemental", 269, Rarity.COMMON, mage.cards.s.SilvergladeElemental.class)); - cards.add(new SetCardInfo("Silverglade Pathfinder", 270, Rarity.UNCOMMON, mage.cards.s.SilvergladePathfinder.class)); - cards.add(new SetCardInfo("Sizzle", 213, Rarity.COMMON, mage.cards.s.Sizzle.class)); - cards.add(new SetCardInfo("Skulking Fugitive", 161, Rarity.COMMON, mage.cards.s.SkulkingFugitive.class)); - cards.add(new SetCardInfo("Skull of Ramos", 312, Rarity.RARE, mage.cards.s.SkullOfRamos.class)); - cards.add(new SetCardInfo("Snake Pit", 271, Rarity.UNCOMMON, mage.cards.s.SnakePit.class)); - cards.add(new SetCardInfo("Snorting Gahr", 272, Rarity.COMMON, mage.cards.s.SnortingGahr.class)); - cards.add(new SetCardInfo("Snuff Out", 162, Rarity.COMMON, mage.cards.s.SnuffOut.class)); - cards.add(new SetCardInfo("Soothing Balm", 48, Rarity.COMMON, mage.cards.s.SoothingBalm.class)); - cards.add(new SetCardInfo("Soothsaying", 104, Rarity.UNCOMMON, mage.cards.s.Soothsaying.class)); - cards.add(new SetCardInfo("Soul Channeling", 163, Rarity.COMMON, mage.cards.s.SoulChanneling.class)); - cards.add(new SetCardInfo("Specter's Wail", 164, Rarity.COMMON, mage.cards.s.SpectersWail.class)); - cards.add(new SetCardInfo("Spidersilk Armor", 273, Rarity.COMMON, mage.cards.s.SpidersilkArmor.class)); - cards.add(new SetCardInfo("Spontaneous Generation", 274, Rarity.RARE, mage.cards.s.SpontaneousGeneration.class)); - cards.add(new SetCardInfo("Squall", 275, Rarity.COMMON, mage.cards.s.Squall.class)); - cards.add(new SetCardInfo("Squallmonger", 276, Rarity.UNCOMMON, mage.cards.s.Squallmonger.class)); - cards.add(new SetCardInfo("Squee, Goblin Nabob", 214, Rarity.RARE, mage.cards.s.SqueeGoblinNabob.class)); - cards.add(new SetCardInfo("Squeeze", 105, Rarity.RARE, mage.cards.s.Squeeze.class)); - cards.add(new SetCardInfo("Statecraft", 106, Rarity.RARE, mage.cards.s.Statecraft.class)); - cards.add(new SetCardInfo("Steadfast Guard", 50, Rarity.COMMON, mage.cards.s.SteadfastGuard.class)); - cards.add(new SetCardInfo("Stinging Barrier", 107, Rarity.COMMON, mage.cards.s.StingingBarrier.class)); - cards.add(new SetCardInfo("Stone Rain", 215, Rarity.COMMON, mage.cards.s.StoneRain.class)); - cards.add(new SetCardInfo("Story Circle", 51, Rarity.UNCOMMON, mage.cards.s.StoryCircle.class)); - cards.add(new SetCardInfo("Strongarm Thug", 165, Rarity.COMMON, mage.cards.s.StrongarmThug.class)); - cards.add(new SetCardInfo("Subterranean Hangar", 329, Rarity.UNCOMMON, mage.cards.s.SubterraneanHangar.class)); - cards.add(new SetCardInfo("Sustenance", 278, Rarity.UNCOMMON, mage.cards.s.Sustenance.class)); - cards.add(new SetCardInfo("Swamp", 339, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Swamp", 340, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Swamp", 341, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Swamp", 342, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); - cards.add(new SetCardInfo("Task Force", 52, Rarity.COMMON, mage.cards.t.TaskForce.class)); - cards.add(new SetCardInfo("Tectonic Break", 216, Rarity.RARE, mage.cards.t.TectonicBreak.class)); - cards.add(new SetCardInfo("Territorial Dispute", 217, Rarity.RARE, mage.cards.t.TerritorialDispute.class)); - cards.add(new SetCardInfo("Thermal Glider", 53, Rarity.COMMON, mage.cards.t.ThermalGlider.class)); - cards.add(new SetCardInfo("Thieves' Auction", 218, Rarity.RARE, mage.cards.t.ThievesAuction.class)); - cards.add(new SetCardInfo("Thrashing Wumpus", 166, Rarity.RARE, mage.cards.t.ThrashingWumpus.class)); - cards.add(new SetCardInfo("Thwart", 108, Rarity.UNCOMMON, mage.cards.t.Thwart.class)); - cards.add(new SetCardInfo("Tidal Bore", 109, Rarity.COMMON, mage.cards.t.TidalBore.class)); - cards.add(new SetCardInfo("Tidal Kraken", 110, Rarity.RARE, mage.cards.t.TidalKraken.class)); - cards.add(new SetCardInfo("Tiger Claws", 279, Rarity.COMMON, mage.cards.t.TigerClaws.class)); - cards.add(new SetCardInfo("Tonic Peddler", 54, Rarity.UNCOMMON, mage.cards.t.TonicPeddler.class)); - cards.add(new SetCardInfo("Tooth of Ramos", 313, Rarity.RARE, mage.cards.t.ToothOfRamos.class)); - cards.add(new SetCardInfo("Tower of the Magistrate", 330, Rarity.RARE, mage.cards.t.TowerOfTheMagistrate.class)); - cards.add(new SetCardInfo("Trade Routes", 112, Rarity.RARE, mage.cards.t.TradeRoutes.class)); - cards.add(new SetCardInfo("Tranquility", 280, Rarity.COMMON, mage.cards.t.Tranquility.class)); - cards.add(new SetCardInfo("Tremor", 220, Rarity.COMMON, mage.cards.t.Tremor.class)); - cards.add(new SetCardInfo("Two-Headed Dragon", 221, Rarity.RARE, mage.cards.t.TwoHeadedDragon.class)); - cards.add(new SetCardInfo("Undertaker", 167, Rarity.COMMON, mage.cards.u.Undertaker.class)); - cards.add(new SetCardInfo("Unmask", 168, Rarity.RARE, mage.cards.u.Unmask.class)); - cards.add(new SetCardInfo("Vendetta", 170, Rarity.COMMON, mage.cards.v.Vendetta.class)); - cards.add(new SetCardInfo("Venomous Dragonfly", 282, Rarity.COMMON, mage.cards.v.VenomousDragonfly.class)); - cards.add(new SetCardInfo("Vernal Equinox", 283, Rarity.RARE, mage.cards.v.VernalEquinox.class)); - cards.add(new SetCardInfo("Vine Dryad", 284, Rarity.RARE, mage.cards.v.VineDryad.class)); - cards.add(new SetCardInfo("Vine Trellis", 285, Rarity.COMMON, mage.cards.v.VineTrellis.class)); - cards.add(new SetCardInfo("War Cadence", 224, Rarity.UNCOMMON, mage.cards.w.WarCadence.class)); - cards.add(new SetCardInfo("War Tax", 113, Rarity.UNCOMMON, mage.cards.w.WarTax.class)); - cards.add(new SetCardInfo("Warmonger", 225, Rarity.UNCOMMON, mage.cards.w.Warmonger.class)); - cards.add(new SetCardInfo("Waterfront Bouncer", 114, Rarity.COMMON, mage.cards.w.WaterfrontBouncer.class)); - cards.add(new SetCardInfo("Wave of Reckoning", 56, Rarity.RARE, mage.cards.w.WaveOfReckoning.class)); - cards.add(new SetCardInfo("Wild Jhovall", 227, Rarity.COMMON, mage.cards.w.WildJhovall.class)); - cards.add(new SetCardInfo("Word of Blasting", 228, Rarity.UNCOMMON, mage.cards.w.WordOfBlasting.class)); - } -} +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets; + +import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; + +/** + * + * @author North + */ +public class MercadianMasques extends ExpansionSet { + + private static final MercadianMasques instance = new MercadianMasques(); + + public static MercadianMasques getInstance() { + return instance; + } + + private MercadianMasques() { + super("Mercadian Masques", "MMQ", ExpansionSet.buildDate(1999, 8, 25), SetType.EXPANSION); + this.blockName = "Masques"; + this.hasBoosters = true; + this.numBoosterLands = 0; + this.numBoosterCommon = 11; + this.numBoosterUncommon = 3; + this.numBoosterRare = 1; + this.ratioBoosterMythic = 0; + cards.add(new SetCardInfo("Afterlife", 1, Rarity.UNCOMMON, mage.cards.a.Afterlife.class)); + cards.add(new SetCardInfo("Alabaster Wall", 2, Rarity.COMMON, mage.cards.a.AlabasterWall.class)); + cards.add(new SetCardInfo("Alley Grifters", 115, Rarity.COMMON, mage.cards.a.AlleyGrifters.class)); + cards.add(new SetCardInfo("Ancestral Mask", 229, Rarity.COMMON, mage.cards.a.AncestralMask.class)); + cards.add(new SetCardInfo("Armistice", 3, Rarity.RARE, mage.cards.a.Armistice.class)); + cards.add(new SetCardInfo("Arms Dealer", 172, Rarity.UNCOMMON, mage.cards.a.ArmsDealer.class)); + cards.add(new SetCardInfo("Arrest", 4, Rarity.UNCOMMON, mage.cards.a.Arrest.class)); + cards.add(new SetCardInfo("Ballista Squad", 5, Rarity.UNCOMMON, mage.cards.b.BallistaSquad.class)); + cards.add(new SetCardInfo("Balloon Peddler", 59, Rarity.COMMON, mage.cards.b.BalloonPeddler.class)); + cards.add(new SetCardInfo("Battle Rampart", 173, Rarity.COMMON, mage.cards.b.BattleRampart.class)); + cards.add(new SetCardInfo("Battle Squadron", 174, Rarity.RARE, mage.cards.b.BattleSquadron.class)); + cards.add(new SetCardInfo("Black Market", 116, Rarity.RARE, mage.cards.b.BlackMarket.class)); + cards.add(new SetCardInfo("Blaster Mage", 175, Rarity.COMMON, mage.cards.b.BlasterMage.class)); + cards.add(new SetCardInfo("Blockade Runner", 60, Rarity.COMMON, mage.cards.b.BlockadeRunner.class)); + cards.add(new SetCardInfo("Bog Smugglers", 117, Rarity.COMMON, mage.cards.b.BogSmugglers.class)); + cards.add(new SetCardInfo("Bog Witch", 118, Rarity.COMMON, mage.cards.b.BogWitch.class)); + cards.add(new SetCardInfo("Brainstorm", 61, Rarity.COMMON, mage.cards.b.Brainstorm.class)); + cards.add(new SetCardInfo("Bribery", 62, Rarity.RARE, mage.cards.b.Bribery.class)); + cards.add(new SetCardInfo("Buoyancy", 63, Rarity.COMMON, mage.cards.b.Buoyancy.class)); + cards.add(new SetCardInfo("Cackling Witch", 119, Rarity.UNCOMMON, mage.cards.c.CacklingWitch.class)); + cards.add(new SetCardInfo("Cateran Brute", 120, Rarity.COMMON, mage.cards.c.CateranBrute.class)); + cards.add(new SetCardInfo("Cateran Enforcer", 121, Rarity.UNCOMMON, mage.cards.c.CateranEnforcer.class)); + cards.add(new SetCardInfo("Cateran Kidnappers", 122, Rarity.UNCOMMON, mage.cards.c.CateranKidnappers.class)); + cards.add(new SetCardInfo("Cateran Overlord", 123, Rarity.RARE, mage.cards.c.CateranOverlord.class)); + cards.add(new SetCardInfo("Cateran Persuader", 124, Rarity.COMMON, mage.cards.c.CateranPersuader.class)); + cards.add(new SetCardInfo("Cateran Slaver", 125, Rarity.RARE, mage.cards.c.CateranSlaver.class)); + cards.add(new SetCardInfo("Cateran Summons", 126, Rarity.UNCOMMON, mage.cards.c.CateranSummons.class)); + cards.add(new SetCardInfo("Caustic Wasps", 234, Rarity.UNCOMMON, mage.cards.c.CausticWasps.class)); + cards.add(new SetCardInfo("Cave-In", 180, Rarity.RARE, mage.cards.c.CaveIn.class)); + cards.add(new SetCardInfo("Cavern Crawler", 181, Rarity.COMMON, mage.cards.c.CavernCrawler.class)); + cards.add(new SetCardInfo("Cave Sense", 179, Rarity.COMMON, mage.cards.c.CaveSense.class)); + cards.add(new SetCardInfo("Chambered Nautilus", 64, Rarity.UNCOMMON, mage.cards.c.ChamberedNautilus.class)); + cards.add(new SetCardInfo("Charisma", 66, Rarity.RARE, mage.cards.c.Charisma.class)); + cards.add(new SetCardInfo("Cho-Arrim Alchemist", 8, Rarity.RARE, mage.cards.c.ChoArrimAlchemist.class)); + cards.add(new SetCardInfo("Cho-Arrim Bruiser", 9, Rarity.RARE, mage.cards.c.ChoArrimBruiser.class)); + cards.add(new SetCardInfo("Cho-Arrim Legate", 10, Rarity.UNCOMMON, mage.cards.c.ChoArrimLegate.class)); + cards.add(new SetCardInfo("Cho-Manno, Revolutionary", 11, Rarity.RARE, mage.cards.c.ChoMannoRevolutionary.class)); + cards.add(new SetCardInfo("Cho-Manno's Blessing", 12, Rarity.COMMON, mage.cards.c.ChoMannosBlessing.class)); + cards.add(new SetCardInfo("Cinder Elemental", 183, Rarity.UNCOMMON, mage.cards.c.CinderElemental.class)); + cards.add(new SetCardInfo("Close Quarters", 184, Rarity.UNCOMMON, mage.cards.c.CloseQuarters.class)); + cards.add(new SetCardInfo("Cloud Sprite", 67, Rarity.COMMON, mage.cards.c.CloudSprite.class)); + cards.add(new SetCardInfo("Coastal Piracy", 68, Rarity.UNCOMMON, mage.cards.c.CoastalPiracy.class)); + cards.add(new SetCardInfo("Collective Unconscious", 236, Rarity.RARE, mage.cards.c.CollectiveUnconscious.class)); + cards.add(new SetCardInfo("Conspiracy", 127, Rarity.RARE, mage.cards.c.Conspiracy.class)); + cards.add(new SetCardInfo("Corrupt Official", 128, Rarity.RARE, mage.cards.c.CorruptOfficial.class)); + cards.add(new SetCardInfo("Counterspell", 69, Rarity.COMMON, mage.cards.c.Counterspell.class)); + cards.add(new SetCardInfo("Cowardice", 70, Rarity.RARE, mage.cards.c.Cowardice.class)); + cards.add(new SetCardInfo("Crackdown", 15, Rarity.RARE, mage.cards.c.Crackdown.class)); + cards.add(new SetCardInfo("Crash", 186, Rarity.COMMON, mage.cards.c.Crash.class)); + cards.add(new SetCardInfo("Crenellated Wall", 290, Rarity.UNCOMMON, mage.cards.c.CrenellatedWall.class)); + cards.add(new SetCardInfo("Crossbow Infantry", 16, Rarity.COMMON, mage.cards.c.CrossbowInfantry.class)); + cards.add(new SetCardInfo("Crumbling Sanctuary", 292, Rarity.RARE, mage.cards.c.CrumblingSanctuary.class)); + cards.add(new SetCardInfo("Dark Ritual", 129, Rarity.COMMON, mage.cards.d.DarkRitual.class)); + cards.add(new SetCardInfo("Darting Merfolk", 72, Rarity.COMMON, mage.cards.d.DartingMerfolk.class)); + cards.add(new SetCardInfo("Dawnstrider", 237, Rarity.RARE, mage.cards.d.Dawnstrider.class)); + cards.add(new SetCardInfo("Deadly Insect", 238, Rarity.COMMON, mage.cards.d.DeadlyInsect.class)); + cards.add(new SetCardInfo("Deathgazer", 130, Rarity.UNCOMMON, mage.cards.d.Deathgazer.class)); + cards.add(new SetCardInfo("Deepwood Drummer", 239, Rarity.COMMON, mage.cards.d.DeepwoodDrummer.class)); + cards.add(new SetCardInfo("Deepwood Ghoul", 131, Rarity.COMMON, mage.cards.d.DeepwoodGhoul.class)); + cards.add(new SetCardInfo("Deepwood Legate", 132, Rarity.UNCOMMON, mage.cards.d.DeepwoodLegate.class)); + cards.add(new SetCardInfo("Deepwood Tantiv", 241, Rarity.UNCOMMON, mage.cards.d.DeepwoodTantiv.class)); + cards.add(new SetCardInfo("Deepwood Wolverine", 242, Rarity.COMMON, mage.cards.d.DeepwoodWolverine.class)); + cards.add(new SetCardInfo("Dehydration", 73, Rarity.COMMON, mage.cards.d.Dehydration.class)); + cards.add(new SetCardInfo("Desert Twister", 243, Rarity.UNCOMMON, mage.cards.d.DesertTwister.class)); + cards.add(new SetCardInfo("Devout Witness", 17, Rarity.COMMON, mage.cards.d.DevoutWitness.class)); + cards.add(new SetCardInfo("Diplomatic Escort", 74, Rarity.UNCOMMON, mage.cards.d.DiplomaticEscort.class)); + cards.add(new SetCardInfo("Diplomatic Immunity", 75, Rarity.COMMON, mage.cards.d.DiplomaticImmunity.class)); + cards.add(new SetCardInfo("Disenchant", 18, Rarity.COMMON, mage.cards.d.Disenchant.class)); + cards.add(new SetCardInfo("Distorting Lens", 293, Rarity.RARE, mage.cards.d.DistortingLens.class)); + cards.add(new SetCardInfo("Drake Hatchling", 76, Rarity.COMMON, mage.cards.d.DrakeHatchling.class)); + cards.add(new SetCardInfo("Dust Bowl", 316, Rarity.RARE, mage.cards.d.DustBowl.class)); + cards.add(new SetCardInfo("Embargo", 77, Rarity.RARE, mage.cards.e.Embargo.class)); + cards.add(new SetCardInfo("Energy Flux", 78, Rarity.UNCOMMON, mage.cards.e.EnergyFlux.class)); + cards.add(new SetCardInfo("Eye of Ramos", 294, Rarity.RARE, mage.cards.e.EyeOfRamos.class)); + cards.add(new SetCardInfo("False Demise", 80, Rarity.UNCOMMON, mage.cards.f.FalseDemise.class)); + cards.add(new SetCardInfo("Flailing Manticore", 187, Rarity.RARE, mage.cards.f.FlailingManticore.class)); + cards.add(new SetCardInfo("Flailing Ogre", 188, Rarity.UNCOMMON, mage.cards.f.FlailingOgre.class)); + cards.add(new SetCardInfo("Flailing Soldier", 189, Rarity.COMMON, mage.cards.f.FlailingSoldier.class)); + cards.add(new SetCardInfo("Food Chain", 246, Rarity.RARE, mage.cards.f.FoodChain.class)); + cards.add(new SetCardInfo("Forced March", 136, Rarity.RARE, mage.cards.f.ForcedMarch.class)); + cards.add(new SetCardInfo("Forest", 347, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Forest", 348, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Forest", 349, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Forest", 350, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Foster", 247, Rarity.RARE, mage.cards.f.Foster.class)); + cards.add(new SetCardInfo("Fountain of Cho", 317, Rarity.UNCOMMON, mage.cards.f.FountainOfCho.class)); + cards.add(new SetCardInfo("Fountain Watch", 19, Rarity.RARE, mage.cards.f.FountainWatch.class)); + cards.add(new SetCardInfo("Fresh Volunteers", 20, Rarity.COMMON, mage.cards.f.FreshVolunteers.class)); + cards.add(new SetCardInfo("Furious Assault", 191, Rarity.COMMON, mage.cards.f.FuriousAssault.class)); + cards.add(new SetCardInfo("Gerrard's Irregulars", 192, Rarity.COMMON, mage.cards.g.GerrardsIrregulars.class)); + cards.add(new SetCardInfo("Ghoul's Feast", 137, Rarity.UNCOMMON, mage.cards.g.GhoulsFeast.class)); + cards.add(new SetCardInfo("Giant Caterpillar", 249, Rarity.COMMON, mage.cards.g.GiantCaterpillar.class)); + cards.add(new SetCardInfo("Groundskeeper", 250, Rarity.UNCOMMON, mage.cards.g.Groundskeeper.class)); + cards.add(new SetCardInfo("Gush", 82, Rarity.COMMON, mage.cards.g.Gush.class)); + cards.add(new SetCardInfo("Hammer Mage", 193, Rarity.UNCOMMON, mage.cards.h.HammerMage.class)); + cards.add(new SetCardInfo("Haunted Crossroads", 138, Rarity.UNCOMMON, mage.cards.h.HauntedCrossroads.class)); + cards.add(new SetCardInfo("Heart of Ramos", 296, Rarity.RARE, mage.cards.h.HeartOfRamos.class)); + cards.add(new SetCardInfo("Henge Guardian", 297, Rarity.UNCOMMON, mage.cards.h.HengeGuardian.class)); + cards.add(new SetCardInfo("Henge of Ramos", 318, Rarity.UNCOMMON, mage.cards.h.HengeOfRamos.class)); + cards.add(new SetCardInfo("Hickory Woodlot", 319, Rarity.COMMON, mage.cards.h.HickoryWoodlot.class)); + cards.add(new SetCardInfo("High Market", 320, Rarity.RARE, mage.cards.h.HighMarket.class)); + cards.add(new SetCardInfo("High Seas", 83, Rarity.UNCOMMON, mage.cards.h.HighSeas.class)); + cards.add(new SetCardInfo("Highway Robber", 139, Rarity.COMMON, mage.cards.h.HighwayRobber.class)); + cards.add(new SetCardInfo("Hoodwink", 84, Rarity.COMMON, mage.cards.h.Hoodwink.class)); + cards.add(new SetCardInfo("Horned Troll", 251, Rarity.COMMON, mage.cards.h.HornedTroll.class)); + cards.add(new SetCardInfo("Horn of Plenty", 298, Rarity.RARE, mage.cards.h.HornOfPlenty.class)); + cards.add(new SetCardInfo("Horn of Ramos", 299, Rarity.RARE, mage.cards.h.HornOfRamos.class)); + cards.add(new SetCardInfo("Howling Wolf", 252, Rarity.COMMON, mage.cards.h.HowlingWolf.class)); + cards.add(new SetCardInfo("Hunted Wumpus", 253, Rarity.UNCOMMON, mage.cards.h.HuntedWumpus.class)); + cards.add(new SetCardInfo("Ignoble Soldier", 22, Rarity.UNCOMMON, mage.cards.i.IgnobleSoldier.class)); + cards.add(new SetCardInfo("Instigator", 140, Rarity.RARE, mage.cards.i.Instigator.class)); + cards.add(new SetCardInfo("Intimidation", 142, Rarity.UNCOMMON, mage.cards.i.Intimidation.class)); + cards.add(new SetCardInfo("Invigorate", 254, Rarity.COMMON, mage.cards.i.Invigorate.class)); + cards.add(new SetCardInfo("Iron Lance", 300, Rarity.UNCOMMON, mage.cards.i.IronLance.class)); + cards.add(new SetCardInfo("Island", 335, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Island", 336, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Island", 337, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Island", 338, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Ivory Mask", 24, Rarity.RARE, mage.cards.i.IvoryMask.class)); + cards.add(new SetCardInfo("Jhovall Queen", 25, Rarity.RARE, mage.cards.j.JhovallQueen.class)); + cards.add(new SetCardInfo("Jhovall Rider", 26, Rarity.UNCOMMON, mage.cards.j.JhovallRider.class)); + cards.add(new SetCardInfo("Kris Mage", 195, Rarity.COMMON, mage.cards.k.KrisMage.class)); + cards.add(new SetCardInfo("Kyren Glider", 196, Rarity.COMMON, mage.cards.k.KyrenGlider.class)); + cards.add(new SetCardInfo("Kyren Legate", 197, Rarity.UNCOMMON, mage.cards.k.KyrenLegate.class)); + cards.add(new SetCardInfo("Kyren Sniper", 199, Rarity.COMMON, mage.cards.k.KyrenSniper.class)); + cards.add(new SetCardInfo("Kyren Toy", 303, Rarity.RARE, mage.cards.k.KyrenToy.class)); + cards.add(new SetCardInfo("Land Grant", 255, Rarity.COMMON, mage.cards.l.LandGrant.class)); + cards.add(new SetCardInfo("Larceny", 143, Rarity.UNCOMMON, mage.cards.l.Larceny.class)); + cards.add(new SetCardInfo("Last Breath", 27, Rarity.UNCOMMON, mage.cards.l.LastBreath.class)); + cards.add(new SetCardInfo("Lava Runner", 200, Rarity.RARE, mage.cards.l.LavaRunner.class)); + cards.add(new SetCardInfo("Lightning Hounds", 201, Rarity.COMMON, mage.cards.l.LightningHounds.class)); + cards.add(new SetCardInfo("Lithophage", 202, Rarity.RARE, mage.cards.l.Lithophage.class)); + cards.add(new SetCardInfo("Lumbering Satyr", 257, Rarity.UNCOMMON, mage.cards.l.LumberingSatyr.class)); + cards.add(new SetCardInfo("Lunge", 203, Rarity.COMMON, mage.cards.l.Lunge.class)); + cards.add(new SetCardInfo("Lure", 258, Rarity.UNCOMMON, mage.cards.l.Lure.class)); + cards.add(new SetCardInfo("Maggot Therapy", 145, Rarity.COMMON, mage.cards.m.MaggotTherapy.class)); + cards.add(new SetCardInfo("Magistrate's Scepter", 304, Rarity.RARE, mage.cards.m.MagistratesScepter.class)); + cards.add(new SetCardInfo("Magistrate's Veto", 204, Rarity.UNCOMMON, mage.cards.m.MagistratesVeto.class)); + cards.add(new SetCardInfo("Mercadian Bazaar", 321, Rarity.UNCOMMON, mage.cards.m.MercadianBazaar.class)); + cards.add(new SetCardInfo("Midnight Ritual", 146, Rarity.RARE, mage.cards.m.MidnightRitual.class)); + cards.add(new SetCardInfo("Misdirection", 87, Rarity.RARE, mage.cards.m.Misdirection.class)); + cards.add(new SetCardInfo("Misshapen Fiend", 147, Rarity.COMMON, mage.cards.m.MisshapenFiend.class)); + cards.add(new SetCardInfo("Misstep", 88, Rarity.COMMON, mage.cards.m.Misstep.class)); + cards.add(new SetCardInfo("Molting Harpy", 148, Rarity.UNCOMMON, mage.cards.m.MoltingHarpy.class)); + cards.add(new SetCardInfo("Moment of Silence", 28, Rarity.COMMON, mage.cards.m.MomentOfSilence.class)); + cards.add(new SetCardInfo("Monkey Cage", 307, Rarity.RARE, mage.cards.m.MonkeyCage.class)); + cards.add(new SetCardInfo("Moonlit Wake", 29, Rarity.UNCOMMON, mage.cards.m.MoonlitWake.class)); + cards.add(new SetCardInfo("Mountain", 343, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Mountain", 344, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Mountain", 345, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Mountain", 346, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Muzzle", 30, Rarity.COMMON, mage.cards.m.Muzzle.class)); + cards.add(new SetCardInfo("Natural Affinity", 260, Rarity.RARE, mage.cards.n.NaturalAffinity.class)); + cards.add(new SetCardInfo("Nether Spirit", 149, Rarity.RARE, mage.cards.n.NetherSpirit.class)); + cards.add(new SetCardInfo("Nightwind Glider", 31, Rarity.COMMON, mage.cards.n.NightwindGlider.class)); + cards.add(new SetCardInfo("Noble Purpose", 32, Rarity.UNCOMMON, mage.cards.n.NoblePurpose.class)); + cards.add(new SetCardInfo("Notorious Assassin", 150, Rarity.RARE, mage.cards.n.NotoriousAssassin.class)); + cards.add(new SetCardInfo("Ogre Taskmaster", 206, Rarity.UNCOMMON, mage.cards.o.OgreTaskmaster.class)); + cards.add(new SetCardInfo("Overtaker", 89, Rarity.RARE, mage.cards.o.Overtaker.class)); + cards.add(new SetCardInfo("Pangosaur", 261, Rarity.RARE, mage.cards.p.Pangosaur.class)); + cards.add(new SetCardInfo("Peat Bog", 322, Rarity.COMMON, mage.cards.p.PeatBog.class)); + cards.add(new SetCardInfo("Pious Warrior", 34, Rarity.COMMON, mage.cards.p.PiousWarrior.class)); + cards.add(new SetCardInfo("Plains", 331, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Plains", 332, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Plains", 333, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Plains", 334, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Power Matrix", 309, Rarity.RARE, mage.cards.p.PowerMatrix.class)); + cards.add(new SetCardInfo("Primeval Shambler", 152, Rarity.UNCOMMON, mage.cards.p.PrimevalShambler.class)); + cards.add(new SetCardInfo("Pulverize", 207, Rarity.RARE, mage.cards.p.Pulverize.class)); + cards.add(new SetCardInfo("Puppet's Verdict", 208, Rarity.RARE, mage.cards.p.PuppetsVerdict.class)); + cards.add(new SetCardInfo("Quagmire Lamprey", 154, Rarity.UNCOMMON, mage.cards.q.QuagmireLamprey.class)); + cards.add(new SetCardInfo("Rain of Tears", 155, Rarity.UNCOMMON, mage.cards.r.RainOfTears.class)); + cards.add(new SetCardInfo("Ramosian Captain", 35, Rarity.UNCOMMON, mage.cards.r.RamosianCaptain.class)); + cards.add(new SetCardInfo("Ramosian Commander", 36, Rarity.UNCOMMON, mage.cards.r.RamosianCommander.class)); + cards.add(new SetCardInfo("Ramosian Lieutenant", 37, Rarity.COMMON, mage.cards.r.RamosianLieutenant.class)); + cards.add(new SetCardInfo("Ramosian Rally", 38, Rarity.COMMON, mage.cards.r.RamosianRally.class)); + cards.add(new SetCardInfo("Ramosian Sergeant", 39, Rarity.COMMON, mage.cards.r.RamosianSergeant.class)); + cards.add(new SetCardInfo("Ramosian Sky Marshal", 40, Rarity.RARE, mage.cards.r.RamosianSkyMarshal.class)); + cards.add(new SetCardInfo("Rampart Crawler", 156, Rarity.COMMON, mage.cards.r.RampartCrawler.class)); + cards.add(new SetCardInfo("Rappelling Scouts", 41, Rarity.RARE, mage.cards.r.RappellingScouts.class)); + cards.add(new SetCardInfo("Remote Farm", 323, Rarity.COMMON, mage.cards.r.RemoteFarm.class)); + cards.add(new SetCardInfo("Revive", 262, Rarity.UNCOMMON, mage.cards.r.Revive.class)); + cards.add(new SetCardInfo("Righteous Aura", 45, Rarity.UNCOMMON, mage.cards.r.RighteousAura.class)); + cards.add(new SetCardInfo("Rishadan Airship", 91, Rarity.COMMON, mage.cards.r.RishadanAirship.class)); + cards.add(new SetCardInfo("Rishadan Brigand", 92, Rarity.RARE, mage.cards.r.RishadanBrigand.class)); + cards.add(new SetCardInfo("Rishadan Cutpurse", 93, Rarity.COMMON, mage.cards.r.RishadanCutpurse.class)); + cards.add(new SetCardInfo("Rishadan Footpad", 94, Rarity.UNCOMMON, mage.cards.r.RishadanFootpad.class)); + cards.add(new SetCardInfo("Rishadan Port", 324, Rarity.RARE, mage.cards.r.RishadanPort.class)); + cards.add(new SetCardInfo("Rock Badger", 210, Rarity.UNCOMMON, mage.cards.r.RockBadger.class)); + cards.add(new SetCardInfo("Rushwood Dryad", 263, Rarity.COMMON, mage.cards.r.RushwoodDryad.class)); + cards.add(new SetCardInfo("Rushwood Elemental", 264, Rarity.RARE, mage.cards.r.RushwoodElemental.class)); + cards.add(new SetCardInfo("Rushwood Grove", 325, Rarity.UNCOMMON, mage.cards.r.RushwoodGrove.class)); + cards.add(new SetCardInfo("Rushwood Herbalist", 265, Rarity.COMMON, mage.cards.r.RushwoodHerbalist.class)); + cards.add(new SetCardInfo("Rushwood Legate", 266, Rarity.UNCOMMON, mage.cards.r.RushwoodLegate.class)); + cards.add(new SetCardInfo("Saber Ants", 267, Rarity.UNCOMMON, mage.cards.s.SaberAnts.class)); + cards.add(new SetCardInfo("Sacred Prey", 268, Rarity.COMMON, mage.cards.s.SacredPrey.class)); + cards.add(new SetCardInfo("Sand Squid", 96, Rarity.RARE, mage.cards.s.SandSquid.class)); + cards.add(new SetCardInfo("Sandstone Needle", 326, Rarity.COMMON, mage.cards.s.SandstoneNeedle.class)); + cards.add(new SetCardInfo("Saprazzan Cove", 327, Rarity.UNCOMMON, mage.cards.s.SaprazzanCove.class)); + cards.add(new SetCardInfo("Saprazzan Heir", 99, Rarity.RARE, mage.cards.s.SaprazzanHeir.class)); + cards.add(new SetCardInfo("Saprazzan Legate", 100, Rarity.UNCOMMON, mage.cards.s.SaprazzanLegate.class)); + cards.add(new SetCardInfo("Saprazzan Raider", 102, Rarity.COMMON, mage.cards.s.SaprazzanRaider.class)); + cards.add(new SetCardInfo("Saprazzan Skerry", 328, Rarity.COMMON, mage.cards.s.SaprazzanSkerry.class)); + cards.add(new SetCardInfo("Seismic Mage", 211, Rarity.RARE, mage.cards.s.SeismicMage.class)); + cards.add(new SetCardInfo("Sever Soul", 159, Rarity.COMMON, mage.cards.s.SeverSoul.class)); + cards.add(new SetCardInfo("Shock Troops", 212, Rarity.COMMON, mage.cards.s.ShockTroops.class)); + cards.add(new SetCardInfo("Silverglade Elemental", 269, Rarity.COMMON, mage.cards.s.SilvergladeElemental.class)); + cards.add(new SetCardInfo("Silverglade Pathfinder", 270, Rarity.UNCOMMON, mage.cards.s.SilvergladePathfinder.class)); + cards.add(new SetCardInfo("Sizzle", 213, Rarity.COMMON, mage.cards.s.Sizzle.class)); + cards.add(new SetCardInfo("Skulking Fugitive", 161, Rarity.COMMON, mage.cards.s.SkulkingFugitive.class)); + cards.add(new SetCardInfo("Skull of Ramos", 312, Rarity.RARE, mage.cards.s.SkullOfRamos.class)); + cards.add(new SetCardInfo("Snake Pit", 271, Rarity.UNCOMMON, mage.cards.s.SnakePit.class)); + cards.add(new SetCardInfo("Snorting Gahr", 272, Rarity.COMMON, mage.cards.s.SnortingGahr.class)); + cards.add(new SetCardInfo("Snuff Out", 162, Rarity.COMMON, mage.cards.s.SnuffOut.class)); + cards.add(new SetCardInfo("Soothing Balm", 48, Rarity.COMMON, mage.cards.s.SoothingBalm.class)); + cards.add(new SetCardInfo("Soothsaying", 104, Rarity.UNCOMMON, mage.cards.s.Soothsaying.class)); + cards.add(new SetCardInfo("Soul Channeling", 163, Rarity.COMMON, mage.cards.s.SoulChanneling.class)); + cards.add(new SetCardInfo("Specter's Wail", 164, Rarity.COMMON, mage.cards.s.SpectersWail.class)); + cards.add(new SetCardInfo("Spidersilk Armor", 273, Rarity.COMMON, mage.cards.s.SpidersilkArmor.class)); + cards.add(new SetCardInfo("Spontaneous Generation", 274, Rarity.RARE, mage.cards.s.SpontaneousGeneration.class)); + cards.add(new SetCardInfo("Squall", 275, Rarity.COMMON, mage.cards.s.Squall.class)); + cards.add(new SetCardInfo("Squallmonger", 276, Rarity.UNCOMMON, mage.cards.s.Squallmonger.class)); + cards.add(new SetCardInfo("Squee, Goblin Nabob", 214, Rarity.RARE, mage.cards.s.SqueeGoblinNabob.class)); + cards.add(new SetCardInfo("Squeeze", 105, Rarity.RARE, mage.cards.s.Squeeze.class)); + cards.add(new SetCardInfo("Statecraft", 106, Rarity.RARE, mage.cards.s.Statecraft.class)); + cards.add(new SetCardInfo("Steadfast Guard", 50, Rarity.COMMON, mage.cards.s.SteadfastGuard.class)); + cards.add(new SetCardInfo("Stinging Barrier", 107, Rarity.COMMON, mage.cards.s.StingingBarrier.class)); + cards.add(new SetCardInfo("Stone Rain", 215, Rarity.COMMON, mage.cards.s.StoneRain.class)); + cards.add(new SetCardInfo("Story Circle", 51, Rarity.UNCOMMON, mage.cards.s.StoryCircle.class)); + cards.add(new SetCardInfo("Strongarm Thug", 165, Rarity.COMMON, mage.cards.s.StrongarmThug.class)); + cards.add(new SetCardInfo("Subterranean Hangar", 329, Rarity.UNCOMMON, mage.cards.s.SubterraneanHangar.class)); + cards.add(new SetCardInfo("Sustenance", 278, Rarity.UNCOMMON, mage.cards.s.Sustenance.class)); + cards.add(new SetCardInfo("Swamp", 339, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Swamp", 340, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Swamp", 341, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Swamp", 342, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Task Force", 52, Rarity.COMMON, mage.cards.t.TaskForce.class)); + cards.add(new SetCardInfo("Tectonic Break", 216, Rarity.RARE, mage.cards.t.TectonicBreak.class)); + cards.add(new SetCardInfo("Territorial Dispute", 217, Rarity.RARE, mage.cards.t.TerritorialDispute.class)); + cards.add(new SetCardInfo("Thermal Glider", 53, Rarity.COMMON, mage.cards.t.ThermalGlider.class)); + cards.add(new SetCardInfo("Thieves' Auction", 218, Rarity.RARE, mage.cards.t.ThievesAuction.class)); + cards.add(new SetCardInfo("Thrashing Wumpus", 166, Rarity.RARE, mage.cards.t.ThrashingWumpus.class)); + cards.add(new SetCardInfo("Thwart", 108, Rarity.UNCOMMON, mage.cards.t.Thwart.class)); + cards.add(new SetCardInfo("Tidal Bore", 109, Rarity.COMMON, mage.cards.t.TidalBore.class)); + cards.add(new SetCardInfo("Tidal Kraken", 110, Rarity.RARE, mage.cards.t.TidalKraken.class)); + cards.add(new SetCardInfo("Tiger Claws", 279, Rarity.COMMON, mage.cards.t.TigerClaws.class)); + cards.add(new SetCardInfo("Tonic Peddler", 54, Rarity.UNCOMMON, mage.cards.t.TonicPeddler.class)); + cards.add(new SetCardInfo("Tooth of Ramos", 313, Rarity.RARE, mage.cards.t.ToothOfRamos.class)); + cards.add(new SetCardInfo("Tower of the Magistrate", 330, Rarity.RARE, mage.cards.t.TowerOfTheMagistrate.class)); + cards.add(new SetCardInfo("Trade Routes", 112, Rarity.RARE, mage.cards.t.TradeRoutes.class)); + cards.add(new SetCardInfo("Tranquility", 280, Rarity.COMMON, mage.cards.t.Tranquility.class)); + cards.add(new SetCardInfo("Tremor", 220, Rarity.COMMON, mage.cards.t.Tremor.class)); + cards.add(new SetCardInfo("Two-Headed Dragon", 221, Rarity.RARE, mage.cards.t.TwoHeadedDragon.class)); + cards.add(new SetCardInfo("Undertaker", 167, Rarity.COMMON, mage.cards.u.Undertaker.class)); + cards.add(new SetCardInfo("Unmask", 168, Rarity.RARE, mage.cards.u.Unmask.class)); + cards.add(new SetCardInfo("Vendetta", 170, Rarity.COMMON, mage.cards.v.Vendetta.class)); + cards.add(new SetCardInfo("Venomous Dragonfly", 282, Rarity.COMMON, mage.cards.v.VenomousDragonfly.class)); + cards.add(new SetCardInfo("Vernal Equinox", 283, Rarity.RARE, mage.cards.v.VernalEquinox.class)); + cards.add(new SetCardInfo("Vine Dryad", 284, Rarity.RARE, mage.cards.v.VineDryad.class)); + cards.add(new SetCardInfo("Vine Trellis", 285, Rarity.COMMON, mage.cards.v.VineTrellis.class)); + cards.add(new SetCardInfo("War Cadence", 224, Rarity.UNCOMMON, mage.cards.w.WarCadence.class)); + cards.add(new SetCardInfo("War Tax", 113, Rarity.UNCOMMON, mage.cards.w.WarTax.class)); + cards.add(new SetCardInfo("Warmonger", 225, Rarity.UNCOMMON, mage.cards.w.Warmonger.class)); + cards.add(new SetCardInfo("Waterfront Bouncer", 114, Rarity.COMMON, mage.cards.w.WaterfrontBouncer.class)); + cards.add(new SetCardInfo("Wave of Reckoning", 56, Rarity.RARE, mage.cards.w.WaveOfReckoning.class)); + cards.add(new SetCardInfo("Wild Jhovall", 227, Rarity.COMMON, mage.cards.w.WildJhovall.class)); + cards.add(new SetCardInfo("Word of Blasting", 228, Rarity.UNCOMMON, mage.cards.w.WordOfBlasting.class)); + } +} diff --git a/Mage.Sets/src/mage/sets/Mirage.java b/Mage.Sets/src/mage/sets/Mirage.java index f87acb37e5e..3d05a8ae540 100644 --- a/Mage.Sets/src/mage/sets/Mirage.java +++ b/Mage.Sets/src/mage/sets/Mirage.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Mirrodin.java b/Mage.Sets/src/mage/sets/Mirrodin.java index b839f531d86..b546cde03e9 100644 --- a/Mage.Sets/src/mage/sets/Mirrodin.java +++ b/Mage.Sets/src/mage/sets/Mirrodin.java @@ -1,10 +1,9 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; - -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; public class Mirrodin extends ExpansionSet { private static final Mirrodin instance = new Mirrodin(); @@ -170,6 +169,7 @@ public class Mirrodin extends ExpansionSet { cards.add(new SetCardInfo("Mountain", 302, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Myr Adapter", 210, Rarity.COMMON, mage.cards.m.MyrAdapter.class)); cards.add(new SetCardInfo("Myr Enforcer", 211, Rarity.COMMON, mage.cards.m.MyrEnforcer.class)); + cards.add(new SetCardInfo("Myr Incubator", 212, Rarity.RARE, mage.cards.m.MyrIncubator.class)); cards.add(new SetCardInfo("Myr Mindservant", 213, Rarity.UNCOMMON, mage.cards.m.MyrMindservant.class)); cards.add(new SetCardInfo("Myr Retriever", 215, Rarity.UNCOMMON, mage.cards.m.MyrRetriever.class)); cards.add(new SetCardInfo("Necrogen Mists", 69, Rarity.RARE, mage.cards.n.NecrogenMists.class)); diff --git a/Mage.Sets/src/mage/sets/MirrodinBesieged.java b/Mage.Sets/src/mage/sets/MirrodinBesieged.java index e0022b9d8e7..e3ba3e6e1c7 100644 --- a/Mage.Sets/src/mage/sets/MirrodinBesieged.java +++ b/Mage.Sets/src/mage/sets/MirrodinBesieged.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.constants.SetType; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/ModernMasters.java b/Mage.Sets/src/mage/sets/ModernMasters.java index b34969203c6..3ddf81344c0 100644 --- a/Mage.Sets/src/mage/sets/ModernMasters.java +++ b/Mage.Sets/src/mage/sets/ModernMasters.java @@ -29,8 +29,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/ModernMasters2015.java b/Mage.Sets/src/mage/sets/ModernMasters2015.java index 42d52294357..7f1b96b75e7 100644 --- a/Mage.Sets/src/mage/sets/ModernMasters2015.java +++ b/Mage.Sets/src/mage/sets/ModernMasters2015.java @@ -29,8 +29,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Morningtide.java b/Mage.Sets/src/mage/sets/Morningtide.java index 585ab547a52..296de677327 100644 --- a/Mage.Sets/src/mage/sets/Morningtide.java +++ b/Mage.Sets/src/mage/sets/Morningtide.java @@ -27,9 +27,9 @@ */ package mage.sets; -import mage.constants.SetType; import mage.cards.ExpansionSet; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/NewPhyrexia.java b/Mage.Sets/src/mage/sets/NewPhyrexia.java index d1da556e4e0..5d3cc6d1243 100644 --- a/Mage.Sets/src/mage/sets/NewPhyrexia.java +++ b/Mage.Sets/src/mage/sets/NewPhyrexia.java @@ -1,9 +1,9 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; public class NewPhyrexia extends ExpansionSet { private static final NewPhyrexia instance = new NewPhyrexia(); diff --git a/Mage.Sets/src/mage/sets/NinthEdition.java b/Mage.Sets/src/mage/sets/NinthEdition.java index 7eff94893e8..bd71afeaf02 100644 --- a/Mage.Sets/src/mage/sets/NinthEdition.java +++ b/Mage.Sets/src/mage/sets/NinthEdition.java @@ -1,11 +1,11 @@ package mage.sets; +import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; import mage.cards.f.FishliverOil; import mage.cards.r.RukhEgg; -import mage.constants.SetType; -import mage.cards.ExpansionSet; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; public class NinthEdition extends ExpansionSet { diff --git a/Mage.Sets/src/mage/sets/OathOfTheGatewatch.java b/Mage.Sets/src/mage/sets/OathOfTheGatewatch.java index 575d3fec07f..cc2ac67d31b 100644 --- a/Mage.Sets/src/mage/sets/OathOfTheGatewatch.java +++ b/Mage.Sets/src/mage/sets/OathOfTheGatewatch.java @@ -5,8 +5,6 @@ */ package mage.sets; -import java.util.ArrayList; -import java.util.List; import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.FrameStyle; @@ -17,6 +15,9 @@ import mage.cards.w.Wastes; import mage.constants.Rarity; import mage.constants.SetType; +import java.util.ArrayList; +import java.util.List; + /** * * @author fireshoes @@ -219,8 +220,10 @@ public class OathOfTheGatewatch extends ExpansionSet { cards.add(new SetCardInfo("Wandering Fumarole", 182, Rarity.RARE, mage.cards.w.WanderingFumarole.class)); cards.add(new SetCardInfo("Warden of Geometries", 11, Rarity.COMMON, mage.cards.w.WardenOfGeometries.class)); cards.add(new SetCardInfo("Warping Wail", 12, Rarity.UNCOMMON, mage.cards.w.WarpingWail.class)); - cards.add(new SetCardInfo("Wastes", 183, Rarity.COMMON, Wastes.class, new CardGraphicInfo(FrameStyle.BFZ_FULL_ART_BASIC, true))); - cards.add(new SetCardInfo("Wastes", 184, Rarity.COMMON, Wastes.class, new CardGraphicInfo(FrameStyle.BFZ_FULL_ART_BASIC, true))); + cards.add(new SetCardInfo("Wastes", "183a", Rarity.COMMON, Wastes.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Wastes", "183b", Rarity.COMMON, Wastes.class, new CardGraphicInfo(FrameStyle.BFZ_FULL_ART_BASIC, true))); + cards.add(new SetCardInfo("Wastes", "184a", Rarity.COMMON, Wastes.class, new CardGraphicInfo(null, true))); + cards.add(new SetCardInfo("Wastes", "184b", Rarity.COMMON, Wastes.class, new CardGraphicInfo(FrameStyle.BFZ_FULL_ART_BASIC, true))); cards.add(new SetCardInfo("Weapons Trainer", 160, Rarity.UNCOMMON, mage.cards.w.WeaponsTrainer.class)); cards.add(new SetCardInfo("Witness the End", 82, Rarity.COMMON, mage.cards.w.WitnessTheEnd.class)); cards.add(new SetCardInfo("World Breaker", 126, Rarity.MYTHIC, mage.cards.w.WorldBreaker.class)); diff --git a/Mage.Sets/src/mage/sets/Onslaught.java b/Mage.Sets/src/mage/sets/Onslaught.java index 0629df84b07..932f40e3fe1 100644 --- a/Mage.Sets/src/mage/sets/Onslaught.java +++ b/Mage.Sets/src/mage/sets/Onslaught.java @@ -1,11 +1,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; - -import mage.constants.Rarity; import mage.ObjectColor; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; public class Onslaught extends ExpansionSet { private static final Onslaught instance = new Onslaught(); diff --git a/Mage.Sets/src/mage/sets/PDSGraveborn.java b/Mage.Sets/src/mage/sets/PDSGraveborn.java index 982f7fa2779..12597cf2866 100644 --- a/Mage.Sets/src/mage/sets/PDSGraveborn.java +++ b/Mage.Sets/src/mage/sets/PDSGraveborn.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/PDSSlivers.java b/Mage.Sets/src/mage/sets/PDSSlivers.java index da7e2134f75..6ffc07bfcef 100644 --- a/Mage.Sets/src/mage/sets/PDSSlivers.java +++ b/Mage.Sets/src/mage/sets/PDSSlivers.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/PlanarChaos.java b/Mage.Sets/src/mage/sets/PlanarChaos.java index 5b0c74f06fb..f6622a868b1 100644 --- a/Mage.Sets/src/mage/sets/PlanarChaos.java +++ b/Mage.Sets/src/mage/sets/PlanarChaos.java @@ -27,9 +27,9 @@ */ package mage.sets; -import mage.constants.SetType; import mage.cards.ExpansionSet; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Planechase.java b/Mage.Sets/src/mage/sets/Planechase.java index 070e4e04aaa..846f655018a 100644 --- a/Mage.Sets/src/mage/sets/Planechase.java +++ b/Mage.Sets/src/mage/sets/Planechase.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.constants.SetType; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Planechase2012.java b/Mage.Sets/src/mage/sets/Planechase2012.java index 39ab1ff6131..f7bff027557 100644 --- a/Mage.Sets/src/mage/sets/Planechase2012.java +++ b/Mage.Sets/src/mage/sets/Planechase2012.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.constants.SetType; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Planeshift.java b/Mage.Sets/src/mage/sets/Planeshift.java index 0a0f53c08fb..98c1684d1c7 100644 --- a/Mage.Sets/src/mage/sets/Planeshift.java +++ b/Mage.Sets/src/mage/sets/Planeshift.java @@ -27,13 +27,13 @@ */ package mage.sets; +import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; import mage.cards.e.ErtaiTheCorrupted; import mage.cards.s.SkyshipWeatherlight; import mage.cards.t.TahngarthTalruumHero; -import mage.constants.SetType; -import mage.cards.ExpansionSet; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Portal.java b/Mage.Sets/src/mage/sets/Portal.java index ec9e5ed50d0..89fe56c2bf5 100644 --- a/Mage.Sets/src/mage/sets/Portal.java +++ b/Mage.Sets/src/mage/sets/Portal.java @@ -28,13 +28,13 @@ package mage.sets; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.d.DrySpell; import mage.cards.e.EliteCatWarrior; import mage.cards.w.WarriorsCharge; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/PortalSecondAge.java b/Mage.Sets/src/mage/sets/PortalSecondAge.java index 9588d577926..e8e223bb894 100644 --- a/Mage.Sets/src/mage/sets/PortalSecondAge.java +++ b/Mage.Sets/src/mage/sets/PortalSecondAge.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/PortalThreeKingdoms.java b/Mage.Sets/src/mage/sets/PortalThreeKingdoms.java index a68fb16f6d6..ce750ae0b81 100644 --- a/Mage.Sets/src/mage/sets/PortalThreeKingdoms.java +++ b/Mage.Sets/src/mage/sets/PortalThreeKingdoms.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/PrereleaseEvents.java b/Mage.Sets/src/mage/sets/PrereleaseEvents.java index 53cc15c0cf9..7f6f7527aa9 100644 --- a/Mage.Sets/src/mage/sets/PrereleaseEvents.java +++ b/Mage.Sets/src/mage/sets/PrereleaseEvents.java @@ -1,10 +1,9 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; - -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; public class PrereleaseEvents extends ExpansionSet { private static final PrereleaseEvents instance = new PrereleaseEvents(); diff --git a/Mage.Sets/src/mage/sets/RavnicaCityOfGuilds.java b/Mage.Sets/src/mage/sets/RavnicaCityOfGuilds.java index 724a71792cc..928016cccaf 100644 --- a/Mage.Sets/src/mage/sets/RavnicaCityOfGuilds.java +++ b/Mage.Sets/src/mage/sets/RavnicaCityOfGuilds.java @@ -28,11 +28,10 @@ package mage.sets; -import mage.constants.SetType; -import mage.cards.ExpansionSet; - -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/ReturnToRavnica.java b/Mage.Sets/src/mage/sets/ReturnToRavnica.java index 868d399c74d..582c0b03feb 100644 --- a/Mage.Sets/src/mage/sets/ReturnToRavnica.java +++ b/Mage.Sets/src/mage/sets/ReturnToRavnica.java @@ -27,11 +27,10 @@ */ package mage.sets; -import mage.constants.SetType; -import mage.cards.ExpansionSet; - -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/RevisedEdition.java b/Mage.Sets/src/mage/sets/RevisedEdition.java index e66688be20c..5a1f7f9485c 100644 --- a/Mage.Sets/src/mage/sets/RevisedEdition.java +++ b/Mage.Sets/src/mage/sets/RevisedEdition.java @@ -1,9 +1,9 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/RiseOfTheEldrazi.java b/Mage.Sets/src/mage/sets/RiseOfTheEldrazi.java index 233e6296792..a0bdc06968d 100644 --- a/Mage.Sets/src/mage/sets/RiseOfTheEldrazi.java +++ b/Mage.Sets/src/mage/sets/RiseOfTheEldrazi.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.constants.SetType; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/SaviorsOfKamigawa.java b/Mage.Sets/src/mage/sets/SaviorsOfKamigawa.java index 322e155e363..d3d7e0b4eaf 100644 --- a/Mage.Sets/src/mage/sets/SaviorsOfKamigawa.java +++ b/Mage.Sets/src/mage/sets/SaviorsOfKamigawa.java @@ -27,9 +27,9 @@ */ package mage.sets; -import mage.constants.SetType; import mage.cards.ExpansionSet; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/ScarsOfMirrodin.java b/Mage.Sets/src/mage/sets/ScarsOfMirrodin.java index 494766e7c96..020499af43f 100644 --- a/Mage.Sets/src/mage/sets/ScarsOfMirrodin.java +++ b/Mage.Sets/src/mage/sets/ScarsOfMirrodin.java @@ -28,11 +28,10 @@ package mage.sets; -import mage.constants.SetType; -import mage.cards.ExpansionSet; - -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/SeventhEdition.java b/Mage.Sets/src/mage/sets/SeventhEdition.java index f2985a4bf5c..c670f60ebbe 100644 --- a/Mage.Sets/src/mage/sets/SeventhEdition.java +++ b/Mage.Sets/src/mage/sets/SeventhEdition.java @@ -27,12 +27,12 @@ */ package mage.sets; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.g.GoblinWarDrums; import mage.cards.s.StormShaman; -import mage.constants.SetType; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Shadowmoor.java b/Mage.Sets/src/mage/sets/Shadowmoor.java index 6851420fb5e..8a28491608c 100644 --- a/Mage.Sets/src/mage/sets/Shadowmoor.java +++ b/Mage.Sets/src/mage/sets/Shadowmoor.java @@ -27,11 +27,11 @@ */ package mage.sets; -import mage.cards.t.Torture; -import mage.constants.SetType; -import mage.cards.ExpansionSet; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.cards.t.Torture; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/ShadowsOverInnistrad.java b/Mage.Sets/src/mage/sets/ShadowsOverInnistrad.java index 12076b4d98f..596153d01a1 100644 --- a/Mage.Sets/src/mage/sets/ShadowsOverInnistrad.java +++ b/Mage.Sets/src/mage/sets/ShadowsOverInnistrad.java @@ -27,9 +27,6 @@ */ package mage.sets; -import java.util.ArrayList; -import java.util.EnumMap; -import java.util.List; import mage.cards.Card; import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; @@ -40,6 +37,10 @@ import mage.constants.Rarity; import mage.constants.SetType; import mage.util.RandomUtil; +import java.util.ArrayList; +import java.util.EnumMap; +import java.util.List; + /** * * @author fireshoes diff --git a/Mage.Sets/src/mage/sets/ShardsOfAlara.java b/Mage.Sets/src/mage/sets/ShardsOfAlara.java index f66e40c035c..cc8689e3831 100644 --- a/Mage.Sets/src/mage/sets/ShardsOfAlara.java +++ b/Mage.Sets/src/mage/sets/ShardsOfAlara.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.constants.SetType; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/SorinVsTibalt.java b/Mage.Sets/src/mage/sets/SorinVsTibalt.java index ab02721d53b..635a74fdaf2 100644 --- a/Mage.Sets/src/mage/sets/SorinVsTibalt.java +++ b/Mage.Sets/src/mage/sets/SorinVsTibalt.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/SpeedVsCunning.java b/Mage.Sets/src/mage/sets/SpeedVsCunning.java index 1acab45019e..e11b32024af 100644 --- a/Mage.Sets/src/mage/sets/SpeedVsCunning.java +++ b/Mage.Sets/src/mage/sets/SpeedVsCunning.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Starter1999.java b/Mage.Sets/src/mage/sets/Starter1999.java index d5c35548c1a..80b7a2dd6ab 100644 --- a/Mage.Sets/src/mage/sets/Starter1999.java +++ b/Mage.Sets/src/mage/sets/Starter1999.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Starter2000.java b/Mage.Sets/src/mage/sets/Starter2000.java index dbb0586a652..ddd3083ad7a 100644 --- a/Mage.Sets/src/mage/sets/Starter2000.java +++ b/Mage.Sets/src/mage/sets/Starter2000.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/SuperSeries.java b/Mage.Sets/src/mage/sets/SuperSeries.java index 9a72e7f0adf..81f06b1ba1a 100644 --- a/Mage.Sets/src/mage/sets/SuperSeries.java +++ b/Mage.Sets/src/mage/sets/SuperSeries.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/TempestRemastered.java b/Mage.Sets/src/mage/sets/TempestRemastered.java index 0c1745f0ae2..a42aad1c9da 100644 --- a/Mage.Sets/src/mage/sets/TempestRemastered.java +++ b/Mage.Sets/src/mage/sets/TempestRemastered.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/TenthEdition.java b/Mage.Sets/src/mage/sets/TenthEdition.java index 16277bfeae6..9c48b613ccf 100644 --- a/Mage.Sets/src/mage/sets/TenthEdition.java +++ b/Mage.Sets/src/mage/sets/TenthEdition.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.constants.SetType; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.constants.Rarity; -import mage.cards.CardGraphicInfo; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/TheDark.java b/Mage.Sets/src/mage/sets/TheDark.java index d96d9ac3e4a..8aa4a1ab4f7 100644 --- a/Mage.Sets/src/mage/sets/TheDark.java +++ b/Mage.Sets/src/mage/sets/TheDark.java @@ -28,8 +28,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Theros.java b/Mage.Sets/src/mage/sets/Theros.java index 10968df1574..68763c07610 100644 --- a/Mage.Sets/src/mage/sets/Theros.java +++ b/Mage.Sets/src/mage/sets/Theros.java @@ -27,10 +27,10 @@ */ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/TimeSpiral.java b/Mage.Sets/src/mage/sets/TimeSpiral.java index 5bb019c62cd..53179022816 100644 --- a/Mage.Sets/src/mage/sets/TimeSpiral.java +++ b/Mage.Sets/src/mage/sets/TimeSpiral.java @@ -1,13 +1,14 @@ package mage.sets; -import java.util.List; import mage.cards.Card; +import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.repository.CardCriteria; import mage.cards.repository.CardRepository; import mage.constants.Rarity; import mage.constants.SetType; -import mage.cards.CardGraphicInfo; + +import java.util.List; public class TimeSpiral extends ExpansionSet { diff --git a/Mage.Sets/src/mage/sets/TimeSpiralTimeshifted.java b/Mage.Sets/src/mage/sets/TimeSpiralTimeshifted.java index fcd6214bcd6..1adcce1dfbc 100644 --- a/Mage.Sets/src/mage/sets/TimeSpiralTimeshifted.java +++ b/Mage.Sets/src/mage/sets/TimeSpiralTimeshifted.java @@ -27,11 +27,11 @@ */ package mage.sets; +import mage.cards.ExpansionSet; import mage.cards.i.IcatianJavelineers; import mage.cards.s.SwampMosquito; -import mage.constants.SetType; -import mage.cards.ExpansionSet; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/UginsFate.java b/Mage.Sets/src/mage/sets/UginsFate.java index 417a2e2883d..c5ec9788cf8 100644 --- a/Mage.Sets/src/mage/sets/UginsFate.java +++ b/Mage.Sets/src/mage/sets/UginsFate.java @@ -28,8 +28,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Unglued.java b/Mage.Sets/src/mage/sets/Unglued.java index 83fd56458db..b775c77245c 100644 --- a/Mage.Sets/src/mage/sets/Unglued.java +++ b/Mage.Sets/src/mage/sets/Unglued.java @@ -1,11 +1,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; - -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; import mage.cards.FrameStyle; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Unhinged.java b/Mage.Sets/src/mage/sets/Unhinged.java index 9571281c872..efb8f262cd5 100644 --- a/Mage.Sets/src/mage/sets/Unhinged.java +++ b/Mage.Sets/src/mage/sets/Unhinged.java @@ -1,11 +1,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; - -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; import mage.cards.FrameStyle; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/UnlimitedEdition.java b/Mage.Sets/src/mage/sets/UnlimitedEdition.java index fcd252d29d7..d272b5c9124 100644 --- a/Mage.Sets/src/mage/sets/UnlimitedEdition.java +++ b/Mage.Sets/src/mage/sets/UnlimitedEdition.java @@ -1,9 +1,9 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/VenserVsKoth.java b/Mage.Sets/src/mage/sets/VenserVsKoth.java index aa6fdb52beb..b671974a5c6 100644 --- a/Mage.Sets/src/mage/sets/VenserVsKoth.java +++ b/Mage.Sets/src/mage/sets/VenserVsKoth.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/VintageMasters.java b/Mage.Sets/src/mage/sets/VintageMasters.java index 74905543cdb..b981d30bd7b 100644 --- a/Mage.Sets/src/mage/sets/VintageMasters.java +++ b/Mage.Sets/src/mage/sets/VintageMasters.java @@ -28,7 +28,6 @@ package mage.sets; -import java.util.List; import mage.cards.ExpansionSet; import mage.cards.h.HighTide; import mage.cards.h.HymnToTourach; @@ -38,6 +37,8 @@ import mage.cards.repository.CardRepository; import mage.constants.Rarity; import mage.constants.SetType; +import java.util.List; + /** * * @author LevelX2 diff --git a/Mage.Sets/src/mage/sets/WPNGateway.java b/Mage.Sets/src/mage/sets/WPNGateway.java index aef2cd535ac..1b52b21315f 100644 --- a/Mage.Sets/src/mage/sets/WPNGateway.java +++ b/Mage.Sets/src/mage/sets/WPNGateway.java @@ -5,10 +5,10 @@ */ package mage.sets; -import mage.cards.i.IcatianJavelineers; -import mage.constants.SetType; import mage.cards.ExpansionSet; +import mage.cards.i.IcatianJavelineers; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Weatherlight.java b/Mage.Sets/src/mage/sets/Weatherlight.java index 1507c4ad681..065500d14f4 100644 --- a/Mage.Sets/src/mage/sets/Weatherlight.java +++ b/Mage.Sets/src/mage/sets/Weatherlight.java @@ -28,10 +28,9 @@ package mage.sets; -import mage.constants.SetType; import mage.cards.ExpansionSet; - import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/WelcomeDeck2016.java b/Mage.Sets/src/mage/sets/WelcomeDeck2016.java index 5e12a55174c..33868299aab 100644 --- a/Mage.Sets/src/mage/sets/WelcomeDeck2016.java +++ b/Mage.Sets/src/mage/sets/WelcomeDeck2016.java @@ -29,8 +29,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/WorldMagicCupQualifier.java b/Mage.Sets/src/mage/sets/WorldMagicCupQualifier.java index 1a39a5a78a5..c37a71f21fc 100644 --- a/Mage.Sets/src/mage/sets/WorldMagicCupQualifier.java +++ b/Mage.Sets/src/mage/sets/WorldMagicCupQualifier.java @@ -28,9 +28,9 @@ package mage.sets; -import mage.constants.SetType; import mage.cards.ExpansionSet; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/Zendikar.java b/Mage.Sets/src/mage/sets/Zendikar.java index be510378d15..68ff5481549 100644 --- a/Mage.Sets/src/mage/sets/Zendikar.java +++ b/Mage.Sets/src/mage/sets/Zendikar.java @@ -28,12 +28,12 @@ package mage.sets; -import mage.constants.SetType; -import mage.cards.ExpansionSet; -import mage.constants.Rarity; import mage.ObjectColor; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; import mage.cards.FrameStyle; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/ZendikarExpeditions.java b/Mage.Sets/src/mage/sets/ZendikarExpeditions.java index 8df1a166251..002d5f4b485 100644 --- a/Mage.Sets/src/mage/sets/ZendikarExpeditions.java +++ b/Mage.Sets/src/mage/sets/ZendikarExpeditions.java @@ -28,8 +28,8 @@ package mage.sets; import mage.cards.ExpansionSet; -import mage.constants.SetType; import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Sets/src/mage/sets/ZendikarVsEldrazi.java b/Mage.Sets/src/mage/sets/ZendikarVsEldrazi.java index 81ef015aa11..d53bd459a72 100644 --- a/Mage.Sets/src/mage/sets/ZendikarVsEldrazi.java +++ b/Mage.Sets/src/mage/sets/ZendikarVsEldrazi.java @@ -28,10 +28,10 @@ package mage.sets; -import mage.cards.ExpansionSet; -import mage.constants.SetType; -import mage.constants.Rarity; import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; /** * diff --git a/Mage.Stats/pom.xml b/Mage.Stats/pom.xml index ae2e1c11ad7..51041d30dcb 100644 --- a/Mage.Stats/pom.xml +++ b/Mage.Stats/pom.xml @@ -6,7 +6,7 @@ org.mage mage-root - 1.4.22 + 1.4.23 org.mage diff --git a/Mage.Tests/pom.xml b/Mage.Tests/pom.xml index b91c7845170..464c5a93467 100644 --- a/Mage.Tests/pom.xml +++ b/Mage.Tests/pom.xml @@ -6,7 +6,7 @@ org.mage mage-root - 1.4.22 + 1.4.23 mage-tests diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/add/GainAbilitiesTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/add/GainAbilitiesTest.java new file mode 100644 index 00000000000..8b519b94160 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/add/GainAbilitiesTest.java @@ -0,0 +1,47 @@ +package org.mage.test.cards.abilities.add; + +import mage.abilities.keyword.SkulkAbility; +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * + * @author escplan9 + */ +public class GainAbilitiesTest extends CardTestPlayerBase { + + /* + Reported bug: Behind the Scenes grants skulk to all creatures instead of just ones under owner's control + */ + @Test + public void behindTheScenesShouldOnlyGrantSkulkToCreaturesYouControl() { + + /* + Behind the Scenes {2}{B} + Enchantment + Creatures you control have skulk. (They can't be blocked by creatures with greater power.) + {4}{W}: Creatures you control get +1/+1 until end of turn + */ + String bScenes = "Behind the Scenes"; + String hGiant = "Hill Giant"; // {3}{R} 3/3 + String bSable = "Bronze Sable"; // {2} 2/1 + String memnite = "Memnite"; // {0} 1/1 + String gBears = "Grizzly Bears"; // {1}{G} 2/2 + + addCard(Zone.BATTLEFIELD, playerA, bScenes); + addCard(Zone.BATTLEFIELD, playerA, hGiant); + addCard(Zone.BATTLEFIELD, playerA, bSable); + addCard(Zone.BATTLEFIELD, playerB, memnite); + addCard(Zone.BATTLEFIELD, playerB, gBears); + + setStopAt(1, PhaseStep.PRECOMBAT_MAIN); + execute(); + + assertAbility(playerA, hGiant, new SkulkAbility(), true); + assertAbility(playerA, bSable, new SkulkAbility(), true); + assertAbility(playerB, memnite, new SkulkAbility(), false); + assertAbility(playerB, gBears, new SkulkAbility(), false); + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/BestowTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/BestowTest.java index 7d0cc9d1047..06737b84159 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/BestowTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/BestowTest.java @@ -27,7 +27,6 @@ */ package org.mage.test.cards.abilities.keywords; -import mage.constants.CardType; import mage.constants.PhaseStep; import mage.constants.Zone; import mage.game.permanent.Permanent; @@ -109,7 +108,7 @@ public class BestowTest extends CardTestPlayerBase { // because Boon Satyr is no creature on the battlefield, evolve may not trigger assertPermanentCount(playerA, "Boon Satyr", 1); Permanent boonSatyr = getPermanent("Boon Satyr", playerA); - Assert.assertTrue("Boon Satyr may not be a creature", !boonSatyr.getCardType().contains(CardType.CREATURE)); + Assert.assertTrue("Boon Satyr may not be a creature", !boonSatyr.isCreature()); assertPermanentCount(playerA, "Silent Artisan", 1); assertPermanentCount(playerA, "Experiment One", 1); assertPowerToughness(playerA, "Experiment One", 1, 1); @@ -145,8 +144,8 @@ public class BestowTest extends CardTestPlayerBase { assertPowerToughness(playerA, "Hopeful Eidolon", 1, 1); Permanent hopefulEidolon = getPermanent("Hopeful Eidolon", playerA); - Assert.assertTrue("Hopeful Eidolon has to be a creature but is not", hopefulEidolon.getCardType().contains(CardType.CREATURE)); - Assert.assertTrue("Hopeful Eidolon has to be an enchantment but is not", hopefulEidolon.getCardType().contains(CardType.ENCHANTMENT)); + Assert.assertTrue("Hopeful Eidolon has to be a creature but is not", hopefulEidolon.isCreature()); + Assert.assertTrue("Hopeful Eidolon has to be an enchantment but is not", hopefulEidolon.isEnchantment()); } @@ -360,7 +359,7 @@ public class BestowTest extends CardTestPlayerBase { assertPowerToughness(playerB, "Nighthowler", 2, 2); Permanent nighthowler = getPermanent("Nighthowler", playerB); - Assert.assertEquals("Nighthowler has to be a creature", true, nighthowler.getCardType().contains(CardType.CREATURE)); + Assert.assertEquals("Nighthowler has to be a creature", true, nighthowler.isCreature()); } @Test diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/FlashbackTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/FlashbackTest.java index 2e4971fef67..2c1d1fd4c34 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/FlashbackTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/FlashbackTest.java @@ -100,7 +100,6 @@ public class FlashbackTest extends CardTestPlayerBase { assertPermanentCount(playerA, "Snapcaster Mage", 0); assertGraveyardCount(playerA, "Repeal", 0); assertExileCount("Repeal", 1); - } /** @@ -132,7 +131,6 @@ public class FlashbackTest extends CardTestPlayerBase { assertPermanentCount(playerA, "Snapcaster Mage", 0); assertGraveyardCount(playerA, "Blaze", 0); assertExileCount("Blaze", 1); - } /** @@ -208,7 +206,6 @@ public class FlashbackTest extends CardTestPlayerBase { assertPermanentCount(playerA, "Snapcaster Mage", 1); assertPermanentCount(playerA, "Kor Ally", 4); assertExileCount("Unified Front", 1); - } /** @@ -238,7 +235,6 @@ public class FlashbackTest extends CardTestPlayerBase { assertLife(playerB, 14); assertExileCount("Conflagrate", 1); - } /** @@ -274,7 +270,6 @@ public class FlashbackTest extends CardTestPlayerBase { assertPermanentCount(playerA, "Snapcaster Mage", 1); assertGraveyardCount(playerA, "Ancestral Vision", 1); assertHandCount(playerA, 0); - } /** @@ -364,7 +359,6 @@ public class FlashbackTest extends CardTestPlayerBase { assertTappedCount("Mountain", true, 2); assertTappedCount("Island", true, 2); assertTappedCount("Swamp", true, 2); - } @Test @@ -389,7 +383,6 @@ public class FlashbackTest extends CardTestPlayerBase { assertGraveyardCount(playerA, "Whispers of the Muse", 0); assertHandCount(playerA, 1); assertExileCount("Whispers of the Muse", 1); - } /** @@ -412,6 +405,110 @@ public class FlashbackTest extends CardTestPlayerBase { assertLife(playerB, 20); assertHandCount(playerA, 2); assertTappedCount("Island", true, 2); + } + /* + * Bug: Firecat Blitz when cast via Flashback requests sacrificing mountains twice + */ + @Test + public void firecatBlitzFlashback() { + + /* + Firecat Blitz {X}{R}{R} + Sorcery + Create X 1/1 red Elemental Cat creature tokens with haste. Exile them at the beginning of the next end step. + Flashback—{R}{R}, Sacrifice X Mountains. + */ + String fCatBlitz = "Firecat Blitz"; + String mountain = "Mountain"; + + addCard(Zone.GRAVEYARD, playerA, fCatBlitz); + addCard(Zone.BATTLEFIELD, playerA, mountain, 6); + + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Flashback"); // Flashback blitz + + setChoice(playerA, "X=1"); + addTarget(playerA, mountain); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertExileCount(playerA, fCatBlitz, 1); + assertPermanentCount(playerA, "Elemental Cat", 1); + assertGraveyardCount(playerA, mountain, 1); + } + + /* + * Reported bug: Battle Screech doesn't flashback (i get the pop up to choose flashback, tap the creatures and nothing happens) + */ + @Test + public void battleScreechFlashback() { + + /* + Battle Screech {2}{W}{W} + Sorcery + Create two 1/1 white Bird creature tokens with flying. + Flashback—Tap three untapped white creatures you control. + */ + String bScreech = "Battle Screech"; + String eVanguard = "Elite Vanguard"; // {W} 2/1 + String yOx = "Yoked Ox"; // {W} 0/4 + String wKnight = "White Knight"; // {W}{W} 2/2 + + addCard(Zone.GRAVEYARD, playerA, bScreech); + addCard(Zone.BATTLEFIELD, playerA, eVanguard); + addCard(Zone.BATTLEFIELD, playerA, yOx); + addCard(Zone.BATTLEFIELD, playerA, wKnight); + + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Flashback"); // Flashback Battle Screech + addTarget(playerA, eVanguard + '^' + yOx + '^' + wKnight); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertTapped(eVanguard, true); + assertTapped(yOx, true); + assertTapped(wKnight, true); + assertExileCount(playerA, bScreech, 1); // this fails, but the creatures are tapped as part of paying the cost + assertPermanentCount(playerA, "Bird", 2); // if you comment out the above line, this is failing as well + } + + /* + Reported bug: tried to flashback Dread Return, it allowed me to sac the creatures but the spell did not resolve after the costs had been paid. + It did not allow me to select a creature to return from yard to board. + */ + @Test + public void dreadReturnFlashback() { + + /* + Dread Return {2}{B}{B} + Sorcery + Return target creature card from your graveyard to the battlefield. + Flashback—Sacrifice three creatures + */ + String dReturn = "Dread Return"; + String yOx = "Yoked Ox"; // {W} 0/4 + String eVanguard = "Elite Vanguard"; // {W} 2/1 + String memnite = "Memnite"; // {0} 1/1 + String bSable = "Bronze Sable"; // {2} 2/1 + + addCard(Zone.GRAVEYARD, playerA, dReturn); + addCard(Zone.GRAVEYARD, playerA, bSable); + addCard(Zone.BATTLEFIELD, playerA, yOx); + addCard(Zone.BATTLEFIELD, playerA, eVanguard); + addCard(Zone.BATTLEFIELD, playerA, memnite); + + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Flashback"); // Flashback Dread Return + addTarget(playerA, bSable); // return to battlefield + addTarget(playerA, yOx + '^' + eVanguard + '^' + memnite); // sac 3 creatures + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertGraveyardCount(playerA, eVanguard, 1); + assertGraveyardCount(playerA,yOx, 1); + assertGraveyardCount(playerA, memnite, 1); + assertExileCount(playerA, dReturn, 1); + assertPermanentCount(playerA, bSable, 1); } } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/oneshot/counter/AddingCountersToPermanentsTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/oneshot/counter/AddingCountersToPermanentsTest.java index f341e607f4b..5dd20d068df 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/oneshot/counter/AddingCountersToPermanentsTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/oneshot/counter/AddingCountersToPermanentsTest.java @@ -91,4 +91,66 @@ public class AddingCountersToPermanentsTest extends CardTestPlayerBase { } + @Test + public void testSoulstingerNormal() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 4); + // When Soulstinger enters the battlefield, put two -1/-1 counter on target creature you control. + // When Soulstinger dies, you may put a -1/-1 counter on target creature for each -1/-1 counter on Soulstinger. + addCard(Zone.HAND, playerA, "Soulstinger", 1); // Creature 4/5 {3}{B} + + addCard(Zone.BATTLEFIELD, playerB, "Mountain", 5); + // Turn to Slag deals 5 damage to target creature. Destroy all Equipment attached to that creature. + addCard(Zone.HAND, playerB, "Turn to Slag", 1); // Sorcery {3}{R}{R} + addCard(Zone.BATTLEFIELD, playerB, "Pillarfield Ox", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Soulstinger"); + addTarget(playerA, "Soulstinger"); + + castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Turn to Slag", "Soulstinger"); + + setStopAt(2, PhaseStep.END_TURN); + execute(); + + assertGraveyardCount(playerA, "Soulstinger", 1); + + assertGraveyardCount(playerB, "Turn to Slag", 1); + + assertPowerToughness(playerB, "Pillarfield Ox", 0, 2); + + } + + /** + * Soulstinger died and gave a -1/-1 counter to an opponent's creature. + * Soulstinger had no -1/-1 counters on it, but the opponent's creature did, + * so maybe checking quantity of counters on the wrong creature? + */ + @Test + public void testSoulstinger() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 4); + // When Soulstinger enters the battlefield, put two -1/-1 counter on target creature you control. + // When Soulstinger dies, you may put a -1/-1 counter on target creature for each -1/-1 counter on Soulstinger. + addCard(Zone.HAND, playerA, "Soulstinger", 1); // Creature 4/5 {3}{B} + addCard(Zone.BATTLEFIELD, playerA, "Silvercoat Lion", 1); + + addCard(Zone.BATTLEFIELD, playerB, "Mountain", 5); + // Turn to Slag deals 5 damage to target creature. Destroy all Equipment attached to that creature. + addCard(Zone.HAND, playerB, "Turn to Slag", 1); // Sorcery {3}{R}{R} + addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Soulstinger"); + addTarget(playerA, "Silvercoat Lion"); + + castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Turn to Slag", "Soulstinger"); + + setStopAt(2, PhaseStep.END_TURN); + execute(); + + assertGraveyardCount(playerA, "Silvercoat Lion", 1); + assertGraveyardCount(playerA, "Soulstinger", 1); + + assertGraveyardCount(playerB, "Turn to Slag", 1); + + assertPowerToughness(playerB, "Silvercoat Lion", 2, 2); + + } } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/oneshot/damage/SoulBurnTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/oneshot/damage/SoulBurnTest.java new file mode 100644 index 00000000000..29140f0313e --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/oneshot/damage/SoulBurnTest.java @@ -0,0 +1,179 @@ +package org.mage.test.cards.abilities.oneshot.damage; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * @author Johnny E. Hastings + */ +public class SoulBurnTest extends CardTestPlayerBase { + + @Test + public void testDamageOpponentAllBlackMana() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.HAND, playerA, "Soul Burn"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Soul Burn", playerB); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + assertLife(playerA, 22); + assertLife(playerB, 18); + } + + @Test + public void testDamageOpponentOneBlackFourRedMana() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.HAND, playerA, "Soul Burn"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Soul Burn", playerB); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + assertLife(playerA, 20); + assertLife(playerB, 18); + } + + @Test + public void testDamageOpponentAllKindsOfMana() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Island"); + addCard(Zone.BATTLEFIELD, playerA, "Plains"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.HAND, playerA, "Soul Burn"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Soul Burn", playerB); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + assertLife(playerA, 21); + assertLife(playerB, 17); + } + + @Test + public void testDamageSelfAllSwamps() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.HAND, playerA, "Soul Burn"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Soul Burn", playerA); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + assertLife(playerA, 20); + assertLife(playerB, 20); + } + + @Test + public void testDamageSelfWithSwampsAndMountains() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.HAND, playerA, "Soul Burn"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Soul Burn", playerA); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + assertLife(playerA, 18); + assertLife(playerB, 20); + } + + @Test + public void testDamageSmallCreatureAllSwamps() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.HAND, playerA, "Soul Burn"); + + addCard(Zone.BATTLEFIELD, playerB, "Bog Imp"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Soul Burn", "Bog Imp"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + assertPermanentCount(playerB, "Bog Imp", 0); + assertLife(playerA, 21); + assertLife(playerB, 20); + } + + @Test + public void testDamageSmallCreatureSwampsAndMountains() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.HAND, playerA, "Soul Burn"); + + addCard(Zone.BATTLEFIELD, playerB, "Bog Imp"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Soul Burn", "Bog Imp"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + assertPermanentCount(playerB, "Bog Imp", 0); + assertLife(playerA, 20); + assertLife(playerB, 20); + } + + @Test + public void testDamageBigCreatureAllSwamps() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.HAND, playerA, "Soul Burn"); + + addCard(Zone.BATTLEFIELD, playerB, "Craw Wurm"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Soul Burn", "Craw Wurm"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + assertPermanentCount(playerB, "Craw Wurm", 1); + assertLife(playerA, 22); + assertLife(playerB, 20); + } + + @Test + public void testDamageBigCreatureSwampsAndMountains() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerA, "Swamp"); + addCard(Zone.HAND, playerA, "Soul Burn"); + + addCard(Zone.BATTLEFIELD, playerB, "Craw Wurm"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Soul Burn", "Craw Wurm"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + assertPermanentCount(playerB, "Craw Wurm", 1); + assertLife(playerA, 21); + assertLife(playerB, 20); + } + +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/other/EndTurnEffectTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/other/EndTurnEffectTest.java index 22427aa16c8..1a0462e4ace 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/other/EndTurnEffectTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/other/EndTurnEffectTest.java @@ -55,6 +55,9 @@ public class EndTurnEffectTest extends CardTestPlayerBase { addCard(Zone.BATTLEFIELD, playerA, "Sphinx's Tutelage"); // Each player shuffles his or her hand and graveyard into his or her library, then draws seven cards. If it's your turn, end the turn. + // (Exile all spells and abilities on the stack, including this card. + // Discard down to your maximum hand size. Damage wears off, and + // "this turn" and "until end of turn" effects end.) addCard(Zone.HAND, playerA, "Day's Undoing"); //Sorcery {2}{U} castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Day's Undoing"); @@ -67,8 +70,42 @@ public class EndTurnEffectTest extends CardTestPlayerBase { assertHandCount(playerA, 7); assertHandCount(playerB, 7); - assertGraveyardCount(playerB, 0); // because the trigegrs of Sphinx's Tutelage cease to exist + assertGraveyardCount(playerB, 0); // because the triggers of Sphinx's Tutelage cease to exist } + @Test + public void testSpellSplitCard() { + addCard(Zone.BATTLEFIELD, playerA, "Island", 6); + + addCard(Zone.BATTLEFIELD, playerA, "Silvercoat Lion"); + + // End the turn. + // (Exile all spells and abilities on the stack, including this card. + // Discard down to your maximum hand size. Damage wears off, and + // "this turn" and "until end of turn" effects end.) + addCard(Zone.HAND, playerA, "Time Stop"); //Instant {4}{U}{U} + + addCard(Zone.BATTLEFIELD, playerB, "Island", 2); + // Fire + // Fire deals 2 damage divided as you choose among one or two target creatures and/or players. + // Ice + // Tap target permanent. Draw a card. + addCard(Zone.HAND, playerB, "Fire // Ice"); // Instant {1}{R} // {1}{U} + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Ice", "Silvercoat Lion"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Time Stop", NO_TARGET, "Ice"); + + setStopAt(2, PhaseStep.UPKEEP); + execute(); + + assertHandCount(playerB, "Fire // Ice", 0); + assertExileCount(playerA, "Time Stop", 1); + assertExileCount(playerB, "Fire // Ice", 1); + assertTapped("Silvercoat Lion", false); + assertHandCount(playerA, 0); + assertHandCount(playerB, 0); + + } } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/control/BattlefieldTriggeredAbilitiesTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/control/BattlefieldTriggeredAbilitiesTest.java index d9340ed3756..7544e1de022 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/control/BattlefieldTriggeredAbilitiesTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/control/BattlefieldTriggeredAbilitiesTest.java @@ -1,6 +1,5 @@ package org.mage.test.cards.control; -import mage.constants.CardType; import mage.constants.PhaseStep; import mage.constants.Zone; import mage.game.permanent.Permanent; @@ -47,7 +46,7 @@ public class BattlefieldTriggeredAbilitiesTest extends CardTestPlayerBase { int playerACount = 0; int playerBCount = 0; for (Permanent p : currentGame.getBattlefield().getAllActivePermanents()) { - if (p.getCardType().contains(CardType.LAND)) { + if (p.isLand()) { if (p.getControllerId().equals(playerB.getId())) { playerBCount++; } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/copy/LazavDimirMastermindTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/copy/LazavDimirMastermindTest.java index bba2800208a..9586b31992f 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/copy/LazavDimirMastermindTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/copy/LazavDimirMastermindTest.java @@ -117,7 +117,7 @@ public class LazavDimirMastermindTest extends CardTestPlayerBase { Permanent lazav = getPermanent("Lazav, Dimir Mastermind", playerA.getId()); Assert.assertTrue(lazav.getAbilities().contains(FlyingAbility.getInstance())); Assert.assertTrue(lazav.getSubtype(currentGame).contains("Specter")); - Assert.assertTrue(lazav.getSupertype().contains("Legendary")); + Assert.assertTrue(lazav.isLegendary()); assertPermanentCount(playerA, "Silvercoat Lion", 1); assertPowerToughness(playerA, "Silvercoat Lion", 2, 2); @@ -147,7 +147,7 @@ public class LazavDimirMastermindTest extends CardTestPlayerBase { Permanent lazav = getPermanent("Lazav, Dimir Mastermind", playerA.getId()); Assert.assertTrue(lazav.getSubtype(currentGame).contains("Cat")); - Assert.assertTrue(lazav.getSupertype().contains("Legendary")); + Assert.assertTrue(lazav.isLegendary()); } /** diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/copy/ProgenitorMimicTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/copy/ProgenitorMimicTest.java index 258f9ef0bfd..fe8749ad39f 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/copy/ProgenitorMimicTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/copy/ProgenitorMimicTest.java @@ -1,6 +1,5 @@ package org.mage.test.cards.copy; -import mage.constants.CardType; import mage.constants.PhaseStep; import mage.constants.Zone; import mage.filter.Filter; @@ -42,7 +41,7 @@ public class ProgenitorMimicTest extends CardTestPlayerBase { int nonTokens = 0; for (Permanent permanent : currentGame.getBattlefield().getAllPermanents()) { if (permanent.getControllerId().equals(playerB.getId())) { - if (permanent.getCardType().contains(CardType.CREATURE)) { + if (permanent.isCreature()) { if (permanent instanceof PermanentToken) { tokens++; } else { @@ -122,7 +121,7 @@ public class ProgenitorMimicTest extends CardTestPlayerBase { int nonTokens = 0; for (Permanent permanent : currentGame.getBattlefield().getAllPermanents()) { if (permanent.getControllerId().equals(playerB.getId())) { - if (permanent.getCardType().contains(CardType.CREATURE)) { + if (permanent.isCreature()) { if (permanent instanceof PermanentToken) { tokens++; } else { diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/mana/NykthosShrineToNyxTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/mana/NykthosShrineToNyxTest.java index ce3903687bb..2c7a35b08c2 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/mana/NykthosShrineToNyxTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/mana/NykthosShrineToNyxTest.java @@ -51,13 +51,13 @@ public class NykthosShrineToNyxTest extends CardTestPlayerBase { // Green mana doesn't empty from your mana pool as steps and phases end. // Omnath, Locus of Mana gets +1/+1 for each green mana in your mana pool. addCard(Zone.BATTLEFIELD, playerA, "Omnath, Locus of Mana", 1); - + activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2},{T}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color."); setChoice(playerA, "Green"); - + setStopAt(1, PhaseStep.PRECOMBAT_MAIN); execute(); - + Assert.assertEquals("message", 6, playerA.getManaPool().getGreen()); // 6 green mana assertPowerToughness(playerA, "Omnath, Locus of Mana", 7, 7); } @@ -78,7 +78,7 @@ public class NykthosShrineToNyxTest extends CardTestPlayerBase { activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2},{T}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color."); setChoice(playerA, "Green"); - activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Untap another target permanent.","Nykthos, Shrine to Nyx"); + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Untap another target permanent.", "Nykthos, Shrine to Nyx"); activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2},{T}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color."); setChoice(playerA, "Green"); @@ -87,12 +87,12 @@ public class NykthosShrineToNyxTest extends CardTestPlayerBase { execute(); Assert.assertEquals("amount of green mana", 10, playerA.getManaPool().getGreen()); // 6G - 2G = 4G + 6G = 10G - assertPowerToughness(playerA, "Omnath, Locus of Mana", 11,11); + assertPowerToughness(playerA, "Omnath, Locus of Mana", 11, 11); } + /* Use Nykthos together with Kruphix, God of Horizons to save mana as colorless mana - */ - + */ @Test public void testDoubleUseWithKruphix() { addCard(Zone.BATTLEFIELD, playerA, "Island", 2); // to use Nykthos @@ -109,7 +109,7 @@ public class NykthosShrineToNyxTest extends CardTestPlayerBase { activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2},{T}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color."); setChoice(playerA, "Green"); - activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Untap another target permanent.","Nykthos, Shrine to Nyx"); + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Untap another target permanent.", "Nykthos, Shrine to Nyx"); activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2},{T}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color."); setChoice(playerA, "Green"); @@ -117,8 +117,8 @@ public class NykthosShrineToNyxTest extends CardTestPlayerBase { setStopAt(1, PhaseStep.BEGIN_COMBAT); execute(); - Assert.assertEquals("amount of colorless mana", 10, playerA.getManaPool().getColorless()); // 6 - 2 (2.Activation) = 4 + 6 = 10 colorless mana - assertPowerToughness(playerA, "Kruphix, God of Horizons", 4,7); + Assert.assertEquals("amount of colorless mana", 10, playerA.getManaPool().getColorless()); // 6 - 2 (2.Activation) = 4 + 6 = 10 colorless mana + assertPowerToughness(playerA, "Kruphix, God of Horizons", 4, 7); } @Test @@ -145,7 +145,7 @@ public class NykthosShrineToNyxTest extends CardTestPlayerBase { activateManaAbility(1, PhaseStep.BEGIN_COMBAT, playerA, "{2},{T}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color."); setChoice(playerA, "Green"); - + setStopAt(1, PhaseStep.BEGIN_COMBAT); execute(); @@ -153,4 +153,70 @@ public class NykthosShrineToNyxTest extends CardTestPlayerBase { Assert.assertEquals("amount of green mana", 5, playerA.getManaPool().getGreen()); // 6 green mana assertPowerToughness(playerA, "Omnath, Locus of Mana", 6, 6); } + + @Test + public void testNykthosDevotionAccurate() { + + /* + Nykthos, Shrine to Nyx + Legendary Land + {T}: Add {1} to your mana pool. + {2}, {T}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color. + */ + String nykthos = "Nykthos, Shrine to Nyx"; + + /* + Stronghold Assassin {1}{B}{B} + Creature — Zombie Assassin 2/1 + {T}, Sacrifice a creature: Destroy target nonblack creature. + */ + String sAssassin = "Stronghold Assassin"; + + /* + Graf Harvest {B} + Enchantment + Zombies you control have menace. (They can't be blocked except by two or more creatures.) + {3}{B}, Exile a creature card from your graveyard: Create a 2/2 black Zombie creature token. + */ + String gHarvest = "Graf Harvest"; + + /* + Erebos, God of the Dead {3}{B} + Legendary Enchantment Creature — God 5/7 + Indestructible + As long as your devotion to black is less than five, Erebos isn't a creature. + Your opponents can't gain life. + {1}{B}, Pay 2 life: Draw a card. + */ + String erebos = "Erebos, God of the Dead"; + + /* + Phyrexian Obliterator {B}{B}{B}{B} + Creature — Horror + Trample + Whenever a source deals damage to Phyrexian Obliterator, that source's controller sacrifices that many permanents. + */ + String pObliterator = "Phyrexian Obliterator"; + + addCard(Zone.BATTLEFIELD, playerA, nykthos); + addCard(Zone.BATTLEFIELD, playerA, sAssassin); + addCard(Zone.BATTLEFIELD, playerA, gHarvest); + addCard(Zone.BATTLEFIELD, playerA, erebos); + addCard(Zone.BATTLEFIELD, playerA, "Wastes", 2); // two colorless to pay for nykthos + addCard(Zone.HAND, playerA, pObliterator); // just for something to cast for 4 black mana + + activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2},{T}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color."); + setChoice(playerA, "Black"); // should produce 4 black mana + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, pObliterator); // costs exactly 4 black mana should be castable + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertTappedCount("Wastes", true, 2); + assertTapped(nykthos, true); + // Assert.assertEquals("amount of black mana", 4, playerA.getManaPool().getBlack()); // should be 4 black mana + assertHandCount(playerA, pObliterator, 0); + assertPermanentCount(playerA, pObliterator, 1); + } } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/mana/SpendManaAsThoughItWereManaOfAnyColorTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/mana/SpendManaAsThoughItWereManaOfAnyColorTest.java index 0743a0962e6..6673dc09721 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/mana/SpendManaAsThoughItWereManaOfAnyColorTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/mana/SpendManaAsThoughItWereManaOfAnyColorTest.java @@ -29,6 +29,7 @@ package org.mage.test.cards.mana; import mage.constants.PhaseStep; import mage.constants.Zone; +import mage.counters.CounterType; import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; @@ -69,4 +70,63 @@ public class SpendManaAsThoughItWereManaOfAnyColorTest extends CardTestPlayerBas } + /** + * Celestial Dawn does not allow spending of off-color mana for any purpose. + * Had a Black Market down, was trying to cast Darksteel Forge, could not + * spend the black mana on the forge. + */ + @Test + public void testCelestialDawn() { + addCard(Zone.BATTLEFIELD, playerA, "Mountain", 8); + // Lands you control are Plains. + // Nonland cards you own that aren't on the battlefield, spells you control, and nonland permanents you control are white. + // You may spend white mana as though it were mana of any color. + // You may spend other mana only as though it were colorless mana. + addCard(Zone.BATTLEFIELD, playerA, "Celestial Dawn", 1); + + // Whenever a creature dies, put a charge counter on Black Market. + // At the beginning of your precombat main phase, add {B} to your mana pool for each charge counter on Black Market. + addCard(Zone.BATTLEFIELD, playerA, "Black Market", 1); + addCard(Zone.BATTLEFIELD, playerA, "Silvercoat Lion", 1); + + // Artifacts you control are indestructible. + addCard(Zone.HAND, playerA, "Darksteel Forge", 1); // Artifact {9} + + addCard(Zone.BATTLEFIELD, playerB, "Mountain", 1); + addCard(Zone.HAND, playerB, "Lightning Bolt", 1); + + castSpell(1, PhaseStep.UPKEEP, playerB, "Lightning Bolt", "Silvercoat Lion"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Darksteel Forge"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertGraveyardCount(playerA, "Silvercoat Lion", 1); + assertGraveyardCount(playerB, "Lightning Bolt", 1); + assertCounterCount("Black Market", CounterType.CHARGE, 1); + + assertPermanentCount(playerA, "Darksteel Forge", 1); + + } + + @Test + public void testCelestialDawnAny() { + addCard(Zone.BATTLEFIELD, playerA, "Mountain", 2); + // Lands you control are Plains. + // Nonland cards you own that aren't on the battlefield, spells you control, and nonland permanents you control are white. + // You may spend white mana as though it were mana of any color. + // You may spend other mana only as though it were colorless mana. + addCard(Zone.BATTLEFIELD, playerA, "Celestial Dawn", 1); + + addCard(Zone.HAND, playerA, "Vedalken Mastermind", 1); // Creature {U}{U} + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Vedalken Mastermind"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertPermanentCount(playerA, "Vedalken Mastermind", 1); + + } } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/replacement/DamageEffectsTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/replacement/DamageEffectsTest.java index 2555155884a..50fc886cf52 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/replacement/DamageEffectsTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/replacement/DamageEffectsTest.java @@ -95,4 +95,48 @@ public class DamageEffectsTest extends CardTestPlayerBase { assertLife(playerA, 32); } + + @Test + public void vexingDevilFurnaceRathRedirectToPlaneswalker() { + + /* + Vexing Devil {R} + Creature — Devil + When Vexing Devil enters the battlefield, any opponent may have it deal 4 damage to him or her. If a player does, sacrifice Vexing Devil. + */ + String vDevil = "Vexing Devil"; + + /* + Nissa, Worldwaker {3}{G}{G} + Planeswalker — Nissa + +1: Target land you control becomes a 4/4 Elemental creature with trample. It's still a land. + +1: Untap up to four target Forests. + −7: Search your library for any number of basic land cards, put them onto the battlefield, then shuffle your library. Those lands become 4/4 Elemental creatures with trample. They're still lands. + */ + String nissa = "Nissa, Worldwaker"; + + /* + Furnace of Rath {1}{R}{R}{R} + Enchantment + If a source would deal damage to a creature or player, it deals double that damage to that creature or player instead. + */ + addCard(Zone.BATTLEFIELD, playerB, "Furnace of Rath"); + addCard(Zone.HAND, playerB, vDevil); + addCard(Zone.HAND, playerA, nissa); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 5); + addCard(Zone.BATTLEFIELD, playerB, "Mountain", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, nissa); + castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, vDevil); + setChoice(playerA, "Yes"); // deal 8 damage to playerA and sac vexing devil (8 due to furnace) + setChoice(playerB, "Yes"); // redirect to planeswalker + addTarget(playerB, nissa); + + setStopAt(2, PhaseStep.BEGIN_COMBAT); + execute(); + + assertGraveyardCount(playerB, vDevil, 1); + assertLife(playerA, 20); + assertGraveyardCount(playerA, nissa, 1); + } } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/replacement/DrawEffectsTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/replacement/DrawEffectsTest.java index 58548cfc8e9..59a07848015 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/replacement/DrawEffectsTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/replacement/DrawEffectsTest.java @@ -52,7 +52,7 @@ public class DrawEffectsTest extends CardTestPlayerBase { setStopAt(2, PhaseStep.PRECOMBAT_MAIN); execute(); - Assert.assertEquals("Player B has to have 4 cards in hand", 8, playerB.getHand().size()); + Assert.assertEquals("Player B has to have 8 cards in hand", 8, playerB.getHand().size()); } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/replacement/entersBattlefield/HardenedScaleTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/replacement/entersBattlefield/HardenedScaleTest.java new file mode 100644 index 00000000000..fe4424442c6 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/replacement/entersBattlefield/HardenedScaleTest.java @@ -0,0 +1,142 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package org.mage.test.cards.replacement.entersBattlefield; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import mage.counters.CounterType; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * + * @author LevelX2 + */ +public class HardenedScaleTest extends CardTestPlayerBase { + + /* + Reported bug: Hangarback interaciton with Hardened Scales and Metallic Mimic on board is incorrect. + */ + @Test + public void hangarBackHardenedScalesMetallicMimicTest() { + + /* + Hangarback Walker {X}{X} + Artifact Creature — Construct 0/0 + Hangarback Walker enters the battlefield with X +1/+1 counters on it. + When Hangarback Walker dies, create a 1/1 colorless Thopter artifact creature token with flying for each +1/+1 counter on Hangarback Walker. + {1}, {T}: Put a +1/+1 counter on Hangarback Walker. + */ + String hWalker = "Hangarback Walker"; + + /* + Hardened Scales {G} + Enchantment + If one or more +1/+1 counters would be placed on a creature you control, that many plus one +1/+1 counters are placed on it instead. + */ + String hScales = "Hardened Scales"; + + /* + Metallic Mimic {2} + Artifact Creature — Shapeshifter 2/1 + As Metallic Mimic enters the battlefield, choose a creature type. + Metallic Mimic is the chosen type in addition to its other types. + Each other creature you control of the chosen type enters the battlefield with an additional +1/+1 counter on it. + */ + String mMimic = "Metallic Mimic"; + + addCard(Zone.BATTLEFIELD, playerA, hScales); + addCard(Zone.HAND, playerA, mMimic); + addCard(Zone.HAND, playerA, hWalker); + addCard(Zone.BATTLEFIELD, playerA, "Wastes", 4); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, mMimic); + setChoice(playerA, "Construct"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, hWalker); + setChoice(playerA, "X=1"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertPermanentCount(playerA, mMimic, 1); + assertPermanentCount(playerA, hWalker, 1); + assertCounterCount(playerA, hWalker, CounterType.P1P1, 3); + assertPowerToughness(playerA, hWalker, 3, 3); + } + + @Test + public void testWithVigorMortis() { + + /* + Vigor Mortis {2}{B}{B} + Sorcery + Return target creature card from your graveyard to the battlefield. If {G} was spent to cast Vigor Mortis, + that creature enters the battlefield with an additional +1/+1 counter on it. + */ + String vMortis = "Vigor Mortis"; + + /* + Hardened Scales {G} + Enchantment + If one or more +1/+1 counters would be placed on a creature you control, that many plus one +1/+1 counters are placed on it instead. + */ + String hScales = "Hardened Scales"; + + /* + Metallic Mimic {2} + Artifact Creature — Shapeshifter 2/1 + As Metallic Mimic enters the battlefield, choose a creature type. + Metallic Mimic is the chosen type in addition to its other types. + Each other creature you control of the chosen type enters the battlefield with an additional +1/+1 counter on it. + */ + String mMimic = "Metallic Mimic"; + + addCard(Zone.GRAVEYARD, playerA, "Silvercoat Lion"); + addCard(Zone.BATTLEFIELD, playerA, hScales); + addCard(Zone.HAND, playerA, mMimic); + addCard(Zone.HAND, playerA, vMortis); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 2); + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 2); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, mMimic); + setChoice(playerA, "Cat"); + + castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, vMortis, "Silvercoat Lion"); + + setStopAt(3, PhaseStep.BEGIN_COMBAT); + execute(); + + assertPermanentCount(playerA, mMimic, 1); + + assertPermanentCount(playerA, "Silvercoat Lion", 1); + assertCounterCount(playerA, "Silvercoat Lion", CounterType.P1P1, 3); + assertPowerToughness(playerA, "Silvercoat Lion", 5, 5); // Hardened Scales is only once applied to EntersTheBattlefield event + assertGraveyardCount(playerA, vMortis, 1); + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/requirement/BlockRequirementTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/requirement/BlockRequirementTest.java index 7401133efc6..4305b94d51a 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/requirement/BlockRequirementTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/requirement/BlockRequirementTest.java @@ -29,8 +29,6 @@ package org.mage.test.cards.requirement; import mage.constants.PhaseStep; import mage.constants.Zone; -import mage.game.permanent.Permanent; -import org.junit.Assert; import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; @@ -249,85 +247,4 @@ public class BlockRequirementTest extends CardTestPlayerBase { assertGraveyardCount(playerB, "Dimensional Infiltrator", 1); assertGraveyardCount(playerB, "Llanowar Elves", 1); } - - /* - Reported bug: Nacatl War-pride unable to be blocked ? - Basic case: have it be blocked by one creature. - */ - @Test - public void testNacatlWarPrideBlockOneCreature() { - /* - Nacatl War-Pride {3}{G}{G}{G} - Creature - Cat Warrior 3/3 - Nacatl War-Pride must be blocked by exactly one creature if able. - Whenever Nacatl War-Pride attacks, create X tokens that are copies of Nacatl War-Pride and that are tapped and attacking, - where X is the number of creatures defending player controls. Exile the tokens at the beginning of the next end step. - */ - addCard(Zone.BATTLEFIELD, playerA, "Nacatl War-Pride"); - - /* - Primeval Titan {4}{G}{G} - Creature - Giant 6/6 - Trample. Whenever Primeval Titan enters the battlefield or attacks, you may search your library for up to two land cards, - put them onto the battlefield tapped, then shuffle your library. - */ - addCard(Zone.BATTLEFIELD, playerB, "Primeval Titan"); - - attack(1, playerA, "Nacatl War-Pride"); - - setStopAt(1, PhaseStep.END_COMBAT); - execute(); - - assertLife(playerB, 17); // one 3/3 tokens attacking got through still, Nacatl forced to be blocked by Primeval - assertGraveyardCount(playerA, "Nacatl War-Pride", 1); - - Permanent primetime = getPermanent("Primeval Titan", playerB); - Assert.assertEquals("Damage to Primeval should be 3 not 0", 3, primetime.getDamage()); - } - - /* - Reported bug: Nacatl War-pride unable to be blocked ? - Give Nacatl unblockable and attempt to block it. Mix the two effects "cannot be blocked" and "must be blocked". - */ - @Test - public void testNacatlWarPrideCannotBeBlocked() { - - String nWarPride = "Nacatl War-Pride"; - String pTitan = "Primeval Titan"; - String aForm = "Aqueous Form"; - - /* - Nacatl War-Pride {3}{G}{G}{G} - Creature - Cat Warrior 3/3 - Nacatl War-Pride must be blocked by exactly one creature if able. - Whenever Nacatl War-Pride attacks, create X tokens that are copies of Nacatl War-Pride and that are tapped and attacking, - where X is the number of creatures defending player controls. Exile the tokens at the beginning of the next end step. - */ - addCard(Zone.BATTLEFIELD, playerA, nWarPride); - - /* - Enchantment - Aura {1}{U} - Enchanted creature can't be blocked. - Whenever enchanted creature attacks, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) - */ - addCard(Zone.HAND, playerA, aForm); - addCard(Zone.BATTLEFIELD, playerA, "Island", 2); - - addCard(Zone.BATTLEFIELD, playerB, pTitan); - - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, aForm, nWarPride); - - attack(1, playerA, nWarPride); - block(1, playerB, pTitan, nWarPride); // blocking a token with the same name - - setStopAt(1, PhaseStep.POSTCOMBAT_MAIN); - execute(); - - assertLife(playerB, 17); // Nacatl dealt damage unblocked - - assertPermanentCount(playerA, nWarPride, 1); - assertGraveyardCount(playerA, 0); - Permanent primetime = getPermanent(pTitan, playerB); - Assert.assertEquals("Damage to Primeval should be 3 not 0", 3, primetime.getDamage()); // blocked a token - } } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/ChaliceOfTheVoidTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/ChaliceOfTheVoidTest.java index 3949a11ee01..f5b8e3b1410 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/single/ChaliceOfTheVoidTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/ChaliceOfTheVoidTest.java @@ -40,17 +40,18 @@ public class ChaliceOfTheVoidTest extends CardTestPlayerBase { /** * Theres a Chalice of the Void with 1 counter in play under my control. - * Then I cast second chalice with x=1. For spells on the stack the cmc is the base CMC + X value * {X} in casting costs on top right of card. - * So cmc should be 2 in this case, it shouldnt be countered. + * Then I cast second chalice with x=1. For spells on the stack the cmc is + * the base CMC + X value * {X} in casting costs on top right of card. So + * cmc should be 2 in this case, it shouldnt be countered. * http://boardgames.stackexchange.com/questions/7327/what-is-the-converted-mana-cost-of-a-spell-with-x-when-cast-with-the-miracle-m */ - @Test public void testX1CountsFor2CMC() { addCard(Zone.BATTLEFIELD, playerA, "Swamp", 4); + // Chalice of the Void enters the battlefield with X charge counters on it. + // Whenever a player casts a spell with converted mana cost equal to the number of charge counters on Chalice of the Void, counter that spell. addCard(Zone.HAND, playerA, "Chalice of the Void", 2); - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Chalice of the Void"); setChoice(playerA, "X=1"); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Chalice of the Void"); @@ -62,10 +63,10 @@ public class ChaliceOfTheVoidTest extends CardTestPlayerBase { assertPermanentCount(playerA, "Chalice of the Void", 2); } - + /* If X=1 the cmc of Chalice on the stack is 2. So it can't be countered by Mental Misstep - */ + */ @Test public void testCantBeCounteredByMentalMisstep() { addCard(Zone.BATTLEFIELD, playerA, "Swamp", 2); @@ -94,6 +95,8 @@ public class ChaliceOfTheVoidTest extends CardTestPlayerBase { addCard(Zone.BATTLEFIELD, playerA, "Swamp", 2); addCard(Zone.HAND, playerA, "Chalice of the Void", 1); + // Conflagrate deals X damage divided as you choose among any number of target creatures and/or players. + // Flashback-{R}{R}, Discard X cards. addCard(Zone.GRAVEYARD, playerB, "Conflagrate", 1); addCard(Zone.BATTLEFIELD, playerB, "Mountain", 2); addCard(Zone.HAND, playerB, "Mountain", 1); @@ -101,7 +104,6 @@ public class ChaliceOfTheVoidTest extends CardTestPlayerBase { castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Chalice of the Void"); setChoice(playerA, "X=1"); - activateAbility(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Flashback {R}{R}"); setChoice(playerB, "X=1"); addTarget(playerB, playerA); @@ -109,13 +111,12 @@ public class ChaliceOfTheVoidTest extends CardTestPlayerBase { setStopAt(2, PhaseStep.BEGIN_COMBAT); execute(); - assertLife(playerA, 19); - assertLife(playerB, 20); - assertExileCount(playerB, "Conflagrate", 1); //TODO: Apparently there are two mountains in the graveyard at the end of the test now. - //assertGraveyardCount(playerB, "Mountain", 1); + assertGraveyardCount(playerB, "Mountain", 1); + assertLife(playerA, 19); + assertLife(playerB, 20); } - + } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/MultaniTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/MultaniTest.java new file mode 100644 index 00000000000..e8fb3c20c08 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/MultaniTest.java @@ -0,0 +1,71 @@ +package org.mage.test.cards.single; + +import mage.abilities.Ability; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.ShroudAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +import java.util.List; + +/** + * Created by escplan9 + */ +public class MultaniTest extends CardTestPlayerBase { + + @Test + public void pathbreakerTrampleShouldOnlyLastUntilEOT() { + /* + Multani, Maro-Sorcerer {4}{G}{G} + Legendary Creature — Elemental * / * + Shroud + Multani, Maro-Sorcerer's power and toughness are each equal to the total number of cards in all players' hands. + */ + String multani = "Multani, Maro-Sorcerer"; + + /* + Hall of the Bandit Lord + Legendary Land + Hall of the Bandit Lord enters the battlefield tapped. + {T}, Pay 3 life: Add {1} to your mana pool. If that mana is spent on a creature spell, it gains haste. + */ + String hBandit = "Hall of the Bandit Lord"; + + /* + Pathbreaker Ibex {4}{G}{G} + Creature — Goat 3/3 + Whenever Pathbreaker Ibex attacks, creatures you control gain trample and get +X/+X until end of turn, where X is the greatest power among creatures you control. + */ + String pIbex = "Pathbreaker Ibex"; + + addCard(Zone.HAND, playerA, multani); + addCard(Zone.HAND, playerA, pIbex); + addCard(Zone.BATTLEFIELD, playerA, hBandit); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 5); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, multani); // 5 forests and 1 colorless from Hall pay for it, granting it haste and losing 3 life + attack(1, playerA, multani); + + castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, pIbex); // 5 forests and 1 colorless from Hall pay for it, granting it haste and losing 3 life + attack(3, playerA, multani); + attack(3, playerA, pIbex); + + setStopAt(4, PhaseStep.PRECOMBAT_MAIN); // make sure trample has not carried over + execute(); + + assertLife(playerA, 14); // hall of bandit activated twice + assertTapped(hBandit, true); + assertTapped(multani, true); + assertTapped(pIbex, true); + assertPermanentCount(playerA, pIbex, 1); + assertPermanentCount(playerA, multani, 1); + assertAbility(playerA, pIbex, HasteAbility.getInstance(), true); + assertAbility(playerA, multani, HasteAbility.getInstance(), true); + assertAbility(playerA, multani, ShroudAbility.getInstance(), true); + assertAbility(playerA, multani, TrampleAbility.getInstance(), false); + assertAbility(playerA, pIbex, TrampleAbility.getInstance(), false); + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/akh/ApproachOfTheSecondSunTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/akh/ApproachOfTheSecondSunTest.java new file mode 100644 index 00000000000..f191378107c --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/akh/ApproachOfTheSecondSunTest.java @@ -0,0 +1,66 @@ +package org.mage.test.cards.single.akh; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * @author stravant + */ +public class ApproachOfTheSecondSunTest extends CardTestPlayerBase { + @Test + public void testWinGametest() { + removeAllCardsFromLibrary(playerA); + addCard(Zone.HAND, playerA, "Approach of the Second Sun", 2); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 14); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Approach of the Second Sun"); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Approach of the Second Sun"); + + setStopAt(1, PhaseStep.END_TURN); + execute(); + + assertLife(playerA, 27); + assertLibraryCount(playerA, 1); // 1 approach in graveyard (The one that won the game) + assertGraveyardCount(playerA, 1); // 1 approach put back into library + assertHandCount(playerA, 0); // No aproaches left in hand + assertResult(playerA, GameResult.WON); + } + + @Test + public void testDontCountOpponentCast() { + addCard(Zone.HAND, playerA, "Approach of the Second Sun"); + addCard(Zone.HAND, playerB, "Approach of the Second Sun"); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 7); + addCard(Zone.BATTLEFIELD, playerB, "Plains", 7); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Approach of the Second Sun"); + castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Approach of the Second Sun"); + + setStopAt(2, PhaseStep.END_TURN); + execute(); + + assertResult(playerA, GameResult.DRAW); + assertLife(playerA, 27); + assertLife(playerB, 27); + } + + @Test + public void testRightPositionInDeck() { + removeAllCardsFromLibrary(playerA); + addCard(Zone.LIBRARY, playerA, "Plains", 6); + addCard(Zone.HAND, playerA, "Approach of the Second Sun", 1); + addCard(Zone.HAND, playerA, "Concentrate", 2); + addCard(Zone.BATTLEFIELD, playerA, "Tundra", 15); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Approach of the Second Sun"); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Concentrate"); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Concentrate"); + + setStopAt(1, PhaseStep.END_TURN); + execute(); + + assertLife(playerA, 27); + assertLibraryCount(playerA, "Approach of the Second Sun", 1); // 1 approach put back into library in the right place + assertLibraryCount(playerA, 1); + assertResult(playerA, GameResult.DRAW); + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/akh/DuskDawnTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/akh/DuskDawnTest.java new file mode 100644 index 00000000000..6dd662ff135 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/akh/DuskDawnTest.java @@ -0,0 +1,85 @@ +package org.mage.test.cards.single.akh; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * + * @author Quercitron + */ +public class DuskDawnTest extends CardTestPlayerBase { + + @Test + public void testCastDusk() { + //Cast dusk from hand + addCard(Zone.BATTLEFIELD, playerB, "Watchwolf"); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 5); + addCard(Zone.HAND, playerA, "Dusk // Dawn"); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Dusk"); + + setStopAt(1, PhaseStep.END_TURN); + execute(); + + assertTappedCount("Plains", true, 4); // check that we paid the right side's mana + assertPermanentCount(playerB, "Watchwolf", 0); + assertGraveyardCount(playerB, "Watchwolf", 1); + assertGraveyardCount(playerA, "Dusk // Dawn", 1); + } + + @Test + public void testCastDuskFromGraveyardFail() { + //Fail to cast dusk from graveyard + addCard(Zone.BATTLEFIELD, playerB, "Watchwolf"); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 4); + addCard(Zone.GRAVEYARD, playerA, "Dusk // Dawn"); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Dusk"); + + setStopAt(1, PhaseStep.END_TURN); + execute(); + + assertPermanentCount(playerB, "Watchwolf", 1); + assertGraveyardCount(playerB, "Watchwolf", 0); + assertGraveyardCount(playerA, "Dusk // Dawn", 1); + } + + @Test + public void testCastDawnFromGraveyard() { + addCard(Zone.GRAVEYARD, playerA, "Dusk // Dawn"); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 5); + addCard(Zone.GRAVEYARD, playerA, "Devoted Hero"); + addCard(Zone.GRAVEYARD, playerA, "Watchwolf"); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Dawn"); + + setStopAt(1, PhaseStep.END_TURN); + execute(); + + // Dusk dawn should have been cast and exiled + // devoted hero should be in the hand + // watchwolf should still be in the yard + assertHandCount(playerA, "Devoted Hero", 1); + assertGraveyardCount(playerA, "Devoted Hero", 0); + assertGraveyardCount(playerA, "Watchwolf", 1); + assertExileCount(playerA, "Dusk // Dawn", 1); + assertGraveyardCount(playerA, "Dusk // Dawn", 0); + } + + @Test + public void testCastDawnFail() { + // Fail to cast dawn from hand + addCard(Zone.HAND, playerA, "Dusk // Dawn"); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 5); + addCard(Zone.GRAVEYARD, playerA, "Devoted Hero"); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Dawn"); + + setStopAt(1, PhaseStep.END_TURN); + execute(); + + // Dusk dawn shouldn't have been cast and devoted hero should still be in the yard + assertHandCount(playerA, "Dusk // Dawn", 1); + assertGraveyardCount(playerA, "Devoted Hero", 1); + } + + +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/akh/InsultInjuryTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/akh/InsultInjuryTest.java new file mode 100644 index 00000000000..338664d9615 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/akh/InsultInjuryTest.java @@ -0,0 +1,51 @@ +package org.mage.test.cards.single.akh; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * @author stravant + */ +public class InsultInjuryTest extends CardTestPlayerBase { + @Test + public void testCastInsult() { + //Cast dusk from hand + addCard(Zone.BATTLEFIELD, playerA, "Grizzly Bears"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain", 5); + addCard(Zone.HAND, playerA, "Lightning Bolt", 2); + addCard(Zone.HAND, playerA, "Insult // Injury"); + + // Insult, and then deal 5 damage to opponent, should bring them to 10 life + castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Insult"); + attack(3, playerA, "Grizzly Bears"); + castSpell(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", playerB); + + // Next turn, should only deal 3 damage with bolt + castSpell(4, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", playerA); + + setStopAt(4, PhaseStep.END_TURN); + execute(); + + assertLife(playerA, 17); + assertLife(playerB, 10); + } + + @Test + public void testCastInjury() { + addCard(Zone.BATTLEFIELD, playerB, "Squire"); + addCard(Zone.BATTLEFIELD, playerA, "Mountain", 3); + addCard(Zone.GRAVEYARD, playerA, "Insult // Injury"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Injury", "Squire"); + addTarget(playerA, playerB); + + setStopAt(1, PhaseStep.END_TURN); + execute(); + + assertExileCount(playerA, "Insult // Injury", 1); + assertGraveyardCount(playerB, "Squire", 1); + assertLife(playerB, 18); + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/akh/RagsRichesTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/akh/RagsRichesTest.java new file mode 100644 index 00000000000..9df146aca78 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/akh/RagsRichesTest.java @@ -0,0 +1,48 @@ +package org.mage.test.cards.single.akh; + +import mage.constants.MultiplayerAttackOption; +import mage.constants.PhaseStep; +import mage.constants.RangeOfInfluence; +import mage.constants.Zone; +import mage.game.FreeForAll; +import mage.game.Game; +import mage.game.GameException; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestMultiPlayerBase; + +import java.io.FileNotFoundException; + +/** + * @author stravant + */ +public class RagsRichesTest extends CardTestMultiPlayerBase { + @Override + protected Game createNewGameAndPlayers() throws GameException, FileNotFoundException { + Game game = new FreeForAll(MultiplayerAttackOption.LEFT, RangeOfInfluence.ALL, 0, 20); + // Player order: A -> D -> C -> B + playerA = createPlayer(game, playerA, "PlayerA"); + playerB = createPlayer(game, playerB, "PlayerB"); + playerC = createPlayer(game, playerC, "PlayerC"); + playerD = createPlayer(game, playerD, "PlayerD"); + return game; + } + + @Test + public void testRiches() { + addCard(Zone.GRAVEYARD, playerA, "Rags // Riches"); + addCard(Zone.BATTLEFIELD, playerA, "Island", 7); + addCard(Zone.BATTLEFIELD, playerB, "Squire"); + addCard(Zone.BATTLEFIELD, playerC, "Invisible Stalker"); // Make sure that there aren't targeting restrictions + addCard(Zone.HAND, playerD, "Island"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Riches"); + + setStopAt(2, PhaseStep.END_TURN); + execute(); + + assertExileCount(playerA, 1); + assertPermanentCount(playerB, 0); + assertPermanentCount(playerC, 0); + assertPermanentCount(playerA, 9); + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/ths/HeliodGodOfTheSun.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/ths/HeliodGodOfTheSun.java index b4af708cb2d..a6abc84f1c1 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/single/ths/HeliodGodOfTheSun.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/ths/HeliodGodOfTheSun.java @@ -4,7 +4,6 @@ */ package org.mage.test.cards.single.ths; -import mage.constants.CardType; import mage.constants.PhaseStep; import mage.constants.Zone; import mage.game.permanent.Permanent; @@ -47,7 +46,7 @@ public class HeliodGodOfTheSun extends CardTestPlayerBase { assertPermanentCount(playerA, "Hold the Gates", 1); Permanent heliodGodOfTheSun = getPermanent("Heliod, God of the Sun", playerA); - Assert.assertTrue(heliodGodOfTheSun.getCardType().contains(CardType.CREATURE)); + Assert.assertTrue(heliodGodOfTheSun.isCreature()); } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/EntersTheBattlefieldTriggerTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/EntersTheBattlefieldTriggerTest.java index 6ab63a3331e..4a5409b5547 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/EntersTheBattlefieldTriggerTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/EntersTheBattlefieldTriggerTest.java @@ -312,14 +312,14 @@ public class EntersTheBattlefieldTriggerTest extends CardTestPlayerBase { /* * playerA's Carnivorous Plant will get -1/-1 from Noxious Ghoul -> 3/4 * playerB's Carnivorous Plant will get -1/-1 from Noxious Ghoul -> 3/4 - */ + */ castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Clone"); setChoice(playerA, "Noxious Ghoul"); /* * playerA's Carnivorous Plant will get -1/-1 from Clone -> 2/3 * playerB's Carnivorous Plant will get -1/-1 from Clone -> 2/3 - */ + */ castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Ego Erasure", "targetPlayer=PlayerA", "Whenever"); /* * playerA' Noxious Ghoul will get -2/0 -> 1/3 @@ -328,7 +328,7 @@ public class EntersTheBattlefieldTriggerTest extends CardTestPlayerBase { * playerA' Noxious Ghoul will get -1/-1 from itself -> -1/1 * playerA's Carnivorous Plant will get -1/-1 from Noxious Ghoul -> -1/2 * playerB's Carnivorous Plant will get -1/-1 from Noxious Ghoul -> 1/2 - */ + */ setStopAt(1, PhaseStep.END_TURN); execute(); @@ -341,21 +341,22 @@ public class EntersTheBattlefieldTriggerTest extends CardTestPlayerBase { assertPowerToughness(playerB, "Carnivorous Plant", 1, 2); assertPowerToughness(playerA, "Carnivorous Plant", -1, 2); } - + @Test public void testHearthcageGiant() { // {6}{R}{R} Creature — Giant Warrior //When Hearthcage Giant enters the battlefield, put two 3/1 red Elemental Shaman creature tokens onto the battlefield. //Sacrifice an Elemental: Target Giant creature gets +3/+1 until end of turn. - addCard(Zone.HAND,playerA,"Hearthcage Giant"); + addCard(Zone.HAND, playerA, "Hearthcage Giant"); addCard(Zone.BATTLEFIELD, playerA, "Mountain", 8); - + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Hearthcage Giant"); setStopAt(1, PhaseStep.BEGIN_COMBAT); execute(); - + assertPermanentCount(playerA, "Hearthcage Giant", 1); assertPermanentCount(playerA, "Elemental Shaman", 2); assertPowerToughness(playerA, "Elemental Shaman", 3, 1); } + } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/ChildOfAlaraTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/ChildOfAlaraTest.java new file mode 100644 index 00000000000..e0816d598e3 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/ChildOfAlaraTest.java @@ -0,0 +1,73 @@ +package org.mage.test.cards.triggers.dies; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * + * @author escplan9 + */ +public class ChildOfAlaraTest extends CardTestPlayerBase { + + @Test + public void testChildOfAlaraOblivionRingInteraction() { + /* + Child of Alara {W}{U}{B}{R}{G} + Legendary Creature — Avatar 6/6 + Trample + When Child of Alara dies, destroy all nonland permanents. They can't be regenerated. + */ + String childAlara = "Child of Alara"; + + /* + Oblivion Ring {2}{W} + Enchantment + When Oblivion Ring enters the battlefield, exile another target nonland permanent. + When Oblivion Ring leaves the battlefield, return the exiled card to the battlefield under its owner's control. + */ + String oRing = "Oblivion Ring"; + + /* + Tamiyo, Field Research {1}{G}{W}{U} + Planeswalker - Tamiyo + +1: Choose up to two target creatures. Until your next turn, whenever either of those creatures deals combat damage, you draw a card. + −2: Tap up to two target nonland permanents. They don't untap during their controller's next untap step. + −7: Draw three cards. You get an emblem with "You may cast spells from your hand without paying their mana costs." + */ + String tamiyo = "Tamiyo, Field Researcher"; + + String memnite = "Memnite"; // {0} 1/1 + String hGiant = "Hill Giant"; // {3}{R} 3/3 + String dDemolition = "Daring Demolition"; // {2}{B}{B} sorcery: destroy target creature or vehicle + + addCard(Zone.HAND, playerA, tamiyo); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); + addCard(Zone.BATTLEFIELD, playerA, "Island", 2); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 2); + addCard(Zone.BATTLEFIELD, playerA, hGiant); + addCard(Zone.BATTLEFIELD, playerA, childAlara); + + addCard(Zone.HAND, playerB, dDemolition); + addCard(Zone.HAND, playerB, oRing); + addCard(Zone.BATTLEFIELD, playerB, "Swamp", 4); + addCard(Zone.BATTLEFIELD, playerB, "Plains", 4); + addCard(Zone.BATTLEFIELD, playerB, memnite); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, tamiyo); + castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, oRing); + addTarget(playerB, tamiyo); + castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, dDemolition, childAlara); + + setStopAt(2, PhaseStep.BEGIN_COMBAT); + execute(); + + assertGraveyardCount(playerB, dDemolition, 1); + assertGraveyardCount(playerA, childAlara, 1); + assertGraveyardCount(playerB, oRing, 1); // destroyed by child + assertGraveyardCount(playerB, memnite, 1); + assertGraveyardCount(playerA, hGiant, 1); + assertPermanentCount(playerA, tamiyo, 1); // o-ring destroyed returns Tamiyo to battlefield + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/step/EndStepTriggerTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/step/EndStepTriggerTest.java index c2d1359615f..3aa461c4553 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/step/EndStepTriggerTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/step/EndStepTriggerTest.java @@ -70,4 +70,44 @@ public class EndStepTriggerTest extends CardTestPlayerBase { assertCounterCount("Bloodchief Ascension", CounterType.QUEST, 2); } + + /** + * Hey, I don't know how to submit bugs but in a game I played today I + * sacrificed Child of Alara by casting Bound at the end step of my previous + * opponent's turn, then chose Child as one of the cards to return to my + * hand. My graveyard was empty so that was the only card I chose. Child + * returned to my hand but it did NOT trigger for some reason. Nothing was + * destroyed + */ + @Test + public void testSacrificeChildOfAlara() { + addCard(Zone.BATTLEFIELD, playerA, "Silvercoat Lion", 1); //Creature + + // Trample + // When Child of Alara dies, destroy all nonland permanents. They can't be regenerated. + addCard(Zone.BATTLEFIELD, playerB, "Icy Manipulator", 1); //Creature + addCard(Zone.BATTLEFIELD, playerB, "Child of Alara", 1); //Creature + addCard(Zone.BATTLEFIELD, playerB, "Swamp", 1); + addCard(Zone.BATTLEFIELD, playerB, "Forest", 4); + // Bound + // Sacrifice a creature. Return up to X cards from your graveyard to your hand, where X is the number of colors that creature was. Exile this card. + // Determined + // Other spells you control can't be countered by spells or abilities this turn. + // Draw a card. + addCard(Zone.HAND, playerB, "Bound // Determined"); // Instant {3}{B}{G} // {G}{U} + + castSpell(1, PhaseStep.END_TURN, playerB, "Bound"); + addTarget(playerB, "Child of Alara"); + setChoice(playerB, "Child of Alara"); + + setStopAt(2, PhaseStep.PRECOMBAT_MAIN); + execute(); + + assertExileCount(playerB, "Bound // Determined", 1); + + assertHandCount(playerB, "Child of Alara", 1); + + assertGraveyardCount(playerA, "Silvercoat Lion", 1); + assertGraveyardCount(playerB, "Icy Manipulator", 1); + } } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/watchers/HallOfTheBanditLordTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/watchers/HallOfTheBanditLordTest.java index d3422a9ed31..cbe01165fb0 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/watchers/HallOfTheBanditLordTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/watchers/HallOfTheBanditLordTest.java @@ -33,7 +33,6 @@ public class HallOfTheBanditLordTest extends CardTestPlayerBase { execute(); this.assertAbility(playerA, "Goblin Roughrider", HasteAbility.getInstance(), true); - } // test that a creature cast not using Hall of the Bandit Lord mana does not gain haste @@ -49,7 +48,5 @@ public class HallOfTheBanditLordTest extends CardTestPlayerBase { execute(); this.assertAbility(playerA, "Ember Hauler", HasteAbility.getInstance(), false); - } - } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/watchers/KiraGreatGlassSpinnerTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/watchers/KiraGreatGlassSpinnerTest.java new file mode 100644 index 00000000000..4c9ffeefc61 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/watchers/KiraGreatGlassSpinnerTest.java @@ -0,0 +1,37 @@ +package org.mage.test.cards.watchers; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import mage.game.permanent.Permanent; +import org.junit.Assert; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * Created by IGOUDT on 30-3-2017. + */ +public class KiraGreatGlassSpinnerTest extends CardTestPlayerBase { + private final String kira = "Kira, Great Glass-Spinner"; + private final String shock = "Shock"; + + @Test + public void counterFirst(){ + addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4); + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 4); + addCard(Zone.BATTLEFIELD, playerA, "Ugin, the Spirit Dragon"); // starts with 7 Loyality counters + + addCard(Zone.BATTLEFIELD, playerA, kira); + addCard(Zone.HAND, playerA, shock); + addCard(Zone.HAND, playerA, shock); + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "+2: {source} deals 3 damage to target creature or player.", kira); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + + execute(); + + Permanent _kira = getPermanent(kira, playerA.getId()); + Assert.assertNotNull(_kira); + + + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/load/LoadCallbackClient.java b/Mage.Tests/src/test/java/org/mage/test/load/LoadCallbackClient.java index e047c2737df..824efa60ba0 100644 --- a/Mage.Tests/src/test/java/org/mage/test/load/LoadCallbackClient.java +++ b/Mage.Tests/src/test/java/org/mage/test/load/LoadCallbackClient.java @@ -35,58 +35,55 @@ public class LoadCallbackClient implements CallbackClient { log.info(callback.getMethod()); callback.setData(CompressUtil.decompress(callback.getData())); switch (callback.getMethod()) { - case "startGame": - { - TableClientMessage message = (TableClientMessage) callback.getData(); - gameId = message.getGameId(); - playerId = message.getPlayerId(); - session.joinGame(message.getGameId()); - startControlThread(); - break; - } - case "gameInform": - { - GameClientMessage message = (GameClientMessage) callback.getData(); - log.info("Inform: " + message.getMessage()); - gameView = message.getGameView(); - break; - } - case "gameInit": + case START_GAME: { + TableClientMessage message = (TableClientMessage) callback.getData(); + gameId = message.getGameId(); + playerId = message.getPlayerId(); + session.joinGame(message.getGameId()); + startControlThread(); break; - case "gameTarget": - { - GameClientMessage message = (GameClientMessage) callback.getData(); - log.info("Target: " + message.getMessage()); - switch (message.getMessage()) { - case "Select a starting player": - session.sendPlayerUUID(gameId, playerId); - break; - case "Select a card to discard": - log.info("hand size: " + gameView.getHand().size()); - SimpleCardView card = gameView.getHand().values().iterator().next(); - session.sendPlayerUUID(gameId, card.getId()); - break; - } - break; + } + case GAME_INFORM: { + GameClientMessage message = (GameClientMessage) callback.getData(); + log.info("Inform: " + message.getMessage()); + gameView = message.getGameView(); + break; + } + case GAME_INIT: + break; + case GAME_TARGET: { + GameClientMessage message = (GameClientMessage) callback.getData(); + log.info("Target: " + message.getMessage()); + switch (message.getMessage()) { + case "Select a starting player": + session.sendPlayerUUID(gameId, playerId); + break; + case "Select a card to discard": + log.info("hand size: " + gameView.getHand().size()); + SimpleCardView card = gameView.getHand().values().iterator().next(); + session.sendPlayerUUID(gameId, card.getId()); + break; } - case "gameAsk": - { - GameClientMessage message = (GameClientMessage) callback.getData(); - log.info("Ask: " + message.getMessage()); - if (message.getMessage().equals("Do you want to take a mulligan?")) { - session.sendPlayerBoolean(gameId, false); - } break; + break; + } + case GAME_ASK: { + GameClientMessage message = (GameClientMessage) callback.getData(); + log.info("Ask: " + message.getMessage()); + if (message.getMessage().equals("Do you want to take a mulligan?")) { + session.sendPlayerBoolean(gameId, false); } - case "gameSelect": - { - GameClientMessage message = (GameClientMessage) callback.getData(); - log.info("Select: " + message.getMessage()); - if (LoadPhaseManager.getInstance().isSkip(message.getGameView(), message.getMessage(), playerId)) { - log.info("Skipped: " + message.getMessage()); - session.sendPlayerBoolean(gameId, false); - } break; + break; + } + case GAME_SELECT: { + GameClientMessage message = (GameClientMessage) callback.getData(); + log.info("Select: " + message.getMessage()); + if (LoadPhaseManager.getInstance().isSkip(message.getGameView(), message.getMessage(), playerId)) { + log.info("Skipped: " + message.getMessage()); + session.sendPlayerBoolean(gameId, false); } - case "gameOver": + break; + } + case GAME_OVER: log.info("Game over"); gameOver = true; break; diff --git a/Mage.Tests/src/test/java/org/mage/test/load/LoadTest.java b/Mage.Tests/src/test/java/org/mage/test/load/LoadTest.java index 09a96fe0073..ce2f5670eeb 100644 --- a/Mage.Tests/src/test/java/org/mage/test/load/LoadTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/load/LoadTest.java @@ -12,6 +12,7 @@ import mage.constants.MultiplayerAttackOption; import mage.constants.RangeOfInfluence; import mage.game.match.MatchOptions; import mage.player.ai.ComputerPlayer; +import mage.players.PlayerType; import mage.remote.Connection; import mage.remote.Session; import mage.remote.SessionImpl; @@ -105,7 +106,7 @@ public class LoadTest { TableView table = session.createTable(roomId, options); - if (!session.joinTable(roomId, table.getTableId(), TEST_USER_NAME + i, "Human", 1, deckList,"")) { + if (!session.joinTable(roomId, table.getTableId(), TEST_USER_NAME + i, PlayerType.HUMAN, 1, deckList,"")) { log.error("Error while joining table"); Assert.fail("Error while joining table"); return; @@ -119,7 +120,7 @@ public class LoadTest { UUID roomId2 = session2.getMainRoomId(); // connect to the table with the same deck - if (!session2.joinTable(roomId2, table.getTableId(), TEST_USER_NAME_2 + i, "Human", 1, deckList,"")) { + if (!session2.joinTable(roomId2, table.getTableId(), TEST_USER_NAME_2 + i, PlayerType.HUMAN, 1, deckList,"")) { log.error("Error while joining table"); Assert.fail("Error while joining table"); return; @@ -177,7 +178,7 @@ public class LoadTest { TableView table = session.createTable(roomId, options); - if (!session.joinTable(roomId, table.getTableId(), TEST_USER_NAME + i, "Human", 1, deckList,"")) { + if (!session.joinTable(roomId, table.getTableId(), TEST_USER_NAME + i, PlayerType.HUMAN, 1, deckList,"")) { log.error("Error while joining table"); Assert.fail("Error while joining table"); return true; @@ -193,7 +194,7 @@ public class LoadTest { UUID roomId2 = session2.getMainRoomId(); // connect to the table with the same deck - if (!session2.joinTable(roomId2, table.getTableId(), TEST_USER_NAME_2 + i, "Human", 1, deckList,"")) { + if (!session2.joinTable(roomId2, table.getTableId(), TEST_USER_NAME_2 + i, PlayerType.HUMAN, 1, deckList,"")) { log.error("Error while joining table"); Assert.fail("Error while joining table"); return true; @@ -266,8 +267,8 @@ public class LoadTest { private MatchOptions createGameOptions(GameTypeView gameTypeView, Session session) { MatchOptions options = new MatchOptions("Test game", gameTypeView.getName(), false, 2); - options.getPlayerTypes().add("Human"); - options.getPlayerTypes().add("Human"); + options.getPlayerTypes().add(PlayerType.HUMAN); + options.getPlayerTypes().add(PlayerType.HUMAN); options.setDeckType(session.getDeckTypes()[0]); options.setLimited(false); diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/PlayGameTest.java b/Mage.Tests/src/test/java/org/mage/test/serverside/PlayGameTest.java index 59802a09c85..1f6c29416c9 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/PlayGameTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/PlayGameTest.java @@ -12,6 +12,7 @@ import mage.game.GameOptions; import mage.game.TwoPlayerDuel; import mage.player.ai.ComputerPlayer; import mage.players.Player; +import mage.players.PlayerType; import org.junit.Ignore; import org.junit.Test; import org.mage.test.serverside.base.MageTestBase; @@ -34,7 +35,7 @@ public class PlayGameTest extends MageTestBase { public void playOneGame() throws GameException, FileNotFoundException, IllegalArgumentException { Game game = new TwoPlayerDuel(MultiplayerAttackOption.LEFT, RangeOfInfluence.ALL, 0, 20); - Player computerA = createPlayer("ComputerA", "Computer - minimax hybrid"); + Player computerA = createPlayer("ComputerA", PlayerType.COMPUTER_MINIMAX_HYBRID); // Player playerA = createPlayer("ComputerA", "Computer - mad"); // Deck deck = Deck.load(Sets.loadDeck("RB Aggro.dck")); Deck deck = generateRandomDeck(); @@ -45,7 +46,7 @@ public class PlayGameTest extends MageTestBase { game.addPlayer(computerA, deck); game.loadCards(deck.getCards(), computerA.getId()); - Player computerB = createPlayer("ComputerB", "Computer - minimax hybrid"); + Player computerB = createPlayer("ComputerB", PlayerType.COMPUTER_MINIMAX_HYBRID); // Player playerB = createPlayer("ComputerB", "Computer - mad"); // Deck deck2 = Deck.load(Sets.loadDeck("RB Aggro.dck")); Deck deck2 = generateRandomDeck(); diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/base/MageTestBase.java b/Mage.Tests/src/test/java/org/mage/test/serverside/base/MageTestBase.java index 82d77721301..4c94e70c85c 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/base/MageTestBase.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/base/MageTestBase.java @@ -11,6 +11,7 @@ import mage.game.match.MatchType; import mage.game.permanent.PermanentCard; import mage.game.tournament.TournamentType; import mage.players.Player; +import mage.players.PlayerType; import mage.server.game.GameFactory; import mage.server.game.PlayerFactory; import mage.server.tournament.TournamentFactory; @@ -103,13 +104,13 @@ public abstract class MageTestBase { deleteSavedGames(); ConfigSettings config = ConfigSettings.instance; for (GamePlugin plugin : config.getGameTypes()) { - GameFactory.getInstance().addGameType(plugin.getName(), loadGameType(plugin), loadPlugin(plugin)); + GameFactory.instance.addGameType(plugin.getName(), loadGameType(plugin), loadPlugin(plugin)); } for (GamePlugin plugin : config.getTournamentTypes()) { - TournamentFactory.getInstance().addTournamentType(plugin.getName(), loadTournamentType(plugin), loadPlugin(plugin)); + TournamentFactory.instance.addTournamentType(plugin.getName(), loadTournamentType(plugin), loadPlugin(plugin)); } for (Plugin plugin : config.getPlayerTypes()) { - PlayerFactory.getInstance().addPlayerType(plugin.getName(), loadPlugin(plugin)); + PlayerFactory.instance.addPlayerType(plugin.getName(), loadPlugin(plugin)); } // for (Plugin plugin : config.getDeckTypes()) { // DeckValidatorFactory.getInstance().addDeckType(plugin.getName(), loadPlugin(plugin)); @@ -289,8 +290,8 @@ public abstract class MageTestBase { } } - protected Player createPlayer(String name, String playerType) { - Optional playerOptional = PlayerFactory.getInstance().createPlayer(playerType, name, RangeOfInfluence.ALL, 5); + protected Player createPlayer(String name, PlayerType playerType) { + Optional playerOptional = PlayerFactory.instance.createPlayer(playerType, name, RangeOfInfluence.ALL, 5); return playerOptional.orElseThrow(() -> new NullPointerException("PlayerFactory error - player is not created")); } diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/base/MageTestPlayerBase.java b/Mage.Tests/src/test/java/org/mage/test/serverside/base/MageTestPlayerBase.java index 17f987cde70..1b8b73da2b8 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/base/MageTestPlayerBase.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/base/MageTestPlayerBase.java @@ -98,7 +98,7 @@ public abstract class MageTestPlayerBase { deleteSavedGames(); ConfigSettings config = ConfigSettings.instance; for (GamePlugin plugin : config.getGameTypes()) { - GameFactory.getInstance().addGameType(plugin.getName(), loadGameType(plugin), loadPlugin(plugin)); + GameFactory.instance.addGameType(plugin.getName(), loadGameType(plugin), loadPlugin(plugin)); } Copier.setLoader(classLoader); } diff --git a/Mage.Tests/src/test/java/org/mage/test/stub/TournamentStub.java b/Mage.Tests/src/test/java/org/mage/test/stub/TournamentStub.java index da331935d10..018ef657079 100644 --- a/Mage.Tests/src/test/java/org/mage/test/stub/TournamentStub.java +++ b/Mage.Tests/src/test/java/org/mage/test/stub/TournamentStub.java @@ -27,10 +27,6 @@ */ package org.mage.test.stub; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.UUID; import mage.cards.ExpansionSet; import mage.cards.decks.Deck; import mage.game.draft.Draft; @@ -38,12 +34,14 @@ import mage.game.events.Listener; import mage.game.events.PlayerQueryEvent; import mage.game.events.TableEvent; import mage.game.result.ResultProtos; -import mage.game.tournament.Round; -import mage.game.tournament.Tournament; -import mage.game.tournament.TournamentOptions; -import mage.game.tournament.TournamentPlayer; -import mage.game.tournament.TournamentType; +import mage.game.tournament.*; import mage.players.Player; +import mage.players.PlayerType; + +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.UUID; /** * @@ -59,7 +57,7 @@ public class TournamentStub implements Tournament { } @Override - public void addPlayer(Player player, String playerType) { + public void addPlayer(Player player, PlayerType playerType) { } diff --git a/Mage.Updater/pom.xml b/Mage.Updater/pom.xml index 114859e3354..affe1bfddf1 100644 --- a/Mage.Updater/pom.xml +++ b/Mage.Updater/pom.xml @@ -5,7 +5,7 @@ mage-root org.mage - 1.4.22 + 1.4.23 4.0.0 diff --git a/Mage.Verify/pom.xml b/Mage.Verify/pom.xml index 7a54786c77b..278e9f64845 100644 --- a/Mage.Verify/pom.xml +++ b/Mage.Verify/pom.xml @@ -6,7 +6,7 @@ org.mage mage-root - 1.4.22 + 1.4.23 mage-verify diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index e28f3c99408..8df6a730581 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -1,5 +1,12 @@ package mage.verify; +import mage.ObjectColor; +import mage.cards.*; +import mage.cards.basiclands.BasicLand; +import mage.constants.CardType; +import org.junit.Assert; +import org.junit.Test; + import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -8,17 +15,7 @@ import java.nio.file.Paths; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; -import mage.ObjectColor; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.ExpansionSet; -import mage.cards.Sets; -import mage.cards.SplitCard; -import mage.cards.basiclands.BasicLand; -import mage.constants.CardType; -import org.junit.Assert; -import org.junit.Test; +import java.util.stream.Collectors; public class VerifyCardDataTest { @@ -168,8 +165,8 @@ public class VerifyCardDataTest { private void checkSupertypes(Card card, JsonCard ref) { Collection expected = ref.supertypes; - if (!eqSet(card.getSupertype(), expected)) { - fail(card, "supertypes", card.getSupertype() + " != " + expected); + if (!eqSet(card.getSuperType().stream().map(s->s.toString()).collect(Collectors.toList()), expected)) { + fail(card, "supertypes", card.getSuperType() + " != " + expected); } } @@ -214,7 +211,7 @@ public class VerifyCardDataTest { cost = null; } if (cost != null) { - cost = cost.replaceAll("P\\}", "/P}"); + cost = cost.replaceAll("P\\}", "P}"); } if (!Objects.equals(cost, expected)) { fail(card, "cost", cost + " != " + expected); diff --git a/Mage/pom.xml b/Mage/pom.xml index 165ac377337..b9cd161d86f 100644 --- a/Mage/pom.xml +++ b/Mage/pom.xml @@ -6,7 +6,7 @@ org.mage mage-root - 1.4.22 + 1.4.23 mage diff --git a/Mage/src/main/java/mage/MageObject.java b/Mage/src/main/java/mage/MageObject.java index 1bdbd40c95c..0aa2be0cf05 100644 --- a/Mage/src/main/java/mage/MageObject.java +++ b/Mage/src/main/java/mage/MageObject.java @@ -1,19 +1,22 @@ package mage; -import java.io.Serializable; -import java.util.EnumSet; -import java.util.List; -import java.util.Set; -import java.util.UUID; import mage.abilities.Abilities; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCost; import mage.abilities.costs.mana.ManaCosts; +import mage.abilities.keyword.ChangelingAbility; +import mage.cards.Card; import mage.cards.FrameStyle; import mage.constants.CardType; +import mage.constants.SuperType; import mage.game.Game; import mage.game.events.ZoneChangeEvent; +import java.io.Serializable; +import java.util.EnumSet; +import java.util.List; +import java.util.UUID; + public interface MageObject extends MageItem, Serializable { String getName(); @@ -32,16 +35,16 @@ public interface MageObject extends MageItem, Serializable { boolean hasSubtype(String subtype, Game game); - List getSupertype(); + EnumSet getSuperType(); Abilities getAbilities(); boolean hasAbility(UUID abilityId, Game game); ObjectColor getColor(Game game); - + ObjectColor getFrameColor(Game game); - + FrameStyle getFrameStyle(); ManaCosts getManaCost(); @@ -51,10 +54,9 @@ public interface MageObject extends MageItem, Serializable { MageInt getPower(); MageInt getToughness(); - + int getStartingLoyalty(); - - + void adjustCosts(Ability ability, Game game); @@ -83,33 +85,108 @@ public interface MageObject extends MageItem, Serializable { void setZoneChangeCounter(int value, Game game); - - default boolean isCreature(){ + default boolean isCreature() { return getCardType().contains(CardType.CREATURE); } - default boolean isArtifact(){ + default boolean isArtifact() { return getCardType().contains(CardType.ARTIFACT); } - default boolean isLand(){ + default boolean isLand() { return getCardType().contains(CardType.LAND); } - default boolean isEnchantment(){ + default boolean isEnchantment() { return getCardType().contains(CardType.ENCHANTMENT); } - default boolean isInstant(){ + default boolean isInstant() { return getCardType().contains(CardType.INSTANT); } - default boolean isSorcery(){ + default boolean isSorcery() { return getCardType().contains(CardType.SORCERY); } - default boolean isPlaneswalker(){ + default boolean isPlaneswalker() { return getCardType().contains(CardType.PLANESWALKER); } + default boolean isPermanent() { + return isCreature() || isArtifact() || isPlaneswalker() || isEnchantment() || isLand(); + } + + default boolean isLegendary() { + return getSuperType().contains(SuperType.LEGENDARY); + } + + default boolean isSnow() { + return getSuperType().contains(SuperType.SNOW); + } + + default void addSuperType(SuperType superType) { + getSuperType().add(superType); + } + + default boolean isBasic() { + return getSuperType().contains(SuperType.BASIC); + } + + default boolean isWorld() { + return getSuperType().contains(SuperType.WORLD); + } + + default void addCardType(CardType cardType) { + getCardType().add(cardType); + } + + /** + * Checks whether two cards share card types. + * + * @param otherCard + * @return + */ + default boolean shareTypes(Card otherCard) { + + if (otherCard == null) { + throw new IllegalArgumentException("Params can't be null"); + } + + for (CardType type : getCardType()) { + if (otherCard.getCardType().contains(type)) { + return true; + } + } + + return false; + } + + + default boolean shareSubtypes(Card otherCard, Game game) { + + if (otherCard == null) { + throw new IllegalArgumentException("Params can't be null"); + } + + if (this.isCreature() && otherCard.isCreature()) { + if (this.getAbilities().contains(ChangelingAbility.getInstance()) + || this.getSubtype(game).contains(ChangelingAbility.ALL_CREATURE_TYPE) + || otherCard.getAbilities().contains(ChangelingAbility.getInstance()) + || otherCard.getSubtype(game).contains(ChangelingAbility.ALL_CREATURE_TYPE)) { + return true; + } + } + for (String subtype : this.getSubtype(game)) { + if (otherCard.getSubtype(game).contains(subtype)) { + return true; + } + } + + return false; + } + + default void addCardTypes(EnumSet cardType){ + getCardType().addAll(cardType); + } } diff --git a/Mage/src/main/java/mage/MageObjectImpl.java b/Mage/src/main/java/mage/MageObjectImpl.java index 0b21654437b..ff3c659be98 100644 --- a/Mage/src/main/java/mage/MageObjectImpl.java +++ b/Mage/src/main/java/mage/MageObjectImpl.java @@ -40,6 +40,7 @@ import mage.abilities.keyword.ChangelingAbility; import mage.abilities.mana.ActivatedManaAbilityImpl; import mage.cards.FrameStyle; import mage.constants.CardType; +import mage.constants.SuperType; import mage.game.Game; import mage.game.events.ZoneChangeEvent; import mage.util.CardUtil; @@ -56,7 +57,7 @@ public abstract class MageObjectImpl implements MageObject { protected FrameStyle frameStyle; protected EnumSet cardType = EnumSet.noneOf(CardType.class); protected List subtype = new ArrayList<>(); - protected List supertype = new ArrayList<>(); + protected EnumSet supertype = EnumSet.noneOf(SuperType.class); protected Abilities abilities; protected String text; protected MageInt power; @@ -91,7 +92,7 @@ public abstract class MageObjectImpl implements MageObject { abilities = object.abilities.copy(); this.cardType.addAll(object.cardType); this.subtype.addAll(object.subtype); - this.supertype.addAll(object.supertype); + supertype.addAll(object.supertype); this.copy = object.copy; } @@ -136,7 +137,7 @@ public abstract class MageObjectImpl implements MageObject { } @Override - public List getSupertype() { + public EnumSet getSuperType() { return supertype; } diff --git a/Mage/src/main/java/mage/abilities/Abilities.java b/Mage/src/main/java/mage/abilities/Abilities.java index d6d007f3c00..2e4c629a2cc 100644 --- a/Mage/src/main/java/mage/abilities/Abilities.java +++ b/Mage/src/main/java/mage/abilities/Abilities.java @@ -29,6 +29,7 @@ package mage.abilities; import java.io.Serializable; import java.util.List; +import java.util.Optional; import java.util.UUID; import mage.abilities.keyword.ProtectionAbility; import mage.abilities.mana.ActivatedManaAbilityImpl; @@ -245,7 +246,7 @@ public interface Abilities extends List, Serializable { * @param abilityId * @return */ - T get(UUID abilityId); + Optional get(UUID abilityId); /** * TODO The usage of this method seems redundant to that of diff --git a/Mage/src/main/java/mage/abilities/AbilitiesImpl.java b/Mage/src/main/java/mage/abilities/AbilitiesImpl.java index 8c9cd7348e4..3e54960d5b3 100644 --- a/Mage/src/main/java/mage/abilities/AbilitiesImpl.java +++ b/Mage/src/main/java/mage/abilities/AbilitiesImpl.java @@ -27,13 +27,6 @@ */ package mage.abilities; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.UUID; - import mage.abilities.common.ZoneChangeTriggeredAbility; import mage.abilities.costs.Cost; import mage.abilities.keyword.ProtectionAbility; @@ -44,6 +37,8 @@ import mage.game.Game; import mage.util.ThreadLocalStringBuilder; import org.apache.log4j.Logger; +import java.util.*; + /** * @param * @author BetaSteward_at_googlemail.com @@ -277,12 +272,7 @@ public class AbilitiesImpl extends ArrayList implements Ab @Override public boolean containsRule(T ability) { - for (T test : this) { - if (ability.getRule().equals(test.getRule())) { - return true; - } - } - return false; + return stream().anyMatch(rule -> rule.getRule().equals(ability.getRule())); } @Override @@ -301,32 +291,16 @@ public class AbilitiesImpl extends ArrayList implements Ab @Override public boolean containsKey(UUID abilityId) { - for (T ability : this) { - if (ability.getId().equals(abilityId)) { - return true; - } - } - return false; + return stream().anyMatch(ability -> ability.getId().equals(abilityId)); } @Override public boolean containsClass(Class classObject) { - for (T ability : this) { - if (ability.getClass().equals(classObject)) { - return true; - } - } - return false; + return stream().anyMatch(ability -> ability.getClass().equals(classObject)); } - @Override - public T get(UUID abilityId) { - for (T ability : this) { - if (ability.getId().equals(abilityId)) { - return ability; - } - } - return null; + public Optional get(UUID abilityId) { + return stream().filter(ability -> ability.getId().equals(abilityId)).findFirst(); } @Override diff --git a/Mage/src/main/java/mage/abilities/AbilityImpl.java b/Mage/src/main/java/mage/abilities/AbilityImpl.java index cc30fc971fe..b975a30fe1b 100644 --- a/Mage/src/main/java/mage/abilities/AbilityImpl.java +++ b/Mage/src/main/java/mage/abilities/AbilityImpl.java @@ -27,6 +27,10 @@ */ package mage.abilities; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; import mage.MageObject; import mage.MageObjectReference; import mage.Mana; @@ -59,11 +63,6 @@ import mage.util.ThreadLocalStringBuilder; import mage.watchers.Watcher; import org.apache.log4j.Logger; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.UUID; - /** * @author BetaSteward_at_googlemail.com */ @@ -287,6 +286,19 @@ public abstract class AbilityImpl implements Ability { } } + // 117.6. Some mana costs contain no mana symbols. This represents an unpayable cost. An ability can + // also have an unpayable cost if its cost is based on the mana cost of an object with no mana cost. + // Attempting to cast a spell or activate an ability that has an unpayable cost is a legal action. + // However, attempting to pay an unpayable cost is an illegal action. + // + // We apply this now, *AFTER* the user has made the choice to pay an alternative cost for the + // spell. You can also still cast a spell with an unplayable cost by... not paying it's mana cost. + //if (getAbilityType() == AbilityType.SPELL && getManaCostsToPay().isEmpty() && !noMana) { + // return false; + //} + if (getAbilityType() == AbilityType.SPELL && (getManaCostsToPay().isEmpty() && getCosts().isEmpty()) && !noMana) { + return false; + } // 20121001 - 601.2b // If the spell has a variable cost that will be paid as it's being cast (such as an {X} in // its mana cost; see rule 107.3), the player announces the value of that variable. @@ -328,7 +340,7 @@ public abstract class AbilityImpl implements Ability { Outcome outcome = getEffects().isEmpty() ? Outcome.Detriment : getEffects().get(0).getOutcome(); if (getTargets().chooseTargets(outcome, this.controllerId, this, noMana, game) == false) { if ((variableManaCost != null || announceString != null) && !game.isSimulation()) { - game.informPlayer(controller, (sourceObject != null ? sourceObject.getIdName() : "") + ": no valid targets with this value of X"); + game.informPlayer(controller, (sourceObject != null ? sourceObject.getIdName() : "") + ": no valid targets"); } return false; // when activation of ability is canceled during target selection } @@ -489,7 +501,7 @@ public abstract class AbilityImpl implements Ability { protected String handleOtherXCosts(Game game, Player controller) { StringBuilder announceString = new StringBuilder(); for (VariableCost variableCost : this.costs.getVariableCosts()) { - if (!(variableCost instanceof VariableManaCost)) { + if (!(variableCost instanceof VariableManaCost) && !((Cost) variableCost).isPaid()) { int xValue = variableCost.announceXValue(this, game); Cost fixedCost = variableCost.getFixedCostsFromAnnouncedValue(xValue); if (fixedCost != null) { @@ -506,19 +518,20 @@ public abstract class AbilityImpl implements Ability { } /** - * 601.2b - * If a cost that will be paid as the spell is being cast includes Phyrexian mana symbols, - * the player announces whether he or she intends to pay 2 life or the corresponding colored mana cost for each of those symbols. + * 601.2b If a cost that will be paid as the spell is being cast includes + * Phyrexian mana symbols, the player announces whether he or she intends to + * pay 2 life or the corresponding colored mana cost for each of those + * symbols. */ private void handlePhyrexianManaCosts(Game game, UUID sourceId, Player controller) { Iterator costIterator = manaCostsToPay.iterator(); - while(costIterator.hasNext()) { + while (costIterator.hasNext()) { ManaCost cost = costIterator.next(); - if(cost instanceof PhyrexianManaCost) { - PhyrexianManaCost phyrexianManaCost = (PhyrexianManaCost)cost; + if (cost instanceof PhyrexianManaCost) { + PhyrexianManaCost phyrexianManaCost = (PhyrexianManaCost) cost; PayLifeCost payLifeCost = new PayLifeCost(2); - if(payLifeCost.canPay(this, sourceId, controller.getId(), game) && - controller.chooseUse(Outcome.LoseLife, "Pay 2 life instead of " + phyrexianManaCost.getBaseText() + '?', this, game)) { + if (payLifeCost.canPay(this, sourceId, controller.getId(), game) + && controller.chooseUse(Outcome.LoseLife, "Pay 2 life instead of " + phyrexianManaCost.getBaseText() + '?', this, game)) { costIterator.remove(); costs.add(payLifeCost); } @@ -558,7 +571,11 @@ public abstract class AbilityImpl implements Ability { } else { String manaSymbol = null; if (variableManaCost.getFilter().isBlack()) { - manaSymbol = "B"; + if (variableManaCost.getFilter().isRed()) { + manaSymbol = "B/R"; + } else { + manaSymbol = "B"; + } } else if (variableManaCost.getFilter().isRed()) { manaSymbol = "R"; } else if (variableManaCost.getFilter().isBlue()) { diff --git a/Mage/src/main/java/mage/abilities/CountType.java b/Mage/src/main/java/mage/abilities/CountType.java deleted file mode 100644 index 767a6ce74f2..00000000000 --- a/Mage/src/main/java/mage/abilities/CountType.java +++ /dev/null @@ -1,22 +0,0 @@ -package mage.abilities; - -/** - * Created by IGOUDT on 5-3-2017. - */ -public enum CountType { - MORE_THAN, FEWER_THAN, EQUAL_TO; - - - public static boolean compare(int source, CountType comparison, int target){ - switch (comparison){ - case MORE_THAN: - return source > target; - case FEWER_THAN: - return source < target; - case EQUAL_TO: - return source == target; - default: - throw new IllegalArgumentException("comparison rules for "+comparison + " missing"); - } - } -} diff --git a/Mage/src/main/java/mage/abilities/DelayedTriggeredAbilities.java b/Mage/src/main/java/mage/abilities/DelayedTriggeredAbilities.java index f98551cb414..12402295a52 100644 --- a/Mage/src/main/java/mage/abilities/DelayedTriggeredAbilities.java +++ b/Mage/src/main/java/mage/abilities/DelayedTriggeredAbilities.java @@ -28,20 +28,21 @@ package mage.abilities; -import java.util.Iterator; import mage.constants.Duration; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.Iterator; + /** - * * @author BetaSteward_at_googlemail.com */ - public class DelayedTriggeredAbilities extends AbilitiesImpl { +public class DelayedTriggeredAbilities extends AbilitiesImpl { - public DelayedTriggeredAbilities() {} + public DelayedTriggeredAbilities() { + } - public DelayedTriggeredAbilities(final DelayedTriggeredAbilities abilities) { + public DelayedTriggeredAbilities(final DelayedTriggeredAbilities abilities) { super(abilities); } @@ -52,9 +53,9 @@ import mage.game.events.GameEvent; public void checkTriggers(GameEvent event, Game game) { if (this.size() > 0) { - for (Iterator it = this.iterator();it.hasNext();) { + for (Iterator it = this.iterator(); it.hasNext(); ) { DelayedTriggeredAbility ability = it.next(); - if (ability.getDuration()== Duration.Custom){ + if (ability.getDuration() == Duration.Custom) { if (ability.isInactive(game)) { it.remove(); continue; diff --git a/Mage/src/main/java/mage/abilities/SpellAbility.java b/Mage/src/main/java/mage/abilities/SpellAbility.java index 8cdac0c8fb4..37bc8917a5e 100644 --- a/Mage/src/main/java/mage/abilities/SpellAbility.java +++ b/Mage/src/main/java/mage/abilities/SpellAbility.java @@ -27,6 +27,7 @@ */ package mage.abilities; +import java.util.UUID; import mage.MageObject; import mage.abilities.costs.Cost; import mage.abilities.costs.VariableCost; @@ -44,8 +45,6 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; -import java.util.UUID; - /** * @author BetaSteward_at_googlemail.com */ @@ -94,7 +93,7 @@ public class SpellAbility extends ActivatedAbilityImpl { public boolean canActivate(UUID playerId, Game game) { if (game.getContinuousEffects().asThough(sourceId, AsThoughEffectType.CAST_AS_INSTANT, this, playerId, game) // check this first to allow Offering in main phase || this.spellCanBeActivatedRegularlyNow(playerId, game)) { - if (spellAbilityType == SpellAbilityType.SPLIT) { + if (spellAbilityType == SpellAbilityType.SPLIT || spellAbilityType == SpellAbilityType.SPLIT_AFTERMATH) { return false; } // fix for Gitaxian Probe and casting opponent's spells @@ -110,7 +109,7 @@ public class SpellAbility extends ActivatedAbilityImpl { } } // Alternate spell abilities (Flashback, Overload) can't be cast with no mana to pay option - if (getSpellAbilityType()== SpellAbilityType.BASE_ALTERNATE) { + if (getSpellAbilityType() == SpellAbilityType.BASE_ALTERNATE) { Player player = game.getPlayer(playerId); if (player != null && getSourceId().equals(player.getCastSourceIdWithAlternateMana())) { return false; @@ -183,27 +182,27 @@ public class SpellAbility extends ActivatedAbilityImpl { public int getConvertedXManaCost(Card card) { int xMultiplier = 0; int amount = 0; - if(card == null) { + if (card == null) { return 0; } - for(ManaCost manaCost : card.getManaCost()) { - if(manaCost instanceof VariableManaCost) { - xMultiplier = ((VariableManaCost)manaCost).getMultiplier(); + for (ManaCost manaCost : card.getManaCost()) { + if (manaCost instanceof VariableManaCost) { + xMultiplier = ((VariableManaCost) manaCost).getMultiplier(); break; } } boolean hasNonManaXCost = false; - for(Cost cost : getCosts()) { - if(cost instanceof VariableCost) { + for (Cost cost : getCosts()) { + if (cost instanceof VariableCost) { hasNonManaXCost = true; amount = ((VariableCost) cost).getAmount(); break; } } - if(!hasNonManaXCost) { + if (!hasNonManaXCost) { amount = getManaCostsToPay().getX(); } return amount * xMultiplier; diff --git a/Mage/src/main/java/mage/abilities/abilityword/KinshipAbility.java b/Mage/src/main/java/mage/abilities/abilityword/KinshipAbility.java index ccf9cffce79..3bc8a61082b 100644 --- a/Mage/src/main/java/mage/abilities/abilityword/KinshipAbility.java +++ b/Mage/src/main/java/mage/abilities/abilityword/KinshipAbility.java @@ -45,7 +45,6 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; -import mage.util.CardUtil; /** * @@ -126,7 +125,7 @@ class KinshipBaseEffect extends OneShotEffect { if (card != null) { Cards cards = new CardsImpl(card); controller.lookAtCards(sourcePermanent.getName(), cards, game); - if (CardUtil.shareSubtypes(sourcePermanent, card, game)) { + if (sourcePermanent.shareSubtypes(card, game)) { if (controller.chooseUse(outcome,new StringBuilder("Kinship - Reveal ").append(card.getLogName()).append('?').toString(), source, game)) { controller.revealCards(sourcePermanent.getName(), cards, game); for (Effect effect: kinshipEffects) { diff --git a/Mage/src/main/java/mage/abilities/abilityword/LieutenantAbility.java b/Mage/src/main/java/mage/abilities/abilityword/LieutenantAbility.java index 55efa7e72db..6471e97e765 100644 --- a/Mage/src/main/java/mage/abilities/abilityword/LieutenantAbility.java +++ b/Mage/src/main/java/mage/abilities/abilityword/LieutenantAbility.java @@ -46,14 +46,14 @@ import mage.constants.Zone; public class LieutenantAbility extends SimpleStaticAbility { public LieutenantAbility(ContinuousEffect effect) { - super(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), CommanderInPlayCondition.getInstance(), "Lieutenant - As long as you control your commander, {this} gets +2/+2")); - this.addEffect(new ConditionalContinuousEffect(effect, CommanderInPlayCondition.getInstance(), effect.getText(null))); + super(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), CommanderInPlayCondition.instance, "Lieutenant - As long as you control your commander, {this} gets +2/+2")); + this.addEffect(new ConditionalContinuousEffect(effect, CommanderInPlayCondition.instance, effect.getText(null))); } public LieutenantAbility(Effects effects) { - super(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), CommanderInPlayCondition.getInstance(), "Lieutenant - As long as you control your commander, {this} gets +2/+2")); + super(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), CommanderInPlayCondition.instance, "Lieutenant - As long as you control your commander, {this} gets +2/+2")); for (Effect effect : effects) { - this.addEffect(new ConditionalContinuousEffect((ContinuousEffect) effect, CommanderInPlayCondition.getInstance(), effect.getText(null))); + this.addEffect(new ConditionalContinuousEffect((ContinuousEffect) effect, CommanderInPlayCondition.instance, effect.getText(null))); } } diff --git a/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java b/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java index 430d82f3e8c..1e0753ce927 100644 --- a/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java +++ b/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java @@ -94,7 +94,7 @@ public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl { } sb.append(condition.toString()).append('.'); } else { - sb.append(" [Condition toSting() == null] "); + sb.append(" [Condition toString() == null] "); } return sb.toString() ; } diff --git a/Mage/src/main/java/mage/abilities/common/BecomesExertSourceTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/BecomesExertSourceTriggeredAbility.java new file mode 100644 index 00000000000..d3efb7dc1a9 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/common/BecomesExertSourceTriggeredAbility.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.abilities.common; + +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.Effect; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; + +/** + * + * @author LevelX2 + */ +public class BecomesExertSourceTriggeredAbility extends TriggeredAbilityImpl { + + public BecomesExertSourceTriggeredAbility(Effect effect) { + super(Zone.BATTLEFIELD, effect, false); + } + + public BecomesExertSourceTriggeredAbility(final BecomesExertSourceTriggeredAbility ability) { + super(ability); + } + + @Override + public BecomesExertSourceTriggeredAbility copy() { + return new BecomesExertSourceTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.BECOMES_EXERTED; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getSourceId().equals(this.getSourceId())) { + return true; + } + return false; + } + + @Override + public String getRule() { + return "When {this} becomes exerted, " + super.getRule(); + } +} diff --git a/Mage/src/main/java/mage/abilities/common/ControlsPermanentsControllerTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/ControlsPermanentsControllerTriggeredAbility.java index 850443f3570..750f6a6a861 100644 --- a/Mage/src/main/java/mage/abilities/common/ControlsPermanentsControllerTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/ControlsPermanentsControllerTriggeredAbility.java @@ -27,10 +27,10 @@ */ package mage.abilities.common; +import mage.constants.ComparisonType; import mage.abilities.StateTriggeredAbility; import mage.abilities.effects.Effect; import mage.constants.Zone; -import mage.filter.Filter.ComparisonType; import mage.filter.FilterPermanent; import mage.game.Game; import mage.game.events.GameEvent; @@ -69,24 +69,7 @@ public class ControlsPermanentsControllerTriggeredAbility extends StateTriggered @Override public boolean checkTrigger(GameEvent event, Game game) { int inputValue = game.getBattlefield().countAll(filter, getControllerId(), game); - switch (type) { - case Equal: - if (inputValue != value) { - return false; - } - break; - case GreaterThan: - if (inputValue <= value) { - return false; - } - break; - case LessThan: - if (inputValue >= value) { - return false; - } - break; - } - return true; + return ComparisonType.compare(inputValue, type, value); } @Override diff --git a/Mage/src/main/java/mage/abilities/common/CycleOrDiscardControllerTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/CycleOrDiscardControllerTriggeredAbility.java new file mode 100644 index 00000000000..45fd45270cb --- /dev/null +++ b/Mage/src/main/java/mage/abilities/common/CycleOrDiscardControllerTriggeredAbility.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.abilities.common; + +import mage.constants.Zone; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.Effect; +import mage.game.Game; +import mage.game.events.GameEvent; + +/** + * + * @author fireshoes + */ +public class CycleOrDiscardControllerTriggeredAbility extends TriggeredAbilityImpl { + + public CycleOrDiscardControllerTriggeredAbility(Effect effect) { + this(effect, false); + } + + public CycleOrDiscardControllerTriggeredAbility(Effect effect, boolean optional) { + super(Zone.BATTLEFIELD, effect, optional); + } + + public CycleOrDiscardControllerTriggeredAbility(final CycleOrDiscardControllerTriggeredAbility ability) { + super(ability); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.DISCARDED_CARD; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + return event.getPlayerId().equals(controllerId); + } + + @Override + public String getRule() { + return "Whenever you cycle or discard a card, " + super.getRule(); + } + + @Override + public CycleOrDiscardControllerTriggeredAbility copy() { + return new CycleOrDiscardControllerTriggeredAbility(this); + } +} diff --git a/Mage/src/main/java/mage/abilities/common/ExertCreatureControllerTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/ExertCreatureControllerTriggeredAbility.java new file mode 100644 index 00000000000..ff91f35fb00 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/common/ExertCreatureControllerTriggeredAbility.java @@ -0,0 +1,45 @@ +package mage.abilities.common; + +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.Effect; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; + +/** + * @author stravant + */ +public class ExertCreatureControllerTriggeredAbility extends TriggeredAbilityImpl { + + public ExertCreatureControllerTriggeredAbility(Effect effect) { + super(Zone.BATTLEFIELD, effect); + } + + public ExertCreatureControllerTriggeredAbility(final ExertCreatureControllerTriggeredAbility ability) { + super(ability); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.BECOMES_EXERTED; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + boolean weAreExerting = getControllerId().equals(event.getPlayerId()); + Permanent exerted = game.getPermanent(event.getTargetId()); + boolean exertedIsCreature = (exerted != null) && exerted.isCreature(); + return weAreExerting && exertedIsCreature; + } + + @Override + public ExertCreatureControllerTriggeredAbility copy() { + return new ExertCreatureControllerTriggeredAbility(this); + } + + @Override + public String getRule() { + return "Whenever you exert a creature, " + super.getRule(); + } +} diff --git a/Mage/src/main/java/mage/abilities/common/LicidAbility.java b/Mage/src/main/java/mage/abilities/common/LicidAbility.java index 1b8381c8bbb..f9db3f24397 100644 --- a/Mage/src/main/java/mage/abilities/common/LicidAbility.java +++ b/Mage/src/main/java/mage/abilities/common/LicidAbility.java @@ -139,7 +139,7 @@ class LicidContinuousEffect extends ContinuousEffectImpl { switch (layer) { case TypeChangingEffects_4: licid.getCardType().clear(); - licid.getCardType().add(CardType.ENCHANTMENT); + licid.addCardType(CardType.ENCHANTMENT); licid.getSubtype(game).clear(); licid.getSubtype(game).add("Aura"); break; diff --git a/Mage/src/main/java/mage/abilities/condition/Condition.java b/Mage/src/main/java/mage/abilities/condition/Condition.java index 5ea393c4c91..512d3720003 100644 --- a/Mage/src/main/java/mage/abilities/condition/Condition.java +++ b/Mage/src/main/java/mage/abilities/condition/Condition.java @@ -1,9 +1,10 @@ package mage.abilities.condition; -import java.io.Serializable; import mage.abilities.Ability; import mage.game.Game; +import java.io.Serializable; + /** * Interface describing condition occurrence. @@ -13,24 +14,6 @@ import mage.game.Game; @FunctionalInterface public interface Condition extends Serializable { - enum ComparisonType { - - GreaterThan(">"), - Equal("=="), - LessThan("<"); - - private final String text; - - ComparisonType(String text) { - this.text = text; - } - - @Override - public String toString() { - return text; - } - } - /** * Checks the game to see if this condition applies for the given ability. * diff --git a/Mage/src/main/java/mage/abilities/condition/IntCompareCondition.java b/Mage/src/main/java/mage/abilities/condition/IntCompareCondition.java index 2e89464c28d..cc33eca7b87 100644 --- a/Mage/src/main/java/mage/abilities/condition/IntCompareCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/IntCompareCondition.java @@ -28,6 +28,7 @@ package mage.abilities.condition; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.game.Game; /** @@ -36,10 +37,10 @@ import mage.game.Game; */ public abstract class IntCompareCondition implements Condition { - protected final Condition.ComparisonType type; + protected final ComparisonType type; protected final int value; - public IntCompareCondition(Condition.ComparisonType type, int value) { + public IntCompareCondition(ComparisonType type, int value) { this.type = type; this.value = value; } @@ -49,24 +50,7 @@ public abstract class IntCompareCondition implements Condition { @Override public final boolean apply(Game game, Ability source) { int inputValue = getInputValue(game, source); - switch (type) { - case Equal: - if (inputValue != value) { - return false; - } - break; - case GreaterThan: - if (inputValue <= value) { - return false; - } - break; - case LessThan: - if (inputValue >= value) { - return false; - } - break; - } - return true; + return ComparisonType.compare(inputValue , type, value); } @Override diff --git a/Mage/src/main/java/mage/abilities/condition/common/BeforeBlockersAreDeclaredCondition.java b/Mage/src/main/java/mage/abilities/condition/common/BeforeBlockersAreDeclaredCondition.java index 352e1506d58..cf529fa0de2 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/BeforeBlockersAreDeclaredCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/BeforeBlockersAreDeclaredCondition.java @@ -16,13 +16,9 @@ import mage.game.Game; * * @author LevelX2 */ -public class BeforeBlockersAreDeclaredCondition implements Condition { +public enum BeforeBlockersAreDeclaredCondition implements Condition { - private static final BeforeBlockersAreDeclaredCondition instance = new BeforeBlockersAreDeclaredCondition(); - - public static Condition getInstance() { - return instance; - } + instance; @Override public boolean apply(Game game, Ability source) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/CardsInAnyLibraryCondition.java b/Mage/src/main/java/mage/abilities/condition/common/CardsInAnyLibraryCondition.java index b0e6681f8d2..9cd12424f94 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/CardsInAnyLibraryCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/CardsInAnyLibraryCondition.java @@ -27,22 +27,23 @@ */ package mage.abilities.condition.common; -import java.util.UUID; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.condition.Condition; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** - * * @author LevelX2 */ public class CardsInAnyLibraryCondition implements Condition { - protected final Condition.ComparisonType type; + protected final ComparisonType type; protected final int value; - public CardsInAnyLibraryCondition(Condition.ComparisonType type, int value) { + public CardsInAnyLibraryCondition(ComparisonType type, int value) { this.type = type; this.value = value; } @@ -54,23 +55,8 @@ public class CardsInAnyLibraryCondition implements Condition { for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) { Player player = game.getPlayer(playerId); if (player != null) { - switch (type) { - case GreaterThan: - if (player.getLibrary().size() > value) { - return true; - } - break; - case Equal: - if (player.getLibrary().size() == value) { - return true; - } - break; - case LessThan: - if (player.getLibrary().size() < value) { - return true; - } - break; - } + return ComparisonType.compare(player.getLibrary().size(), type, value); + } } } @@ -81,13 +67,13 @@ public class CardsInAnyLibraryCondition implements Condition { public String toString() { StringBuilder sb = new StringBuilder("a library has "); switch (type) { - case GreaterThan: + case MORE_THAN: sb.append(value + 1).append(" or more cards in it "); break; - case Equal: + case EQUAL_TO: sb.append(value).append(" cards in it "); break; - case LessThan: + case FEWER_THAN: sb.append(value - 1).append(" or fewer cards in it "); break; } diff --git a/Mage/src/main/java/mage/abilities/condition/common/CardsInHandCondition.java b/Mage/src/main/java/mage/abilities/condition/common/CardsInHandCondition.java index 9d8b0813d63..9025cf0af46 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/CardsInHandCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/CardsInHandCondition.java @@ -30,7 +30,7 @@ package mage.abilities.condition.common; import java.util.UUID; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.Condition; import mage.constants.TargetController; import mage.game.Game; @@ -47,23 +47,23 @@ public class CardsInHandCondition implements Condition { private Condition condition; - private CountType type; + private ComparisonType type; private int count; private TargetController targetController; public CardsInHandCondition() { - this(CountType.EQUAL_TO, 0); + this(ComparisonType.EQUAL_TO, 0); } - public CardsInHandCondition(CountType type, int count) { + public CardsInHandCondition(ComparisonType type, int count) { this(type, count, null); } - public CardsInHandCondition(CountType type, int count, Condition conditionToDecorate) { + public CardsInHandCondition(ComparisonType type, int count, Condition conditionToDecorate) { this(type, count, conditionToDecorate, TargetController.YOU); } - public CardsInHandCondition(CountType type, int count, Condition conditionToDecorate, TargetController targetController) { + public CardsInHandCondition(ComparisonType type, int count, Condition conditionToDecorate, TargetController targetController) { this.type = type; this.count = count; this.condition = conditionToDecorate; @@ -77,12 +77,12 @@ public class CardsInHandCondition implements Condition { if (controller != null) { switch (targetController) { case YOU: - conditionApplies = CountType.compare(game.getPlayer(source.getControllerId()).getHand().size(), type, count); + conditionApplies = ComparisonType.compare(game.getPlayer(source.getControllerId()).getHand().size(), type, count); break; case ACTIVE: Player player = game.getPlayer(game.getActivePlayerId()); if (player != null) { - conditionApplies = CountType.compare(player.getHand().size(), type, count); + conditionApplies = ComparisonType.compare(player.getHand().size(), type, count); } break; case ANY: @@ -90,7 +90,7 @@ public class CardsInHandCondition implements Condition { for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) { player = game.getPlayer(playerId); if (player != null) { - if (!CountType.compare(player.getHand().size(), type, this.count)) { + if (!ComparisonType.compare(player.getHand().size(), type, this.count)) { conflict = true; break; } diff --git a/Mage/src/main/java/mage/abilities/condition/common/CastFromHandSourceCondition.java b/Mage/src/main/java/mage/abilities/condition/common/CastFromHandSourceCondition.java index b74eaf37c1d..b047628e52e 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/CastFromHandSourceCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/CastFromHandSourceCondition.java @@ -13,7 +13,9 @@ import mage.watchers.common.CastFromHandWatcher; * * @author Loki */ -public class CastFromHandSourceCondition implements Condition { +public enum CastFromHandSourceCondition implements Condition { + + instance; @Override public boolean apply(Game game, Ability source) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/CommanderInPlayCondition.java b/Mage/src/main/java/mage/abilities/condition/common/CommanderInPlayCondition.java index a6ba1a09721..5d340bc948c 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/CommanderInPlayCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/CommanderInPlayCondition.java @@ -27,31 +27,22 @@ */ package mage.abilities.condition.common; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.Condition; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * Checks if the player has its commander in play and controls it * * @author LevelX2 */ -public class CommanderInPlayCondition implements Condition { +public enum CommanderInPlayCondition implements Condition { - private static CommanderInPlayCondition instance = null; - - private CommanderInPlayCondition() { - } - - public static Condition getInstance() { - if (instance == null) { - instance = new CommanderInPlayCondition(); - } - return instance; - } + instance; @Override public boolean apply(Game game, Ability source) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/DevouredCreaturesCondition.java b/Mage/src/main/java/mage/abilities/condition/common/DevouredCreaturesCondition.java index fa62e96f2b3..6b0f110eca9 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/DevouredCreaturesCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/DevouredCreaturesCondition.java @@ -28,7 +28,7 @@ package mage.abilities.condition.common; import mage.abilities.Ability; -import mage.abilities.condition.Condition; +import mage.constants.ComparisonType; import mage.abilities.condition.IntCompareCondition; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DevourEffect; @@ -43,7 +43,7 @@ import mage.game.permanent.Permanent; */ public class DevouredCreaturesCondition extends IntCompareCondition { - public DevouredCreaturesCondition(Condition.ComparisonType type, int value) { + public DevouredCreaturesCondition(ComparisonType type, int value) { super(type, value); } diff --git a/Mage/src/main/java/mage/abilities/condition/common/EquippedHasSupertypeCondition.java b/Mage/src/main/java/mage/abilities/condition/common/EquippedHasSupertypeCondition.java index b624f9f25a4..99103decd71 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/EquippedHasSupertypeCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/EquippedHasSupertypeCondition.java @@ -29,10 +29,13 @@ package mage.abilities.condition.common; import mage.abilities.Ability; import mage.abilities.condition.Condition; +import mage.constants.SuperType; import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.EnumSet; + /** * * @author LevelX2 @@ -40,15 +43,15 @@ import mage.game.permanent.Permanent; public class EquippedHasSupertypeCondition implements Condition { - private String superType; - private String[] superTypes; // scope = Any + private SuperType superType; + private EnumSet superTypes = EnumSet.noneOf(SuperType.class); // scope = Any - public EquippedHasSupertypeCondition(String subType) { - this.superType = subType; + public EquippedHasSupertypeCondition(SuperType supertype) { + this.superType = supertype; } - public EquippedHasSupertypeCondition(String... subTypes) { - this.superTypes = subTypes; + public EquippedHasSupertypeCondition(EnumSet superTypes) { + this.superTypes = superTypes; } @Override @@ -61,12 +64,12 @@ public class EquippedHasSupertypeCondition implements Condition { } if (attachedTo != null) { if (superType != null) { - if (attachedTo.getSupertype().contains(this.superType)) { + if (attachedTo.getSuperType().contains(this.superType)) { return true; } } else { - for (String s : superTypes) { - if (attachedTo.getSupertype().contains(s)) { + for (SuperType s : superTypes) { + if (attachedTo.getSuperType().contains(s)) { return true; } } diff --git a/Mage/src/main/java/mage/abilities/condition/common/EquippedSourceCondition.java b/Mage/src/main/java/mage/abilities/condition/common/EquippedSourceCondition.java index 8c7fb5e6452..90d079d1b89 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/EquippedSourceCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/EquippedSourceCondition.java @@ -27,24 +27,21 @@ */ package mage.abilities.condition.common; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.Condition; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.UUID; + /** * Describes condition when creature is equipped. * * @author nantuko */ -public class EquippedSourceCondition implements Condition { +public enum EquippedSourceCondition implements Condition { - private static final EquippedSourceCondition instance = new EquippedSourceCondition(); - - public static Condition getInstance() { - return instance; - } + instance; @Override public boolean apply(Game game, Ability source) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/FerociousCondition.java b/Mage/src/main/java/mage/abilities/condition/common/FerociousCondition.java index 3a2df9c78bc..8cf67b92811 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/FerociousCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/FerociousCondition.java @@ -29,8 +29,8 @@ package mage.abilities.condition.common; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.condition.Condition; -import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; @@ -43,7 +43,7 @@ public enum FerociousCondition implements Condition { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); } diff --git a/Mage/src/main/java/mage/abilities/condition/common/FlippedCondition.java b/Mage/src/main/java/mage/abilities/condition/common/FlippedCondition.java index 85c9dbebd97..ae8dc15e12e 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/FlippedCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/FlippedCondition.java @@ -32,13 +32,9 @@ import mage.abilities.condition.Condition; import mage.game.Game; import mage.game.permanent.Permanent; -public class FlippedCondition implements Condition { +public enum FlippedCondition implements Condition { - private static FlippedCondition instance = new FlippedCondition(); - - public static Condition getInstance() { - return instance; - } + instance; @Override public boolean apply(Game game, Ability source) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/HeckbentCondition.java b/Mage/src/main/java/mage/abilities/condition/common/HeckbentCondition.java new file mode 100644 index 00000000000..db1c66c60a8 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/condition/common/HeckbentCondition.java @@ -0,0 +1,22 @@ +package mage.abilities.condition.common; + +import mage.abilities.Ability; +import mage.abilities.condition.Condition; +import mage.game.Game; + +/** + * @author stravant + */ +public enum HeckbentCondition implements Condition { + instance; + + @Override + public boolean apply(Game game, Ability source) { + return game.getPlayer(source.getControllerId()).getHand().size() <= 1; + } + + @Override + public String toString() { + return "if you have one or fewer cards in hand"; + } +} diff --git a/Mage/src/main/java/mage/abilities/condition/common/LandfallCondition.java b/Mage/src/main/java/mage/abilities/condition/common/LandfallCondition.java index 482f12371cb..07a1a4b868c 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/LandfallCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/LandfallCondition.java @@ -8,15 +8,8 @@ import mage.watchers.common.LandfallWatcher; /** * @author Loki */ -public class LandfallCondition implements Condition { - private final static LandfallCondition instance = new LandfallCondition(); - - public static LandfallCondition getInstance() { - return instance; - } - - private LandfallCondition() { - } +public enum LandfallCondition implements Condition { + instance; @Override public boolean apply(Game game, Ability source) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/MonarchIsSourceControllerCondition.java b/Mage/src/main/java/mage/abilities/condition/common/MonarchIsSourceControllerCondition.java index 40fca1d93a2..c1ba5bce386 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/MonarchIsSourceControllerCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/MonarchIsSourceControllerCondition.java @@ -35,13 +35,9 @@ import mage.game.Game; * * @author LevelX2 */ -public class MonarchIsSourceControllerCondition implements Condition { +public enum MonarchIsSourceControllerCondition implements Condition { - private final static MonarchIsSourceControllerCondition instance = new MonarchIsSourceControllerCondition(); - - public static Condition getInstance() { - return instance; - } + instance; @Override public boolean apply(Game game, Ability source) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/MoreCardsInHandThanOpponentsCondition.java b/Mage/src/main/java/mage/abilities/condition/common/MoreCardsInHandThanOpponentsCondition.java index 846f59eb220..d2d873d5236 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/MoreCardsInHandThanOpponentsCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/MoreCardsInHandThanOpponentsCondition.java @@ -7,7 +7,9 @@ import mage.players.Player; import java.util.UUID; -public class MoreCardsInHandThanOpponentsCondition implements Condition { +public enum MoreCardsInHandThanOpponentsCondition implements Condition { + + instance; @Override public boolean apply(Game game, Ability source) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/MyTurnBeforeAttackersDeclaredCondition.java b/Mage/src/main/java/mage/abilities/condition/common/MyTurnBeforeAttackersDeclaredCondition.java index edfab63c3df..468939ef23f 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/MyTurnBeforeAttackersDeclaredCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/MyTurnBeforeAttackersDeclaredCondition.java @@ -37,12 +37,8 @@ import mage.game.Game; * * @author LevelX2 */ -public class MyTurnBeforeAttackersDeclaredCondition implements Condition { - private static final MyTurnBeforeAttackersDeclaredCondition instance = new MyTurnBeforeAttackersDeclaredCondition(); - - public static Condition getInstance() { - return instance; - } +public enum MyTurnBeforeAttackersDeclaredCondition implements Condition { + instance; @Override public boolean apply(Game game, Ability source) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/OpponentControlsPermanentCondition.java b/Mage/src/main/java/mage/abilities/condition/common/OpponentControlsPermanentCondition.java index d1b37c77ca3..4281a43463f 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/OpponentControlsPermanentCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/OpponentControlsPermanentCondition.java @@ -31,7 +31,7 @@ package mage.abilities.condition.common; import java.util.UUID; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.Condition; import mage.filter.FilterPermanent; import mage.filter.predicate.permanent.ControllerIdPredicate; @@ -48,18 +48,18 @@ public class OpponentControlsPermanentCondition implements Condition { private FilterPermanent filter; - private CountType type; + private ComparisonType type; private int count; /** * @param filter */ public OpponentControlsPermanentCondition(FilterPermanent filter) { - this(filter, CountType.MORE_THAN, 0); + this(filter, ComparisonType.MORE_THAN, 0); } /** - * Applies a filter, a {@link CountType}, and count to permanents on the + * Applies a filter, a {@link ComparisonType}, and count to permanents on the * battlefield when checking the condition during the * {@link #apply(mage.game.Game, mage.abilities.Ability) apply} method invocation. * @@ -67,7 +67,7 @@ public class OpponentControlsPermanentCondition implements Condition { * @param type * @param count */ - public OpponentControlsPermanentCondition(FilterPermanent filter, CountType type, int count) { + public OpponentControlsPermanentCondition(FilterPermanent filter, ComparisonType type, int count) { this.filter = filter; this.type = type; this.count = count; @@ -79,7 +79,7 @@ public class OpponentControlsPermanentCondition implements Condition { for (UUID opponentId : game.getOpponents(source.getControllerId())) { FilterPermanent localFilter = filter.copy(); localFilter.add(new ControllerIdPredicate(opponentId)); - if (CountType.compare(game.getBattlefield().count(localFilter, source.getSourceId(), source.getControllerId(), game), type, this.count)) { + if (ComparisonType.compare(game.getBattlefield().count(localFilter, source.getSourceId(), source.getControllerId(), game), type, this.count)) { conditionApplies = true; break; } diff --git a/Mage/src/main/java/mage/abilities/condition/common/OpponentHasMoreLifeCondition.java b/Mage/src/main/java/mage/abilities/condition/common/OpponentHasMoreLifeCondition.java index d78083d48d9..85293b8b801 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/OpponentHasMoreLifeCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/OpponentHasMoreLifeCondition.java @@ -28,21 +28,21 @@ package mage.abilities.condition.common; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.Condition; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author fireshoes */ -public class OpponentHasMoreLifeCondition implements Condition { +public enum OpponentHasMoreLifeCondition implements Condition { - public OpponentHasMoreLifeCondition() { - } + instance; @Override public boolean apply(Game game, Ability source) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/OpponentLostLifeCondition.java b/Mage/src/main/java/mage/abilities/condition/common/OpponentLostLifeCondition.java index 4d4cfbf24c2..738cb089c9f 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/OpponentLostLifeCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/OpponentLostLifeCondition.java @@ -27,14 +27,14 @@ */ package mage.abilities.condition.common; -import java.util.UUID; - import mage.abilities.Ability; -import mage.abilities.condition.Condition; +import mage.constants.ComparisonType; import mage.abilities.condition.IntCompareCondition; import mage.game.Game; import mage.watchers.common.PlayerLostLifeWatcher; +import java.util.UUID; + /** * Describes condition when an opponent has lost an amount of life * @@ -42,7 +42,7 @@ import mage.watchers.common.PlayerLostLifeWatcher; */ public class OpponentLostLifeCondition extends IntCompareCondition { - public OpponentLostLifeCondition(Condition.ComparisonType type, int value) { + public OpponentLostLifeCondition(ComparisonType type, int value) { super(type, value); } @@ -65,13 +65,13 @@ public class OpponentLostLifeCondition extends IntCompareCondition { public String toString() { StringBuilder sb = new StringBuilder("if an opponent lost "); switch (type) { - case GreaterThan: + case MORE_THAN: sb.append(value + 1).append(" or more life this turn "); break; - case Equal: + case EQUAL_TO: sb.append(value).append(" life this turn "); break; - case LessThan: + case FEWER_THAN: sb.append(" less than ").append(value).append(" life this turn "); break; } diff --git a/Mage/src/main/java/mage/abilities/condition/common/PermanentHasCounterCondition.java b/Mage/src/main/java/mage/abilities/condition/common/PermanentHasCounterCondition.java index 55293b1a1ae..305834f6e9b 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/PermanentHasCounterCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/PermanentHasCounterCondition.java @@ -28,7 +28,7 @@ package mage.abilities.condition.common; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.Condition; import mage.counters.CounterType; import mage.game.Game; @@ -47,15 +47,15 @@ public class PermanentHasCounterCondition implements Condition { private CounterType counterType; private int amount; private FilterPermanent filter; - private CountType counttype; + private ComparisonType counttype; private boolean anyPlayer; public PermanentHasCounterCondition(CounterType counterType, int amount, FilterPermanent filter) { - this(counterType, amount, filter, CountType.EQUAL_TO); + this(counterType, amount, filter, ComparisonType.EQUAL_TO); this.anyPlayer = false; } - public PermanentHasCounterCondition(CounterType counterType, int amount, FilterPermanent filter, CountType type) { + public PermanentHasCounterCondition(CounterType counterType, int amount, FilterPermanent filter, ComparisonType type) { this.counterType = counterType; this.amount = amount; this.filter = filter; @@ -63,7 +63,7 @@ public class PermanentHasCounterCondition implements Condition { this.anyPlayer = false; } - public PermanentHasCounterCondition(CounterType counterType, int amount, FilterPermanent filter, CountType type, boolean any) { + public PermanentHasCounterCondition(CounterType counterType, int amount, FilterPermanent filter, ComparisonType type, boolean any) { this.counterType = counterType; this.amount = amount; this.filter = filter; @@ -77,7 +77,7 @@ public class PermanentHasCounterCondition implements Condition { permanents = game.getBattlefield().getAllActivePermanents(this.filter, game); } for (Permanent permanent : permanents) { - if(CountType.compare(permanent.getCounters(game).getCount(this.counterType), counttype, this.amount)) + if(ComparisonType.compare(permanent.getCounters(game).getCount(this.counterType), counttype, this.amount)) { return true; } diff --git a/Mage/src/main/java/mage/abilities/condition/common/PermanentsOnTheBattlefieldCondition.java b/Mage/src/main/java/mage/abilities/condition/common/PermanentsOnTheBattlefieldCondition.java index 8271280a7e2..bfd4b7798e5 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/PermanentsOnTheBattlefieldCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/PermanentsOnTheBattlefieldCondition.java @@ -28,7 +28,7 @@ package mage.abilities.condition.common; import mage.abilities.Ability; -import mage.abilities.CountType; +import mage.constants.ComparisonType; import mage.abilities.condition.Condition; import mage.filter.FilterPermanent; import mage.filter.predicate.permanent.ControllerIdPredicate; @@ -47,23 +47,23 @@ public class PermanentsOnTheBattlefieldCondition implements Condition { private FilterPermanent filter; private Condition condition; - private CountType type; + private ComparisonType type; private int count; private boolean onlyControlled; /** * Applies a filter and delegates creation to * {@link #ControlsPermanent(mage.filter.FilterPermanent, mage.abilities.condition.common.ControlsPermanent.CountType, int)} - * with {@link CountType#MORE_THAN}, and 0. + * with {@link ComparisonType#MORE_THAN}, and 0. * * @param filter */ public PermanentsOnTheBattlefieldCondition(FilterPermanent filter) { - this(filter, CountType.MORE_THAN, 0); + this(filter, ComparisonType.MORE_THAN, 0); } /** - * Applies a filter, a {@link CountType}, and count to permanents on the + * Applies a filter, a {@link ComparisonType}, and count to permanents on the * battlefield when checking the condition during the * {@link #apply(mage.game.Game, mage.abilities.Ability) apply} method invocation. * @@ -71,11 +71,11 @@ public class PermanentsOnTheBattlefieldCondition implements Condition { * @param type * @param count */ - public PermanentsOnTheBattlefieldCondition(FilterPermanent filter, CountType type, int count) { + public PermanentsOnTheBattlefieldCondition(FilterPermanent filter, ComparisonType type, int count) { this(filter, type, count, true); } - public PermanentsOnTheBattlefieldCondition(FilterPermanent filter, CountType type, int count, boolean onlyControlled) { + public PermanentsOnTheBattlefieldCondition(FilterPermanent filter, ComparisonType type, int count, boolean onlyControlled) { this.filter = filter; this.type = type; this.count = count; @@ -83,7 +83,7 @@ public class PermanentsOnTheBattlefieldCondition implements Condition { } /** - * Applies a filter, a {@link CountType}, and count to permanents on the + * Applies a filter, a {@link ComparisonType}, and count to permanents on the * battlefield and calls the decorated condition to see if it * {@link #apply(mage.game.Game, mage.abilities.Ability) applies} * as well. This will force both conditions to apply for this to be true. @@ -93,7 +93,7 @@ public class PermanentsOnTheBattlefieldCondition implements Condition { * @param count * @param conditionToDecorate */ - public PermanentsOnTheBattlefieldCondition(FilterPermanent filter, CountType type, int count, Condition conditionToDecorate) { + public PermanentsOnTheBattlefieldCondition(FilterPermanent filter, ComparisonType type, int count, Condition conditionToDecorate) { this(filter, type, count); this.condition = conditionToDecorate; } @@ -108,7 +108,7 @@ public class PermanentsOnTheBattlefieldCondition implements Condition { } int permanentsOnBattlefield = game.getBattlefield().count(localFilter, source.getSourceId(), source.getControllerId(), game); - conditionApplies = CountType.compare(permanentsOnBattlefield, type, count); + conditionApplies = ComparisonType.compare(permanentsOnBattlefield, type, count); //If a decorated condition exists, check it as well and apply them together. if (this.condition != null) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/RenownedTargetCondition.java b/Mage/src/main/java/mage/abilities/condition/common/RenownedTargetCondition.java index 3aa31557fd3..a1061436b52 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/RenownedTargetCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/RenownedTargetCondition.java @@ -36,19 +36,9 @@ import mage.game.permanent.Permanent; * * @author LevelX2 */ -public class RenownedTargetCondition implements Condition { +public enum RenownedTargetCondition implements Condition { - private static RenownedTargetCondition instance = null; - - private RenownedTargetCondition() { - } - - public static RenownedTargetCondition getInstance() { - if (instance == null) { - instance = new RenownedTargetCondition(); - } - return instance; - } + instance; @Override public boolean apply(Game game, Ability source) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/SourceAttackingCondition.java b/Mage/src/main/java/mage/abilities/condition/common/SourceAttackingCondition.java index a20648cecc3..36fa91dfa0f 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/SourceAttackingCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/SourceAttackingCondition.java @@ -37,13 +37,9 @@ import mage.game.permanent.Permanent; * @author LevelX2 */ -public class SourceAttackingCondition implements Condition { +public enum SourceAttackingCondition implements Condition { - private static final SourceAttackingCondition instance = new SourceAttackingCondition(); - - public static SourceAttackingCondition getInstance() { - return instance; - } + instance; @Override public boolean apply(Game game, Ability source) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/SourceHasCounterCondition.java b/Mage/src/main/java/mage/abilities/condition/common/SourceHasCounterCondition.java index 96434483e0f..b252edbd181 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/SourceHasCounterCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/SourceHasCounterCondition.java @@ -35,7 +35,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; /** - * + * * @author nantuko */ public class SourceHasCounterCondition implements Condition { @@ -82,12 +82,26 @@ public class SourceHasCounterCondition implements Condition { return count >= from; } return count >= from && count <= to; - } else { // single compare (lte) + } else // single compare (lte) + { if (card != null) { return card.getCounters(game).getCount(counterType) >= amount; - } else { + } else { return permanent.getCounters(game).getCount(counterType) >= amount; } } } + + @Override + public String toString() { + if (from != -1) { //range compare + if (to == Integer.MAX_VALUE) { + return "{this} has equal to or more than " + from + " " + this.counterType.toString() + " counters"; + } + return "{this} has between " + from + " and " + to + " " + this.counterType.toString() + " counters"; + } else // single compare (lte) + { + return "{this} has equal or more than " + amount + " " + this.counterType.toString() + " counters"; + } + } } diff --git a/Mage/src/main/java/mage/abilities/condition/common/SourceOnBattlefieldCondition.java b/Mage/src/main/java/mage/abilities/condition/common/SourceOnBattlefieldCondition.java index 544e6e38dd9..c5ed34e3645 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/SourceOnBattlefieldCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/SourceOnBattlefieldCondition.java @@ -38,13 +38,9 @@ import mage.game.Game; * * @author LevelX2 */ -public class SourceOnBattlefieldCondition implements Condition { +public enum SourceOnBattlefieldCondition implements Condition { - private static final SourceOnBattlefieldCondition instance = new SourceOnBattlefieldCondition(); - - public static SourceOnBattlefieldCondition getInstance() { - return instance; - } + instance; @Override public boolean apply(Game game, Ability source) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/SourceTappedBeforeUntapStepCondition.java b/Mage/src/main/java/mage/abilities/condition/common/SourceTappedBeforeUntapStepCondition.java index 7a082493bca..1e0b6238ecd 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/SourceTappedBeforeUntapStepCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/SourceTappedBeforeUntapStepCondition.java @@ -28,7 +28,6 @@ package mage.abilities.condition.common; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.Condition; import mage.constants.PhaseStep; @@ -37,6 +36,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.turn.Step; +import java.util.UUID; + /** * * @author spjspj @@ -44,15 +45,11 @@ import mage.game.turn.Step; public class SourceTappedBeforeUntapStepCondition implements Condition { - private static final SourceTappedBeforeUntapStepCondition instance = new SourceTappedBeforeUntapStepCondition(); UUID permanentId = null; boolean permanentWasTappedBeforeUntapStep = false; int lastTurnNum = -1; - public static SourceTappedBeforeUntapStepCondition getInstance() { - return instance; - } public void setPermanentId(UUID permanentId) { this.permanentId = permanentId; diff --git a/Mage/src/main/java/mage/abilities/condition/common/SuspendedCondition.java b/Mage/src/main/java/mage/abilities/condition/common/SuspendedCondition.java index 44e2ba7aaf8..3642ce382bd 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/SuspendedCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/SuspendedCondition.java @@ -45,18 +45,9 @@ import mage.game.Game; * */ -public class SuspendedCondition implements Condition { +public enum SuspendedCondition implements Condition { - private static SuspendedCondition instance = null; - - private SuspendedCondition() {} - - public static Condition getInstance() { - if (instance == null) { - instance = new SuspendedCondition(); - } - return instance; - } + instance; @Override public boolean apply(Game game, Ability source) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/TargetAttackedThisTurnCondition.java b/Mage/src/main/java/mage/abilities/condition/common/TargetAttackedThisTurnCondition.java index dfd46e14f43..3b20835c007 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/TargetAttackedThisTurnCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/TargetAttackedThisTurnCondition.java @@ -27,6 +27,7 @@ */ package mage.abilities.condition.common; +import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.condition.Condition; import mage.game.Game; @@ -42,7 +43,7 @@ public enum TargetAttackedThisTurnCondition implements Condition { @Override public boolean apply(Game game, Ability source) { Permanent creature = game.getPermanentOrLKIBattlefield(source.getTargets().getFirstTarget()); - AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get("AttackedThisTurn"); - return watcher.getAttackedThisTurnCreatures().contains(creature.getId()); + AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get(AttackedThisTurnWatcher.class.getName()); + return watcher.getAttackedThisTurnCreatures().contains(new MageObjectReference(creature, game)); } } diff --git a/Mage/src/main/java/mage/abilities/condition/common/TenOrLessLifeCondition.java b/Mage/src/main/java/mage/abilities/condition/common/XorLessLifeCondition.java similarity index 90% rename from Mage/src/main/java/mage/abilities/condition/common/TenOrLessLifeCondition.java rename to Mage/src/main/java/mage/abilities/condition/common/XorLessLifeCondition.java index 06639045af1..a31c03f293b 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/TenOrLessLifeCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/XorLessLifeCondition.java @@ -27,25 +27,28 @@ */ package mage.abilities.condition.common; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.condition.Condition; import mage.game.Game; import mage.players.Player; import mage.players.PlayerList; +import java.util.UUID; + /** * * @author maurer.it_at_gmail.com */ -public class TenOrLessLifeCondition implements Condition { +public class XorLessLifeCondition implements Condition { public enum CheckType { AN_OPPONENT, CONTROLLER, TARGET_OPPONENT, EACH_PLAYER } private final CheckType type; + private final int amount; - public TenOrLessLifeCondition ( CheckType type ) { + public XorLessLifeCondition ( CheckType type , int amount) { this.type = type; + this.amount = amount; } @Override @@ -55,11 +58,11 @@ public class TenOrLessLifeCondition implements Condition { switch ( this.type ) { case AN_OPPONENT: for ( UUID opponentUUID : game.getOpponents(source.getControllerId()) ) { - conditionApplies |= game.getPlayer(opponentUUID).getLife() <= 10; + conditionApplies |= game.getPlayer(opponentUUID).getLife() <= amount; } break; case CONTROLLER: - conditionApplies |= game.getPlayer(source.getControllerId()).getLife() <= 10; + conditionApplies |= game.getPlayer(source.getControllerId()).getLife() <= amount; break; case TARGET_OPPONENT: //TODO: Implement this. @@ -71,11 +74,11 @@ public class TenOrLessLifeCondition implements Condition { Player p = game.getPlayer(pid); if (p != null) { if (maxLife < p.getLife()) { - maxLife = p.getLife(); + maxLife = p.getLife(); } } } - conditionApplies |= maxLife <= 10; + conditionApplies |= maxLife <= amount; break; } diff --git a/Mage/src/main/java/mage/abilities/condition/common/YouGainedLifeCondition.java b/Mage/src/main/java/mage/abilities/condition/common/YouGainedLifeCondition.java new file mode 100644 index 00000000000..6806e287770 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/condition/common/YouGainedLifeCondition.java @@ -0,0 +1,33 @@ +package mage.abilities.condition.common; + +import mage.abilities.Ability; +import mage.constants.ComparisonType; +import mage.abilities.condition.IntCompareCondition; +import mage.game.Game; +import mage.watchers.common.PlayerGainedLifeWatcher; + +/** + * Created by IGOUDT on 5-4-2017. + */ +public class YouGainedLifeCondition extends IntCompareCondition { + + public YouGainedLifeCondition(ComparisonType type, int value) { + super(type, value); + } + + @Override + protected int getInputValue(Game game, Ability source) { + int gainedLife = 0; + PlayerGainedLifeWatcher watcher = (PlayerGainedLifeWatcher) game.getState().getWatchers().get(PlayerGainedLifeWatcher.class.getName()); + if (watcher != null) { + gainedLife = watcher.getLiveGained(source.getControllerId()); + } + return gainedLife; + } + + @Override + public String toString() { + return String.format("if you gained %s or more life this turn ", value); + } +} + diff --git a/Mage/src/main/java/mage/abilities/costs/VariableCostImpl.java b/Mage/src/main/java/mage/abilities/costs/VariableCostImpl.java index 6a770fae8ee..83a785a8fa8 100644 --- a/Mage/src/main/java/mage/abilities/costs/VariableCostImpl.java +++ b/Mage/src/main/java/mage/abilities/costs/VariableCostImpl.java @@ -29,7 +29,9 @@ package mage.abilities.costs; import java.util.UUID; import mage.abilities.Ability; +import mage.abilities.keyword.FlashbackAbility; import mage.game.Game; +import mage.game.stack.StackObject; import mage.players.Player; import mage.target.Target; import mage.target.Targets; @@ -131,13 +133,15 @@ public abstract class VariableCostImpl implements Cost, VariableCost { @Override public boolean canPay(Ability ability, UUID sourceId, UUID controllerId, Game game) { - return true; /* not used */ + return true; + /* not used */ } @Override public boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana, Cost costToPay) { - return true; /* not used */ + return true; + /* not used */ } @@ -165,7 +169,9 @@ public abstract class VariableCostImpl implements Cost, VariableCost { public int announceXValue(Ability source, Game game) { int xValue = 0; Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { + StackObject stackObject = game.getStack().getStackObject(source.getId()); + if (controller != null + && (source instanceof FlashbackAbility || stackObject != null)) { xValue = controller.announceXCost(getMinValue(source, game), getMaxValue(source, game), "Announce the number of " + actionText, game, source, this); } diff --git a/Mage/src/main/java/mage/abilities/costs/common/DiscardXTargetCost.java b/Mage/src/main/java/mage/abilities/costs/common/DiscardXTargetCost.java index 51c084654bb..e41df6c899c 100644 --- a/Mage/src/main/java/mage/abilities/costs/common/DiscardXTargetCost.java +++ b/Mage/src/main/java/mage/abilities/costs/common/DiscardXTargetCost.java @@ -25,7 +25,6 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.abilities.costs.common; import mage.abilities.Ability; @@ -40,7 +39,6 @@ import mage.target.common.TargetCardInHand; * * @author LevelX2 */ - public class DiscardXTargetCost extends VariableCostImpl { protected FilterCard filter; @@ -50,9 +48,8 @@ public class DiscardXTargetCost extends VariableCostImpl { } public DiscardXTargetCost(FilterCard filter, boolean additionalCostText) { - super(new StringBuilder(filter.getMessage()).append(" to discard").toString()); - this.text = new StringBuilder(additionalCostText ? "As an additional cost to cast {source}, discard ":"Discard ") - .append(xText).append(' ').append(filter.getMessage()).toString(); + super(filter.getMessage() + " to discard"); + this.text = (additionalCostText ? "As an additional cost to cast {source}, discard " : "Discard ") + xText + ' ' + filter.getMessage(); this.filter = filter; } diff --git a/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java b/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java index b5e119a5fa6..2b88104394f 100644 --- a/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java +++ b/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java @@ -31,6 +31,7 @@ import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.Cost; import mage.constants.ColoredManaSymbol; +import mage.constants.SuperType; import mage.filter.FilterObject; import mage.filter.predicate.mageobject.SupertypePredicate; import mage.game.Game; @@ -41,7 +42,7 @@ public class SnowManaCost extends ManaCostImpl { private static final FilterObject filter = new FilterObject("Snow object"); static { - filter.add(new SupertypePredicate("Snow")); + filter.add(new SupertypePredicate(SuperType.SNOW)); } public SnowManaCost() { diff --git a/Mage/src/main/java/mage/abilities/dynamicvalue/common/EffectKeyValue.java b/Mage/src/main/java/mage/abilities/dynamicvalue/common/EffectKeyValue.java new file mode 100644 index 00000000000..1b6e03eb648 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/dynamicvalue/common/EffectKeyValue.java @@ -0,0 +1,45 @@ +package mage.abilities.dynamicvalue.common; + + +import mage.abilities.Ability; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.effects.Effect; +import mage.game.Game; + +/** + * @author stravant + */ +public class EffectKeyValue implements DynamicValue { + private String key; + private String description; + + public EffectKeyValue(String key) { + this.key = key; + this.description = key; + } + + public EffectKeyValue(String key, String description) { + this(key); + this.description = description; + } + + @Override + public int calculate(Game game, Ability source, Effect effect) { + return (Integer)effect.getValue(key); + } + + @Override + public EffectKeyValue copy(){ + return new EffectKeyValue(this.key, this.description); + } + + @Override + public String toString() { + return "equal to"; + } + + @Override + public String getMessage() { + return description; + } +} \ No newline at end of file diff --git a/Mage/src/main/java/mage/abilities/effects/AsThoughManaEffect.java b/Mage/src/main/java/mage/abilities/effects/AsThoughManaEffect.java index ef062750352..60d067116e8 100644 --- a/Mage/src/main/java/mage/abilities/effects/AsThoughManaEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/AsThoughManaEffect.java @@ -40,6 +40,15 @@ import mage.players.ManaPoolItem; public interface AsThoughManaEffect extends AsThoughEffect { // return a mana type that can be used to pay a mana cost instead of the normally needed mana type + /** + * + * @param manaType type of mana with which the player wants to pay the cost + * @param mana mana pool item to pay from the cost + * @param affectedControllerId + * @param source + * @param game + * @return + */ ManaType getAsThoughManaType(ManaType manaType, ManaPoolItem mana, UUID affectedControllerId, Ability source, Game game); } diff --git a/Mage/src/main/java/mage/abilities/effects/ContinuousEffects.java b/Mage/src/main/java/mage/abilities/effects/ContinuousEffects.java index 4f42e779237..e732999149c 100644 --- a/Mage/src/main/java/mage/abilities/effects/ContinuousEffects.java +++ b/Mage/src/main/java/mage/abilities/effects/ContinuousEffects.java @@ -27,6 +27,9 @@ */ package mage.abilities.effects; +import java.io.Serializable; +import java.util.*; +import java.util.Map.Entry; import mage.MageObject; import mage.abilities.*; import mage.abilities.keyword.SpliceOntoArcaneAbility; @@ -49,10 +52,6 @@ import mage.players.Player; import mage.target.common.TargetCardInHand; import org.apache.log4j.Logger; -import java.io.Serializable; -import java.util.*; -import java.util.Map.Entry; - /** * @author BetaSteward_at_googlemail.com */ @@ -691,8 +690,7 @@ public class ContinuousEffects implements Serializable { spliceAbilities.remove(selectedAbility); } } - } - while (!spliceAbilities.isEmpty() && controller.chooseUse(Outcome.Benefit, "Splice another card?", abilityToModify, game)); + } while (!spliceAbilities.isEmpty() && controller.chooseUse(Outcome.Benefit, "Splice another card?", abilityToModify, game)); controller.revealCards("Spliced cards", cardsToReveal, game); } } @@ -702,10 +700,10 @@ public class ContinuousEffects implements Serializable { * Checks if an event won't happen because of an rule modifying effect * * @param event - * @param targetAbility ability the event is attached to. can be null. + * @param targetAbility ability the event is attached to. can be null. * @param game * @param checkPlayableMode true if the event does not really happen but - * it's checked if the event would be replaced + * it's checked if the event would be replaced * @return */ public boolean preventedByRuleModification(GameEvent event, Ability targetAbility, Game game, boolean checkPlayableMode) { @@ -752,7 +750,7 @@ public class ContinuousEffects implements Serializable { do { HashMap> rEffects = getApplicableReplacementEffects(event, game); // Remove all consumed effects (ability dependant) - for (Iterator it1 = rEffects.keySet().iterator(); it1.hasNext(); ) { + for (Iterator it1 = rEffects.keySet().iterator(); it1.hasNext();) { ReplacementEffect entry = it1.next(); if (consumed.containsKey(entry.getId())) { HashSet consumedAbilitiesIds = consumed.get(entry.getId()); @@ -933,7 +931,7 @@ public class ContinuousEffects implements Serializable { if (!waitingEffects.isEmpty()) { // check if waiting effects can be applied now - for (Iterator>> iterator = waitingEffects.entrySet().iterator(); iterator.hasNext(); ) { + for (Iterator>> iterator = waitingEffects.entrySet().iterator(); iterator.hasNext();) { Map.Entry> entry = iterator.next(); if (appliedEffects.containsAll(entry.getValue())) { // all dependent to effects are applied now so apply the effect itself appliedAbilities = appliedEffectAbilities.get(entry.getKey()); diff --git a/Mage/src/main/java/mage/abilities/effects/Effect.java b/Mage/src/main/java/mage/abilities/effects/Effect.java index e4fe554493a..17234c7f9dc 100644 --- a/Mage/src/main/java/mage/abilities/effects/Effect.java +++ b/Mage/src/main/java/mage/abilities/effects/Effect.java @@ -46,7 +46,7 @@ public interface Effect extends Serializable { UUID getId(); void newId(); String getText(Mode mode); - void setText(String staticText); + Effect setText(String staticText); boolean apply(Game game, Ability source); Outcome getOutcome(); void setOutcome(Outcome outcome); diff --git a/Mage/src/main/java/mage/abilities/effects/EffectImpl.java b/Mage/src/main/java/mage/abilities/effects/EffectImpl.java index 89db5169f8e..91f82ddaa98 100644 --- a/Mage/src/main/java/mage/abilities/effects/EffectImpl.java +++ b/Mage/src/main/java/mage/abilities/effects/EffectImpl.java @@ -61,8 +61,8 @@ public abstract class EffectImpl implements Effect { public EffectImpl(final EffectImpl effect) { this.id = effect.id; this.outcome = effect.outcome; - this.effectType = effect.effectType; this.staticText = effect.staticText; + this.effectType = effect.effectType; this.targetPointer = effect.targetPointer.copy(); if (effect.values != null) { values = new HashMap<>(); @@ -85,8 +85,9 @@ public abstract class EffectImpl implements Effect { } @Override - public void setText(String staticText) { + public Effect setText(String staticText) { this.staticText = staticText; + return this; } @Override diff --git a/Mage/src/main/java/mage/abilities/effects/EntersBattlefieldEffect.java b/Mage/src/main/java/mage/abilities/effects/EntersBattlefieldEffect.java index ef78e432bb8..923bc5f22bf 100644 --- a/Mage/src/main/java/mage/abilities/effects/EntersBattlefieldEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/EntersBattlefieldEffect.java @@ -148,6 +148,7 @@ public class EntersBattlefieldEffect extends ReplacementEffectImpl { if (spell != null) { effect.setValue(SOURCE_CAST_SPELL_ABILITY, spell.getSpellAbility()); } + effect.setValue("appliedEffects", event.getAppliedEffects()); effect.apply(game, source); } // } diff --git a/Mage/src/main/java/mage/abilities/effects/common/CopyEffect.java b/Mage/src/main/java/mage/abilities/effects/common/CopyEffect.java index 5e689fc6755..d57ffbce5c7 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/CopyEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/CopyEffect.java @@ -27,25 +27,20 @@ */ package mage.abilities.effects.common; -import java.util.UUID; import mage.MageObject; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.Card; -import mage.constants.AbilityType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.permanent.PermanentCard; import mage.game.permanent.PermanentToken; import mage.util.functions.ApplyToPermanent; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -128,15 +123,15 @@ public class CopyEffect extends ContinuousEffectImpl { permanent.getManaCost().add(copyFromObject.getManaCost()); permanent.getCardType().clear(); for (CardType type : copyFromObject.getCardType()) { - permanent.getCardType().add(type); + permanent.addCardType(type); } permanent.getSubtype(game).clear(); for (String type : copyFromObject.getSubtype(game)) { permanent.getSubtype(game).add(type); } - permanent.getSupertype().clear(); - for (String type : copyFromObject.getSupertype()) { - permanent.getSupertype().add(type); + permanent.getSuperType().clear(); + for (SuperType type : copyFromObject.getSuperType()) { + permanent.addSuperType(type); } permanent.removeAllAbilities(source.getSourceId(), game); diff --git a/Mage/src/main/java/mage/abilities/effects/common/CopyTokenEffect.java b/Mage/src/main/java/mage/abilities/effects/common/CopyTokenEffect.java index 60f09fb7d17..66e162eedf1 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/CopyTokenEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/CopyTokenEffect.java @@ -2,11 +2,7 @@ package mage.abilities.effects.common; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffectImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; @@ -32,15 +28,15 @@ public class CopyTokenEffect extends ContinuousEffectImpl { permanent.getColor(game).setColor(token.getColor(game)); permanent.getCardType().clear(); for (CardType type: token.getCardType()) { - permanent.getCardType().add(type); + permanent.addCardType(type); } permanent.getSubtype(game).clear(); for (String type: token.getSubtype(game)) { permanent.getSubtype(game).add(type); } - permanent.getSupertype().clear(); - for (String type: token.getSupertype()) { - permanent.getSupertype().add(type); + permanent.getSuperType().clear(); + for (SuperType type: token.getSuperType()) { + permanent.addSuperType(type); } permanent.getAbilities().clear(); for (Ability ability: token.getAbilities()) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/EndTurnEffect.java b/Mage/src/main/java/mage/abilities/effects/common/EndTurnEffect.java index 5cb9237e914..5e5fb0b9389 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/EndTurnEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/EndTurnEffect.java @@ -48,7 +48,7 @@ public class EndTurnEffect extends OneShotEffect { if (!game.isSimulation()) { game.informPlayers("The current turn ends"); } - return game.endTurn(); + return game.endTurn(source); } @Override diff --git a/Mage/src/main/java/mage/abilities/effects/common/EntersBattlefieldWithXCountersEffect.java b/Mage/src/main/java/mage/abilities/effects/common/EntersBattlefieldWithXCountersEffect.java index 78f14bc36aa..d326d359d2a 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/EntersBattlefieldWithXCountersEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/EntersBattlefieldWithXCountersEffect.java @@ -27,6 +27,8 @@ */ package mage.abilities.effects.common; +import java.util.ArrayList; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.effects.EntersBattlefieldEffect; @@ -75,7 +77,8 @@ public class EntersBattlefieldWithXCountersEffect extends OneShotEffect { if (amount > 0) { Counter counterToAdd = counter.copy(); counterToAdd.add(amount - counter.getCount()); - permanent.addCounters(counterToAdd, source, game); + ArrayList appliedEffects = (ArrayList) this.getValue("appliedEffects"); + permanent.addCounters(counterToAdd, source, game, appliedEffects); } } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/ExileTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ExileTargetEffect.java index 88b3307d25c..669b5724512 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/ExileTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/ExileTargetEffect.java @@ -172,6 +172,8 @@ public class ExileTargetEffect extends OneShotEffect { sb.append("target "); } sb.append(targetName); + } else if (target.getNumberOfTargets() == 0 && target.getMaxNumberOfTargets() > 0) { + sb.append("exile up to ").append(CardUtil.numberToText(target.getMaxNumberOfTargets())).append(" target ").append(target.getTargetName()); } else { sb.append("exile ").append(CardUtil.numberToText(target.getNumberOfTargets())).append(" target ").append(target.getTargetName()); } diff --git a/Mage/src/main/java/mage/abilities/effects/common/FightTargetSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/FightTargetSourceEffect.java index 0f1ca827f6c..a97b997d289 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/FightTargetSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/FightTargetSourceEffect.java @@ -30,7 +30,6 @@ package mage.abilities.effects.common; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.OneShotEffect; -import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.Permanent; diff --git a/Mage/src/main/java/mage/abilities/effects/common/FlipSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/FlipSourceEffect.java index 3e088355787..2ed186cd42c 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/FlipSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/FlipSourceEffect.java @@ -36,7 +36,7 @@ public class FlipSourceEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (permanent != null && controller != null) { if (permanent.flip(game)) { - ContinuousEffect effect = new ConditionalContinuousEffect(new CopyTokenEffect(flipToken), FlippedCondition.getInstance(), ""); + ContinuousEffect effect = new ConditionalContinuousEffect(new CopyTokenEffect(flipToken), FlippedCondition.instance, ""); game.addEffect(effect, source); if (!game.isSimulation()) game.informPlayers(new StringBuilder(controller.getLogName()).append(" flips ").append(permanent.getName()).toString()); diff --git a/Mage/src/main/java/mage/abilities/effects/common/NameACardEffect.java b/Mage/src/main/java/mage/abilities/effects/common/NameACardEffect.java index 3559542e8bc..63effc4e1c8 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/NameACardEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/NameACardEffect.java @@ -50,10 +50,11 @@ public class NameACardEffect extends OneShotEffect { public enum TypeOfName { ALL, - NON_ARTFIACT_AND_NON_LAND_NAME, + NON_ARTIFACT_AND_NON_LAND_NAME, NON_LAND_NAME, NON_LAND_AND_NON_CREATURE_NAME, - CREATURE_NAME + CREATURE_NAME, + ARTIFACT_NAME } private final TypeOfName typeOfName; @@ -83,7 +84,7 @@ public class NameACardEffect extends OneShotEffect { cardChoice.setChoices(CardRepository.instance.getNames()); cardChoice.setMessage("Name a card"); break; - case NON_ARTFIACT_AND_NON_LAND_NAME: + case NON_ARTIFACT_AND_NON_LAND_NAME: cardChoice.setChoices(CardRepository.instance.getNonArtifactAndNonLandNames()); cardChoice.setMessage("Name a non artifact and non land card"); break; @@ -99,6 +100,10 @@ public class NameACardEffect extends OneShotEffect { cardChoice.setChoices(CardRepository.instance.getCreatureNames()); cardChoice.setMessage("Name a creature card"); break; + case ARTIFACT_NAME: + cardChoice.setChoices(CardRepository.instance.getArtifactNames()); + cardChoice.setMessage("Name an artifact card"); + break; } cardChoice.clearChoice(); while (!controller.choose(Outcome.Detriment, cardChoice, game)) { @@ -130,7 +135,7 @@ public class NameACardEffect extends OneShotEffect { case ALL: sb.append("card"); break; - case NON_ARTFIACT_AND_NON_LAND_NAME: + case NON_ARTIFACT_AND_NON_LAND_NAME: sb.append("nonartifact, nonland card"); break; case NON_LAND_AND_NON_CREATURE_NAME: @@ -139,6 +144,12 @@ public class NameACardEffect extends OneShotEffect { case NON_LAND_NAME: sb.append("nonland card"); break; + case CREATURE_NAME: + sb.append("creature card"); + break; + case ARTIFACT_NAME: + sb.append("artifact card"); + break; } return sb.toString(); } diff --git a/Mage/src/main/java/mage/abilities/effects/common/PutTokenOntoBattlefieldCopyTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/PutTokenOntoBattlefieldCopyTargetEffect.java index 8b38820d92d..55c1abcb2b9 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/PutTokenOntoBattlefieldCopyTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/PutTokenOntoBattlefieldCopyTargetEffect.java @@ -188,12 +188,12 @@ public class PutTokenOntoBattlefieldCopyTargetEffect extends OneShotEffect { EmptyToken token = new EmptyToken(); CardUtil.copyTo(token).from(copyFrom); // needed so that entersBattlefied triggered abilities see the attributes (e.g. Master Biomancer) - applier.apply(game, token); + applier.apply(game, token, source, targetId); if (becomesArtifact) { - token.getCardType().add(CardType.ARTIFACT); + token.addCardType(CardType.ARTIFACT); } if (additionalCardType != null && !token.getCardType().contains(additionalCardType)) { - token.getCardType().add(additionalCardType); + token.addCardType(additionalCardType); } if (gainsHaste) { token.addAbility(HasteAbility.getInstance()); diff --git a/Mage/src/main/java/mage/abilities/effects/common/RummageEffect.java b/Mage/src/main/java/mage/abilities/effects/common/RummageEffect.java new file mode 100644 index 00000000000..6df19ab2ddb --- /dev/null +++ b/Mage/src/main/java/mage/abilities/effects/common/RummageEffect.java @@ -0,0 +1,12 @@ +package mage.abilities.effects.common; + +import mage.abilities.costs.common.DiscardCardCost; + +/** + * @author stravant + */ +public class RummageEffect extends DoIfCostPaid { + public RummageEffect() { + super(new DrawCardSourceControllerEffect(1), new DiscardCardCost()); + } +} \ No newline at end of file diff --git a/Mage/src/main/java/mage/abilities/effects/common/SendOptionUsedEventEffect.java b/Mage/src/main/java/mage/abilities/effects/common/SendOptionUsedEventEffect.java new file mode 100644 index 00000000000..3f0be2eddce --- /dev/null +++ b/Mage/src/main/java/mage/abilities/effects/common/SendOptionUsedEventEffect.java @@ -0,0 +1,68 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.abilities.effects.common; + +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.constants.Outcome; +import mage.game.Game; +import mage.game.events.GameEvent; + +/** + * + * @author LevelX2 + */ +public class SendOptionUsedEventEffect extends OneShotEffect { + + private final int value; + + public SendOptionUsedEventEffect() { + this(0); + } + + public SendOptionUsedEventEffect(int value) { + super(Outcome.Detriment); + this.value = value; + } + + public SendOptionUsedEventEffect(final SendOptionUsedEventEffect effect) { + super(effect); + this.value = effect.value; + } + + @Override + public SendOptionUsedEventEffect copy() { + return new SendOptionUsedEventEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + game.fireEvent(GameEvent.getEvent(GameEvent.EventType.OPTION_USED, source.getOriginalId(), source.getSourceId(), source.getControllerId(), value)); + return true; + } +} diff --git a/Mage/src/main/java/mage/abilities/effects/common/UntapAllControllerEffect.java b/Mage/src/main/java/mage/abilities/effects/common/UntapAllControllerEffect.java index 252686bb70c..8d482d347ef 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/UntapAllControllerEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/UntapAllControllerEffect.java @@ -44,32 +44,42 @@ import mage.players.Player; public class UntapAllControllerEffect extends OneShotEffect { private final FilterPermanent filter; + private final boolean includeSource; public UntapAllControllerEffect(FilterPermanent filter) { this(filter, null); } public UntapAllControllerEffect(FilterPermanent filter, String rule) { + this(filter, rule, true); + } + + public UntapAllControllerEffect(FilterPermanent filter, String rule, boolean includeSource) { super(Outcome.Untap); if (rule == null || rule.isEmpty()) { - staticText = "untap all " + filter.getMessage() + " you control"; + staticText = "untap all " + (includeSource ? "" : "other ") + filter.getMessage() + " you control"; } else { staticText = rule; } this.filter = filter; + this.includeSource = includeSource; } public UntapAllControllerEffect(final UntapAllControllerEffect effect) { super(effect); this.filter = effect.filter; + this.includeSource = effect.includeSource; } @Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); + Permanent sourcePermanent = game.getPermanent(source.getSourceId()); if (player != null) { for (Permanent permanent: game.getBattlefield().getAllActivePermanents(filter, player.getId(), game)) { - permanent.untap(game); + if (includeSource || sourcePermanent == null || !sourcePermanent.getId().equals(permanent.getId())) { + permanent.untap(game); + } } return true; } diff --git a/Mage/src/main/java/mage/abilities/effects/common/UntapAllThatAttackedEffect.java b/Mage/src/main/java/mage/abilities/effects/common/UntapAllThatAttackedEffect.java index 3500e73a8a1..f402b226839 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/UntapAllThatAttackedEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/UntapAllThatAttackedEffect.java @@ -28,10 +28,9 @@ package mage.abilities.effects.common; import java.util.Set; -import java.util.UUID; +import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.Permanent; @@ -63,11 +62,11 @@ public class UntapAllThatAttackedEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Watcher watcher = game.getState().getWatchers().get("AttackedThisTurn"); + Watcher watcher = game.getState().getWatchers().get(AttackedThisTurnWatcher.class.getName()); if (watcher != null && watcher instanceof AttackedThisTurnWatcher) { - Set attackedThisTurn = ((AttackedThisTurnWatcher) watcher).getAttackedThisTurnCreatures(); - for (UUID uuid : attackedThisTurn) { - Permanent permanent = game.getPermanent(uuid); + Set attackedThisTurn = ((AttackedThisTurnWatcher) watcher).getAttackedThisTurnCreatures(); + for (MageObjectReference mor : attackedThisTurn) { + Permanent permanent = mor.getPermanent(game); if (permanent != null && permanent.isCreature()) { permanent.untap(game); } diff --git a/Mage/src/main/java/mage/abilities/effects/common/UntapTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/UntapTargetEffect.java index 57d5a9bbc04..068c8fdf495 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/UntapTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/UntapTargetEffect.java @@ -75,7 +75,7 @@ public class UntapTargetEffect extends OneShotEffect { Target target = mode.getTargets().get(0); StringBuilder sb = new StringBuilder(); - sb.append("Untap "); + sb.append("untap "); if (target.getNumberOfTargets() == 0) { sb.append("up to "); } diff --git a/Mage/src/main/java/mage/abilities/effects/common/combat/AttacksIfAbleAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/combat/AttacksIfAbleAllEffect.java index b181a13035b..50fb89e2d32 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/combat/AttacksIfAbleAllEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/combat/AttacksIfAbleAllEffect.java @@ -5,6 +5,7 @@ */ package mage.abilities.effects.common.combat; +import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.effects.RequirementEffect; import mage.constants.Duration; @@ -59,8 +60,8 @@ public class AttacksIfAbleAllEffect extends RequirementEffect { if (eachCombat) { return true; } - AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get("AttackedThisTurn"); - return watcher != null && !watcher.getAttackedThisTurnCreatures().contains(permanent.getId()); + AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get(AttackedThisTurnWatcher.class.getName()); + return watcher != null && !watcher.getAttackedThisTurnCreatures().contains(new MageObjectReference(permanent, game)); } return false; } diff --git a/Mage/src/main/java/mage/abilities/effects/common/combat/AttacksIfAbleSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/combat/AttacksIfAbleSourceEffect.java index 4390a891a11..79a014a8d0c 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/combat/AttacksIfAbleSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/combat/AttacksIfAbleSourceEffect.java @@ -1,16 +1,16 @@ /* * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without modification, are * permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. - * + * * 2. Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR @@ -20,17 +20,17 @@ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * + * * The views and conclusions contained in the software and documentation are those of the * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.abilities.effects.common.combat; -import mage.constants.Duration; +import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.effects.RequirementEffect; +import mage.constants.Duration; import mage.game.Game; import mage.game.permanent.Permanent; import mage.watchers.common.AttackedThisTurnWatcher; @@ -42,18 +42,18 @@ import mage.watchers.common.AttackedThisTurnWatcher; public class AttacksIfAbleSourceEffect extends RequirementEffect { boolean eachCombat; - + public AttacksIfAbleSourceEffect(Duration duration) { - this(duration, false); + this(duration, false); } - + public AttacksIfAbleSourceEffect(Duration duration, boolean eachCombat) { super(duration); this.eachCombat = eachCombat; if (this.duration == Duration.EndOfTurn) { - staticText = "{this} attacks " + (eachCombat ? "each combat" :"this turn") + " if able"; + staticText = "{this} attacks " + (eachCombat ? "each combat" : "this turn") + " if able"; } else { - staticText = "{this} attacks each " + (eachCombat ? "combat" :"turn") + " if able"; + staticText = "{this} attacks each " + (eachCombat ? "combat" : "turn") + " if able"; } } @@ -73,8 +73,8 @@ public class AttacksIfAbleSourceEffect extends RequirementEffect { if (eachCombat) { return true; } - AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher)game.getState().getWatchers().get("AttackedThisTurn"); - return watcher != null && !watcher.getAttackedThisTurnCreatures().contains(permanent.getId()); + AttackedThisTurnWatcher watcher = (AttackedThisTurnWatcher) game.getState().getWatchers().get(AttackedThisTurnWatcher.class.getName()); + return watcher != null && !watcher.getAttackedThisTurnCreatures().contains(new MageObjectReference(permanent, game)); } return false; } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardTypeAttachedEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardTypeAttachedEffect.java index 2886bdf363c..360091fca26 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardTypeAttachedEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardTypeAttachedEffect.java @@ -60,7 +60,7 @@ public class AddCardTypeAttachedEffect extends ContinuousEffectImpl { if (equipment != null && equipment.getAttachedTo() != null) { Permanent target = game.getPermanent(equipment.getAttachedTo()); if (target != null && !target.getCardType().contains(addedCardType)) - target.getCardType().add(addedCardType); + target.addCardType(addedCardType); } return true; } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardTypeSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardTypeSourceEffect.java index 83ac0c1e94c..6fe7d4d7ab2 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardTypeSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardTypeSourceEffect.java @@ -65,9 +65,7 @@ public class AddCardTypeSourceEffect extends ContinuousEffectImpl { public boolean apply(Game game, Ability source) { Permanent permanent = game.getPermanent(source.getSourceId()); if (permanent != null && affectedObjectList.contains(new MageObjectReference(permanent, game))) { - if (!permanent.getCardType().contains(addedCardType)) { - permanent.getCardType().add(addedCardType); - } + permanent.addCardType(addedCardType); return true; } else if (this.getDuration() == Duration.Custom) { this.discard(); diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardTypeTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardTypeTargetEffect.java index 56981a038f1..33c325bdc40 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardTypeTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardTypeTargetEffect.java @@ -69,7 +69,7 @@ public class AddCardTypeTargetEffect extends ContinuousEffectImpl { Permanent target = game.getPermanent(targetId); if (target != null) { if (!target.getCardType().contains(addedCardType)) { - target.getCardType().add(addedCardType); + target.addCardType(addedCardType); } result = true; } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBasicLandTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBasicLandTargetEffect.java index 5ada0f6b1c1..c559f5cd5cc 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBasicLandTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBasicLandTargetEffect.java @@ -145,7 +145,7 @@ public class BecomesBasicLandTargetEffect extends ContinuousEffectImpl { case TypeChangingEffects_4: // Attention: Cards like Unstable Frontier that use this class do not give the "Basic" supertype to the target if (!land.isLand()) { - land.getCardType().add(CardType.LAND); + land.addCardType(CardType.LAND); } if (loseOther) { // 305.7 Note that this doesn't remove any abilities that were granted to the land by other effects diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBlackZombieAdditionEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBlackZombieAdditionEffect.java new file mode 100644 index 00000000000..c78390b2998 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBlackZombieAdditionEffect.java @@ -0,0 +1,93 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.abilities.effects.common.continuous; + +import mage.abilities.Ability; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.constants.Duration; +import mage.constants.Layer; +import mage.constants.Outcome; +import mage.constants.SubLayer; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * @author JRHerlehy + * Created on 4/8/17. + */ +public class BecomesBlackZombieAdditionEffect extends ContinuousEffectImpl { + + public BecomesBlackZombieAdditionEffect() { + super(Duration.Custom, Outcome.Neutral); + staticText = "That creature is a black Zombie in addition to its other colors and types"; + } + + public BecomesBlackZombieAdditionEffect(final BecomesBlackZombieAdditionEffect effect) { + super(effect); + } + + @Override + public boolean hasLayer(Layer layer) { + return layer == Layer.ColorChangingEffects_5 || layer == Layer.TypeChangingEffects_4; + } + + @Override + public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { + Permanent creature = game.getPermanent(targetPointer.getFirst(game, source)); + if (creature != null) { + switch (layer) { + case TypeChangingEffects_4: + if (sublayer == SubLayer.NA) { + if (!creature.getSubtype(game).contains("Zombie")) { + creature.getSubtype(game).add("Zombie"); + } + } + break; + case ColorChangingEffects_5: + if (sublayer == SubLayer.NA) { + creature.getColor(game).setBlack(true); + } + break; + } + return true; + } else { + this.used = true; + } + return false; + } + + @Override + public boolean apply(Game game, Ability source) { + return false; + } + + @Override + public BecomesBlackZombieAdditionEffect copy() { + return new BecomesBlackZombieAdditionEffect(this); + } +} diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureAllEffect.java index d7758dc6fef..f6f796c25fd 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureAllEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureAllEffect.java @@ -79,7 +79,7 @@ public class BecomesCreatureAllEffect extends ContinuousEffectImpl { if (!token.getCardType().isEmpty()) { for (CardType t : token.getCardType()) { if (!permanent.getCardType().contains(t)) { - permanent.getCardType().add(t); + permanent.addCardType(t); } } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureAttachedEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureAttachedEffect.java index 3c08e0d3180..b7dfb71df61 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureAttachedEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureAttachedEffect.java @@ -30,11 +30,7 @@ package mage.abilities.effects.common.continuous; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.repository.CardRepository; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; @@ -85,10 +81,9 @@ public class BecomesCreatureAttachedEffect extends ContinuousEffectImpl { switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { - for (String t : token.getSupertype()) { - if (!permanent.getSupertype().contains(t)) { - permanent.getSupertype().add(t); - } + for (SuperType t : token.getSuperType()) { + permanent.addSuperType(t); + } // card type switch (loseType) { @@ -98,7 +93,7 @@ public class BecomesCreatureAttachedEffect extends ContinuousEffectImpl { break; } for (CardType t : token.getCardType()) { - permanent.getCardType().add(t); + permanent.addCardType(t); } // sub type @@ -167,9 +162,9 @@ public class BecomesCreatureAttachedEffect extends ContinuousEffectImpl { @Override public boolean hasLayer(Layer layer) { - return layer == Layer.PTChangingEffects_7 - || layer == Layer.AbilityAddingRemovingEffects_6 - || layer == Layer.ColorChangingEffects_5 + return layer == Layer.PTChangingEffects_7 + || layer == Layer.AbilityAddingRemovingEffects_6 + || layer == Layer.ColorChangingEffects_5 || layer == Layer.TypeChangingEffects_4; } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureAttachedWithActivatedAbilityOrSpellEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureAttachedWithActivatedAbilityOrSpellEffect.java index bfaceb60c4f..169ee278e37 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureAttachedWithActivatedAbilityOrSpellEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureAttachedWithActivatedAbilityOrSpellEffect.java @@ -31,11 +31,7 @@ import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffectImpl; import mage.cards.repository.CardRepository; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; @@ -101,10 +97,9 @@ public class BecomesCreatureAttachedWithActivatedAbilityOrSpellEffect extends Co switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { - for (String superType : token.getSupertype()) { - if (!permanentAttachedTo.getSupertype().contains(superType)) { - permanentAttachedTo.getSupertype().add(superType); - } + for (SuperType superType : token.getSuperType()) { + permanentAttachedTo.addSuperType(superType); + } // card type switch (loseType) { @@ -114,7 +109,7 @@ public class BecomesCreatureAttachedWithActivatedAbilityOrSpellEffect extends Co break; } for (CardType cardType : token.getCardType()) { - permanentAttachedTo.getCardType().add(cardType); + permanentAttachedTo.addCardType(cardType); } // sub type diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureIfVehicleEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureIfVehicleEffect.java new file mode 100644 index 00000000000..2fc8214a365 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureIfVehicleEffect.java @@ -0,0 +1,42 @@ +package mage.abilities.effects.common.continuous; + +import mage.abilities.Ability; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.constants.*; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * Created by IGOUDT on 5-4-2017. + */ +public class BecomesCreatureIfVehicleEffect extends ContinuousEffectImpl { + + private CardType addedType = CardType.CREATURE; + + public BecomesCreatureIfVehicleEffect() { + super(Duration.WhileOnBattlefield, Layer.TypeChangingEffects_4, SubLayer.NA, Outcome.Benefit); + this.staticText = "As long as enchanted permanent is a Vehicle, it's a creature in addition to its other types"; + } + + public BecomesCreatureIfVehicleEffect(final BecomesCreatureIfVehicleEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent aura = game.getPermanent(source.getSourceId()); + if (aura != null && aura.getAttachedTo() != null) { + Permanent enchanted = game.getPermanent(aura.getAttachedTo()); + if (enchanted != null && enchanted.getSubtype(game).contains("Vehicle")) { + enchanted.addCardType(addedType); + } + } + + return true; + } + + @Override + public BecomesCreatureIfVehicleEffect copy() { + return new BecomesCreatureIfVehicleEffect(this); + } +} \ No newline at end of file diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureSourceEffect.java index 51ad5a94d80..b4a562073d8 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureSourceEffect.java @@ -42,7 +42,6 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; /** - * * @author BetaSteward_at_googlemail.com */ public class BecomesCreatureSourceEffect extends ContinuousEffectImpl implements SourceEffect { @@ -113,12 +112,8 @@ public class BecomesCreatureSourceEffect extends ContinuousEffectImpl implements if (losePreviousTypes) { permanent.getCardType().clear(); } - if (!token.getCardType().isEmpty()) { - for (CardType t : token.getCardType()) { - if (!permanent.getCardType().contains(t)) { - permanent.getCardType().add(t); - } - } + for (CardType t : token.getCardType()) { + permanent.addCardType(t); } if (type != null && type.isEmpty() || type == null && permanent.isLand()) { permanent.getSubtype(game).retainAll(CardRepository.instance.getLandTypes()); @@ -137,11 +132,10 @@ public class BecomesCreatureSourceEffect extends ContinuousEffectImpl implements break; case AbilityAddingRemovingEffects_6: if (sublayer == SubLayer.NA) { - if (!token.getAbilities().isEmpty()) { - for (Ability ability : token.getAbilities()) { - permanent.addAbility(ability, source.getSourceId(), game); - } + for (Ability ability : token.getAbilities()) { + permanent.addAbility(ability, source.getSourceId(), game); } + } break; case PTChangingEffects_7: diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureTargetEffect.java index 838014740d7..8d12dd02895 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureTargetEffect.java @@ -103,7 +103,7 @@ public class BecomesCreatureTargetEffect extends ContinuousEffectImpl { if (!token.getCardType().isEmpty()) { for (CardType t : token.getCardType()) { if (!permanent.getCardType().contains(t)) { - permanent.getCardType().add(t); + permanent.addCardType(t); } } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesFaceDownCreatureAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesFaceDownCreatureAllEffect.java index 125313b4472..6584faf92a9 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesFaceDownCreatureAllEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesFaceDownCreatureAllEffect.java @@ -107,9 +107,9 @@ public class BecomesFaceDownCreatureAllEffect extends ContinuousEffectImpl imple switch (layer) { case TypeChangingEffects_4: permanent.setName(""); - permanent.getSupertype().clear(); + permanent.getSuperType().clear(); permanent.getCardType().clear(); - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); permanent.getSubtype(game).clear(); permanent.getManaCost().clear(); break; diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesFaceDownCreatureEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesFaceDownCreatureEffect.java index bd04bd6eaa8..e5747882b4d 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesFaceDownCreatureEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesFaceDownCreatureEffect.java @@ -163,9 +163,9 @@ public class BecomesFaceDownCreatureEffect extends ContinuousEffectImpl implemen switch (layer) { case TypeChangingEffects_4: permanent.setName(""); - permanent.getSupertype().clear(); + permanent.getSuperType().clear(); permanent.getCardType().clear(); - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); permanent.getSubtype(game).clear(); break; case ColorChangingEffects_5: diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/LoseAbilityAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/LoseAbilityAllEffect.java index 4e8e86e9088..c7ba03e376e 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/LoseAbilityAllEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/LoseAbilityAllEffect.java @@ -1,40 +1,102 @@ /* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. */ package mage.abilities.effects.common.continuous; +import java.util.HashMap; +import java.util.Iterator; +import java.util.UUID; +import mage.MageObject; +import mage.MageObjectReference; import mage.abilities.Ability; +import mage.abilities.CompoundAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.constants.Duration; import mage.constants.Layer; import mage.constants.Outcome; import mage.constants.SubLayer; +import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.game.Game; import mage.game.permanent.Permanent; /** - * - * @author LevelX2 + * @author BetaSteward_at_googlemail.com */ public class LoseAbilityAllEffect extends ContinuousEffectImpl { - protected final FilterPermanent filter; - protected final Ability ability; + protected CompoundAbility ability; + protected boolean excludeSource; + protected FilterPermanent filter; - public LoseAbilityAllEffect(FilterPermanent filter, Ability ability, Duration duration) { + public LoseAbilityAllEffect(Ability ability, Duration duration) { + this(ability, duration, new FilterPermanent("permanents")); + } + + public LoseAbilityAllEffect(CompoundAbility ability, Duration duration) { + this(ability, duration, new FilterPermanent("permanents")); + } + + public LoseAbilityAllEffect(Ability ability, Duration duration, FilterPermanent filter) { + this(ability, duration, filter, false); + } + + public LoseAbilityAllEffect(CompoundAbility ability, Duration duration, FilterPermanent filter) { + this(ability, duration, filter, false); + } + + public LoseAbilityAllEffect(Ability ability, Duration duration, FilterPermanent filter, boolean excludeSource) { + this(new CompoundAbility(ability), duration, filter, excludeSource); + } + + public LoseAbilityAllEffect(CompoundAbility ability, Duration duration, FilterPermanent filter, boolean excludeSource) { super(duration, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility); - this.filter = filter; this.ability = ability; - staticText = filter.getMessage() + " lose " + ability.toString() + (duration.toString().isEmpty() ? "" : ' ' + duration.toString()); + this.filter = filter; + this.excludeSource = excludeSource; } public LoseAbilityAllEffect(final LoseAbilityAllEffect effect) { super(effect); + this.ability = effect.ability.copy(); this.filter = effect.filter.copy(); - this.ability = effect.ability; + this.excludeSource = effect.excludeSource; + } + + @Override + public void init(Ability source, Game game) { + super.init(source, game); + if (this.affectedObjectsSet) { + for (Permanent perm : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { + if (!(excludeSource && perm.getId().equals(source.getSourceId()))) { + affectedObjectList.add(new MageObjectReference(perm, game)); + } + } + } } @Override @@ -44,10 +106,40 @@ public class LoseAbilityAllEffect extends ContinuousEffectImpl { @Override public boolean apply(Game game, Ability source) { - for (Permanent permanent : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { - if (permanent != null) { - while (permanent.getAbilities().contains(ability)) { - permanent.getAbilities().remove(ability); + if (this.affectedObjectsSet) { + for (Iterator it = affectedObjectList.iterator(); it.hasNext();) { // filter may not be used again, because object can have changed filter relevant attributes but still geets boost + Permanent perm = it.next().getPermanentOrLKIBattlefield(game); //LKI is neccessary for "dies triggered abilities" to work given to permanets (e.g. Showstopper) + if (perm != null) { + for (Ability ability : ability) { + perm.getAbilities().removeIf(entry -> entry.getId().equals(ability.getId())); + } + } else { + it.remove(); + if (affectedObjectList.isEmpty()) { + discard(); + } + } + } + } else { + for (Permanent perm : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { + if (!(excludeSource && perm.getId().equals(source.getSourceId()))) { + for (Ability ability : ability) { + perm.getAbilities().removeIf(entry -> entry.getId().equals(ability.getId())); + } + } + } + // still as long as the prev. permanent is known to the LKI (e.g. Mikaeus, the Unhallowed) so gained dies triggered ability will trigger + HashMap LKIBattlefield = game.getLKI().get(Zone.BATTLEFIELD); + if (LKIBattlefield != null) { + for (MageObject mageObject : LKIBattlefield.values()) { + Permanent perm = (Permanent) mageObject; + if (!(excludeSource && perm.getId().equals(source.getSourceId()))) { + if (filter.match(perm, source.getSourceId(), source.getControllerId(), game)) { + for (Ability ability : ability) { + perm.getAbilities().removeIf(entry -> entry.getId().equals(ability.getId())); + } + } + } } } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/SetPowerToughnessEnchantedEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/SetPowerToughnessEnchantedEffect.java new file mode 100644 index 00000000000..daa23ef63f7 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/SetPowerToughnessEnchantedEffect.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.abilities.effects.common.continuous; + +import mage.abilities.Ability; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.constants.Duration; +import mage.constants.Layer; +import mage.constants.Outcome; +import mage.constants.SubLayer; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * + * @author LevelX2 + */ +public class SetPowerToughnessEnchantedEffect extends ContinuousEffectImpl { + + public SetPowerToughnessEnchantedEffect() { + super(Duration.WhileOnBattlefield, Layer.PTChangingEffects_7, SubLayer.SetPT_7b, Outcome.BoostCreature); + staticText = "Enchanted creature has base power and toughness 0/2"; + } + + public SetPowerToughnessEnchantedEffect(final SetPowerToughnessEnchantedEffect effect) { + super(effect); + } + + @Override + public SetPowerToughnessEnchantedEffect copy() { + return new SetPowerToughnessEnchantedEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent enchantment = game.getPermanent(source.getSourceId()); + if (enchantment != null && enchantment.getAttachedTo() != null) { + Permanent enchanted = game.getPermanent(enchantment.getAttachedTo()); + if (enchanted != null) { + enchanted.getPower().setValue(0); + enchanted.getToughness().setValue(2); + } + return true; + } + return false; + } + +} diff --git a/Mage/src/main/java/mage/abilities/effects/common/cost/CastWithoutPayingManaCostEffect.java b/Mage/src/main/java/mage/abilities/effects/common/cost/CastWithoutPayingManaCostEffect.java index 46294e4581e..97938cd85d5 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/cost/CastWithoutPayingManaCostEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/cost/CastWithoutPayingManaCostEffect.java @@ -29,10 +29,10 @@ package mage.abilities.effects.common.cost; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.constants.Outcome; -import mage.filter.Filter; import mage.filter.common.FilterNonlandCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; @@ -58,7 +58,7 @@ public class CastWithoutPayingManaCostEffect extends OneShotEffect { public CastWithoutPayingManaCostEffect(int maxCost) { super(Outcome.PlayForFree); filter = new FilterNonlandCard("card with converted mana cost " + maxCost + " or less from your hand"); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, maxCost + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, maxCost + 1)); this.manaCost = maxCost; this.staticText = "you may cast a card with converted mana cost " + maxCost + " or less from your hand without paying its mana cost"; } diff --git a/Mage/src/main/java/mage/abilities/effects/common/cost/SourceCostReductionForEachCardInGraveyardEffect.java b/Mage/src/main/java/mage/abilities/effects/common/cost/SourceCostReductionForEachCardInGraveyardEffect.java new file mode 100644 index 00000000000..4cd0dd416fc --- /dev/null +++ b/Mage/src/main/java/mage/abilities/effects/common/cost/SourceCostReductionForEachCardInGraveyardEffect.java @@ -0,0 +1,86 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.abilities.effects.common.cost; + +import mage.abilities.Ability; +import mage.abilities.SpellAbility; +import mage.constants.CostModificationType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.filter.FilterCard; +import mage.game.Game; +import mage.players.Player; +import mage.util.CardUtil; + +/** + * + * @author Styxo + */ +public class SourceCostReductionForEachCardInGraveyardEffect extends CostModificationEffectImpl { + + private FilterCard filter; + + public SourceCostReductionForEachCardInGraveyardEffect() { + this(new FilterCard()); + } + + public SourceCostReductionForEachCardInGraveyardEffect(FilterCard filter) { + super(Duration.WhileOnStack, Outcome.Benefit, CostModificationType.REDUCE_COST); + this.filter = filter; + staticText = "{this} costs {1} less to cast for each " + filter.getMessage() + " in your graveyard"; + } + + SourceCostReductionForEachCardInGraveyardEffect(SourceCostReductionForEachCardInGraveyardEffect effect) { + super(effect); + this.filter = effect.filter.copy(); + } + + @Override + public boolean apply(Game game, Ability source, Ability abilityToModify) { + Player player = game.getPlayer(source.getControllerId()); + if (player != null) { + int reductionAmount = player.getGraveyard().count(filter, game); + CardUtil.reduceCost(abilityToModify, reductionAmount); + return true; + } + return false; + } + + @Override + public boolean applies(Ability abilityToModify, Ability source, Game game) { + if ((abilityToModify instanceof SpellAbility) && abilityToModify.getSourceId().equals(source.getSourceId())) { + return game.getCard(abilityToModify.getSourceId()) != null; + } + return false; + } + + @Override + public SourceCostReductionForEachCardInGraveyardEffect copy() { + return new SourceCostReductionForEachCardInGraveyardEffect(this); + } +} diff --git a/Mage/src/main/java/mage/abilities/effects/common/counter/AddCountersSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/counter/AddCountersSourceEffect.java index 3233d7a286a..1f28040a739 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/counter/AddCountersSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/counter/AddCountersSourceEffect.java @@ -27,6 +27,8 @@ */ package mage.abilities.effects.common.counter; +import java.util.ArrayList; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.StaticValue; @@ -103,7 +105,8 @@ public class AddCountersSourceEffect extends OneShotEffect { countersToAdd--; } newCounter.add(countersToAdd); - card.addCounters(newCounter, source, game); + ArrayList appliedEffects = (ArrayList) this.getValue("appliedEffects"); + card.addCounters(newCounter, source, game, appliedEffects); if (informPlayers && !game.isSimulation()) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { @@ -128,7 +131,8 @@ public class AddCountersSourceEffect extends OneShotEffect { } newCounter.add(countersToAdd); int before = permanent.getCounters(game).getCount(newCounter.getName()); - permanent.addCounters(newCounter, source, game); + ArrayList appliedEffects = (ArrayList) this.getValue("appliedEffects"); + permanent.addCounters(newCounter, source, game, appliedEffects); // if used from a replacement effect, the basic event determines if an effect was already applied to an event if (informPlayers && !game.isSimulation()) { int amountAdded = permanent.getCounters(game).getCount(newCounter.getName()) - before; Player player = game.getPlayer(source.getControllerId()); @@ -150,12 +154,10 @@ public class AddCountersSourceEffect extends OneShotEffect { sb.append("put "); if (counter.getCount() > 1) { sb.append(CardUtil.numberToText(counter.getCount())).append(' '); + } else if (amount.toString().equals("X") && amount.getMessage().isEmpty()) { + sb.append("X "); } else { - if (amount.toString().equals("X") && amount.getMessage().isEmpty()) { - sb.append("X "); - } else { - sb.append("a "); - } + sb.append("a "); } sb.append(counter.getName().toLowerCase()).append(" counter on {this}"); if (!amount.getMessage().isEmpty()) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/replacement/CreateTwiceThatManyTokensEffect.java b/Mage/src/main/java/mage/abilities/effects/common/replacement/CreateTwiceThatManyTokensEffect.java new file mode 100644 index 00000000000..3459ae69f12 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/effects/common/replacement/CreateTwiceThatManyTokensEffect.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.abilities.effects.common.replacement; + +import mage.abilities.Ability; +import mage.abilities.effects.ReplacementEffectImpl; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.game.Game; +import mage.game.events.GameEvent; + +/** + * + * @author LevelX2 + */ +public class CreateTwiceThatManyTokensEffect extends ReplacementEffectImpl { + + public CreateTwiceThatManyTokensEffect() { + super(Duration.WhileOnBattlefield, Outcome.Copy); + staticText = "If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead"; + } + + public CreateTwiceThatManyTokensEffect(final CreateTwiceThatManyTokensEffect effect) { + super(effect); + } + + @Override + public CreateTwiceThatManyTokensEffect copy() { + return new CreateTwiceThatManyTokensEffect(this); + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.CREATE_TOKEN; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + return event.getPlayerId().equals(source.getControllerId()); + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + event.setAmount(event.getAmount() * 2); + return false; + } + +} diff --git a/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryGraveyardPutInHandEffect.java b/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryGraveyardPutInHandEffect.java index 2d5d1769de1..cba730ab17b 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryGraveyardPutInHandEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryGraveyardPutInHandEffect.java @@ -1,113 +1,114 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ -package mage.abilities.effects.common.search; - -import mage.MageObject; -import mage.abilities.Ability; -import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; -import mage.cards.CardsImpl; -import mage.constants.Outcome; -import mage.constants.Zone; -import mage.filter.FilterCard; -import mage.game.Game; -import mage.players.Player; -import mage.target.TargetCard; -import mage.target.common.TargetCardInLibrary; - -/** - * - * @author Styxo - */ -public class SearchLibraryGraveyardPutInHandEffect extends OneShotEffect { - - private FilterCard filter; - private boolean forceToSearchBoth; - - public SearchLibraryGraveyardPutInHandEffect(FilterCard filter) { - this(filter, false); - } - - public SearchLibraryGraveyardPutInHandEffect(FilterCard filter, boolean forceToSearchBoth) { - super(Outcome.Benefit); - this.filter = filter; - this.forceToSearchBoth = forceToSearchBoth; - staticText = "Search your library and" + (forceToSearchBoth ? "" : "/or ") + " graveyard for a card named " + filter.getMessage() + ", reveal it, and put it into your hand. Then shuffle your library"; - } - - public SearchLibraryGraveyardPutInHandEffect(final SearchLibraryGraveyardPutInHandEffect effect) { - super(effect); - this.filter = effect.filter; - this.forceToSearchBoth = effect.forceToSearchBoth; - - } - - @Override - public SearchLibraryGraveyardPutInHandEffect copy() { - return new SearchLibraryGraveyardPutInHandEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - MageObject sourceObject = source.getSourceObject(game); - Card cardFound = null; - if (controller != null && sourceObject != null) { - if (forceToSearchBoth || controller.chooseUse(outcome, "Search your library for a card named " + filter.getMessage() + '?', source, game)) { - TargetCardInLibrary target = new TargetCardInLibrary(0, 1, filter); - target.clearChosen(); - if (controller.searchLibrary(target, game)) { - if (!target.getTargets().isEmpty()) { - cardFound = game.getCard(target.getFirstTarget()); - } - } - controller.shuffleLibrary(source, game); - } - - if (cardFound == null && controller.chooseUse(outcome, "Search your graveyard for a card named " + filter.getMessage() + '?', source, game)) { - TargetCard target = new TargetCard(0, 1, Zone.GRAVEYARD, filter); - target.clearChosen(); - if (controller.choose(outcome, controller.getGraveyard(), target, game)) { - if (!target.getTargets().isEmpty()) { - cardFound = game.getCard(target.getFirstTarget()); - } - } - } - - if (cardFound != null) { - controller.revealCards(sourceObject.getIdName(), new CardsImpl(cardFound), game); - controller.moveCards(cardFound, Zone.HAND, source, game); - } - - return true; - } - - return false; - } - -} +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.abilities.effects.common.search; + +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.cards.Card; +import mage.cards.CardsImpl; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.game.Game; +import mage.players.Player; +import mage.target.TargetCard; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author Styxo + */ +public class SearchLibraryGraveyardPutInHandEffect extends OneShotEffect { + + private FilterCard filter; + private boolean forceToSearchBoth; + + public SearchLibraryGraveyardPutInHandEffect(FilterCard filter) { + this(filter, false); + } + + public SearchLibraryGraveyardPutInHandEffect(FilterCard filter, boolean forceToSearchBoth) { + super(Outcome.Benefit); + this.filter = filter; + this.forceToSearchBoth = forceToSearchBoth; + staticText = "Search your library and" + (forceToSearchBoth ? "" : "/or ") + " graveyard for a card named " + filter.getMessage() + + ", reveal it, and put it into your hand. " + (forceToSearchBoth ? "Then shuffle your library" : "If you search your library this way, shuffle it"); + } + + public SearchLibraryGraveyardPutInHandEffect(final SearchLibraryGraveyardPutInHandEffect effect) { + super(effect); + this.filter = effect.filter; + this.forceToSearchBoth = effect.forceToSearchBoth; + + } + + @Override + public SearchLibraryGraveyardPutInHandEffect copy() { + return new SearchLibraryGraveyardPutInHandEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + MageObject sourceObject = source.getSourceObject(game); + Card cardFound = null; + if (controller != null && sourceObject != null) { + if (forceToSearchBoth || controller.chooseUse(outcome, "Search your library for a card named " + filter.getMessage() + '?', source, game)) { + TargetCardInLibrary target = new TargetCardInLibrary(0, 1, filter); + target.clearChosen(); + if (controller.searchLibrary(target, game)) { + if (!target.getTargets().isEmpty()) { + cardFound = game.getCard(target.getFirstTarget()); + } + } + controller.shuffleLibrary(source, game); + } + + if (cardFound == null && controller.chooseUse(outcome, "Search your graveyard for a card named " + filter.getMessage() + '?', source, game)) { + TargetCard target = new TargetCard(0, 1, Zone.GRAVEYARD, filter); + target.clearChosen(); + if (controller.choose(outcome, controller.getGraveyard(), target, game)) { + if (!target.getTargets().isEmpty()) { + cardFound = game.getCard(target.getFirstTarget()); + } + } + } + + if (cardFound != null) { + controller.revealCards(sourceObject.getIdName(), new CardsImpl(cardFound), game); + controller.moveCards(cardFound, Zone.HAND, source, game); + } + + return true; + } + + return false; + } + +} diff --git a/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryWithLessCMCPutInPlayEffect.java b/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryWithLessCMCPutInPlayEffect.java index 889ca401dcb..0fa13da8267 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryWithLessCMCPutInPlayEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryWithLessCMCPutInPlayEffect.java @@ -28,11 +28,11 @@ package mage.abilities.effects.common.search; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; @@ -67,7 +67,7 @@ public class SearchLibraryWithLessCMCPutInPlayEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { FilterCard advancedFilter = filter.copy(); // never change static objects so copy the object here before - advancedFilter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, source.getManaCostsToPay().getX() + 1)); + advancedFilter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, source.getManaCostsToPay().getX() + 1)); TargetCardInLibrary target = new TargetCardInLibrary(advancedFilter); if (controller.searchLibrary(target, game)) { if (!target.getTargets().isEmpty()) { diff --git a/Mage/src/main/java/mage/abilities/effects/keyword/BolsterEffect.java b/Mage/src/main/java/mage/abilities/effects/keyword/BolsterEffect.java index 86de47c2833..55fc1074622 100644 --- a/Mage/src/main/java/mage/abilities/effects/keyword/BolsterEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/keyword/BolsterEffect.java @@ -28,6 +28,7 @@ package mage.abilities.effects.keyword; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.Effect; @@ -35,7 +36,6 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.constants.Outcome; import mage.counters.CounterType; -import mage.filter.Filter; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; @@ -96,7 +96,7 @@ public class BolsterEffect extends OneShotEffect { if (leastToughness != Integer.MAX_VALUE) { if (selectedCreature == null) { FilterPermanent filter = new FilterControlledCreaturePermanent("creature you control with toughness " + leastToughness); - filter.add(new ToughnessPredicate(Filter.ComparisonType.Equal, leastToughness)); + filter.add(new ToughnessPredicate(ComparisonType.EQUAL_TO, leastToughness)); Target target = new TargetPermanent(1,1, filter, true); if (controller.chooseTarget(outcome, target, source, game)) { selectedCreature = game.getPermanent(target.getFirstTarget()); diff --git a/Mage/src/main/java/mage/abilities/keyword/AftermathAbility.java b/Mage/src/main/java/mage/abilities/keyword/AftermathAbility.java new file mode 100644 index 00000000000..e0517a0e0d2 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/keyword/AftermathAbility.java @@ -0,0 +1,227 @@ +/* + * Copyright 2011 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.abilities.keyword; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.*; +import mage.cards.Card; +import mage.cards.SplitCardHalf; +import mage.constants.*; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.ZoneChangeEvent; +import mage.game.stack.Spell; +import mage.players.Player; + +/** + * Aftermath + * + * TODO: Implement once we get details on the comprehensive rules meaning of the + * ability + * + * Current text is a shell copied from Flashback + * + * @author stravant + */ +public class AftermathAbility extends SimpleStaticAbility { + + public AftermathAbility() { + super(Zone.ALL, new AftermathCastFromGraveyard()); + addEffect(new AftermathCantCastFromHand()); + addEffect(new AftermathExileAsResolvesFromGraveyard()); + } + + public AftermathAbility(final AftermathAbility ability) { + super(ability); + } + + @Override + public AftermathAbility copy() { + return new AftermathAbility(this); + } + + @Override + public String getRule(boolean all) { + if (all) { + return "Aftermath (Cast this card only from your graveyard. Exile it afterwards.)"; + } else { + return "Aftermath"; + } + } +} + +class AftermathCastFromGraveyard extends AsThoughEffectImpl { + + public AftermathCastFromGraveyard() { + super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit); + staticText = "Cast {this} from your graveyard"; + } + + public AftermathCastFromGraveyard(final AftermathCastFromGraveyard effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public AftermathCastFromGraveyard copy() { + return new AftermathCastFromGraveyard(this); + } + + private static String msb(UUID id) { + return Integer.toUnsignedString((int) id.getMostSignificantBits(), 16); + } + + @Override + public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) { + if (objectId.equals(source.getSourceId()) + & affectedControllerId.equals(source.getControllerId())) { + Card card = game.getCard(source.getSourceId()); + if (card != null && game.getState().getZone(source.getSourceId()) == Zone.GRAVEYARD) { + return true; + } + } + return false; + } +} + +class AftermathCantCastFromHand extends ContinuousRuleModifyingEffectImpl { + + public AftermathCantCastFromHand() { + super(Duration.EndOfGame, Outcome.Detriment); + staticText = ", but not from anywhere else"; + } + + public AftermathCantCastFromHand(final AftermathCantCastFromHand effect) { + super(effect); + } + + @Override + public AftermathCantCastFromHand copy() { + return new AftermathCantCastFromHand(this); + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.CAST_SPELL; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + Card card = game.getCard(event.getSourceId()); + if (card != null && card.getId().equals(source.getSourceId())) { + Zone zone = game.getState().getZone(card.getId()); + if (zone != null && (zone != Zone.GRAVEYARD)) { + return true; + } + } + return false; + } +} + +class AftermathExileAsResolvesFromGraveyard extends ReplacementEffectImpl { + + AftermathExileAsResolvesFromGraveyard() { + super(Duration.WhileOnStack, Outcome.Detriment); + this.staticText = "Exile it afterwards."; + } + + AftermathExileAsResolvesFromGraveyard(AftermathExileAsResolvesFromGraveyard effect) { + super(effect); + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.ZONE_CHANGE; + } + + @Override + public boolean applies(GameEvent evt, Ability source, Game game) { + ZoneChangeEvent event = (ZoneChangeEvent) evt; + if (event.getFromZone() == Zone.STACK && event.getToZone() != Zone.EXILED) { + // Moving something from stack to somewhere else + + // Get the source id, getting the whole split card's ID, because + // that's the card that is changing zones in the event, but + // source.getSourceId is only the split card half. + // If branch so that we also support putting Aftermath on + // non-split cards for... whatever reason, in case somebody + // wants to do that in the future. + UUID sourceId = source.getSourceId(); + Card sourceCard = game.getCard(source.getSourceId()); + if (sourceCard != null && sourceCard instanceof SplitCardHalf) { + sourceCard = ((SplitCardHalf) sourceCard).getParentCard(); + sourceId = sourceCard.getId(); + } + + if (event.getTargetId() == sourceId) { + // Moving this spell from stack to yard + Spell spell = game.getStack().getSpell(source.getSourceId()); + if (spell != null && spell.getFromZone() == Zone.GRAVEYARD) { + // And this spell was cast from the graveyard, so we need to exile it + return true; + } + } + } + return false; + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + UUID sourceId = source.getSourceId(); + Card sourceCard = game.getCard(source.getSourceId()); + if (sourceCard != null && sourceCard instanceof SplitCardHalf) { + sourceCard = ((SplitCardHalf) sourceCard).getParentCard(); + sourceId = sourceCard.getId(); + } + + if (sourceCard != null) { + Player player = game.getPlayer(sourceCard.getOwnerId()); + if (player != null) { + return player.moveCardToExileWithInfo(sourceCard, null, "", sourceId, game, ((ZoneChangeEvent) event).getFromZone(), true); + } + } + return false; + } + + @Override + public AftermathExileAsResolvesFromGraveyard copy() { + return new AftermathExileAsResolvesFromGraveyard(this); + } + +} diff --git a/Mage/src/main/java/mage/abilities/keyword/BestowAbility.java b/Mage/src/main/java/mage/abilities/keyword/BestowAbility.java index a69c5aa5387..0ae699c7114 100644 --- a/Mage/src/main/java/mage/abilities/keyword/BestowAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/BestowAbility.java @@ -151,12 +151,12 @@ public class BestowAbility extends SpellAbility { if (basicObject != null) { basicObject.getSubtype(null).remove("Aura"); if (!basicObject.isCreature()) { - basicObject.getCardType().add(CardType.CREATURE); + basicObject.addCardType(CardType.CREATURE); } } permanent.getSubtype(null).remove("Aura"); if (!permanent.isCreature()) { - permanent.getCardType().add(CardType.CREATURE); + permanent.addCardType(CardType.CREATURE); } } diff --git a/Mage/src/main/java/mage/abilities/keyword/BloodthirstAbility.java b/Mage/src/main/java/mage/abilities/keyword/BloodthirstAbility.java index b57e67959e4..93941494bab 100644 --- a/Mage/src/main/java/mage/abilities/keyword/BloodthirstAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/BloodthirstAbility.java @@ -1,5 +1,7 @@ package mage.abilities.keyword; +import java.util.ArrayList; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.effects.OneShotEffect; @@ -71,7 +73,8 @@ class BloodthirstEffect extends OneShotEffect { if (watcher != null && watcher.conditionMet()) { Permanent permanent = game.getPermanentEntering(source.getSourceId()); if (permanent != null) { - permanent.addCounters(CounterType.P1P1.createInstance(amount), source, game); + ArrayList appliedEffects = (ArrayList) this.getValue("appliedEffects"); // the basic event is the EntersBattlefieldEvent, so use already applied replacement effects from that event + permanent.addCounters(CounterType.P1P1.createInstance(amount), source, game, appliedEffects); } } return true; diff --git a/Mage/src/main/java/mage/abilities/keyword/CyclingAbility.java b/Mage/src/main/java/mage/abilities/keyword/CyclingAbility.java index 3f9cc3700e9..09f1c72d451 100644 --- a/Mage/src/main/java/mage/abilities/keyword/CyclingAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/CyclingAbility.java @@ -1,16 +1,16 @@ /* * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without modification, are * permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. - * + * * 2. Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR @@ -20,25 +20,29 @@ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * + * * The views and conclusions contained in the software and documentation are those of the * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.abilities.keyword; -import mage.constants.Zone; +import java.util.UUID; +import mage.abilities.Ability; import mage.abilities.ActivatedAbilityImpl; import mage.abilities.costs.Cost; import mage.abilities.costs.common.DiscardSourceCost; import mage.abilities.costs.mana.ManaCost; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; +import mage.constants.Zone; import mage.filter.FilterCard; +import mage.game.Game; +import mage.game.events.CostEvent; +import mage.game.events.GameEvent; +import mage.target.Targets; import mage.target.common.TargetCardInLibrary; - /** * * @author BetaSteward_at_googlemail.com @@ -47,16 +51,16 @@ public class CyclingAbility extends ActivatedAbilityImpl { private final Cost cost; private final String text; - + public CyclingAbility(Cost cost) { - super(Zone.HAND, new DrawCardSourceControllerEffect(1), cost); + super(Zone.HAND, new DrawCardSourceControllerEffect(1), new CyclingCost(cost)); this.addCost(new DiscardSourceCost()); this.cost = cost; this.text = "Cycling"; } - - public CyclingAbility(Cost cost, FilterCard filter, String text){ - super(Zone.HAND, new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true, true), cost); + + public CyclingAbility(Cost cost, FilterCard filter, String text) { + super(Zone.HAND, new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true, true), new CyclingCost(cost)); this.addCost(new DiscardSourceCost()); this.cost = cost; this.text = text; @@ -76,14 +80,87 @@ public class CyclingAbility extends ActivatedAbilityImpl { @Override public String getRule() { StringBuilder rule = new StringBuilder(this.text); - if(cost instanceof ManaCost){ + if (cost instanceof ManaCost) { rule.append(' '); - } - else{ - rule.append("—"); + } else { + rule.append("—"); } rule.append(cost.getText()).append(" (").append(super.getRule(true)).append(")"); return rule.toString(); } } + +class CyclingCost implements Cost { + + protected Cost cost; + + public CyclingCost(Cost cost) { + this.cost = cost; + } + + public CyclingCost(final CyclingCost cost) { + this.cost = cost.cost.copy(); + } + + @Override + public boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana) { + return pay(ability, game, sourceId, controllerId, noMana, cost); + } + + @Override + public boolean canPay(Ability ability, UUID sourceId, UUID controllerId, Game game) { + CostEvent costEvent = new CostEvent(GameEvent.EventType.CAN_PAY_CYCLE_COST, sourceId, sourceId, controllerId, cost); + game.replaceEvent(costEvent); + return cost.canPay(ability, sourceId, controllerId, game) || costEvent.getCost().canPay(ability, sourceId, controllerId, game); + } + + @Override + public boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana, Cost costToPay) { + CostEvent costEvent = new CostEvent(GameEvent.EventType.PAY_CYCLE_COST, sourceId, sourceId, controllerId, cost); + game.replaceEvent(costEvent); + cost = costEvent.getCost(); + return cost.pay(ability, game, sourceId, controllerId, noMana, cost); + } + + @Override + public String getText() { + return cost.getText(); + } + + @Override + public void setText(String text) { + cost.setText(text); + } + + @Override + public Targets getTargets() { + return cost.getTargets(); + } + + @Override + public boolean isPaid() { + return cost.isPaid(); + } + + @Override + public void clearPaid() { + cost.clearPaid(); + } + + @Override + public void setPaid() { + cost.setPaid(); + } + + @Override + public UUID getId() { + return cost.getId(); + } + + @Override + public Cost copy() { + return new CyclingCost(this); + } + +} diff --git a/Mage/src/main/java/mage/abilities/keyword/EmbalmAbility.java b/Mage/src/main/java/mage/abilities/keyword/EmbalmAbility.java new file mode 100644 index 00000000000..db40c8646f5 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/keyword/EmbalmAbility.java @@ -0,0 +1,126 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.abilities.keyword; + +import mage.ObjectColor; +import mage.abilities.Ability; +import mage.abilities.ActivatedAbilityImpl; +import mage.abilities.costs.Cost; +import mage.abilities.costs.common.ExileSourceFromGraveCost; +import mage.abilities.effects.OneShotEffect; +import mage.cards.Card; +import mage.constants.Outcome; +import mage.constants.TimingRule; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.token.EmptyToken; +import mage.players.Player; +import mage.util.CardUtil; + +/** + * + * @author LevelX2 + */ +public class EmbalmAbility extends ActivatedAbilityImpl { + + private String rule; + + public EmbalmAbility(Cost cost, Card card) { + super(Zone.GRAVEYARD, new EmbalmEffect(), cost); + addCost(new ExileSourceFromGraveCost()); + this.rule = setRule(cost, card); + this.timing = TimingRule.SORCERY; + setRule(cost, card); + } + + public EmbalmAbility(final EmbalmAbility ability) { + super(ability); + this.rule = ability.rule; + } + + @Override + public EmbalmAbility copy() { + return new EmbalmAbility(this); + } + + @Override + public String getRule() { + return rule; + } + + private String setRule(Cost cost, Card card) { + StringBuilder sb = new StringBuilder("Embalm ").append(cost.getText()); + sb.append(" (").append(cost.getText()); + sb.append(", Exile this card from your graveyard: Create a token that's a copy of it, except it's a white Zombie "); + for (String subtype : card.getSubtype(null)) { + sb.append(subtype).append(" "); + } + sb.append(" with no mana cost. Embalm only as a sorcery.)"); + return sb.toString(); + } +} + +class EmbalmEffect extends OneShotEffect { + + public EmbalmEffect() { + super(Outcome.PutCreatureInPlay); + } + + public EmbalmEffect(final EmbalmEffect effect) { + super(effect); + } + + @Override + public EmbalmEffect copy() { + return new EmbalmEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Card card = game.getCard(source.getSourceId()); + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null && card != null) { + EmptyToken token = new EmptyToken(); + CardUtil.copyTo(token).from(card); // needed so that entersBattlefied triggered abilities see the attributes (e.g. Master Biomancer) + token.getColor(game).setColor(ObjectColor.WHITE); + if (!token.getSubtype(game).contains("Zombie")) { + token.getSubtype(game).add(0, "Zombie"); + } + token.getManaCost().clear(); + game.fireEvent(GameEvent.getEvent(GameEvent.EventType.EMBALMED_CREATURE, token.getId(), source.getSourceId(), controller.getId())); + token.putOntoBattlefield(1, game, source.getSourceId(), source.getControllerId(), false, false, null); + // Probably it makes sense to remove also the Embalm ability (it's not shown on the token cards). + // Also it can never get active or? But it's not mentioned in the reminder text. + return true; + } + + return false; + } + +} diff --git a/Mage/src/main/java/mage/abilities/keyword/ExertAbility.java b/Mage/src/main/java/mage/abilities/keyword/ExertAbility.java new file mode 100644 index 00000000000..2034b96fa9b --- /dev/null +++ b/Mage/src/main/java/mage/abilities/keyword/ExertAbility.java @@ -0,0 +1,206 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.abilities.keyword; + +import java.util.HashSet; +import java.util.Set; +import mage.MageObjectReference; +import mage.abilities.Ability; +import mage.abilities.Mode; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ContinuousEffect; +import mage.abilities.effects.Effect; +import mage.abilities.effects.ReplacementEffectImpl; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.WatcherScope; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.targetpointer.FixedTarget; +import mage.watchers.Watcher; + +/** + * + * @author LevelX2 + */ +public class ExertAbility extends SimpleStaticAbility { + + private String ruleText; + + public ExertAbility(BecomesExertSourceTriggeredAbility ability) { + this(ability, false); + } + + public ExertAbility(BecomesExertSourceTriggeredAbility ability, boolean exertOnlyOncePerTurn) { + super(Zone.BATTLEFIELD, new ExertReplacementEffect(exertOnlyOncePerTurn)); + ruleText = (exertOnlyOncePerTurn + ? "If {this} hasn't been exerted this turn, you may exert it" + : "You may exert {this}") + " as it attacks. "; + if (ability != null) { + this.addSubAbility(ability); + ruleText += ("When you do,"); + ability.getEffects().stream().forEach((effect) -> { + ruleText += " " + effect.getText(ability.getModes().getMode()); + }); + ruleText += ". "; + ability.setRuleVisible(false); + } + ruleText += "(An exterted creature can't untap during your next untap step)"; + if (exertOnlyOncePerTurn) { + getWatchers().add(new ExertedThisTurnWatcher()); + } + } + + public ExertAbility(final ExertAbility ability) { + super(ability); + this.ruleText = ability.ruleText; + + } + + @Override + public ExertAbility copy() { + return new ExertAbility(this); + } + + @Override + public String getRule() { + return ruleText; + } +} + +class ExertReplacementEffect extends ReplacementEffectImpl { + + final private boolean exertOnlyOncePerTurn; + + public ExertReplacementEffect(boolean exertOnlyOncePerTurn) { + super(Duration.WhileOnBattlefield, Outcome.Detriment); + staticText = "You may exert {this} as it attacks"; + this.exertOnlyOncePerTurn = exertOnlyOncePerTurn; + } + + public ExertReplacementEffect(ExertReplacementEffect effect) { + super(effect); + this.exertOnlyOncePerTurn = effect.exertOnlyOncePerTurn; + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == EventType.ATTACKER_DECLARED; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + return event.getSourceId().equals(source.getSourceId()); + } + + @Override + public boolean apply(Game game, Ability source) { + return false; + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + Permanent creature = game.getPermanent(event.getSourceId()); + Player controller = game.getPlayer(source.getControllerId()); + if (creature != null && controller != null) { + if (exertOnlyOncePerTurn) { + MageObjectReference creatureReference = new MageObjectReference(creature.getId(), creature.getZoneChangeCounter(game), game); + ExertedThisTurnWatcher watcher = (ExertedThisTurnWatcher) game.getState().getWatchers().get(ExertedThisTurnWatcher.class.getName()); + if (watcher != null && watcher.getExertedThisTurnCreatures().contains(creatureReference)) { + return false; + } + } + if (controller.chooseUse(outcome, "Exert " + creature.getLogName() + '?', + "An exterted creature can't untap during your next untap step.", "Yes", "No", source, game)) { + if (!game.isSimulation()) { + game.informPlayers(controller.getLogName() + " exerted " + creature.getName()); + } + game.fireEvent(GameEvent.getEvent(GameEvent.EventType.BECOMES_EXERTED, creature.getId(), creature.getId(), creature.getControllerId())); + ContinuousEffect effect = new DontUntapInControllersNextUntapStepTargetEffect(); + effect.setTargetPointer(new FixedTarget(creature, game)); + game.addEffect(effect, source); + } + } + return false; + } + + @Override + public String getText(Mode mode) { + return staticText; + } + + @Override + public ExertReplacementEffect copy() { + return new ExertReplacementEffect(this); + } + +} + +class ExertedThisTurnWatcher extends Watcher { + + private final Set exertedThisTurnCreatures; + + public ExertedThisTurnWatcher() { + super(ExertedThisTurnWatcher.class.getName(), WatcherScope.GAME); + exertedThisTurnCreatures = new HashSet<>(); + } + + public ExertedThisTurnWatcher(final ExertedThisTurnWatcher watcher) { + super(watcher); + exertedThisTurnCreatures = new HashSet<>(watcher.exertedThisTurnCreatures); + } + + @Override + public Watcher copy() { + return new ExertedThisTurnWatcher(this); + } + + @Override + public void watch(GameEvent event, Game game) { + if (event.getType() == GameEvent.EventType.BECOMES_EXERTED) { + this.exertedThisTurnCreatures.add(new MageObjectReference(event.getSourceId(), game)); + } + } + + public Set getExertedThisTurnCreatures() { + return this.exertedThisTurnCreatures; + } + + @Override + public void reset() { + super.reset(); + exertedThisTurnCreatures.clear(); + } + +} diff --git a/Mage/src/main/java/mage/abilities/keyword/FlankingAbility.java b/Mage/src/main/java/mage/abilities/keyword/FlankingAbility.java index 8547d850e9d..d8df61ca873 100644 --- a/Mage/src/main/java/mage/abilities/keyword/FlankingAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/FlankingAbility.java @@ -1,7 +1,6 @@ package mage.abilities.keyword; -import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -14,7 +13,6 @@ import mage.target.targetpointer.FixedTarget; /** - * * @author Plopman */ @@ -38,16 +36,12 @@ public class FlankingAbility extends TriggeredAbilityImpl { public boolean checkTrigger(GameEvent event, Game game) { if (event.getTargetId().equals(this.getSourceId())) { Permanent permanent = game.getPermanent(event.getSourceId()); - if(permanent != null) - { - boolean hasFlankingAbility = false; - for(Ability ability : permanent.getAbilities()){ - if(ability instanceof FlankingAbility){ - hasFlankingAbility = true; - } - } - - if(!hasFlankingAbility){ + if (permanent != null) { + boolean hasFlankingAbility = + permanent.getAbilities().stream().anyMatch(ability -> ability instanceof FlankingAbility); + + + if (!hasFlankingAbility) { for (Effect effect : this.getEffects()) { effect.setTargetPointer(new FixedTarget(event.getSourceId())); } @@ -68,5 +62,5 @@ public class FlankingAbility extends TriggeredAbilityImpl { return new FlankingAbility(this); } - + } diff --git a/Mage/src/main/java/mage/abilities/keyword/KickerAbility.java b/Mage/src/main/java/mage/abilities/keyword/KickerAbility.java index dad2df5a918..67ea7227535 100644 --- a/Mage/src/main/java/mage/abilities/keyword/KickerAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/KickerAbility.java @@ -27,20 +27,10 @@ */ package mage.abilities.keyword; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.StaticAbility; -import mage.abilities.costs.Cost; -import mage.abilities.costs.Costs; -import mage.abilities.costs.CostsImpl; -import mage.abilities.costs.OptionalAdditionalCost; -import mage.abilities.costs.OptionalAdditionalCostImpl; -import mage.abilities.costs.OptionalAdditionalSourceCosts; +import mage.abilities.costs.*; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.costs.mana.ManaCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -51,8 +41,9 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.*; + /** - * * 20121001 702.31. Kicker 702.31a Kicker is a static ability that functions * while the spell with kicker is on the stack. "Kicker [cost]" means "You may * pay an additional [cost] as you cast this spell." Paying a spell's kicker @@ -80,7 +71,6 @@ import mage.players.Player; * 601.2c. * * @author LevelX2 - * */ public class KickerAbility extends StaticAbility implements OptionalAdditionalSourceCosts { @@ -159,10 +149,7 @@ public class KickerAbility extends StaticAbility implements OptionalAdditionalSo public int getKickedCounter(Game game, Ability source) { String key = getActivationKey(source, "", game); - if (activations.containsKey(key)) { - return activations.get(key); - } - return 0; + return activations.getOrDefault(key, 0); } public boolean isKicked(Game game, Ability source, String costText) { @@ -227,10 +214,10 @@ public class KickerAbility extends StaticAbility implements OptionalAdditionalSo && player.chooseUse(Outcome.Benefit, "Pay " + times + kickerCost.getText(false) + " ?", ability, game)) { this.activateKicker(kickerCost, ability, game); if (kickerCost instanceof Costs) { - for (Iterator itKickerCost = ((Costs) kickerCost).iterator(); itKickerCost.hasNext();) { + for (Iterator itKickerCost = ((Costs) kickerCost).iterator(); itKickerCost.hasNext(); ) { Object kickerCostObject = itKickerCost.next(); if ((kickerCostObject instanceof Costs) || (kickerCostObject instanceof CostsImpl)) { - for (@SuppressWarnings("unchecked") Iterator itDetails = ((Costs) kickerCostObject).iterator(); itDetails.hasNext();) { + for (@SuppressWarnings("unchecked") Iterator itDetails = ((Costs) kickerCostObject).iterator(); itDetails.hasNext(); ) { addKickerCostsToAbility(itDetails.next(), ability, game); } } else { diff --git a/Mage/src/main/java/mage/abilities/keyword/ModularAbility.java b/Mage/src/main/java/mage/abilities/keyword/ModularAbility.java index bb155c232bf..250992d472d 100644 --- a/Mage/src/main/java/mage/abilities/keyword/ModularAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/ModularAbility.java @@ -1,5 +1,7 @@ package mage.abilities.keyword; +import java.util.ArrayList; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.StaticAbility; import mage.abilities.common.DiesTriggeredAbility; @@ -159,7 +161,8 @@ class ModularDistributeCounterEffect extends OneShotEffect { if (sourcePermanent != null && targetArtifact != null && player != null) { int numberOfCounters = sourcePermanent.getCounters(game).getCount(CounterType.P1P1); if (numberOfCounters > 0) { - targetArtifact.addCounters(CounterType.P1P1.createInstance(numberOfCounters), source, game); + ArrayList appliedEffects = (ArrayList) this.getValue("appliedEffects"); // the basic event is the EntersBattlefieldEvent, so use already applied replacement effects from that event + targetArtifact.addCounters(CounterType.P1P1.createInstance(numberOfCounters), source, game, appliedEffects); } return true; } diff --git a/Mage/src/main/java/mage/abilities/keyword/MorphAbility.java b/Mage/src/main/java/mage/abilities/keyword/MorphAbility.java index 5a81ae7d193..555fb72c33c 100644 --- a/Mage/src/main/java/mage/abilities/keyword/MorphAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/MorphAbility.java @@ -299,9 +299,9 @@ public class MorphAbility extends StaticAbility implements AlternativeSourceCost mageObject.getColor(null).setColor(new ObjectColor()); mageObject.setName(""); mageObject.getCardType().clear(); - mageObject.getCardType().add(CardType.CREATURE); + mageObject.addCardType(CardType.CREATURE); mageObject.getSubtype(null).clear(); - mageObject.getSupertype().clear(); + mageObject.getSuperType().clear(); mageObject.getManaCost().clear(); if (mageObject instanceof Permanent) { ((Permanent) mageObject).setExpansionSetCode(""); diff --git a/Mage/src/main/java/mage/abilities/keyword/SoulshiftAbility.java b/Mage/src/main/java/mage/abilities/keyword/SoulshiftAbility.java index 056926ec1a3..306d710a24a 100644 --- a/Mage/src/main/java/mage/abilities/keyword/SoulshiftAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/SoulshiftAbility.java @@ -28,18 +28,19 @@ package mage.abilities.keyword; -import java.util.UUID; +import mage.constants.ComparisonType; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.ReturnToHandTargetEffect; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * 702.45. Soulshift @@ -75,7 +76,7 @@ public class SoulshiftAbility extends DiesTriggeredAbility { this.getTargets().clear(); int intValue = amount.calculate(game, this, null); FilterCard filter = new FilterCard("Spirit card with converted mana cost " + intValue + " or less from your graveyard"); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, intValue + 1)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, intValue + 1)); filter.add(new SubtypePredicate("Spirit")); this.addTarget(new TargetCardInYourGraveyard(filter)); super.trigger(game, controllerId); //To change body of generated methods, choose Tools | Templates. diff --git a/Mage/src/main/java/mage/abilities/keyword/SplitSecondAbility.java b/Mage/src/main/java/mage/abilities/keyword/SplitSecondAbility.java index 806f71a3099..aebf6928c8b 100644 --- a/Mage/src/main/java/mage/abilities/keyword/SplitSecondAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/SplitSecondAbility.java @@ -10,6 +10,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.Optional; + /** * Split Second * @@ -66,8 +68,8 @@ class SplitSecondEffect extends ContinuousRuleModifyingEffectImpl { return true; } if (event.getType() == GameEvent.EventType.ACTIVATE_ABILITY) { - Ability ability = game.getAbility(event.getTargetId(), event.getSourceId()); - if (ability != null && !(ability instanceof ActivatedManaAbilityImpl)) { + Optional ability = game.getAbility(event.getTargetId(), event.getSourceId()); + if (ability != null && !(ability.get() instanceof ActivatedManaAbilityImpl)) { return true; } } diff --git a/Mage/src/main/java/mage/abilities/keyword/SunburstAbility.java b/Mage/src/main/java/mage/abilities/keyword/SunburstAbility.java index 3aa9182d2f3..7a61d06c41a 100644 --- a/Mage/src/main/java/mage/abilities/keyword/SunburstAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/SunburstAbility.java @@ -27,13 +27,14 @@ */ package mage.abilities.keyword; +import java.util.ArrayList; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.SunburstCount; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; -import mage.constants.CardType; import mage.constants.Outcome; import mage.counters.Counter; import mage.counters.CounterType; @@ -97,8 +98,8 @@ class SunburstEffect extends OneShotEffect { counter = CounterType.CHARGE.createInstance(amount.calculate(game, source, this)); } if (counter != null) { - - permanent.addCounters(counter, source, game); + ArrayList appliedEffects = (ArrayList) this.getValue("appliedEffects"); // the basic event is the EntersBattlefieldEvent, so use already applied replacement effects from that event + permanent.addCounters(counter, source, game, appliedEffects); if (!game.isSimulation()) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { diff --git a/Mage/src/main/java/mage/abilities/keyword/SuspendAbility.java b/Mage/src/main/java/mage/abilities/keyword/SuspendAbility.java index a273bd123f1..3382b061dbf 100644 --- a/Mage/src/main/java/mage/abilities/keyword/SuspendAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/SuspendAbility.java @@ -27,9 +27,6 @@ */ package mage.abilities.keyword; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.SpecialAction; @@ -45,14 +42,7 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.counter.RemoveCounterSourceEffect; import mage.cards.Card; -import mage.constants.AsThoughEffectType; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Layer; -import mage.constants.Outcome; -import mage.constants.SubLayer; -import mage.constants.TargetController; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; @@ -60,6 +50,10 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * * 502.59. Suspend @@ -441,7 +435,7 @@ class SuspendBeginningOfUpkeepTriggeredAbility extends ConditionalTriggeredAbili public SuspendBeginningOfUpkeepTriggeredAbility() { super(new BeginningOfUpkeepTriggeredAbility(Zone.EXILED, new RemoveCounterSourceEffect(CounterType.TIME.createInstance()), TargetController.YOU, false), - SuspendedCondition.getInstance(), + SuspendedCondition.instance, "At the beginning of your upkeep, if this card ({this}) is suspended, remove a time counter from it."); this.setRuleVisible(false); diff --git a/Mage/src/main/java/mage/abilities/keyword/TransformAbility.java b/Mage/src/main/java/mage/abilities/keyword/TransformAbility.java index d9110c7a06b..2d592dc32b3 100644 --- a/Mage/src/main/java/mage/abilities/keyword/TransformAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/TransformAbility.java @@ -77,15 +77,15 @@ public class TransformAbility extends SimpleStaticAbility { permanent.getManaCost().add(sourceCard.getManaCost()); permanent.getCardType().clear(); for (CardType type : sourceCard.getCardType()) { - permanent.getCardType().add(type); + permanent.addCardType(type); } permanent.getSubtype(game).clear(); for (String type : sourceCard.getSubtype(game)) { permanent.getSubtype(game).add(type); } - permanent.getSupertype().clear(); - for (String type : sourceCard.getSupertype()) { - permanent.getSupertype().add(type); + permanent.getSuperType().clear(); + for (SuperType type : sourceCard.getSuperType()) { + permanent.addSuperType(type); } permanent.setExpansionSetCode(sourceCard.getExpansionSetCode()); permanent.getAbilities().clear(); diff --git a/Mage/src/main/java/mage/abilities/keyword/TransmuteAbility.java b/Mage/src/main/java/mage/abilities/keyword/TransmuteAbility.java index 5dc86dada78..fc6f979b3bf 100644 --- a/Mage/src/main/java/mage/abilities/keyword/TransmuteAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/TransmuteAbility.java @@ -1,6 +1,8 @@ package mage.abilities.keyword; +import mage.MageObject; import mage.abilities.Ability; +import mage.constants.ComparisonType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; @@ -8,17 +10,14 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Cards; import mage.cards.CardsImpl; import mage.constants.Outcome; +import mage.constants.TimingRule; import mage.constants.Zone; -import mage.filter.Filter; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; -import mage.MageObject; -import mage.constants.TimingRule; - /** * * 702.52. Transmute @@ -79,7 +78,7 @@ class TransmuteEffect extends OneShotEffect { MageObject sourceObject = game.getObject(source.getSourceId()); if (sourceObject != null && controller != null) { FilterCard filter = new FilterCard("card with converted mana cost " + sourceObject.getConvertedManaCost()); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.Equal, sourceObject.getConvertedManaCost())); + filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, sourceObject.getConvertedManaCost())); TargetCardInLibrary target = new TargetCardInLibrary(1, filter); if (controller.searchLibrary(target, game)) { if (!target.getTargets().isEmpty()) { diff --git a/Mage/src/main/java/mage/abilities/keyword/UnleashAbility.java b/Mage/src/main/java/mage/abilities/keyword/UnleashAbility.java index 6cdc697f129..77bad121883 100644 --- a/Mage/src/main/java/mage/abilities/keyword/UnleashAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/UnleashAbility.java @@ -105,7 +105,7 @@ class UnleashReplacementEffect extends ReplacementEffectImpl { if (!game.isSimulation()) { game.informPlayers(controller.getLogName() + " unleashes " + creature.getName()); } - creature.addCounters(CounterType.P1P1.createInstance(), source, game); + creature.addCounters(CounterType.P1P1.createInstance(), source, game, event.getAppliedEffects()); } } return false; diff --git a/Mage/src/main/java/mage/actions/MageDrawAction.java b/Mage/src/main/java/mage/actions/MageDrawAction.java index ba7922b590f..619cd9da753 100644 --- a/Mage/src/main/java/mage/actions/MageDrawAction.java +++ b/Mage/src/main/java/mage/actions/MageDrawAction.java @@ -76,7 +76,7 @@ public class MageDrawAction extends MageAction { */ protected int drawCard(Game game) { GameEvent event = GameEvent.getEvent(GameEvent.EventType.DRAW_CARD, player.getId(), player.getId()); - event.setAppliedEffects(appliedEffects); + event.addAppliedEffects(appliedEffects); if (!game.replaceEvent(event)) { Card card = player.getLibrary().removeFromTop(game); if (card != null) { diff --git a/Mage/src/main/java/mage/cards/ArtRect.java b/Mage/src/main/java/mage/cards/ArtRect.java new file mode 100644 index 00000000000..d4453c29ccc --- /dev/null +++ b/Mage/src/main/java/mage/cards/ArtRect.java @@ -0,0 +1,21 @@ +package mage.cards; + +import java.awt.geom.Rectangle2D; + +/** + * Created by stravant@gmail.com on 2017-04-04. + */ +public enum ArtRect { + NORMAL(new Rectangle2D.Double(.079f, .11f, .84f, .42f)), + AFTERMATH_TOP(new Rectangle2D.Double(0.075, 0.113, 0.832, 0.227)), + AFTERMATH_BOTTOM(new Rectangle2D.Double(0.546, 0.562, 0.272, 0.346)), + SPLIT_LEFT(new Rectangle2D.Double(0.152, 0.539, 0.386, 0.400)), + SPLIT_RIGHT(new Rectangle2D.Double(0.152, 0.058, 0.386, 0.400)), + SPLIT_FUSED(null); + + public final Rectangle2D rect; + + ArtRect(Rectangle2D.Double rect) { + this.rect = rect; + } +} diff --git a/Mage/src/main/java/mage/cards/CardImpl.java b/Mage/src/main/java/mage/cards/CardImpl.java index bf458ac1fae..befa16158ee 100644 --- a/Mage/src/main/java/mage/cards/CardImpl.java +++ b/Mage/src/main/java/mage/cards/CardImpl.java @@ -284,7 +284,11 @@ public abstract class CardImpl extends MageObjectImpl implements Card { return all; } - protected void addAbility(Ability ability) { + /** + * Public in order to support adding abilities to SplitCardHalf's + * @param ability + */ + public void addAbility(Ability ability) { ability.setSourceId(this.getId()); abilities.add(ability); for (Ability subAbility : ability.getSubAbilities()) { diff --git a/Mage/src/main/java/mage/cards/CardsImpl.java b/Mage/src/main/java/mage/cards/CardsImpl.java index 49e0622ccd1..dfe5f117df0 100644 --- a/Mage/src/main/java/mage/cards/CardsImpl.java +++ b/Mage/src/main/java/mage/cards/CardsImpl.java @@ -27,24 +27,16 @@ */ package mage.cards; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; import mage.filter.FilterCard; import mage.game.Game; import mage.util.RandomUtil; import mage.util.ThreadLocalStringBuilder; +import java.io.Serializable; +import java.util.*; +import java.util.stream.Collectors; + /** - * * @author BetaSteward_at_googlemail.com */ public class CardsImpl extends LinkedHashSet implements Cards, Serializable { @@ -118,24 +110,13 @@ public class CardsImpl extends LinkedHashSet implements Cards, Serializabl @Override public int count(FilterCard filter, Game game) { - int result = 0; - for (UUID cardId : this) { - if (filter.match(game.getCard(cardId), game)) { - result++; - } - } - return result; + return (int) stream().filter(cardId -> filter.match(game.getCard(cardId), game)).count(); } @Override public int count(FilterCard filter, UUID playerId, Game game) { - int result = 0; - for (UUID card : this) { - if (filter.match(game.getCard(card), playerId, game)) { - result++; - } - } - return result; + return (int) this.stream().filter(card -> filter.match(game.getCard(card), playerId, game)).count(); + } @Override @@ -143,13 +124,8 @@ public class CardsImpl extends LinkedHashSet implements Cards, Serializabl if (sourceId == null) { return count(filter, playerId, game); } - int result = 0; - for (UUID card : this) { - if (filter.match(game.getCard(card), sourceId, playerId, game)) { - result++; - } - } - return result; + return (int) this.stream().filter(card -> filter.match(game.getCard(card), sourceId, playerId, game)).count(); + } @Override @@ -169,20 +145,13 @@ public class CardsImpl extends LinkedHashSet implements Cards, Serializabl @Override public Set getCards(FilterCard filter, Game game) { - Set cards = new LinkedHashSet<>(); - for (UUID card : this) { - boolean match = filter.match(game.getCard(card), game); - if (match) { - cards.add(game.getCard(card)); - } - } - return cards; + return stream().map(game::getCard).filter(card -> filter.match(card, game)).collect(Collectors.toSet()); } @Override public Set getCards(Game game) { Set cards = new LinkedHashSet<>(); - for (Iterator it = this.iterator(); it.hasNext();) { // Changed to iterator because of ConcurrentModificationException + for (Iterator it = this.iterator(); it.hasNext(); ) { // Changed to iterator because of ConcurrentModificationException UUID cardId = it.next(); Card card = game.getCard(cardId); diff --git a/Mage/src/main/java/mage/cards/ExpansionSet.java b/Mage/src/main/java/mage/cards/ExpansionSet.java index a16ab16f41c..04931d7ee83 100644 --- a/Mage/src/main/java/mage/cards/ExpansionSet.java +++ b/Mage/src/main/java/mage/cards/ExpansionSet.java @@ -36,6 +36,7 @@ import mage.util.RandomUtil; import java.io.Serializable; import java.util.*; +import java.util.stream.Collectors; /** * @author BetaSteward_at_googlemail.com @@ -160,13 +161,7 @@ public abstract class ExpansionSet implements Serializable { } public List findCardInfoByClass(Class clazz) { - ArrayList result = new ArrayList<>(); - for (SetCardInfo info : cards) { - if (info.getCardClass().equals(clazz)) { - result.add(info); - } - } - return result; + return cards.stream().filter(info -> info.getCardClass().equals(clazz)).collect(Collectors.toList()); } public List create15CardBooster() { diff --git a/Mage/src/main/java/mage/cards/SplitCard.java b/Mage/src/main/java/mage/cards/SplitCard.java index 8a29fad7876..d608390039d 100644 --- a/Mage/src/main/java/mage/cards/SplitCard.java +++ b/Mage/src/main/java/mage/cards/SplitCard.java @@ -48,11 +48,15 @@ public abstract class SplitCard extends CardImpl { protected Card leftHalfCard; protected Card rightHalfCard; - public SplitCard(UUID ownerId, CardSetInfo setInfo, CardType[] cardTypes, String costsLeft, String costsRight, boolean fused) { - super(ownerId, setInfo, cardTypes, costsLeft + costsRight, (fused ? SpellAbilityType.SPLIT_FUSED : SpellAbilityType.SPLIT)); + public SplitCard(UUID ownerId, CardSetInfo setInfo, CardType[] cardTypes, String costsLeft, String costsRight, SpellAbilityType spellAbilityType) { + this(ownerId, setInfo, cardTypes, cardTypes, costsLeft, costsRight, spellAbilityType); + } + + public SplitCard(UUID ownerId, CardSetInfo setInfo, CardType[] typesLeft, CardType[] typesRight, String costsLeft, String costsRight, SpellAbilityType spellAbilityType) { + super(ownerId, setInfo, CardType.mergeTypes(typesLeft, typesRight), costsLeft + costsRight, spellAbilityType); String[] names = setInfo.getName().split(" // "); - leftHalfCard = new SplitCardHalfImpl(this.getOwnerId(), new CardSetInfo(names[0], setInfo.getExpansionSetCode(), setInfo.getCardNumber(), setInfo.getRarity(), setInfo.getGraphicInfo()), cardTypes, costsLeft, this, SpellAbilityType.SPLIT_LEFT); - rightHalfCard = new SplitCardHalfImpl(this.getOwnerId(), new CardSetInfo(names[1], setInfo.getExpansionSetCode(), setInfo.getCardNumber(), setInfo.getRarity(), setInfo.getGraphicInfo()), cardTypes, costsRight, this, SpellAbilityType.SPLIT_RIGHT); + leftHalfCard = new SplitCardHalfImpl(this.getOwnerId(), new CardSetInfo(names[0], setInfo.getExpansionSetCode(), setInfo.getCardNumber(), setInfo.getRarity(), setInfo.getGraphicInfo()), typesLeft, costsLeft, this, SpellAbilityType.SPLIT_LEFT); + rightHalfCard = new SplitCardHalfImpl(this.getOwnerId(), new CardSetInfo(names[1], setInfo.getExpansionSetCode(), setInfo.getCardNumber(), setInfo.getRarity(), setInfo.getGraphicInfo()), typesRight, costsRight, this, SpellAbilityType.SPLIT_RIGHT); this.splitCard = true; } @@ -130,7 +134,9 @@ public abstract class SplitCard extends CardImpl { public Abilities getAbilities() { Abilities allAbilites = new AbilitiesImpl<>(); for (Ability ability : super.getAbilities()) { - if (ability instanceof SpellAbility && ((SpellAbility) ability).getSpellAbilityType() != SpellAbilityType.SPLIT) { + if (ability instanceof SpellAbility + && ((SpellAbility) ability).getSpellAbilityType() != SpellAbilityType.SPLIT + && ((SpellAbility) ability).getSpellAbilityType() != SpellAbilityType.SPLIT_AFTERMATH) { allAbilites.add(ability); } } @@ -139,11 +145,24 @@ public abstract class SplitCard extends CardImpl { return allAbilites; } + /** + * Currently only gets the fuse SpellAbility if there is one, but generally + * gets any abilities on a split card as a whole, and not on either half + * individually. + * + * @return + */ + public Abilities getSharedAbilities() { + return super.getAbilities(); + } + @Override public Abilities getAbilities(Game game) { Abilities allAbilites = new AbilitiesImpl<>(); for (Ability ability : super.getAbilities(game)) { - if (ability instanceof SpellAbility && ((SpellAbility) ability).getSpellAbilityType() != SpellAbilityType.SPLIT) { + if (ability instanceof SpellAbility + && ((SpellAbility) ability).getSpellAbilityType() != SpellAbilityType.SPLIT + && ((SpellAbility) ability).getSpellAbilityType() != SpellAbilityType.SPLIT_AFTERMATH) { allAbilites.add(ability); } } diff --git a/Mage/src/main/java/mage/cards/SplitCardHalf.java b/Mage/src/main/java/mage/cards/SplitCardHalf.java index a0593f22d53..6baee1c2949 100644 --- a/Mage/src/main/java/mage/cards/SplitCardHalf.java +++ b/Mage/src/main/java/mage/cards/SplitCardHalf.java @@ -15,4 +15,6 @@ public interface SplitCardHalf extends Card { SplitCardHalf copy(); void setParentCard(SplitCard card); + + SplitCard getParentCard(); } diff --git a/Mage/src/main/java/mage/cards/SplitCardHalfImpl.java b/Mage/src/main/java/mage/cards/SplitCardHalfImpl.java index 0dcb22f2d66..bf8e5a40eee 100644 --- a/Mage/src/main/java/mage/cards/SplitCardHalfImpl.java +++ b/Mage/src/main/java/mage/cards/SplitCardHalfImpl.java @@ -82,4 +82,8 @@ public class SplitCardHalfImpl extends CardImpl implements SplitCardHalf { this.splitCardParent = card; } + @Override + public SplitCard getParentCard() { + return this.splitCardParent; + } } diff --git a/Mage/src/main/java/mage/cards/basiclands/BasicLand.java b/Mage/src/main/java/mage/cards/basiclands/BasicLand.java index b83da192632..b4b76bac543 100644 --- a/Mage/src/main/java/mage/cards/basiclands/BasicLand.java +++ b/Mage/src/main/java/mage/cards/basiclands/BasicLand.java @@ -34,16 +34,16 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.abilities.mana.ActivatedManaAbilityImpl; import mage.cards.CardImpl; +import mage.constants.SuperType; /** - * * @author BetaSteward_at_googlemail.com */ public abstract class BasicLand extends CardImpl { public BasicLand(UUID ownerId, CardSetInfo setInfo, ActivatedManaAbilityImpl mana) { super(ownerId, setInfo, new CardType[]{CardType.LAND}, null); - this.supertype.add("Basic"); + addSuperType(SuperType.BASIC); this.subtype.add(name); this.addAbility(mana); } diff --git a/Mage/src/main/java/mage/cards/mock/MockSplitCard.java b/Mage/src/main/java/mage/cards/mock/MockSplitCard.java index 97fc4eb52af..73a4e895535 100644 --- a/Mage/src/main/java/mage/cards/mock/MockSplitCard.java +++ b/Mage/src/main/java/mage/cards/mock/MockSplitCard.java @@ -8,6 +8,7 @@ import mage.cards.SplitCard; import mage.cards.repository.CardInfo; import mage.cards.repository.CardRepository; import mage.constants.CardType; +import mage.constants.SpellAbilityType; /** * @@ -20,7 +21,7 @@ public class MockSplitCard extends SplitCard { card.getTypes().toArray(new CardType[0]), join(card.getManaCosts()), "", - join(card.getRules()).contains("Fuse")); + getSpellAbilityType(card)); this.expansionSetCode = card.getSetCode(); this.power = mageIntFromString(card.getPower()); this.toughness = mageIntFromString(card.getToughness()); @@ -77,6 +78,16 @@ public class MockSplitCard extends SplitCard { } } + private static SpellAbilityType getSpellAbilityType(CardInfo cardInfo) { + if (cardInfo.isSplitFuseCard()) { + return SpellAbilityType.SPLIT_FUSED; + } + if (cardInfo.isSplitAftermathCard()) { + return SpellAbilityType.SPLIT_AFTERMATH; + } + return SpellAbilityType.SPLIT; + } + private static String join(List strings) { StringBuilder sb = new StringBuilder(); for (String string : strings) { diff --git a/Mage/src/main/java/mage/cards/mock/MockSplitCardHalf.java b/Mage/src/main/java/mage/cards/mock/MockSplitCardHalf.java index c6d677679d4..633b630bdbf 100644 --- a/Mage/src/main/java/mage/cards/mock/MockSplitCardHalf.java +++ b/Mage/src/main/java/mage/cards/mock/MockSplitCardHalf.java @@ -55,4 +55,9 @@ public class MockSplitCardHalf extends MockCard implements SplitCardHalf { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } + @Override + public SplitCard getParentCard() { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + } diff --git a/Mage/src/main/java/mage/cards/repository/CardInfo.java b/Mage/src/main/java/mage/cards/repository/CardInfo.java index 139f2b32485..651a83424a3 100644 --- a/Mage/src/main/java/mage/cards/repository/CardInfo.java +++ b/Mage/src/main/java/mage/cards/repository/CardInfo.java @@ -30,9 +30,7 @@ package mage.cards.repository; import com.j256.ormlite.field.DataType; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.table.DatabaseTable; - import java.util.*; - import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.SpellAbility; @@ -47,10 +45,10 @@ import mage.cards.mock.MockSplitCard; import mage.constants.CardType; import mage.constants.Rarity; import mage.constants.SpellAbilityType; +import mage.constants.SuperType; import org.apache.log4j.Logger; /** - * * @author North */ @DatabaseTable(tableName = "card") @@ -106,6 +104,10 @@ public class CardInfo { @DatabaseField protected boolean splitCard; @DatabaseField + protected boolean splitCardFuse; + @DatabaseField + protected boolean splitCardAftermath; + @DatabaseField protected boolean splitCardHalf; @DatabaseField protected boolean flipCard; @@ -131,6 +133,8 @@ public class CardInfo { this.convertedManaCost = card.getConvertedManaCost(); this.rarity = card.getRarity(); this.splitCard = card.isSplitCard(); + this.splitCardFuse = card.getSpellAbility() != null && card.getSpellAbility().getSpellAbilityType() == SpellAbilityType.SPLIT_FUSED; + this.splitCardAftermath = card.getSpellAbility() != null && card.getSpellAbility().getSpellAbilityType() == SpellAbilityType.SPLIT_AFTERMATH; this.flipCard = card.isFlipCard(); this.flipCardName = card.getFlipCardName(); @@ -153,7 +157,7 @@ public class CardInfo { this.setTypes(card.getCardType()); this.setSubtypes(card.getSubtype(null)); - this.setSuperTypes(card.getSupertype()); + this.setSuperTypes(card.getSuperType()); this.setManaCosts(card.getManaCost().getSymbols()); int length = 0; @@ -249,6 +253,7 @@ public class CardInfo { if (list.isEmpty()) { return Collections.emptyList(); } + return Arrays.asList(list.split(SEPARATOR)); } @@ -311,12 +316,23 @@ public class CardInfo { this.subtypes = joinList(subtypes); } - public final List getSupertypes() { - return parseList(supertypes); + public final EnumSet getSupertypes() { + EnumSet list = EnumSet.noneOf(SuperType.class); + for (String type : this.supertypes.split(SEPARATOR)) { + try { + list.add(SuperType.valueOf(type)); + } catch (IllegalArgumentException e) { + } + } + return list; } - public final void setSuperTypes(List superTypes) { - this.supertypes = joinList(superTypes); + public final void setSuperTypes(Set superTypes) { + StringBuilder sb = new StringBuilder(); + for (SuperType item : superTypes) { + sb.append(item.name()).append(SEPARATOR); + } + this.supertypes = sb.toString(); } public String getToughness() { @@ -343,6 +359,14 @@ public class CardInfo { return splitCard; } + public boolean isSplitFuseCard() { + return splitCardFuse; + } + + public boolean isSplitAftermathCard() { + return splitCardAftermath; + } + public boolean isSplitCardHalf() { return splitCardHalf; } diff --git a/Mage/src/main/java/mage/cards/repository/CardRepository.java b/Mage/src/main/java/mage/cards/repository/CardRepository.java index 030fefbf9fe..046a996b547 100644 --- a/Mage/src/main/java/mage/cards/repository/CardRepository.java +++ b/Mage/src/main/java/mage/cards/repository/CardRepository.java @@ -37,12 +37,9 @@ import com.j256.ormlite.stmt.Where; import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.support.DatabaseConnection; import com.j256.ormlite.table.TableUtils; - import java.io.File; import java.sql.SQLException; import java.util.*; -import java.util.concurrent.Callable; - import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SetType; @@ -59,9 +56,9 @@ public enum CardRepository { private static final String JDBC_URL = "jdbc:h2:file:./db/cards.h2;AUTO_SERVER=TRUE"; private static final String VERSION_ENTITY_NAME = "card"; // raise this if db structure was changed - private static final long CARD_DB_VERSION = 50; + private static final long CARD_DB_VERSION = 51; // raise this if new cards were added to the server - private static final long CARD_CONTENT_VERSION = 70; + private static final long CARD_CONTENT_VERSION = 76; private final TreeSet landTypes = new TreeSet<>(); private Dao cardDao; private Set classNames; @@ -206,6 +203,29 @@ public enum CardRepository { return names; } + public Set getArtifactNames() { + Set names = new TreeSet<>(); + try { + QueryBuilder qb = cardDao.queryBuilder(); + qb.distinct().selectColumns("name"); + qb.where().like("types", new SelectArg('%' + CardType.ARTIFACT.name() + '%')); + List results = cardDao.query(qb.prepare()); + for (CardInfo card : results) { + int result = card.getName().indexOf(" // "); + if (result > 0) { + names.add(card.getName().substring(0, result)); + names.add(card.getName().substring(result + 4)); + } else { + names.add(card.getName()); + } + } + } catch (SQLException ex) { + Logger.getLogger(CardRepository.class).error("Error getting artifact names from DB : " + ex); + + } + return names; + } + public Set getNonLandAndNonCreatureNames() { Set names = new TreeSet<>(); try { @@ -399,6 +419,24 @@ public enum CardRepository { } return null; } + + public CardInfo findCardWPreferredSet(String name, String expansion, boolean caseInsensitive) { + List cards; + if (caseInsensitive) { + cards = findCardsCaseInsensitive(name); + } else { + cards = findCards(name); + } + if (!cards.isEmpty()) { + CardInfo cardToUse = null; + for (CardInfo cardinfo : cards) { + if (cardinfo.getSetCode() != null && expansion != null && expansion.equalsIgnoreCase(cardinfo.getSetCode())) { + return cardinfo; + } + } + } + return findPreferedCoreExpansionCard(name, true); + } public List findCards(String name) { try { diff --git a/Mage/src/main/java/mage/constants/CardType.java b/Mage/src/main/java/mage/constants/CardType.java index fbbf0f7ed85..29e19bc8cb5 100644 --- a/Mage/src/main/java/mage/constants/CardType.java +++ b/Mage/src/main/java/mage/constants/CardType.java @@ -1,5 +1,9 @@ package mage.constants; +import java.util.Arrays; +import java.util.EnumSet; +import java.util.HashSet; + /** * * @author North @@ -26,4 +30,15 @@ public enum CardType { return text; } + /** + * Returns all of the card types from two lists of card types. + * Duplicates are eliminated. + */ + public static CardType[] mergeTypes(CardType[] a, CardType[] b) { + EnumSet cardTypes = EnumSet.noneOf(CardType.class); + cardTypes.addAll(Arrays.asList(a)); + cardTypes.addAll(Arrays.asList(b)); + return cardTypes.toArray(new CardType[0]); + } + } diff --git a/Mage/src/main/java/mage/constants/ComparisonType.java b/Mage/src/main/java/mage/constants/ComparisonType.java new file mode 100644 index 00000000000..7f62a51f2ca --- /dev/null +++ b/Mage/src/main/java/mage/constants/ComparisonType.java @@ -0,0 +1,33 @@ +package mage.constants; + +/** + * Created by IGOUDT on 5-3-2017. + */ +public enum ComparisonType { + MORE_THAN(">"), FEWER_THAN("<"), EQUAL_TO("=="); + + String operator; + + ComparisonType(String op) { + operator = op; + } + + @Override + public String toString() { + return operator; + } + + + public static boolean compare(int source, ComparisonType comparison, int target) { + switch (comparison) { + case MORE_THAN: + return source > target; + case FEWER_THAN: + return source < target; + case EQUAL_TO: + return source == target; + default: + throw new IllegalArgumentException("comparison rules for " + comparison + " missing"); + } + } +} diff --git a/Mage/src/main/java/mage/constants/SpellAbilityType.java b/Mage/src/main/java/mage/constants/SpellAbilityType.java index 9f535b4e448..448b3c95c04 100644 --- a/Mage/src/main/java/mage/constants/SpellAbilityType.java +++ b/Mage/src/main/java/mage/constants/SpellAbilityType.java @@ -9,6 +9,7 @@ public enum SpellAbilityType { BASE_ALTERNATE("Basic SpellAbility Alternate"), // used for Overload, Flashback to know they must be handled as Alternate casting costs FACE_DOWN_CREATURE("Face down creature"), // used for Lands with Morph to cast as Face Down creature SPLIT("Split SpellAbility"), + SPLIT_AFTERMATH("AftermathSplit SpellAbility"), SPLIT_FUSED("Split SpellAbility"), SPLIT_LEFT("LeftSplit SpellAbility"), SPLIT_RIGHT("RightSplit SpellAbility"), diff --git a/Mage/src/main/java/mage/constants/SuperType.java b/Mage/src/main/java/mage/constants/SuperType.java new file mode 100644 index 00000000000..773d871d288 --- /dev/null +++ b/Mage/src/main/java/mage/constants/SuperType.java @@ -0,0 +1,25 @@ +package mage.constants; + +/** + * Created by IGOUDT on 26-3-2017. + */ +public enum SuperType { + + BASIC("Basic"), + ELITE("Elite"), + LEGENDARY("Legendary"), + ONGOING("Ongoing"), + SNOW("Snow"), + WORLD("World"); + + String text; + + SuperType(String text){ + this.text = text; + } + + public String toString(){ + return text; + } + +} diff --git a/Mage/src/main/java/mage/counters/CounterType.java b/Mage/src/main/java/mage/counters/CounterType.java index 33897e6a21f..915d1452580 100644 --- a/Mage/src/main/java/mage/counters/CounterType.java +++ b/Mage/src/main/java/mage/counters/CounterType.java @@ -41,6 +41,7 @@ public enum CounterType { BLAZE("blaze"), BOUNTY("bounty"), BRIBERY("bribery"), + BRICK("brick"), CARRION("carrion"), CHARGE("charge"), CORPSE("corpse"), diff --git a/Mage/src/main/java/mage/counters/Counters.java b/Mage/src/main/java/mage/counters/Counters.java index 93667bcb350..d946b49669a 100644 --- a/Mage/src/main/java/mage/counters/Counters.java +++ b/Mage/src/main/java/mage/counters/Counters.java @@ -28,10 +28,10 @@ package mage.counters; import java.io.Serializable; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @author BetaSteward_at_googlemail.com @@ -122,12 +122,9 @@ public class Counters extends HashMap implements Serializable { } public List getBoostCounters() { - List boosters = new ArrayList<>(); - for (Counter counter : this.values()) { - if (counter instanceof BoostCounter) { - boosters.add((BoostCounter) counter); - } - } - return boosters; + return values().stream(). + filter(counter -> counter instanceof BoostCounter). + map(counter -> (BoostCounter) counter). + collect(Collectors.toList()); } } diff --git a/Mage/src/main/java/mage/designations/Designation.java b/Mage/src/main/java/mage/designations/Designation.java index 5792e2b52f2..856c0f2e607 100644 --- a/Mage/src/main/java/mage/designations/Designation.java +++ b/Mage/src/main/java/mage/designations/Designation.java @@ -18,6 +18,7 @@ import mage.abilities.costs.mana.ManaCosts; import mage.abilities.costs.mana.ManaCostsImpl; import mage.cards.FrameStyle; import mage.constants.CardType; +import mage.constants.SuperType; import mage.game.Game; import mage.game.events.ZoneChangeEvent; import mage.util.GameLog; @@ -31,7 +32,7 @@ public abstract class Designation implements MageObject { private static EnumSet emptySet = EnumSet.noneOf(CardType.class); private static List emptyList = new ArrayList(); private static ObjectColor emptyColor = new ObjectColor(); - private static ManaCosts emptyCost = new ManaCostsImpl(); + private static ManaCostsImpl emptyCost = new ManaCostsImpl(); private String name; private UUID id; @@ -133,8 +134,8 @@ public abstract class Designation implements MageObject { } @Override - public List getSupertype() { - return emptyList; + public EnumSet getSuperType() { + return EnumSet.noneOf(SuperType.class); } @Override diff --git a/Mage/src/main/java/mage/filter/Filter.java b/Mage/src/main/java/mage/filter/Filter.java index 83c7d8ee528..3f701fa69b6 100644 --- a/Mage/src/main/java/mage/filter/Filter.java +++ b/Mage/src/main/java/mage/filter/Filter.java @@ -27,37 +27,18 @@ */ package mage.filter; -import java.io.Serializable; import mage.filter.predicate.Predicate; import mage.game.Game; +import java.io.Serializable; + /** - * + * @param * @author BetaSteward_at_googlemail.com * @author North - * - * @param */ public interface Filter extends Serializable { - enum ComparisonType { - - GreaterThan(">"), - Equal("=="), - LessThan("<"); - - private final String text; - - ComparisonType(String text) { - this.text = text; - } - - @Override - public String toString() { - return text; - } - } - enum ComparisonScope { Any, All } diff --git a/Mage/src/main/java/mage/filter/StaticFilters.java b/Mage/src/main/java/mage/filter/StaticFilters.java index aaf639ea764..94e9a610f29 100644 --- a/Mage/src/main/java/mage/filter/StaticFilters.java +++ b/Mage/src/main/java/mage/filter/StaticFilters.java @@ -16,6 +16,8 @@ import mage.filter.common.FilterCreatureSpell; import mage.filter.common.FilterNonlandCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.filter.predicate.permanent.AttackingPredicate; +import mage.filter.predicate.permanent.TokenPredicate; /** * @@ -38,7 +40,15 @@ public final class StaticFilters { public static final FilterCreatureSpell FILTER_SPELL_A_CREATURE = new FilterCreatureSpell("a creature spell"); + public static final FilterPermanent FILTER_CREATURE_TOKENS = new FilterCreaturePermanent("creature tokens"); + + public static final FilterPermanent FILTER_ATTACKING_CREATURES = new FilterCreaturePermanent("attacking creatures"); + static { + FILTER_CREATURE_TOKENS.add(new TokenPredicate()); + + FILTER_ATTACKING_CREATURES.add(new AttackingPredicate()); + FILTER_PERMANENT_ARTIFACT_OR_CREATURE.add(Predicates.or( new CardTypePredicate(CardType.ARTIFACT), new CardTypePredicate(CardType.CREATURE) diff --git a/Mage/src/main/java/mage/filter/common/FilterBasicLandCard.java b/Mage/src/main/java/mage/filter/common/FilterBasicLandCard.java index 9c4a4dc52c0..2dd3e81b43e 100644 --- a/Mage/src/main/java/mage/filter/common/FilterBasicLandCard.java +++ b/Mage/src/main/java/mage/filter/common/FilterBasicLandCard.java @@ -28,6 +28,7 @@ package mage.filter.common; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; @@ -45,7 +46,7 @@ public class FilterBasicLandCard extends FilterCard { public FilterBasicLandCard(String name) { super(name); this.add(new CardTypePredicate(CardType.LAND)); - this.add(new SupertypePredicate("Basic")); + this.add(new SupertypePredicate(SuperType.BASIC)); } public FilterBasicLandCard(final FilterBasicLandCard filter) { diff --git a/Mage/src/main/java/mage/filter/common/FilterLandCard.java b/Mage/src/main/java/mage/filter/common/FilterLandCard.java index 0d6525cc427..b56d74fef4b 100644 --- a/Mage/src/main/java/mage/filter/common/FilterLandCard.java +++ b/Mage/src/main/java/mage/filter/common/FilterLandCard.java @@ -29,6 +29,7 @@ package mage.filter.common; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterCard; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; @@ -50,7 +51,7 @@ public class FilterLandCard extends FilterCard { public static FilterLandCard basicLandCard() { FilterLandCard filter = new FilterLandCard("basic land card"); - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); return filter; } diff --git a/Mage/src/main/java/mage/filter/common/FilterLandPermanent.java b/Mage/src/main/java/mage/filter/common/FilterLandPermanent.java index 1c35a2e11f5..5bac9141100 100644 --- a/Mage/src/main/java/mage/filter/common/FilterLandPermanent.java +++ b/Mage/src/main/java/mage/filter/common/FilterLandPermanent.java @@ -29,6 +29,7 @@ package mage.filter.common; import mage.constants.CardType; +import mage.constants.SuperType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -57,13 +58,13 @@ public class FilterLandPermanent extends FilterPermanent { public static FilterLandPermanent nonbasicLand() { FilterLandPermanent filter = new FilterLandPermanent("nonbasic land"); - filter.add(Predicates.not(new SupertypePredicate("Basic"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); return filter; } public static FilterLandPermanent nonbasicLands() { FilterLandPermanent filter = new FilterLandPermanent("nonbasic lands"); - filter.add(Predicates.not(new SupertypePredicate("Basic"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); return filter; } diff --git a/Mage/src/main/java/mage/filter/predicate/IntComparePredicate.java b/Mage/src/main/java/mage/filter/predicate/IntComparePredicate.java index 47e376f5115..fdf5d32d194 100644 --- a/Mage/src/main/java/mage/filter/predicate/IntComparePredicate.java +++ b/Mage/src/main/java/mage/filter/predicate/IntComparePredicate.java @@ -28,7 +28,7 @@ package mage.filter.predicate; import mage.MageObject; -import mage.filter.Filter; +import mage.constants.ComparisonType; import mage.game.Game; /** @@ -38,10 +38,10 @@ import mage.game.Game; */ public abstract class IntComparePredicate implements Predicate { - protected final Filter.ComparisonType type; + protected final ComparisonType type; protected final int value; - public IntComparePredicate(Filter.ComparisonType type, int value) { + public IntComparePredicate(ComparisonType type, int value) { this.type = type; this.value = value; } @@ -51,24 +51,7 @@ public abstract class IntComparePredicate implements Predi @Override public final boolean apply(T input, Game game) { int inputValue = getInputValue(input); - switch (type) { - case Equal: - if (inputValue != value) { - return false; - } - break; - case GreaterThan: - if (inputValue <= value) { - return false; - } - break; - case LessThan: - if (inputValue >= value) { - return false; - } - break; - } - return true; + return ComparisonType.compare(inputValue, type, value); } @Override diff --git a/Mage/src/main/java/mage/filter/predicate/mageobject/AttachmentAttachedToCardTypePredicate.java b/Mage/src/main/java/mage/filter/predicate/mageobject/AttachmentAttachedToCardTypePredicate.java new file mode 100644 index 00000000000..943a49d467f --- /dev/null +++ b/Mage/src/main/java/mage/filter/predicate/mageobject/AttachmentAttachedToCardTypePredicate.java @@ -0,0 +1,31 @@ +package mage.filter.predicate.mageobject; + +import mage.constants.CardType; +import mage.filter.predicate.Predicate; +import mage.game.Game; +import mage.game.permanent.Permanent; + +public class AttachmentAttachedToCardTypePredicate implements Predicate { + + private final CardType cardType; + + public AttachmentAttachedToCardTypePredicate(CardType cardType) { + this.cardType = cardType; + } + + @Override + public boolean apply(Permanent input, Game game) { + if (input.getAttachedTo() != null) { + Permanent attachedTo = game.getPermanent(input.getAttachedTo()); + if (attachedTo != null && attachedTo.getCardType().contains(cardType)) { + return true; + } + } + return false; + } + + @Override + public String toString() { + return "AttachmentAttachedToCardType(" + cardType + ')'; + } +} diff --git a/Mage/src/main/java/mage/filter/predicate/mageobject/ConvertedManaCostPredicate.java b/Mage/src/main/java/mage/filter/predicate/mageobject/ConvertedManaCostPredicate.java index 3524d26dedf..615b7881d57 100644 --- a/Mage/src/main/java/mage/filter/predicate/mageobject/ConvertedManaCostPredicate.java +++ b/Mage/src/main/java/mage/filter/predicate/mageobject/ConvertedManaCostPredicate.java @@ -28,7 +28,7 @@ package mage.filter.predicate.mageobject; import mage.MageObject; -import mage.filter.Filter; +import mage.constants.ComparisonType; import mage.filter.predicate.IntComparePredicate; /** @@ -37,7 +37,7 @@ import mage.filter.predicate.IntComparePredicate; */ public class ConvertedManaCostPredicate extends IntComparePredicate { - public ConvertedManaCostPredicate(Filter.ComparisonType type, int value) { + public ConvertedManaCostPredicate(ComparisonType type, int value) { super(type, value); } diff --git a/Mage/src/main/java/mage/filter/predicate/mageobject/PowerPredicate.java b/Mage/src/main/java/mage/filter/predicate/mageobject/PowerPredicate.java index 8e696050760..f8b9d3826ae 100644 --- a/Mage/src/main/java/mage/filter/predicate/mageobject/PowerPredicate.java +++ b/Mage/src/main/java/mage/filter/predicate/mageobject/PowerPredicate.java @@ -28,7 +28,7 @@ package mage.filter.predicate.mageobject; import mage.MageObject; -import mage.filter.Filter; +import mage.constants.ComparisonType; import mage.filter.predicate.IntComparePredicate; /** @@ -37,7 +37,7 @@ import mage.filter.predicate.IntComparePredicate; */ public class PowerPredicate extends IntComparePredicate { - public PowerPredicate(Filter.ComparisonType type, int value) { + public PowerPredicate(ComparisonType type, int value) { super(type, value); } diff --git a/Mage/src/main/java/mage/filter/predicate/mageobject/SupertypePredicate.java b/Mage/src/main/java/mage/filter/predicate/mageobject/SupertypePredicate.java index e787b6a6687..1622537a034 100644 --- a/Mage/src/main/java/mage/filter/predicate/mageobject/SupertypePredicate.java +++ b/Mage/src/main/java/mage/filter/predicate/mageobject/SupertypePredicate.java @@ -28,6 +28,7 @@ package mage.filter.predicate.mageobject; import mage.MageObject; +import mage.constants.SuperType; import mage.filter.predicate.Predicate; import mage.game.Game; @@ -37,15 +38,15 @@ import mage.game.Game; */ public class SupertypePredicate implements Predicate { - private final String supertype; + private final SuperType supertype; - public SupertypePredicate(String supertype) { + public SupertypePredicate(SuperType supertype) { this.supertype = supertype; } @Override public boolean apply(MageObject input, Game game) { - return input.getSupertype().contains(supertype); + return input.getSuperType().contains(supertype); } @Override diff --git a/Mage/src/main/java/mage/filter/predicate/mageobject/ToughnessPredicate.java b/Mage/src/main/java/mage/filter/predicate/mageobject/ToughnessPredicate.java index a17d2ca73f5..8cc1363eb1e 100644 --- a/Mage/src/main/java/mage/filter/predicate/mageobject/ToughnessPredicate.java +++ b/Mage/src/main/java/mage/filter/predicate/mageobject/ToughnessPredicate.java @@ -28,7 +28,7 @@ package mage.filter.predicate.mageobject; import mage.MageObject; -import mage.filter.Filter; +import mage.constants.ComparisonType; import mage.filter.predicate.IntComparePredicate; /** @@ -37,7 +37,7 @@ import mage.filter.predicate.IntComparePredicate; */ public class ToughnessPredicate extends IntComparePredicate { - public ToughnessPredicate(Filter.ComparisonType type, int value) { + public ToughnessPredicate(ComparisonType type, int value) { super(type, value); } diff --git a/Mage/src/main/java/mage/game/Game.java b/Mage/src/main/java/mage/game/Game.java index e813e7becdd..87040399b57 100644 --- a/Mage/src/main/java/mage/game/Game.java +++ b/Mage/src/main/java/mage/game/Game.java @@ -28,13 +28,7 @@ package mage.game; import java.io.Serializable; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; +import java.util.*; import mage.MageItem; import mage.MageObject; import mage.abilities.Ability; @@ -50,11 +44,7 @@ import mage.cards.Cards; import mage.cards.MeldCard; import mage.cards.decks.Deck; import mage.choices.Choice; -import mage.constants.Duration; -import mage.constants.MultiplayerAttackOption; -import mage.constants.PlayerAction; -import mage.constants.RangeOfInfluence; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.Counters; import mage.game.combat.Combat; import mage.game.command.Commander; @@ -128,7 +118,7 @@ public interface Game extends MageItem, Serializable { Card getCard(UUID cardId); - Ability getAbility(UUID abilityId, UUID sourceId); + Optional getAbility(UUID abilityId, UUID sourceId); void setZone(UUID objectId, Zone zone); @@ -402,7 +392,7 @@ public interface Game extends MageItem, Serializable { void playPriority(UUID activePlayerId, boolean resuming); - boolean endTurn(); + boolean endTurn(Ability source); int doAction(MageAction action); diff --git a/Mage/src/main/java/mage/game/GameImpl.java b/Mage/src/main/java/mage/game/GameImpl.java index cd955996c95..94e933ea9cc 100644 --- a/Mage/src/main/java/mage/game/GameImpl.java +++ b/Mage/src/main/java/mage/game/GameImpl.java @@ -27,6 +27,10 @@ */ package mage.game; +import java.io.IOException; +import java.io.Serializable; +import java.util.*; +import java.util.Map.Entry; import mage.MageException; import mage.MageObject; import mage.abilities.*; @@ -92,11 +96,6 @@ import mage.watchers.Watchers; import mage.watchers.common.*; import org.apache.log4j.Logger; -import java.io.IOException; -import java.io.Serializable; -import java.util.*; -import java.util.Map.Entry; - public abstract class GameImpl implements Game, Serializable { private static final int ROLLBACK_TURNS_MAX = 4; @@ -118,7 +117,7 @@ public abstract class GameImpl implements Game, Serializable { FILTER_FORTIFICATION.add(new CardTypePredicate(CardType.ARTIFACT)); FILTER_FORTIFICATION.add(new SubtypePredicate("Fortification")); - FILTER_LEGENDARY.add(new SupertypePredicate("Legendary")); + FILTER_LEGENDARY.add(new SupertypePredicate(SuperType.LEGENDARY)); } private transient Object customData; @@ -503,12 +502,12 @@ public abstract class GameImpl implements Game, Serializable { } @Override - public Ability getAbility(UUID abilityId, UUID sourceId) { + public Optional getAbility(UUID abilityId, UUID sourceId) { MageObject object = getObject(sourceId); if (object != null) { return object.getAbilities().get(abilityId); } - return null; + return Optional.empty(); } // @Override @@ -1455,7 +1454,7 @@ public abstract class GameImpl implements Game, Serializable { } } if (applier != null) { - applier.apply(this, newBluePrint); + applier.apply(this, newBluePrint, source, copyToPermanentId); } CopyEffect newEffect = new CopyEffect(duration, newBluePrint, copyToPermanentId); @@ -1733,7 +1732,7 @@ public abstract class GameImpl implements Game, Serializable { } planeswalkers.add(perm); } - if (perm.getSupertype().contains("World")) { + if (perm.isWorld()) { worldEnchantment.add(perm); } if (FILTER_AURA.match(perm, this)) { @@ -1931,7 +1930,7 @@ public abstract class GameImpl implements Game, Serializable { if (legendary.size() > 1) { //don't bother checking if less than 2 legends in play for (Permanent legend : legendary) { FilterPermanent filterLegendName = new FilterPermanent(); - filterLegendName.add(new SupertypePredicate("Legendary")); + filterLegendName.add(new SupertypePredicate(SuperType.LEGENDARY)); filterLegendName.add(new NamePredicate(legend.getName())); filterLegendName.add(new ControllerIdPredicate(legend.getControllerId())); if (getBattlefield().contains(filterLegendName, legend.getControllerId(), this, 2)) { @@ -2336,10 +2335,10 @@ public abstract class GameImpl implements Game, Serializable { } } - Iterator it = gameCards.entrySet().iterator(); + Iterator> it = gameCards.entrySet().iterator(); while (it.hasNext()) { - Entry entry = (Entry) it.next(); + Entry entry = it.next(); Card card = entry.getValue(); if (card.getOwnerId().equals(playerId)) { it.remove(); @@ -2672,8 +2671,8 @@ public abstract class GameImpl implements Game, Serializable { } @Override - public boolean endTurn() { - getTurn().endTurn(this, getActivePlayerId()); + public boolean endTurn(Ability source) { + getTurn().endTurn(this, getActivePlayerId(), source); return true; } diff --git a/Mage/src/main/java/mage/game/GameTinyLeadersImpl.java b/Mage/src/main/java/mage/game/GameTinyLeadersImpl.java index 70038ac6431..95cc851ec8f 100644 --- a/Mage/src/main/java/mage/game/GameTinyLeadersImpl.java +++ b/Mage/src/main/java/mage/game/GameTinyLeadersImpl.java @@ -41,12 +41,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.repository.CardInfo; import mage.cards.repository.CardRepository; -import mage.constants.CardType; -import mage.constants.MultiplayerAttackOption; -import mage.constants.PhaseStep; -import mage.constants.RangeOfInfluence; -import mage.constants.Rarity; -import mage.constants.Zone; +import mage.constants.*; import mage.game.turn.TurnMod; import mage.players.Player; import mage.watchers.common.CommanderInfoWatcher; @@ -166,7 +161,7 @@ class DefaultCommander extends CardImpl { public DefaultCommander(UUID ownerId, String commanderName, String manaString) { super(ownerId, new CardSetInfo(commanderName, "", "999", Rarity.RARE), new CardType[]{CardType.CREATURE}, manaString); - this.supertype.add("Legendary"); + this.addSuperType(SuperType.LEGENDARY); if (manaString.contains("{G}")) { this.color.setGreen(true); diff --git a/Mage/src/main/java/mage/game/Seat.java b/Mage/src/main/java/mage/game/Seat.java index f9a3325ac23..1bb28514bc1 100644 --- a/Mage/src/main/java/mage/game/Seat.java +++ b/Mage/src/main/java/mage/game/Seat.java @@ -27,8 +27,10 @@ */ package mage.game; -import java.io.Serializable; import mage.players.Player; +import mage.players.PlayerType; + +import java.io.Serializable; /** * @@ -37,18 +39,18 @@ import mage.players.Player; public class Seat implements Serializable { // private static final Logger logger = Logger.getLogger(Seat.class); - private String playerType; + private PlayerType playerType; private Player player; - public Seat(String playerType) { + public Seat(PlayerType playerType) { this.playerType = playerType; } - public String getPlayerType() { + public PlayerType getPlayerType() { return playerType; } - public void setPlayerType(String playerType) { + public void setPlayerType(PlayerType playerType) { this.playerType = playerType; } diff --git a/Mage/src/main/java/mage/game/Table.java b/Mage/src/main/java/mage/game/Table.java index 7850809ec37..70b639e0c44 100644 --- a/Mage/src/main/java/mage/game/Table.java +++ b/Mage/src/main/java/mage/game/Table.java @@ -27,13 +27,6 @@ */ package mage.game; -import java.io.Serializable; -import java.util.Arrays; -import java.util.Date; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.UUID; import mage.cards.decks.DeckValidator; import mage.constants.TableState; import mage.game.events.Listener; @@ -43,9 +36,12 @@ import mage.game.match.Match; import mage.game.result.ResultProtos.TableProto; import mage.game.tournament.Tournament; import mage.players.Player; +import mage.players.PlayerType; + +import java.io.Serializable; +import java.util.*; /** - * * @author BetaSteward_at_googlemail.com */ public class Table implements Serializable { @@ -74,21 +70,21 @@ public class Table implements Serializable { protected TableEventSource tableEventSource = new TableEventSource(); - public Table(UUID roomId, String gameType, String name, String controllerName, DeckValidator validator, List playerTypes, TableRecorder recorder, Tournament tournament, Set bannedUsernames) { + public Table(UUID roomId, String gameType, String name, String controllerName, DeckValidator validator, List playerTypes, TableRecorder recorder, Tournament tournament, Set bannedUsernames) { this(roomId, gameType, name, controllerName, validator, playerTypes, recorder, bannedUsernames); this.tournament = tournament; this.isTournament = true; setState(TableState.WAITING); } - public Table(UUID roomId, String gameType, String name, String controllerName, DeckValidator validator, List playerTypes, TableRecorder recorder, Match match, Set bannedUsernames) { + public Table(UUID roomId, String gameType, String name, String controllerName, DeckValidator validator, List playerTypes, TableRecorder recorder, Match match, Set bannedUsernames) { this(roomId, gameType, name, controllerName, validator, playerTypes, recorder, bannedUsernames); this.match = match; this.isTournament = false; setState(TableState.WAITING); } - protected Table(UUID roomId, String gameType, String name, String controllerName, DeckValidator validator, List playerTypes, TableRecorder recorder, Set bannedUsernames) { + protected Table(UUID roomId, String gameType, String name, String controllerName, DeckValidator validator, List playerTypes, TableRecorder recorder, Set bannedUsernames) { tableId = UUID.randomUUID(); this.roomId = roomId; this.numSeats = playerTypes.size(); @@ -102,10 +98,10 @@ public class Table implements Serializable { this.bannedUsernames = new HashSet<>(bannedUsernames); } - private void createSeats(List playerTypes) { + private void createSeats(List playerTypes) { int i = 0; seats = new Seat[numSeats]; - for (String playerType : playerTypes) { + for (PlayerType playerType : playerTypes) { seats[i] = new Seat(playerType); i++; } @@ -145,7 +141,6 @@ public class Table implements Serializable { /** * All activities of the table end (only replay of games (if active) and * display tournament results) - * */ public void closeTable() { if (getState() != TableState.WAITING && getState() != TableState.READY_TO_START) { @@ -156,7 +151,6 @@ public class Table implements Serializable { /** * Complete remove of the table, release all objects - * */ public void cleanUp() { if (match != null) { @@ -211,9 +205,9 @@ public class Table implements Serializable { return numSeats; } - public Seat getNextAvailableSeat(String playerType) { + public Seat getNextAvailableSeat(PlayerType playerType) { for (int i = 0; i < numSeats; i++) { - if (seats[i].getPlayer() == null && seats[i].getPlayerType().equals(playerType)) { + if (seats[i].getPlayer() == null && seats[i].getPlayerType() == (playerType)) { return seats[i]; } } diff --git a/Mage/src/main/java/mage/game/combat/Combat.java b/Mage/src/main/java/mage/game/combat/Combat.java index fadac2870fe..bea54bfe652 100644 --- a/Mage/src/main/java/mage/game/combat/Combat.java +++ b/Mage/src/main/java/mage/game/combat/Combat.java @@ -41,7 +41,6 @@ import mage.abilities.Ability; import mage.abilities.effects.RequirementEffect; import mage.abilities.effects.RestrictionEffect; import mage.abilities.keyword.VigilanceAbility; -import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; @@ -288,10 +287,13 @@ public class Combat implements Serializable, Copyable { attackingPermanent.tap(game); // to tap with event finally here is needed to prevent abusing of Vampire Envoy like cards } } + // This can only be used to modify the event, the ttack can't be replaced here + game.replaceEvent(GameEvent.getEvent(GameEvent.EventType.ATTACKER_DECLARED, group.defenderId, attacker, attackingPlayerId)); game.fireEvent(GameEvent.getEvent(GameEvent.EventType.ATTACKER_DECLARED, group.defenderId, attacker, attackingPlayerId)); } } attackersTappedByAttack.clear(); + game.fireEvent(GameEvent.getEvent(GameEvent.EventType.DECLARED_ATTACKERS, attackingPlayerId, attackingPlayerId)); if (!game.isSimulation()) { Player player = game.getPlayer(attackingPlayerId); diff --git a/Mage/src/main/java/mage/game/command/Commander.java b/Mage/src/main/java/mage/game/command/Commander.java index 4d8cdb7e873..ae95ae00be7 100644 --- a/Mage/src/main/java/mage/game/command/Commander.java +++ b/Mage/src/main/java/mage/game/command/Commander.java @@ -27,10 +27,6 @@ */ package mage.game.command; -import java.util.EnumSet; -import java.util.List; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Abilities; @@ -43,22 +39,27 @@ import mage.abilities.costs.mana.ManaCosts; import mage.cards.Card; import mage.cards.FrameStyle; import mage.constants.CardType; +import mage.constants.SuperType; import mage.game.Game; import mage.game.events.ZoneChangeEvent; import mage.util.GameLog; +import java.util.EnumSet; +import java.util.List; +import java.util.UUID; + public class Commander implements CommandObject { private final Card sourceObject; - private final Abilities abilites = new AbilitiesImpl<>(); + private final Abilities abilities = new AbilitiesImpl<>(); public Commander(Card card) { this.sourceObject = card; - abilites.add(new CastCommanderAbility(card)); + abilities.add(new CastCommanderAbility(card)); for (Ability ability : card.getAbilities()) { if (!(ability instanceof SpellAbility)) { Ability newAbility = ability.copy(); - abilites.add(newAbility); + abilities.add(newAbility); } } } @@ -127,13 +128,13 @@ public class Commander implements CommandObject { } @Override - public List getSupertype() { - return sourceObject.getSupertype(); + public EnumSet getSuperType() { + return sourceObject.getSuperType(); } @Override public Abilities getAbilities() { - return abilites; + return abilities; } @Override diff --git a/Mage/src/main/java/mage/game/command/Emblem.java b/Mage/src/main/java/mage/game/command/Emblem.java index c49c1f28d47..599fb8efcff 100644 --- a/Mage/src/main/java/mage/game/command/Emblem.java +++ b/Mage/src/main/java/mage/game/command/Emblem.java @@ -27,8 +27,6 @@ */ package mage.game.command; -import java.util.*; - import mage.MageInt; import mage.MageObject; import mage.ObjectColor; @@ -41,10 +39,16 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.cards.Card; import mage.cards.FrameStyle; import mage.constants.CardType; +import mage.constants.SuperType; import mage.game.Game; import mage.game.events.ZoneChangeEvent; import mage.util.GameLog; +import java.util.ArrayList; +import java.util.EnumSet; +import java.util.List; +import java.util.UUID; + /** * @author nantuko */ @@ -91,7 +95,7 @@ public class Emblem implements CommandObject { this.sourceObject = sourceObject; if (sourceObject instanceof Card) { if (name.isEmpty()) { - name = ((Card) sourceObject).getSubtype(null).toString(); + name = sourceObject.getSubtype(null).toString(); } if (expansionSetCodeForImage.isEmpty()) { expansionSetCodeForImage = ((Card) sourceObject).getExpansionSetCode(); @@ -163,8 +167,8 @@ public class Emblem implements CommandObject { } @Override - public List getSupertype() { - return emptyList; + public EnumSet getSuperType() { + return EnumSet.noneOf(SuperType.class); } @Override diff --git a/Mage/src/main/java/mage/game/draft/DraftCube.java b/Mage/src/main/java/mage/game/draft/DraftCube.java index 2aa75d0dfc2..b84641a05ce 100644 --- a/Mage/src/main/java/mage/game/draft/DraftCube.java +++ b/Mage/src/main/java/mage/game/draft/DraftCube.java @@ -107,11 +107,7 @@ public abstract class DraftCube { if (!cardId.getName().isEmpty()) { CardInfo cardInfo = null; if (!cardId.getExtension().isEmpty()) { - CardCriteria criteria = new CardCriteria().name(cardId.getName()).setCodes(cardId.extension); - List cardList = CardRepository.instance.findCards(criteria); - if (cardList != null && !cardList.isEmpty()) { - cardInfo = cardList.get(0); - } + cardInfo = CardRepository.instance.findCardWPreferredSet(cardId.getName(), cardId.getExtension(), false); } else { cardInfo = CardRepository.instance.findPreferedCoreExpansionCard(cardId.getName(), false); } diff --git a/Mage/src/main/java/mage/game/events/CostEvent.java b/Mage/src/main/java/mage/game/events/CostEvent.java new file mode 100644 index 00000000000..21e65fa5926 --- /dev/null +++ b/Mage/src/main/java/mage/game/events/CostEvent.java @@ -0,0 +1,54 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.events; + +import java.util.UUID; +import mage.abilities.costs.Cost; + +/** + * + * @author LevelX2 + */ +public class CostEvent extends GameEvent { + + protected Cost cost; + + public CostEvent(EventType type, UUID targetId, UUID sourceId, UUID playerId, Cost cost) { + super(type, targetId, sourceId, playerId); + this.cost = cost; + } + + public Cost getCost() { + return cost; + } + + public void setCost(Cost cost) { + this.cost = cost; + } + +} diff --git a/Mage/src/main/java/mage/game/events/GameEvent.java b/Mage/src/main/java/mage/game/events/GameEvent.java index a554d276558..e1cfe5dc0fe 100644 --- a/Mage/src/main/java/mage/game/events/GameEvent.java +++ b/Mage/src/main/java/mage/game/events/GameEvent.java @@ -95,6 +95,7 @@ public class GameEvent implements Serializable { DISCARD_CARD, DISCARDED_CARD, CYCLE_CARD, CYCLED_CARD, + PAY_CYCLE_COST, CAN_PAY_CYCLE_COST, CLASH, CLASHED, DAMAGE_PLAYER, /* DAMAGED_PLAYER @@ -166,7 +167,7 @@ public class GameEvent implements Serializable { mana the mana added */ MANA_ADDED, - /* MANA_PAYED + /* MANA_PAID targetId id if the ability the mana was paid for (not the sourceId) sourceId sourceId of the mana source playerId controller of the ability the mana was paid for @@ -174,7 +175,7 @@ public class GameEvent implements Serializable { flag indicates a special condition data originalId of the mana producing ability */ - MANA_PAYED, + MANA_PAID, LOSES, LOST, WINS, TARGET, TARGETED, /* TARGETS_VALID @@ -239,6 +240,14 @@ public class GameEvent implements Serializable { UNFLIP, UNFLIPPED, TRANSFORM, TRANSFORMED, BECOMES_MONSTROUS, + BECOMES_EXERTED, + /* BECOMES_EXERTED + targetId id of the exerted creature + sourceId id of the exerted creature + playerId playerId of the player that controlls the creature + amount not used for this event + flag not used for this event + */ BECOMES_RENOWNED, /* BECOMES_MONARCH targetId playerId of the player that becomes the monarch @@ -253,6 +262,14 @@ public class GameEvent implements Serializable { PHASE_IN, PHASED_IN, TURNFACEUP, TURNEDFACEUP, TURNFACEDOWN, TURNEDFACEDOWN, + /* OPTION_USED + targetId originalId of the ability that triggered the event + sourceId sourceId of the ability that triggered the event + playerId controller of the ability + amount not used for this event + flag not used for this event + */ + OPTION_USED, DAMAGE_CREATURE, DAMAGED_CREATURE, DAMAGE_PLANESWALKER, DAMAGED_PLANESWALKER, DESTROY_PERMANENT, @@ -273,6 +290,7 @@ public class GameEvent implements Serializable { FIGHTED_PERMANENT, EXPLOITED_CREATURE, EVOLVED_CREATURE, + EMBALMED_CREATURE, ATTACH, ATTACHED, STAY_ATTACHED, UNATTACH, UNATTACHED, @@ -451,12 +469,19 @@ public class GameEvent implements Serializable { return type == EventType.CUSTOM_EVENT && this.customEventType.equals(customEventType); } - public void setAppliedEffects(ArrayList appliedEffects) { - if (this.appliedEffects == null) { - this.appliedEffects = new ArrayList<>(); - } + public void addAppliedEffects(ArrayList appliedEffects) { if (appliedEffects != null) { this.appliedEffects.addAll(appliedEffects); } } + + public void setAppliedEffects(ArrayList appliedEffects) { + if (appliedEffects != null) { + if (this.appliedEffects.isEmpty()) { + this.appliedEffects = appliedEffects; // Use object refecence to handle that an replacement effect can only be once applied to an event + } else { + this.appliedEffects.addAll(appliedEffects); + } + } + } } diff --git a/Mage/src/main/java/mage/game/match/MatchOptions.java b/Mage/src/main/java/mage/game/match/MatchOptions.java index 3b581aef1ba..5b1f4a6df9d 100644 --- a/Mage/src/main/java/mage/game/match/MatchOptions.java +++ b/Mage/src/main/java/mage/game/match/MatchOptions.java @@ -28,16 +28,18 @@ package mage.game.match; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; import mage.constants.MatchTimeLimit; import mage.constants.MultiplayerAttackOption; import mage.constants.RangeOfInfluence; import mage.constants.SkillLevel; import mage.game.result.ResultProtos; +import mage.players.PlayerType; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; /** * @@ -53,7 +55,7 @@ public class MatchOptions implements Serializable { protected String gameType; protected String deckType; protected boolean limited; - protected List playerTypes = new ArrayList<>(); + protected List playerTypes = new ArrayList<>(); protected boolean multiPlayer; protected int numSeats; protected String password; @@ -154,7 +156,7 @@ public class MatchOptions implements Serializable { this.deckType = deckType; } - public List getPlayerTypes() { + public List getPlayerTypes() { return playerTypes; } diff --git a/Mage/src/main/java/mage/game/permanent/Battlefield.java b/Mage/src/main/java/mage/game/permanent/Battlefield.java index a58b5b71ff6..6ca92d1d063 100644 --- a/Mage/src/main/java/mage/game/permanent/Battlefield.java +++ b/Mage/src/main/java/mage/game/permanent/Battlefield.java @@ -103,22 +103,20 @@ public class Battlefield implements Serializable { * @return count */ public int count(FilterPermanent filter, UUID sourceId, UUID sourcePlayerId, Game game) { - int count; if (game.getRangeOfInfluence() == RangeOfInfluence.ALL) { - count = (int) field.values() + return (int) field.values() .stream() .filter(permanent -> filter.match(permanent, sourceId, sourcePlayerId, game) && permanent.isPhasedIn()) .count(); } else { Set range = game.getPlayer(sourcePlayerId).getInRange(); - count = (int) field.values() + return (int) field.values() .stream() .filter(permanent -> range.contains(permanent.getControllerId()) && filter.match(permanent, sourceId, sourcePlayerId, game) && permanent.isPhasedIn()).count(); } - return count; } /** @@ -319,20 +317,18 @@ public class Battlefield implements Serializable { * @see Permanent */ public List getActivePermanents(FilterPermanent filter, UUID sourcePlayerId, UUID sourceId, Game game) { - List active = new ArrayList<>(); if (game.getRangeOfInfluence() == RangeOfInfluence.ALL) { - active = field.values() + return field.values() .stream() .filter(perm -> perm.isPhasedIn() && filter.match(perm, sourceId, sourcePlayerId, game)) .collect(Collectors.toList()); } else { Set range = game.getPlayer(sourcePlayerId).getInRange(); - active = field.values() + return field.values() .stream() .filter(perm -> perm.isPhasedIn() && range.contains(perm.getControllerId()) && filter.match(perm, sourceId, sourcePlayerId, game)).collect(Collectors.toList()); } - return active; } /** diff --git a/Mage/src/main/java/mage/game/permanent/PermanentCard.java b/Mage/src/main/java/mage/game/permanent/PermanentCard.java index c3ff27de593..ee81057b952 100644 --- a/Mage/src/main/java/mage/game/permanent/PermanentCard.java +++ b/Mage/src/main/java/mage/game/permanent/PermanentCard.java @@ -125,7 +125,7 @@ public class PermanentCard extends PermanentImpl { this.subtype.clear(); this.subtype.addAll(card.getSubtype(game)); this.supertype.clear(); - this.supertype.addAll(card.getSupertype()); + supertype.addAll(card.getSuperType()); this.expansionSetCode = card.getExpansionSetCode(); this.rarity = card.getRarity(); this.cardNumber = card.getCardNumber(); diff --git a/Mage/src/main/java/mage/game/permanent/PermanentToken.java b/Mage/src/main/java/mage/game/permanent/PermanentToken.java index c190345d9a1..a04927c6c63 100644 --- a/Mage/src/main/java/mage/game/permanent/PermanentToken.java +++ b/Mage/src/main/java/mage/game/permanent/PermanentToken.java @@ -88,7 +88,7 @@ public class PermanentToken extends PermanentImpl { this.color = token.getColor(game).copy(); this.frameColor = token.getFrameColor(game); this.frameStyle = token.getFrameStyle(); - this.supertype = token.getSupertype(); + this.supertype = token.getSuperType(); this.subtype = token.getSubtype(game); this.tokenDescriptor = token.getTokenDescriptor(); } diff --git a/Mage/src/main/java/mage/game/permanent/token/AngelToken.java b/Mage/src/main/java/mage/game/permanent/token/AngelToken.java index 21b3ce59354..318d8c066b1 100644 --- a/Mage/src/main/java/mage/game/permanent/token/AngelToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/AngelToken.java @@ -12,7 +12,7 @@ public class AngelToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("AVR", "C14", "CFX", "GTC", "ISD", "M14", "ORI", "SOI", "ZEN", "C15")); + tokenImageSets.addAll(Arrays.asList("AVR", "C14", "CFX", "GTC", "ISD", "M14", "ORI", "SOI", "ZEN", "C15", "MM3")); } public AngelToken() { diff --git a/Mage/src/main/java/mage/game/permanent/token/BeastToken.java b/Mage/src/main/java/mage/game/permanent/token/BeastToken.java index a2803df9f7e..939abf5b50c 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BeastToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BeastToken.java @@ -42,7 +42,7 @@ public class BeastToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("C14", "LRW", "M15", "M14", "DDL", "M13", "M12", "DD3GVL", "NPH", "M11", "M10", "EVE")); + tokenImageSets.addAll(Arrays.asList("C14", "LRW", "M15", "M14", "DDL", "M13", "M12", "DD3GVL", "NPH", "M11", "M10", "EVE", "MM3")); } public BeastToken() { @@ -71,7 +71,7 @@ public class BeastToken extends Token { if (getOriginalExpansionSetCode().equals("M15")) { this.setTokenType(2); } - if (getOriginalExpansionSetCode().equals("DD3GVL") || getOriginalExpansionSetCode().equals("C14") || getOriginalExpansionSetCode().equals("DDD")) { + if (getOriginalExpansionSetCode().equals("DD3GVL") || getOriginalExpansionSetCode().equals("C14") || getOriginalExpansionSetCode().equals("DDD") || getOriginalExpansionSetCode().equals("MM3")) { this.setTokenType(1); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java b/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java index ef82f2ace07..186e6c11281 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java +++ b/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java @@ -42,7 +42,7 @@ public class BeastToken2 extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("ZEN", "C14", "DDD", "C15", "DD3GVL")); + tokenImageSets.addAll(Arrays.asList("ZEN", "C14", "DDD", "C15", "DD3GVL", "MM3")); } public BeastToken2() { @@ -76,7 +76,7 @@ public class BeastToken2 extends Token { @Override public void setExpansionSetCodeForImage(String code) { super.setExpansionSetCodeForImage(code); - if (getOriginalExpansionSetCode().equals("C14") || getOriginalExpansionSetCode().equals("DDD") || getOriginalExpansionSetCode().equals("DD3GVL")) { + if (getOriginalExpansionSetCode().equals("C14") || getOriginalExpansionSetCode().equals("DDD") || getOriginalExpansionSetCode().equals("DD3GVL") || getOriginalExpansionSetCode().equals("MM3")) { this.setTokenType(2); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/BeastToken3.java b/Mage/src/main/java/mage/game/permanent/token/BeastToken3.java new file mode 100644 index 00000000000..450a8640baf --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/BeastToken3.java @@ -0,0 +1,65 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class BeastToken3 extends Token { + + public BeastToken3() { + this(null, 0); + } + + public BeastToken3(String setCode) { + this(setCode, 0); + } + + public BeastToken3(String setCode, int tokenType) { + super("Beast", "4/2 green Beast creature token"); + setOriginalExpansionSetCode("AKH"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Beast"); + power = new MageInt(4); + toughness = new MageInt(2); + } + + public BeastToken3(final BeastToken3 token) { + super(token); + } + + @Override + public BeastToken3 copy() { + return new BeastToken3(this); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/BirdToken.java b/Mage/src/main/java/mage/game/permanent/token/BirdToken.java index 1cd2e04d631..6babfef8b3e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BirdToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BirdToken.java @@ -47,7 +47,7 @@ public class BirdToken extends Token { power = new MageInt(1); toughness = new MageInt(1); addAbility(FlyingAbility.getInstance()); - availableImageSetCodes.addAll(Arrays.asList("BNG", "RTR", "ZEN", "C16")); + availableImageSetCodes.addAll(Arrays.asList("BNG", "RTR", "ZEN", "C16", "MM3", "DGM")); } public BirdToken(final BirdToken token) { diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/table/CardHelper.java b/Mage/src/main/java/mage/game/permanent/token/CatToken2.java similarity index 51% rename from Mage.Client/src/main/java/mage/client/deckeditor/table/CardHelper.java rename to Mage/src/main/java/mage/game/permanent/token/CatToken2.java index bc4d73d70a5..2e664ec2d53 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/table/CardHelper.java +++ b/Mage/src/main/java/mage/game/permanent/token/CatToken2.java @@ -26,57 +26,34 @@ * or implied, of BetaSteward_at_googlemail.com. */ -package mage.client.deckeditor.table; +package mage.game.permanent.token; +import mage.MageInt; +import mage.abilities.keyword.LifelinkAbility; import mage.constants.CardType; -import mage.cards.MageCard; -import mage.view.CardView; /** - * Helper methods for {@link MageCard}. - * - * @author nantuko + * + * @author fireshoes */ -public final class CardHelper { - private CardHelper() { +public class CatToken2 extends Token { + + public CatToken2() { + this(null, 0); } - public static String getColor(CardView c) { - if (c.getColor().getColorCount() == 0) return "Colorless"; - else if (c.getColor().getColorCount() > 1) return "Gold"; - else if (c.getColor().isBlack()) return "Black"; - else if (c.getColor().isBlue()) return "Blue"; - else if (c.getColor().isWhite()) return "White"; - else if (c.getColor().isGreen()) return "Green"; - else if (c.getColor().isRed()) return "Red"; - return ""; + public CatToken2(String setCode) { + this(setCode, 0); } - public static String getType(CardView c) { - StringBuilder type = new StringBuilder(); - for (String superType : c.getSuperTypes()) { - type.append(superType); - type.append(' '); - } - for (CardType cardType : c.getCardTypes()) { - type.append(cardType.toString()); - type.append(' '); - } - if (!c.getSubTypes().isEmpty()) { - type.append("- "); - for (String subType : c.getSubTypes()) { - type.append(subType); - type.append(' '); - } - } - if (type.length() > 0) { - // remove trailing space - type.deleteCharAt(type.length() - 1); - } - return type.toString(); - } - - public static boolean isCreature(CardView c) { - return c.getCardTypes().contains(CardType.CREATURE); + public CatToken2(String setCode, int tokenType) { + super("Cat", "1/1 white Cat creature token with lifelink"); + setOriginalExpansionSetCode("AKH"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Cat"); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(LifelinkAbility.getInstance()); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/CentaurToken.java b/Mage/src/main/java/mage/game/permanent/token/CentaurToken.java index d36a2886ac7..57f0be773b5 100644 --- a/Mage/src/main/java/mage/game/permanent/token/CentaurToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/CentaurToken.java @@ -28,6 +28,9 @@ package mage.game.permanent.token; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import mage.constants.CardType; import mage.MageInt; import mage.util.RandomUtil; @@ -38,6 +41,12 @@ import mage.util.RandomUtil; */ public class CentaurToken extends Token { + final static private List tokenImageSets = new ArrayList<>(); + + static { + tokenImageSets.addAll(Arrays.asList("RTR", "MM3")); + } + public CentaurToken() { super("Centaur", "3/3 green Centaur creature token"); cardType.add(CardType.CREATURE); @@ -46,7 +55,6 @@ public class CentaurToken extends Token { subtype.add("Centaur"); power = new MageInt(3); toughness = new MageInt(3); - setOriginalExpansionSetCode("RTR"); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/DragonToken.java b/Mage/src/main/java/mage/game/permanent/token/DragonToken.java index 0059cc6768b..579c9c89c77 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DragonToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DragonToken.java @@ -44,7 +44,7 @@ public class DragonToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("DTK", "MMA", "ALA")); + tokenImageSets.addAll(Arrays.asList("DTK", "MMA", "ALA", "MM3")); } public DragonToken() { diff --git a/Mage/src/main/java/mage/game/permanent/token/ElephantToken.java b/Mage/src/main/java/mage/game/permanent/token/ElephantToken.java index a2827d76551..88b4593face 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ElephantToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ElephantToken.java @@ -43,7 +43,7 @@ public class ElephantToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("C14", "CNS", "DDD", "MM2", "WWK", "OGW", "C15", "DD3GVL")); + tokenImageSets.addAll(Arrays.asList("C14", "CNS", "DDD", "MM2", "WWK", "OGW", "C15", "DD3GVL", "MM3")); } public ElephantToken() { diff --git a/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java b/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java index dbcc5450679..89cd0247c7b 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java @@ -43,7 +43,7 @@ public class GoblinToken extends Token { static { tokenImageSets.addAll(Arrays.asList("10E", "ALA", "SOM", "M10", "NPH", "M13", "RTR", - "MMA", "M15", "C14", "KTK", "EVG", "DTK", "ORI", "DDG", "DDN", "DD3EVG", "MM2")); + "MMA", "M15", "C14", "KTK", "EVG", "DTK", "ORI", "DDG", "DDN", "DD3EVG", "MM2", "MM3", "EMA", "C16")); } public GoblinToken() { diff --git a/Mage/src/main/java/mage/game/permanent/token/GolemToken.java b/Mage/src/main/java/mage/game/permanent/token/GolemToken.java index 4bbd644b703..83fcd2913de 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GolemToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GolemToken.java @@ -43,7 +43,7 @@ public class GolemToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("MM2", "NPH", "SOM")); + tokenImageSets.addAll(Arrays.asList("MM2", "NPH", "SOM", "MM3")); } public GolemToken() { diff --git a/Mage/src/main/java/mage/game/permanent/token/HippoToken2.java b/Mage/src/main/java/mage/game/permanent/token/HippoToken2.java new file mode 100644 index 00000000000..38706a9332d --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/HippoToken2.java @@ -0,0 +1,53 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.game.permanent.token; + +import mage.MageInt; +import mage.constants.CardType; +import mage.util.RandomUtil; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * @author Stravant + */ +public class HippoToken2 extends Token { + + public HippoToken2() { + super("Hippo", "3/3 green Hippo creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Centaur"); + power = new MageInt(3); + toughness = new MageInt(3); + } + +} diff --git a/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java b/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java index 01bd26a3efb..d90d0e7cb41 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java @@ -44,7 +44,7 @@ public class SaprolingToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("10E", "ALA", "DDE", "DDH", "DDJ", "M12", "M13", "M14", "MM2", "MMA", "RTR", "C15")); + tokenImageSets.addAll(Arrays.asList("10E", "ALA", "DDE", "DDH", "DDJ", "M12", "M13", "M14", "MM2", "MMA", "RTR", "C15", "MM3", "C16")); } public SaprolingToken() { diff --git a/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java b/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java index 996b3ff6037..2fed39fb0df 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java @@ -44,7 +44,7 @@ public class SoldierToken extends Token { static { tokenImageSets.addAll(Arrays.asList("10E", "M15", "C14", "ORI", "ALA", "DDF", "THS", "M12", "M13", "MM2", "MMA", "RTR", - "SOM", "DDO", "M10", "ORI", "EMN", "EMA", "CN2", "C16")); + "SOM", "DDO", "M10", "ORI", "EMN", "EMA", "CN2", "C16", "MM3")); } public SoldierToken() { @@ -65,7 +65,7 @@ public class SoldierToken extends Token { if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("THS")) { this.setTokenType(RandomUtil.nextInt(2) + 1); } - if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("CN2")) { + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("CN2") || getOriginalExpansionSetCode().equals("MM3")) { setTokenType(1); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java b/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java index 458310b2ef8..7db5eb6c50e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java +++ b/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java @@ -28,6 +28,9 @@ package mage.game.permanent.token; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.HasteAbility; @@ -38,6 +41,12 @@ import mage.abilities.keyword.HasteAbility; */ public class SoldierTokenWithHaste extends Token { + final static private List tokenImageSets = new ArrayList<>(); + + static { + tokenImageSets.addAll(Arrays.asList("GTC", "MM3")); + } + public SoldierTokenWithHaste() { super("Soldier", "1/1 red and white Soldier creature token with haste"); cardType.add(CardType.CREATURE); @@ -47,6 +56,23 @@ public class SoldierTokenWithHaste extends Token { power = new MageInt(1); toughness = new MageInt(1); addAbility(HasteAbility.getInstance()); - setOriginalExpansionSetCode("GTC"); + } + + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("MM3")) { + setTokenType(2); + } + } + + public SoldierTokenWithHaste(final SoldierTokenWithHaste token) { + super(token); + } + + @Override + public SoldierTokenWithHaste copy() { + return new SoldierTokenWithHaste(this); //To change body of generated methods, choose Tools | Templates. } } diff --git a/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java b/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java index a1ff71d0a99..8dbe924221e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java @@ -42,7 +42,7 @@ public class SpiritWhiteToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("AVR", "C14", "CNS", "DDC", "DDK", "FRF", "ISD", "KTK", "M15", "MM2", "SHM", "SOI", "EMA", "C16")); + tokenImageSets.addAll(Arrays.asList("AVR", "C14", "CNS", "DDC", "DDK", "FRF", "ISD", "KTK", "M15", "MM2", "SHM", "SOI", "EMA", "C16", "MM3")); } public SpiritWhiteToken() { diff --git a/Mage/src/main/java/mage/game/permanent/token/WarriorVigilantToken.java b/Mage/src/main/java/mage/game/permanent/token/WarriorVigilantToken.java new file mode 100644 index 00000000000..c3e00a228f2 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WarriorVigilantToken.java @@ -0,0 +1,62 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.game.permanent.token; + +import java.util.Arrays; + +import mage.MageInt; +import mage.abilities.keyword.VigilanceAbility; +import mage.constants.CardType; + +/** + * + * @author fireshoes + */ +public class WarriorVigilantToken extends Token { + + public WarriorVigilantToken() { + super("Warrior", "1/1 white Warrior creature token with vigilance"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add("Warrior"); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(VigilanceAbility.getInstance()); + availableImageSetCodes.addAll(Arrays.asList("AKH")); + } + + public WarriorVigilantToken(final WarriorVigilantToken token) { + super(token); + } + + @Override + public WarriorVigilantToken copy() { + return new WarriorVigilantToken(this); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/WurmToken2.java b/Mage/src/main/java/mage/game/permanent/token/WurmToken2.java index e4b27e261dc..43fcceceb16 100644 --- a/Mage/src/main/java/mage/game/permanent/token/WurmToken2.java +++ b/Mage/src/main/java/mage/game/permanent/token/WurmToken2.java @@ -28,6 +28,9 @@ package mage.game.permanent.token; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; @@ -38,6 +41,12 @@ import mage.abilities.keyword.TrampleAbility; */ public class WurmToken2 extends Token { + final static private List tokenImageSets = new ArrayList<>(); + + static { + tokenImageSets.addAll(Arrays.asList("RTR", "MM3")); + } + public WurmToken2() { super("Wurm", "5/5 green Wurm creature token with trample"); cardType.add(CardType.CREATURE); @@ -46,6 +55,5 @@ public class WurmToken2 extends Token { power = new MageInt(5); toughness = new MageInt(5); addAbility(TrampleAbility.getInstance()); - setOriginalExpansionSetCode("RTR"); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/WurmToken3.java b/Mage/src/main/java/mage/game/permanent/token/WurmToken3.java new file mode 100644 index 00000000000..aa8d61ab09c --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WurmToken3.java @@ -0,0 +1,57 @@ +/* +* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ + +package mage.game.permanent.token; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import mage.constants.CardType; +import mage.MageInt; + +/** + * + * @author fireshoes + */ +public class WurmToken3 extends Token { + + final static private List tokenImageSets = new ArrayList<>(); + + static { + tokenImageSets.addAll(Arrays.asList("AKH")); + } + + public WurmToken3() { + super("Wurm", "5/5 green Wurm creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add("Wurm"); + power = new MageInt(5); + toughness = new MageInt(5); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java b/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java index 0cd8b1b150e..5dd67cdaa93 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java @@ -44,8 +44,8 @@ public class ZombieToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("10E", "M10", "M11", "M12", "M13", "M14", "M15", "MBS", "ALA", "ISD", "C14", "C15", "CNS", - "MMA", "BNG", "KTK", "DTK", "ORI", "OGW", "SOI", "EMN", "EMA")); + tokenImageSets.addAll(Arrays.asList("10E", "M10", "M11", "M12", "M13", "M14", "M15", "MBS", "ALA", "ISD", "C14", "C15", "C16", "CNS", + "MMA", "BNG", "KTK", "DTK", "ORI", "OGW", "SOI", "EMN", "EMA", "MM3", "AKH")); } public ZombieToken() { diff --git a/Mage/src/main/java/mage/game/stack/Spell.java b/Mage/src/main/java/mage/game/stack/Spell.java index df7753c6425..863302c53fa 100644 --- a/Mage/src/main/java/mage/game/stack/Spell.java +++ b/Mage/src/main/java/mage/game/stack/Spell.java @@ -49,12 +49,7 @@ import mage.cards.Card; import mage.cards.CardsImpl; import mage.cards.FrameStyle; import mage.cards.SplitCard; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.constants.SpellAbilityType; -import mage.constants.Zone; -import mage.constants.ZoneDetail; +import mage.constants.*; import mage.counters.Counter; import mage.counters.Counters; import mage.game.Game; @@ -258,14 +253,14 @@ public class Spell extends StackObjImpl implements Card { Permanent permanent = game.getPermanent(card.getId()); if (permanent != null && permanent instanceof PermanentCard) { permanent.setSpellAbility(ability); // otherwise spell ability without bestow will be set - card.getCardType().add(CardType.CREATURE); + card.addCardType(CardType.CREATURE); card.getSubtype(game).remove("Aura"); } } return ability.resolve(game); } if (bestow) { - card.getCardType().add(CardType.CREATURE); + card.addCardType(CardType.CREATURE); } return false; } @@ -275,7 +270,7 @@ public class Spell extends StackObjImpl implements Card { if (controller.moveCards(card, Zone.BATTLEFIELD, ability, game, false, faceDown, false, null)) { Permanent permanent = game.getPermanent(card.getId()); if (permanent != null && permanent instanceof PermanentCard) { - ((PermanentCard) permanent).getCard().getCardType().add(CardType.CREATURE); + ((PermanentCard) permanent).getCard().addCardType(CardType.CREATURE); ((PermanentCard) permanent).getCard().getSubtype(game).remove("Aura"); return true; } @@ -338,8 +333,8 @@ public class Spell extends StackObjImpl implements Card { * determine whether card was kicked or not. E.g. Desolation Angel */ private void updateOptionalCosts(int index) { - Ability abilityOrig = spellCards.get(index).getAbilities().get(spellAbilities.get(index).getId()); - if (abilityOrig != null) { + spellCards.get(index).getAbilities().get(spellAbilities.get(index).getId()).ifPresent(abilityOrig + -> { for (Object object : spellAbilities.get(index).getOptionalCosts()) { Cost cost = (Cost) object; for (Cost costOrig : abilityOrig.getOptionalCosts()) { @@ -353,7 +348,7 @@ public class Spell extends StackObjImpl implements Card { } } } - } + }); } @Override @@ -499,8 +494,8 @@ public class Spell extends StackObjImpl implements Card { } @Override - public List getSupertype() { - return card.getSupertype(); + public EnumSet getSuperType() { + return card.getSuperType(); } public List getSpellAbilities() { @@ -753,24 +748,7 @@ public class Spell extends StackObjImpl implements Card { @Override public boolean moveToExile(UUID exileId, String name, UUID sourceId, Game game, ArrayList appliedEffects) { - ZoneChangeEvent event = new ZoneChangeEvent(this.getId(), sourceId, this.getOwnerId(), Zone.STACK, Zone.EXILED, appliedEffects); - if (!game.replaceEvent(event)) { - game.getStack().remove(this); - game.rememberLKI(this.getId(), event.getFromZone(), this); - - if (!this.isCopiedSpell()) { - if (exileId == null) { - game.getExile().getPermanentExile().add(this.card); - } else { - game.getExile().createZone(exileId, name).add(this.card); - } - - game.setZone(this.card.getId(), event.getToZone()); - } - game.fireEvent(event); - return event.getToZone() == Zone.EXILED; - } - return false; + return this.card.moveToExile(exileId, name, sourceId, game, appliedEffects); } @Override diff --git a/Mage/src/main/java/mage/game/stack/StackAbility.java b/Mage/src/main/java/mage/game/stack/StackAbility.java index cc2dad58aae..6be75a0a11f 100644 --- a/Mage/src/main/java/mage/game/stack/StackAbility.java +++ b/Mage/src/main/java/mage/game/stack/StackAbility.java @@ -49,13 +49,7 @@ import mage.abilities.effects.Effect; import mage.abilities.effects.Effects; import mage.cards.Card; import mage.cards.FrameStyle; -import mage.constants.AbilityType; -import mage.constants.AbilityWord; -import mage.constants.CardType; -import mage.constants.EffectType; -import mage.constants.Outcome; -import mage.constants.Zone; -import mage.constants.ZoneDetail; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; @@ -174,8 +168,8 @@ public class StackAbility extends StackObjImpl implements Ability { } @Override - public List getSupertype() { - return emptyString; + public EnumSet getSuperType() { + return EnumSet.noneOf(SuperType.class); } @Override diff --git a/Mage/src/main/java/mage/game/tournament/Tournament.java b/Mage/src/main/java/mage/game/tournament/Tournament.java index 266edc736ce..7cdad0eebf8 100644 --- a/Mage/src/main/java/mage/game/tournament/Tournament.java +++ b/Mage/src/main/java/mage/game/tournament/Tournament.java @@ -27,10 +27,6 @@ */ package mage.game.tournament; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.UUID; import mage.cards.ExpansionSet; import mage.cards.decks.Deck; import mage.game.draft.Draft; @@ -39,6 +35,12 @@ import mage.game.events.PlayerQueryEvent; import mage.game.events.TableEvent; import mage.game.result.ResultProtos.TourneyProto; import mage.players.Player; +import mage.players.PlayerType; + +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.UUID; /** * @@ -48,7 +50,7 @@ public interface Tournament { UUID getId(); - void addPlayer(Player player, String playerType); + void addPlayer(Player player, PlayerType playerType); void removePlayer(UUID playerId); diff --git a/Mage/src/main/java/mage/game/tournament/TournamentImpl.java b/Mage/src/main/java/mage/game/tournament/TournamentImpl.java index baccdf74f70..b5f5ed2a93b 100644 --- a/Mage/src/main/java/mage/game/tournament/TournamentImpl.java +++ b/Mage/src/main/java/mage/game/tournament/TournamentImpl.java @@ -38,6 +38,7 @@ import mage.game.match.Match; import mage.game.match.MatchPlayer; import mage.game.result.ResultProtos.*; import mage.players.Player; +import mage.players.PlayerType; import mage.util.RandomUtil; import org.apache.log4j.Logger; @@ -82,7 +83,7 @@ public abstract class TournamentImpl implements Tournament { } @Override - public void addPlayer(Player player, String playerType) { + public void addPlayer(Player player, PlayerType playerType) { players.put(player.getId(), new TournamentPlayer(player, playerType)); } diff --git a/Mage/src/main/java/mage/game/tournament/TournamentOptions.java b/Mage/src/main/java/mage/game/tournament/TournamentOptions.java index 3160e2598ac..4140eedec71 100644 --- a/Mage/src/main/java/mage/game/tournament/TournamentOptions.java +++ b/Mage/src/main/java/mage/game/tournament/TournamentOptions.java @@ -27,10 +27,12 @@ */ package mage.game.tournament; +import mage.game.match.MatchOptions; +import mage.players.PlayerType; + import java.io.Serializable; import java.util.ArrayList; import java.util.List; -import mage.game.match.MatchOptions; /** * @@ -40,7 +42,7 @@ public class TournamentOptions implements Serializable { protected String name; protected String tournamentType; - protected List playerTypes = new ArrayList<>(); + protected List playerTypes = new ArrayList<>(); protected MatchOptions matchOptions; protected LimitedOptions limitedOptions; protected boolean watchingAllowed = true; @@ -65,7 +67,7 @@ public class TournamentOptions implements Serializable { this.tournamentType = tournamentType; } - public List getPlayerTypes() { + public List getPlayerTypes() { return playerTypes; } diff --git a/Mage/src/main/java/mage/game/tournament/TournamentPlayer.java b/Mage/src/main/java/mage/game/tournament/TournamentPlayer.java index 21afc64ffbb..0e0f6f7f817 100644 --- a/Mage/src/main/java/mage/game/tournament/TournamentPlayer.java +++ b/Mage/src/main/java/mage/game/tournament/TournamentPlayer.java @@ -28,14 +28,16 @@ package mage.game.tournament; -import java.util.Set; import mage.cards.decks.Deck; import mage.constants.TournamentPlayerState; import mage.game.result.ResultProtos.TourneyPlayerProto; import mage.game.result.ResultProtos.TourneyQuitStatus; import mage.players.Player; +import mage.players.PlayerType; import mage.util.TournamentUtil; +import java.util.Set; + /** * * @author BetaSteward_at_googlemail.com @@ -43,7 +45,7 @@ import mage.util.TournamentUtil; public class TournamentPlayer { protected int points; - protected String playerType; + protected PlayerType playerType; protected TournamentPlayerState state; protected String stateInfo; protected String disconnectInfo; @@ -57,7 +59,7 @@ public class TournamentPlayer { protected TourneyQuitStatus quitStatus = TourneyQuitStatus.NO_TOURNEY_QUIT; protected TournamentPlayer replacedTournamentPlayer; - public TournamentPlayer(Player player, String playerType) { + public TournamentPlayer(Player player, PlayerType playerType) { this.player = player; this.playerType = playerType; this.state = TournamentPlayerState.JOINED; @@ -70,7 +72,7 @@ public class TournamentPlayer { return player; } - public String getPlayerType() { + public PlayerType getPlayerType() { return playerType; } @@ -232,7 +234,7 @@ public class TournamentPlayer { public TourneyPlayerProto toProto() { return TourneyPlayerProto.newBuilder() .setName(this.player.getName()) - .setPlayerType(this.playerType) + .setPlayerType(this.playerType.toString()) .setQuit(this.quitStatus) .build(); } diff --git a/Mage/src/main/java/mage/game/turn/Turn.java b/Mage/src/main/java/mage/game/turn/Turn.java index cd4f6301382..1de664ff84d 100644 --- a/Mage/src/main/java/mage/game/turn/Turn.java +++ b/Mage/src/main/java/mage/game/turn/Turn.java @@ -32,6 +32,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.UUID; +import mage.abilities.Ability; import mage.constants.PhaseStep; import mage.constants.TurnPhase; import mage.counters.CounterType; @@ -268,8 +269,9 @@ public class Turn implements Serializable { * * @param game * @param activePlayerId + * @param source */ - public void endTurn(Game game, UUID activePlayerId) { + public void endTurn(Game game, UUID activePlayerId, Ability source) { // Ending the turn this way (Time Stop) means the following things happen in order: setEndTurnRequested(true); @@ -277,9 +279,9 @@ public class Turn implements Serializable { // 1) All spells and abilities on the stack are exiled. This includes Time Stop, though it will continue to resolve. // It also includes spells and abilities that can't be countered. while (!game.getStack().isEmpty()) { - StackObject stackObject = game.getStack().removeLast(); + StackObject stackObject = game.getStack().peekFirst(); if (stackObject instanceof Spell) { - ((Spell) stackObject).moveToExile(null, "", null, game); + ((Spell) stackObject).moveToExile(null, "", source.getSourceId(), game); } } // 2) All attacking and blocking creatures are removed from combat. diff --git a/Mage/src/main/java/mage/players/Library.java b/Mage/src/main/java/mage/players/Library.java index 9b4a8adc8f5..65fab4a09e9 100644 --- a/Mage/src/main/java/mage/players/Library.java +++ b/Mage/src/main/java/mage/players/Library.java @@ -27,26 +27,16 @@ */ package mage.players; -import java.io.Serializable; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Deque; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; - import mage.cards.Card; import mage.constants.Zone; import mage.filter.FilterCard; import mage.game.Game; import mage.util.RandomUtil; +import java.io.Serializable; +import java.util.*; +import java.util.stream.Collectors; + /** * @author BetaSteward_at_googlemail.com */ @@ -182,11 +172,7 @@ public class Library implements Serializable { } public List getCards(Game game) { - List cards = new ArrayList<>(); - for (UUID cardId : library) { - cards.add(game.getCard(cardId)); - } - return cards; + return library.stream().map(game::getCard).collect(Collectors.toList()); } public Set getTopCards(Game game, int amount) { @@ -214,13 +200,7 @@ public class Library implements Serializable { } public int count(FilterCard filter, Game game) { - int result = 0; - for (UUID card : library) { - if (filter.match(game.getCard(card), game)) { - result++; - } - } - return result; + return (int) library.stream().filter(cardId -> filter.match(game.getCard(cardId), game)).count(); } public boolean isEmptyDraw() { diff --git a/Mage/src/main/java/mage/players/ManaPool.java b/Mage/src/main/java/mage/players/ManaPool.java index 71e131b29be..0df36cae431 100644 --- a/Mage/src/main/java/mage/players/ManaPool.java +++ b/Mage/src/main/java/mage/players/ManaPool.java @@ -118,7 +118,7 @@ public class ManaPool implements Serializable { return false; } if (autoPayment && autoPaymentRestricted && !wasManaAddedBeyondStock() && manaType != unlockedManaType) { - // if automatic restricted payment and there is laready mana in the pool + // if automatic restricted payment and there is already mana in the pool // and the needed mana type was not unlocked, nothing will be paid return false; } @@ -146,7 +146,7 @@ public class ManaPool implements Serializable { continue; } if (mana.get(usableManaType) > 0) { - GameEvent event = new GameEvent(GameEvent.EventType.MANA_PAYED, ability.getId(), mana.getSourceId(), ability.getControllerId(), 0, mana.getFlag()); + GameEvent event = new GameEvent(GameEvent.EventType.MANA_PAID, ability.getId(), mana.getSourceId(), ability.getControllerId(), 0, mana.getFlag()); event.setData(mana.getOriginalId().toString()); game.fireEvent(event); mana.remove(usableManaType); @@ -205,6 +205,10 @@ public class ManaPool implements Serializable { doNotEmptyManaTypes.add(manaType); } + public void init() { + manaItems.clear(); + } + public int emptyPool(Game game) { int total = 0; Iterator it = manaItems.iterator(); @@ -424,7 +428,7 @@ public class ManaPool implements Serializable { for (ConditionalMana mana : getConditionalMana()) { if (mana.get(manaType) > 0 && mana.apply(ability, game, mana.getManaProducerId(), costToPay)) { mana.set(manaType, mana.get(manaType) - 1); - GameEvent event = new GameEvent(GameEvent.EventType.MANA_PAYED, ability.getId(), mana.getManaProducerId(), ability.getControllerId(), 0, mana.getFlag()); + GameEvent event = new GameEvent(GameEvent.EventType.MANA_PAID, ability.getId(), mana.getManaProducerId(), ability.getControllerId(), 0, mana.getFlag()); event.setData(mana.getManaProducerOriginalId().toString()); game.fireEvent(event); break; diff --git a/Mage/src/main/java/mage/players/PlayerImpl.java b/Mage/src/main/java/mage/players/PlayerImpl.java index e22021f7294..305b71e170e 100644 --- a/Mage/src/main/java/mage/players/PlayerImpl.java +++ b/Mage/src/main/java/mage/players/PlayerImpl.java @@ -422,6 +422,7 @@ public abstract class PlayerImpl implements Player, Serializable { this.castSourceIdWithAlternateMana = null; this.castSourceIdManaCosts = null; this.castSourceIdCosts = null; + this.getManaPool().init(); // needed to remove mana that not empties on step change from previous game if left } /** @@ -1236,7 +1237,8 @@ public abstract class PlayerImpl implements Player, Serializable { continue; } } - if (((SpellAbility) ability).getSpellAbilityType() == SpellAbilityType.SPLIT) { + if (((SpellAbility) ability).getSpellAbilityType() == SpellAbilityType.SPLIT + || ((SpellAbility) ability).getSpellAbilityType() == SpellAbilityType.SPLIT_AFTERMATH) { continue; } useable.put(ability.getId(), (SpellAbility) ability); @@ -1245,29 +1247,30 @@ public abstract class PlayerImpl implements Player, Serializable { return useable; } - @Override - public LinkedHashMap getUseableActivatedAbilities(MageObject object, Zone zone, Game game) { - LinkedHashMap useable = new LinkedHashMap<>(); + // Get the usable activated abilities for a *single card object*, that is, either a card or half of a split card. + // Also called on the whole split card but only passing the fuse ability and other whole-split-card shared abilities + // as candidates. + private void getUseableActivatedAbilitiesHalfImpl(MageObject object, Zone zone, Game game, Abilities candidateAbilites, LinkedHashMap output) { boolean canUse = !(object instanceof Permanent) || ((Permanent) object).canUseActivatedAbilities(game); ManaOptions availableMana = null; -// ManaOptions availableMana = getManaAvailable(game); // can only be activated if mana calculation works flawless otherwise player can't play spells they could play if calculation would work correctly -// availableMana.addMana(manaPool.getMana()); - for (Ability ability : object.getAbilities()) { + // ManaOptions availableMana = getManaAvailable(game); // can only be activated if mana calculation works flawless otherwise player can't play spells they could play if calculation would work correctly + // availableMana.addMana(manaPool.getMana()); + for (Ability ability : candidateAbilites) { if (canUse || ability.getAbilityType() == AbilityType.SPECIAL_ACTION) { if (ability.getZone().match(zone)) { if (ability instanceof ActivatedAbility) { if (ability instanceof ActivatedManaAbilityImpl) { if (((ActivatedAbility) ability).canActivate(playerId, game)) { - useable.put(ability.getId(), (ActivatedAbility) ability); + output.put(ability.getId(), (ActivatedAbility) ability); } } else if (canPlay(((ActivatedAbility) ability), availableMana, object, game)) { - useable.put(ability.getId(), (ActivatedAbility) ability); + output.put(ability.getId(), (ActivatedAbility) ability); } } else if (ability instanceof AlternativeSourceCosts) { if (object.isLand()) { for (Ability ability2 : object.getAbilities().copy()) { if (ability2 instanceof PlayLandAbility) { - useable.put(ability2.getId(), (ActivatedAbility) ability2); + output.put(ability2.getId(), (ActivatedAbility) ability2); } } } @@ -1277,32 +1280,39 @@ public abstract class PlayerImpl implements Player, Serializable { } if (zone != Zone.HAND) { if (Zone.GRAVEYARD == zone && canPlayCardsFromGraveyard()) { - for (ActivatedAbility ability : object.getAbilities().getPlayableAbilities(Zone.HAND)) { + for (ActivatedAbility ability : candidateAbilites.getPlayableAbilities(Zone.HAND)) { if (canUse || ability.getAbilityType() == AbilityType.SPECIAL_ACTION) { - if (ability.getManaCosts().isEmpty() && ability.getCosts().isEmpty() && ability instanceof SpellAbility) { - continue; // You can't play spells from graveyard that have no costs - } if (ability.canActivate(playerId, game)) { - useable.put(ability.getId(), ability); + output.put(ability.getId(), ability); } } } } if (zone != Zone.BATTLEFIELD && game.getContinuousEffects().asThough(object.getId(), AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, this.getId(), game)) { - for (Ability ability : object.getAbilities()) { + for (Ability ability : candidateAbilites) { if (canUse || ability.getAbilityType() == AbilityType.SPECIAL_ACTION) { - if (ability.getManaCosts().isEmpty() && ability.getCosts().isEmpty() && ability instanceof SpellAbility && !(Objects.equals(ability.getSourceId(), getCastSourceIdWithAlternateMana()))) { - continue; // You can't play spells that have no costs, unless you can play them without paying their mana costs - } ability.setControllerId(this.getId()); if (ability instanceof ActivatedAbility && ability.getZone().match(Zone.HAND) && ((ActivatedAbility) ability).canActivate(playerId, game)) { - useable.put(ability.getId(), (ActivatedAbility) ability); + output.put(ability.getId(), (ActivatedAbility) ability); } } } } } + } + + @Override + public LinkedHashMap getUseableActivatedAbilities(MageObject object, Zone zone, Game game) { + LinkedHashMap useable = new LinkedHashMap<>(); + if (object instanceof SplitCard) { + SplitCard splitCard = (SplitCard) object; + getUseableActivatedAbilitiesHalfImpl(splitCard.getLeftHalfCard(), zone, game, splitCard.getLeftHalfCard().getAbilities(), useable); + getUseableActivatedAbilitiesHalfImpl(splitCard.getRightHalfCard(), zone, game, splitCard.getRightHalfCard().getAbilities(), useable); + getUseableActivatedAbilitiesHalfImpl(splitCard, zone, game, splitCard.getSharedAbilities(), useable); + } else { + getUseableActivatedAbilitiesHalfImpl(object, zone, game, object.getAbilities(), useable); + } getOtherUseableActivatedAbilities(object, zone, game, useable); return useable; @@ -2438,7 +2448,7 @@ public abstract class PlayerImpl implements Player, Serializable { if (!copy.canActivate(playerId, game)) { return false; } - if(available != null) { + if (available != null) { game.getContinuousEffects().costModification(copy, game); } @@ -2595,6 +2605,23 @@ public abstract class PlayerImpl implements Player, Serializable { return false; } + private void getPlayableFromGraveyardCard(Game game, Card card, Abilities candidateAbilities, ManaOptions availableMana, List output) { + boolean asThoughtCast = game.getContinuousEffects().asThough(card.getId(), AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, this.getId(), game); + for (ActivatedAbility ability : candidateAbilities.getActivatedAbilities(Zone.ALL)) { + boolean possible = false; + if (ability.getZone().match(Zone.GRAVEYARD)) { + possible = true; + } else if (ability.getZone().match(Zone.HAND) && (ability instanceof SpellAbility || ability instanceof PlayLandAbility)) { + if (asThoughtCast || canPlayCardsFromGraveyard()) { + possible = true; + } + } + if (possible && canPlay(ability, availableMana, card, game)) { + output.add(ability); + } + } + } + @Override public List getPlayable(Game game, boolean hidden) { List playable = new ArrayList<>(); @@ -2635,20 +2662,17 @@ public abstract class PlayerImpl implements Player, Serializable { } } for (Card card : graveyard.getUniqueCards(game)) { - boolean asThoughtCast = game.getContinuousEffects().asThough(card.getId(), AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, this.getId(), game); - for (ActivatedAbility ability : card.getAbilities().getActivatedAbilities(Zone.ALL)) { - boolean possible = false; - if (ability.getZone().match(Zone.GRAVEYARD)) { - possible = true; - } else if (ability.getZone().match(Zone.HAND) && (ability instanceof SpellAbility || ability instanceof PlayLandAbility)) { - if (asThoughtCast || canPlayCardsFromGraveyard()) { - possible = true; - } - } - if (possible && canPlay(ability, availableMana, card, game)) { - playable.add(ability); - } + // Handle split cards in graveyard to support Aftermath + if (card instanceof SplitCard) { + SplitCard splitCard = (SplitCard) card; + getPlayableFromGraveyardCard(game, splitCard.getLeftHalfCard(), splitCard.getLeftHalfCard().getAbilities(), availableMana, playable); + getPlayableFromGraveyardCard(game, splitCard.getRightHalfCard(), splitCard.getRightHalfCard().getAbilities(), availableMana, playable); + getPlayableFromGraveyardCard(game, splitCard, splitCard.getSharedAbilities(), availableMana, playable); + } else { + getPlayableFromGraveyardCard(game, card, card.getAbilities(), availableMana, playable); } + + // Other activated abilities LinkedHashMap useable = new LinkedHashMap<>(); getOtherUseableActivatedAbilities(card, Zone.GRAVEYARD, game, useable); for (Ability ability : useable.values()) { diff --git a/Mage/src/main/java/mage/players/PlayerType.java b/Mage/src/main/java/mage/players/PlayerType.java new file mode 100644 index 00000000000..2f8c36e6106 --- /dev/null +++ b/Mage/src/main/java/mage/players/PlayerType.java @@ -0,0 +1,32 @@ +package mage.players; + +/** + * Created by IGOUDT on 2-4-2017. + */ +public enum PlayerType { + HUMAN("Human"), + COMPUTER_DRAFT_BOT("Computer - draftbot"), + COMPUTER_MINIMAX_HYBRID("Computer - minimax hybrid"), + COMPUTER_MONTE_CARLO("Computer - monte carlo"), + COMPUTER_MAD("Computer - mad"); + + String description; + + PlayerType(String description) { + this.description = description; + } + + @Override + public String toString() { + return description; + } + + public static PlayerType getByDescription(String description) { + for (PlayerType type : values()) { + if (type.description.equals(description)) { + return type; + } + } + throw new IllegalArgumentException(String.format("PlayerType (%s) is not configured", description)); + } +} diff --git a/Mage/src/main/java/mage/target/TargetAmount.java b/Mage/src/main/java/mage/target/TargetAmount.java index b9f8f5fabf2..4e6fe35fcfc 100644 --- a/Mage/src/main/java/mage/target/TargetAmount.java +++ b/Mage/src/main/java/mage/target/TargetAmount.java @@ -34,6 +34,7 @@ import mage.abilities.dynamicvalue.common.StaticValue; import mage.constants.Outcome; import mage.game.Game; import java.util.*; +import java.util.stream.Collectors; /** * @@ -142,12 +143,7 @@ public abstract class TargetAmount extends TargetImpl { t.addTarget(targetId, n, source, game, true); if (t.remainingAmount > 0) { if (targets.size() > 1) { - Set newTargets = new HashSet<>(); - for (UUID newTarget: targets) { - if (!newTarget.equals(targetId)) { - newTargets.add(newTarget); - } - } + Set newTargets = targets.stream().filter(newTarget -> !newTarget.equals(targetId)).collect(Collectors.toSet()); addTargets(t, newTargets, options, source, game); } } diff --git a/Mage/src/main/java/mage/target/TargetCard.java b/Mage/src/main/java/mage/target/TargetCard.java index 87b26a64e46..9103309c21c 100644 --- a/Mage/src/main/java/mage/target/TargetCard.java +++ b/Mage/src/main/java/mage/target/TargetCard.java @@ -27,9 +27,7 @@ */ package mage.target; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; +import mage.MageItem; import mage.cards.Card; import mage.cards.Cards; import mage.constants.Zone; @@ -38,6 +36,11 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; + /** * * @author BetaSteward_at_googlemail.com @@ -200,11 +203,7 @@ public class TargetCard extends TargetObject { } public Set possibleTargets(UUID sourceControllerId, Cards cards, Game game) { - Set possibleTargets = new HashSet<>(); - for (Card card : cards.getCards(filter, game)) { - possibleTargets.add(card.getId()); - } - return possibleTargets; + return cards.getCards(filter,game).stream().map(MageItem::getId).collect(Collectors.toSet()); } @Override diff --git a/Mage/src/main/java/mage/target/TargetPlayer.java b/Mage/src/main/java/mage/target/TargetPlayer.java index d70085d98a8..af3fab1ad08 100644 --- a/Mage/src/main/java/mage/target/TargetPlayer.java +++ b/Mage/src/main/java/mage/target/TargetPlayer.java @@ -27,15 +27,16 @@ */ package mage.target; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.filter.FilterPlayer; import mage.game.Game; import mage.players.Player; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -158,12 +159,7 @@ public class TargetPlayer extends TargetImpl { if (getNumberOfTargets() == 0 && targets.isEmpty()) { return true; // 0 targets selected is valid } - for (UUID playerId : targets.keySet()) { - if (canTarget(playerId, source, game)) { - return true; - } - } - return false; + return targets.keySet().stream().anyMatch(playerId -> canTarget(playerId, source, game)); } @Override diff --git a/Mage/src/main/java/mage/target/TargetSpell.java b/Mage/src/main/java/mage/target/TargetSpell.java index 408e277bf93..9495b4dbec4 100644 --- a/Mage/src/main/java/mage/target/TargetSpell.java +++ b/Mage/src/main/java/mage/target/TargetSpell.java @@ -27,9 +27,6 @@ */ package mage.target; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.abilities.Ability; import mage.constants.Zone; import mage.filter.FilterSpell; @@ -37,6 +34,11 @@ import mage.game.Game; import mage.game.stack.Spell; import mage.game.stack.StackObject; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; + /** * * @author BetaSteward_at_googlemail.com @@ -112,13 +114,10 @@ public class TargetSpell extends TargetObject { @Override public Set possibleTargets(UUID sourceId, UUID sourceControllerId, Game game) { - Set possibleTargets = new HashSet<>(); - for (StackObject stackObject : game.getStack()) { - if (canBeChosen(stackObject, sourceId, sourceControllerId, game)) { - possibleTargets.add(stackObject.getId()); - } - } - return possibleTargets; + return game.getStack().stream() + .filter(stackObject -> canBeChosen(stackObject, sourceId, sourceControllerId, game)) + .map(StackObject::getId) + .collect(Collectors.toSet()); } @Override diff --git a/Mage/src/main/java/mage/target/Targets.java b/Mage/src/main/java/mage/target/Targets.java index f0565aa76f5..43ed15e295a 100644 --- a/Mage/src/main/java/mage/target/Targets.java +++ b/Mage/src/main/java/mage/target/Targets.java @@ -27,14 +27,16 @@ */ package mage.target; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.constants.Outcome; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import java.util.stream.Collectors; + /** * * @author BetaSteward_at_googlemail.com @@ -51,13 +53,7 @@ public class Targets extends ArrayList { } public List getUnchosen() { - List unchosen = new ArrayList<>(); - for (Target target : this) { - if (!target.isChosen()) { - unchosen.add(target); - } - } - return unchosen; + return stream().filter(target -> !target.isChosen()).collect(Collectors.toList()); } public void clearChosen() { @@ -67,12 +63,7 @@ public class Targets extends ArrayList { } public boolean isChosen() { - for (Target target : this) { - if (!target.isChosen()) { - return false; - } - } - return true; + return stream().allMatch(Target::isChosen); } public boolean choose(Outcome outcome, UUID playerId, UUID sourceId, Game game) { @@ -122,12 +113,8 @@ public class Targets extends ArrayList { public boolean stillLegal(Ability source, Game game) { // 608.2 // The spell or ability is countered if all its targets, for every instance of the word "target," are now illegal - int illegalCount = 0; - for (Target target : this) { - if (!target.isLegal(source, game)) { - illegalCount++; - } - } + int illegalCount = (int) stream().filter(target -> !target.isLegal(source, game)).count(); + // it is legal when either there is no target or not all targets are illegal return this.isEmpty() || this.size() != illegalCount; } @@ -142,12 +129,7 @@ public class Targets extends ArrayList { * @return - true if enough valid targets exist */ public boolean canChoose(UUID sourceId, UUID sourceControllerId, Game game) { - for (Target target : this) { - if (!target.canChoose(sourceId, sourceControllerId, game)) { - return false; - } - } - return true; + return stream().allMatch(target -> target.canChoose(sourceId, sourceControllerId, game)); } /** @@ -160,12 +142,7 @@ public class Targets extends ArrayList { * @return - true if enough valid objects exist */ public boolean canChoose(UUID sourceControllerId, Game game) { - for (Target target : this) { - if (!target.canChoose(sourceControllerId, game)) { - return false; - } - } - return true; + return stream().allMatch(target -> target.canChoose(sourceControllerId, game)); } public UUID getFirstTarget() { @@ -174,7 +151,6 @@ public class Targets extends ArrayList { } return null; } - public Targets copy() { return new Targets(this); } diff --git a/Mage/src/main/java/mage/target/common/TargetActivatedOrTriggeredAbility.java b/Mage/src/main/java/mage/target/common/TargetActivatedOrTriggeredAbility.java index c9d116bd969..9b472017ed3 100644 --- a/Mage/src/main/java/mage/target/common/TargetActivatedOrTriggeredAbility.java +++ b/Mage/src/main/java/mage/target/common/TargetActivatedOrTriggeredAbility.java @@ -28,27 +28,27 @@ package mage.target.common; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; -import mage.constants.Zone; import mage.abilities.Ability; import mage.constants.AbilityType; +import mage.constants.Zone; import mage.filter.Filter; import mage.filter.FilterAbility; import mage.game.Game; import mage.game.stack.StackObject; import mage.target.TargetObject; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; + /** - * * @author LevelX2 */ public class TargetActivatedOrTriggeredAbility extends TargetObject { - public TargetActivatedOrTriggeredAbility() { + public TargetActivatedOrTriggeredAbility() { this.minNumberOfTargets = 1; this.maxNumberOfTargets = 1; this.zone = Zone.STACK; @@ -78,12 +78,9 @@ public class TargetActivatedOrTriggeredAbility extends TargetObject { @Override public boolean canChoose(UUID sourceControllerId, Game game) { - for (StackObject stackObject : game.getStack()) { - if (isActivatedOrTriggeredAbility(stackObject)) { - return true; - } - } - return false; + return game.getStack() + .stream() + .anyMatch(TargetActivatedOrTriggeredAbility::isActivatedOrTriggeredAbility); } @Override @@ -93,13 +90,10 @@ public class TargetActivatedOrTriggeredAbility extends TargetObject { @Override public Set possibleTargets(UUID sourceControllerId, Game game) { - Set possibleTargets = new HashSet<>(); - for (StackObject stackObject : game.getStack()) { - if (isActivatedOrTriggeredAbility(stackObject)) { - possibleTargets.add(stackObject.getStackAbility().getId()); - } - } - return possibleTargets; + return game.getStack().stream() + .filter(TargetActivatedOrTriggeredAbility::isActivatedOrTriggeredAbility) + .map(stackObject -> stackObject.getStackAbility().getId()) + .collect(Collectors.toSet()); } @Override @@ -117,9 +111,9 @@ public class TargetActivatedOrTriggeredAbility extends TargetObject { return false; } if (stackObject instanceof Ability) { - Ability ability = (Ability)stackObject; + Ability ability = (Ability) stackObject; return ability.getAbilityType() == AbilityType.TRIGGERED - || ability.getAbilityType() == AbilityType.ACTIVATED; + || ability.getAbilityType() == AbilityType.ACTIVATED; } return false; } diff --git a/Mage/src/main/java/mage/target/common/TargetBasicLandCard.java b/Mage/src/main/java/mage/target/common/TargetBasicLandCard.java index 2af22ab828c..2b835766515 100644 --- a/Mage/src/main/java/mage/target/common/TargetBasicLandCard.java +++ b/Mage/src/main/java/mage/target/common/TargetBasicLandCard.java @@ -29,6 +29,7 @@ package mage.target.common; import mage.constants.CardType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SupertypePredicate; @@ -42,7 +43,7 @@ public class TargetBasicLandCard extends TargetCard { public TargetBasicLandCard(Zone zone) { super(zone); - filter.add(new SupertypePredicate("Basic")); + filter.add(new SupertypePredicate(SuperType.BASIC)); filter.add(new CardTypePredicate(CardType.LAND)); } diff --git a/Mage/src/main/java/mage/target/common/TargetCardInGraveyardOrBattlefield.java b/Mage/src/main/java/mage/target/common/TargetCardInGraveyardOrBattlefield.java index e6ccb15a7e2..337b2711526 100644 --- a/Mage/src/main/java/mage/target/common/TargetCardInGraveyardOrBattlefield.java +++ b/Mage/src/main/java/mage/target/common/TargetCardInGraveyardOrBattlefield.java @@ -27,8 +27,6 @@ */ package mage.target.common; -import java.util.Set; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.cards.Card; @@ -39,8 +37,10 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetCard; +import java.util.Set; +import java.util.UUID; + /** - * * @author LevelX2 */ public class TargetCardInGraveyardOrBattlefield extends TargetCard { @@ -82,8 +82,7 @@ public class TargetCardInGraveyardOrBattlefield extends TargetCard { } @Override - public boolean canTarget(UUID id, Ability source, Game game - ) { + public boolean canTarget(UUID id, Ability source, Game game) { Permanent permanent = game.getPermanent(id); if (permanent != null) { return filter.match(permanent, game); @@ -93,8 +92,7 @@ public class TargetCardInGraveyardOrBattlefield extends TargetCard { } @Override - public Set possibleTargets(UUID sourceControllerId, Game game - ) { + public Set possibleTargets(UUID sourceControllerId, Game game) { //return super.possibleTargets(sourceControllerId, game); //To change body of generated methods, choose Tools | Templates. Set possibleTargets = super.possibleTargets(sourceControllerId, game); for (Permanent permanent : game.getBattlefield().getActivePermanents(new FilterPermanent(), sourceControllerId, game)) { @@ -106,8 +104,7 @@ public class TargetCardInGraveyardOrBattlefield extends TargetCard { } @Override - public Set possibleTargets(UUID sourceId, UUID sourceControllerId, Game game - ) { + public Set possibleTargets(UUID sourceId, UUID sourceControllerId, Game game) { Set possibleTargets = super.possibleTargets(sourceId, sourceControllerId, game); MageObject targetSource = game.getObject(sourceId); for (Permanent permanent : game.getBattlefield().getActivePermanents(new FilterPermanent(), sourceControllerId, game)) { diff --git a/Mage/src/main/java/mage/target/common/TargetCreaturePermanentSameController.java b/Mage/src/main/java/mage/target/common/TargetCreaturePermanentSameController.java index dc403740861..8a09809ebee 100644 --- a/Mage/src/main/java/mage/target/common/TargetCreaturePermanentSameController.java +++ b/Mage/src/main/java/mage/target/common/TargetCreaturePermanentSameController.java @@ -56,7 +56,7 @@ public class TargetCreaturePermanentSameController extends TargetCreaturePermane UUID targetId = (UUID) object; Permanent targetPermanent = game.getPermanent(targetId); if (targetPermanent != null) { - if (firstTargetPermanent.getId() != targetPermanent.getId()) { + if (!firstTargetPermanent.getId().equals(targetPermanent.getId())) { if (!firstTargetPermanent.getControllerId().equals(targetPermanent.getOwnerId())) { return false; } diff --git a/Mage/src/main/java/mage/target/common/TargetCreaturePermanentWithDifferentTypes.java b/Mage/src/main/java/mage/target/common/TargetCreaturePermanentWithDifferentTypes.java index a480187b9c2..b4006f4e2d7 100644 --- a/Mage/src/main/java/mage/target/common/TargetCreaturePermanentWithDifferentTypes.java +++ b/Mage/src/main/java/mage/target/common/TargetCreaturePermanentWithDifferentTypes.java @@ -27,12 +27,12 @@ */ package mage.target.common; -import java.util.UUID; import mage.abilities.Ability; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.util.CardUtil; + +import java.util.UUID; /** * @@ -61,8 +61,8 @@ public class TargetCreaturePermanentWithDifferentTypes extends TargetCreaturePer for (Object object : getTargets()) { UUID targetId = (UUID) object; Permanent selectedCreature = game.getPermanent(targetId); - if (creature.getId() != selectedCreature.getId()) { - if (CardUtil.shareSubtypes(creature, selectedCreature, game)) { + if (!creature.getId().equals(selectedCreature.getId())) { + if (creature.shareSubtypes(selectedCreature, game)) { return false; } } diff --git a/Mage/src/main/java/mage/target/common/TargetNonBasicLandPermanent.java b/Mage/src/main/java/mage/target/common/TargetNonBasicLandPermanent.java index c99cca7faaf..fed264a6541 100644 --- a/Mage/src/main/java/mage/target/common/TargetNonBasicLandPermanent.java +++ b/Mage/src/main/java/mage/target/common/TargetNonBasicLandPermanent.java @@ -28,6 +28,7 @@ package mage.target.common; +import mage.constants.SuperType; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SupertypePredicate; @@ -38,7 +39,7 @@ import mage.filter.predicate.mageobject.SupertypePredicate; public class TargetNonBasicLandPermanent extends TargetLandPermanent { public TargetNonBasicLandPermanent() { - filter.add(Predicates.not(new SupertypePredicate("Basic"))); + filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); this.targetName = "nonbasic land"; } diff --git a/Mage/src/main/java/mage/util/CardUtil.java b/Mage/src/main/java/mage/util/CardUtil.java index 1f824625e11..a431a616f6c 100644 --- a/Mage/src/main/java/mage/util/CardUtil.java +++ b/Mage/src/main/java/mage/util/CardUtil.java @@ -35,10 +35,8 @@ import mage.abilities.ActivatedAbility; import mage.abilities.SpellAbility; import mage.abilities.costs.VariableCost; import mage.abilities.costs.mana.*; -import mage.abilities.keyword.ChangelingAbility; import mage.cards.Card; import mage.cards.SplitCard; -import mage.constants.CardType; import mage.filter.FilterMana; import mage.game.Game; import mage.game.permanent.Permanent; @@ -84,57 +82,9 @@ public final class CardUtil { "Trap", "Arcane"}; public static final Set NON_CREATURE_SUBTYPES = new HashSet<>(Arrays.asList(NON_CHANGELING_SUBTYPES_VALUES)); - /** - * Checks whether two cards share card types. - * - * @param card1 - * @param card2 - * @return - */ - public static boolean shareTypes(Card card1, Card card2) { - if (card1 == null || card2 == null) { - throw new IllegalArgumentException("Params can't be null"); - } - for (CardType type : card1.getCardType()) { - if (card2.getCardType().contains(type)) { - return true; - } - } - return false; - } - - /** - * Checks whether two cards share card subtypes. - * - * @param card1 - * @param card2 - * @return - */ - public static boolean shareSubtypes(Card card1, Card card2, Game game) { - - if (card1 == null || card2 == null) { - throw new IllegalArgumentException("Params can't be null"); - } - - if (card1.isCreature() && card2.isCreature()) { - if (card1.getAbilities().contains(ChangelingAbility.getInstance()) - || card1.getSubtype(game).contains(ChangelingAbility.ALL_CREATURE_TYPE) - || card2.getAbilities().contains(ChangelingAbility.getInstance()) - || card2.getSubtype(game).contains(ChangelingAbility.ALL_CREATURE_TYPE)) { - return true; - } - } - for (String subtype : card1.getSubtype(game)) { - if (card2.getSubtype(game).contains(subtype)) { - return true; - } - } - - return false; - } /** * Increase spell or ability cost to be paid. @@ -414,18 +364,6 @@ public final class CardUtil { return new CopyTokenFunction(target); } - public static boolean isPermanentCard(Card card) { - boolean permanent = false; - - permanent |= card.isArtifact(); - permanent |= card.isCreature(); - permanent |= card.isEnchantment(); - permanent |= card.isLand(); - permanent |= card.isPlaneswalker(); - - return permanent; - } - /** * Converts an integer number to string Numbers > 20 will be returned as * digits diff --git a/Mage/src/main/java/mage/util/functions/AbilityApplier.java b/Mage/src/main/java/mage/util/functions/AbilityApplier.java index 16d36d0d29b..b5e30816b68 100644 --- a/Mage/src/main/java/mage/util/functions/AbilityApplier.java +++ b/Mage/src/main/java/mage/util/functions/AbilityApplier.java @@ -27,6 +27,7 @@ */ package mage.util.functions; +import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.game.Game; @@ -45,13 +46,13 @@ public class AbilityApplier extends ApplyToPermanent { } @Override - public boolean apply(Game game, Permanent permanent) { + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { permanent.addAbility(ability, game); return true; } @Override - public boolean apply(Game game, MageObject mageObject) { + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { mageObject.getAbilities().add(ability); return true; } diff --git a/Mage/src/main/java/mage/util/functions/AddSubtypeApplier.java b/Mage/src/main/java/mage/util/functions/AddSubtypeApplier.java index 95bc8eb39f8..d97b47f2e43 100644 --- a/Mage/src/main/java/mage/util/functions/AddSubtypeApplier.java +++ b/Mage/src/main/java/mage/util/functions/AddSubtypeApplier.java @@ -5,7 +5,9 @@ */ package mage.util.functions; +import java.util.UUID; import mage.MageObject; +import mage.abilities.Ability; import mage.game.Game; import mage.game.permanent.Permanent; @@ -22,7 +24,7 @@ public class AddSubtypeApplier extends ApplyToPermanent { } @Override - public boolean apply(Game game, Permanent permanent) { + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { if (!permanent.getSubtype(game).contains(subtype)) { permanent.getSubtype(game).add(subtype); } @@ -30,7 +32,7 @@ public class AddSubtypeApplier extends ApplyToPermanent { } @Override - public boolean apply(Game game, MageObject mageObject) { + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { if (!mageObject.getSubtype(game).contains(subtype)) { mageObject.getSubtype(game).add(subtype); } diff --git a/Mage/src/main/java/mage/util/functions/ApplyToMageObject.java b/Mage/src/main/java/mage/util/functions/ApplyToMageObject.java index 0de92b351c2..13feb98d67a 100644 --- a/Mage/src/main/java/mage/util/functions/ApplyToMageObject.java +++ b/Mage/src/main/java/mage/util/functions/ApplyToMageObject.java @@ -27,7 +27,9 @@ */ package mage.util.functions; +import java.util.UUID; import mage.MageObject; +import mage.abilities.Ability; import mage.game.Game; /** @@ -36,5 +38,5 @@ import mage.game.Game; */ public abstract class ApplyToMageObject { - public abstract boolean apply(Game game, MageObject mageObject); + public abstract boolean apply(Game game, MageObject mageObject, Ability source, UUID targetObjectId); } diff --git a/Mage/src/main/java/mage/util/functions/ApplyToPermanent.java b/Mage/src/main/java/mage/util/functions/ApplyToPermanent.java index 22d25bb949b..fa6947ee24e 100644 --- a/Mage/src/main/java/mage/util/functions/ApplyToPermanent.java +++ b/Mage/src/main/java/mage/util/functions/ApplyToPermanent.java @@ -1,6 +1,8 @@ package mage.util.functions; import java.io.Serializable; +import java.util.UUID; +import mage.abilities.Ability; import mage.game.Game; import mage.game.permanent.Permanent; @@ -9,5 +11,5 @@ import mage.game.permanent.Permanent; */ public abstract class ApplyToPermanent extends ApplyToMageObject implements Serializable { - public abstract boolean apply(Game game, Permanent permanent); + public abstract boolean apply(Game game, Permanent permanent, Ability source, UUID targetObjectId); } diff --git a/Mage/src/main/java/mage/util/functions/CardTypeApplier.java b/Mage/src/main/java/mage/util/functions/CardTypeApplier.java index 4e6ec1719e4..73be752dd67 100644 --- a/Mage/src/main/java/mage/util/functions/CardTypeApplier.java +++ b/Mage/src/main/java/mage/util/functions/CardTypeApplier.java @@ -27,7 +27,9 @@ */ package mage.util.functions; +import java.util.UUID; import mage.MageObject; +import mage.abilities.Ability; import mage.constants.CardType; import mage.game.Game; import mage.game.permanent.Permanent; @@ -45,18 +47,14 @@ public class CardTypeApplier extends ApplyToPermanent { } @Override - public boolean apply(Game game, Permanent permanent) { - if (!permanent.getCardType().contains(cardType)) { - permanent.getCardType().add(cardType); - } + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { + permanent.addCardType(cardType); return true; } @Override - public boolean apply(Game game, MageObject mageObject) { - if (!mageObject.getCardType().contains(cardType)) { - mageObject.getCardType().add(cardType); - } + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { + mageObject.addCardType(cardType); return true; } } diff --git a/Mage/src/main/java/mage/util/functions/CopyTokenFunction.java b/Mage/src/main/java/mage/util/functions/CopyTokenFunction.java index d6e9c2e91b7..57dce0835cf 100644 --- a/Mage/src/main/java/mage/util/functions/CopyTokenFunction.java +++ b/Mage/src/main/java/mage/util/functions/CopyTokenFunction.java @@ -32,6 +32,7 @@ import mage.abilities.Ability; import mage.abilities.keyword.MorphAbility; import mage.cards.Card; import mage.constants.CardType; +import mage.constants.SuperType; import mage.game.permanent.PermanentCard; import mage.game.permanent.PermanentToken; import mage.game.permanent.token.Token; @@ -92,15 +93,15 @@ public class CopyTokenFunction implements Function { target.getManaCost().add(sourceObj.getManaCost()); target.getCardType().clear(); for (CardType type : sourceObj.getCardType()) { - target.getCardType().add(type); + target.addCardType(type); } target.getSubtype(null).clear(); for (String type : sourceObj.getSubtype(null)) { target.getSubtype(null).add(type); } - target.getSupertype().clear(); - for (String type : sourceObj.getSupertype()) { - target.getSupertype().add(type); + target.getSuperType().clear(); + for (SuperType type : sourceObj.getSuperType()) { + target.addSuperType(type); } target.getAbilities().clear(); diff --git a/Mage/src/main/java/mage/util/functions/EmptyApplyToPermanent.java b/Mage/src/main/java/mage/util/functions/EmptyApplyToPermanent.java index f41263fc8c7..c838a8f7566 100644 --- a/Mage/src/main/java/mage/util/functions/EmptyApplyToPermanent.java +++ b/Mage/src/main/java/mage/util/functions/EmptyApplyToPermanent.java @@ -1,6 +1,8 @@ package mage.util.functions; +import java.util.UUID; import mage.MageObject; +import mage.abilities.Ability; import mage.game.Game; import mage.game.permanent.Permanent; @@ -10,13 +12,13 @@ import mage.game.permanent.Permanent; public class EmptyApplyToPermanent extends ApplyToPermanent { @Override - public boolean apply(Game game, Permanent permanent) { + public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { // do nothing return true; } @Override - public boolean apply(Game game, MageObject mageObject) { + public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { return true; } diff --git a/Mage/src/main/java/mage/watchers/common/AttackedThisTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/AttackedThisTurnWatcher.java index 67313929dfa..e3e6635dfe0 100644 --- a/Mage/src/main/java/mage/watchers/common/AttackedThisTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/AttackedThisTurnWatcher.java @@ -29,7 +29,7 @@ package mage.watchers.common; import java.util.HashSet; import java.util.Set; -import java.util.UUID; +import mage.MageObjectReference; import mage.constants.WatcherScope; import mage.game.Game; import mage.game.events.GameEvent; @@ -40,11 +40,10 @@ import mage.watchers.Watcher; */ public class AttackedThisTurnWatcher extends Watcher { - // TODO: use MageObjectReference instead of UUID - public final Set attackedThisTurnCreatures = new HashSet<>(); + public final Set attackedThisTurnCreatures = new HashSet<>(); public AttackedThisTurnWatcher() { - super("AttackedThisTurn", WatcherScope.GAME); + super(AttackedThisTurnWatcher.class.getName(), WatcherScope.GAME); } public AttackedThisTurnWatcher(final AttackedThisTurnWatcher watcher) { @@ -55,11 +54,11 @@ public class AttackedThisTurnWatcher extends Watcher { @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.ATTACKER_DECLARED) { - this.attackedThisTurnCreatures.add(event.getSourceId()); + this.attackedThisTurnCreatures.add(new MageObjectReference(event.getSourceId(), game)); } } - - public Set getAttackedThisTurnCreatures() { + + public Set getAttackedThisTurnCreatures() { return this.attackedThisTurnCreatures; } @@ -74,4 +73,4 @@ public class AttackedThisTurnWatcher extends Watcher { this.attackedThisTurnCreatures.clear(); } -} \ No newline at end of file +} diff --git a/Mage/src/main/java/mage/watchers/common/CardsCycledOrDiscardedThisTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/CardsCycledOrDiscardedThisTurnWatcher.java new file mode 100644 index 00000000000..51be291cf6f --- /dev/null +++ b/Mage/src/main/java/mage/watchers/common/CardsCycledOrDiscardedThisTurnWatcher.java @@ -0,0 +1,93 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.watchers.common; + +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; +import java.util.UUID; +import mage.cards.Card; +import mage.cards.Cards; +import mage.cards.CardsImpl; +import mage.constants.WatcherScope; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.watchers.Watcher; + +/** + * Stores cards that were cycled or discarded by any player this turn. + * @author jeffwadsworth + */ +public class CardsCycledOrDiscardedThisTurnWatcher extends Watcher { + + private final Map cycledOrDiscardedCardsThisTurn = new HashMap<>(); + Cards cards = new CardsImpl(); + + public CardsCycledOrDiscardedThisTurnWatcher() { + super("CardsCycledOrDiscardedThisTurnWatcher", WatcherScope.GAME); + } + + public CardsCycledOrDiscardedThisTurnWatcher(final CardsCycledOrDiscardedThisTurnWatcher watcher) { + super(watcher); + for (Entry entry : watcher.cycledOrDiscardedCardsThisTurn.entrySet()) { + cycledOrDiscardedCardsThisTurn.put(entry.getKey(), entry.getValue()); + } + } + + @Override + public void watch(GameEvent event, Game game) { + if (event.getType() == GameEvent.EventType.UNTAP_STEP_PRE) { + reset(); + } + if (event.getType() == GameEvent.EventType.DISCARDED_CARD) { + UUID playerId = event.getPlayerId(); + if (playerId != null + && game.getCard(event.getTargetId()) != null) { + Card card = game.getCard(event.getTargetId()); + cards.add(card); + cycledOrDiscardedCardsThisTurn.putIfAbsent(playerId, cards); + } + } + } + + public Cards getCardsCycledOrDiscardedThisTurn(UUID playerId) { + return cycledOrDiscardedCardsThisTurn.get(playerId); + } + + @Override + public void reset() { + super.reset(); + cycledOrDiscardedCardsThisTurn.clear(); + cards.clear(); + } + + @Override + public CardsCycledOrDiscardedThisTurnWatcher copy() { + return new CardsCycledOrDiscardedThisTurnWatcher(this); + } +} diff --git a/Mage/src/main/java/mage/watchers/common/CreaturesDiedWatcher.java b/Mage/src/main/java/mage/watchers/common/CreaturesDiedWatcher.java index caf6a155aba..5905a625dd4 100644 --- a/Mage/src/main/java/mage/watchers/common/CreaturesDiedWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/CreaturesDiedWatcher.java @@ -29,7 +29,6 @@ package mage.watchers.common; import java.util.HashMap; import java.util.UUID; -import mage.constants.CardType; import mage.constants.WatcherScope; import mage.game.Game; import mage.game.events.GameEvent; diff --git a/Mage/src/main/java/mage/watchers/common/PermanentsEnteredBattlefieldWatcher.java b/Mage/src/main/java/mage/watchers/common/PermanentsEnteredBattlefieldWatcher.java index 9965028257e..f73cd794713 100644 --- a/Mage/src/main/java/mage/watchers/common/PermanentsEnteredBattlefieldWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PermanentsEnteredBattlefieldWatcher.java @@ -9,7 +9,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.UUID; -import mage.constants.CardType; import mage.constants.WatcherScope; import mage.game.Game; import mage.game.events.GameEvent; diff --git a/Utils/find_new_cards.pl b/Utils/find_new_cards.pl index 544344c7135..f5fce14fc05 100644 --- a/Utils/find_new_cards.pl +++ b/Utils/find_new_cards.pl @@ -48,7 +48,6 @@ chomp $cmd; my %cn_classes; sub read_all_card_names { - print ("find \"cards.add\" ../Mage.Sets/src/mage/sets/*.java\n"); print ("find \"add\" ..\\Mage.Sets\\src\\mage\\sets\\*.java\n"); my $all_cards = `find \"add\" ..\\Mage.Sets\\src\\mage\\sets\\*.java`; my @cards = split /\n/, $all_cards; @@ -122,12 +121,23 @@ if (exists ($new_order{$cmd})) $past_line = $line; } + open MTG_CARDS_DATA, "mtg-cards-data.txt"; + my %all_cards; + while () + { + my $val = $_; + $val =~ s/\|/xxxx/; + $val =~ s/\|.*//; + $val =~ m/^(.*)xxxx(.*)/; + $all_cards {$1} = $2; + } + print ("Found these new card names!\n"); foreach $line (sort keys (%new_cards)) { if ($new_cards {$line} > 0) { - print ($line, "\n"); + print ($line, " in ", $all_cards {$line}, "\n"); } } } diff --git a/Utils/gen-card.pl b/Utils/gen-card.pl index 923424fd1f1..42dff275942 100755 --- a/Utils/gen-card.pl +++ b/Utils/gen-card.pl @@ -180,12 +180,13 @@ while ($type =~ m/([a-zA-Z]+)( )*/g) { if (@types) { $vars{'subType'} .= "\n this.subtype.add(\"$1\");"; } else { - $vars{'subType'} .= "\n this.supertype.add(\"$1\");"; + my $st = uc($1); + $vars{'subType'} .= "\n addSuperType(SuperType.$st);"; } } } -$vars{'type'} = join(', ', @types); +$vars{'type'} = join(', ', @types); $vars{'abilitiesImports'} = ''; $vars{'abilities'} = ''; @@ -226,6 +227,10 @@ foreach my $ability (@abilities) { } elsif ($keywords{$kw} eq 'card, cost') { $ability =~ m/({.*})/g; $vars{'abilities'} .= "\n this.addAbility(new " . $kw . 'Ability(this, new ManaCostsImpl("' . fixCost($1) . '")));'; + $vars{'abilitiesImports'} .= "\nimport mage.abilities.costs.mana.ManaCostsImpl;"; + } elsif ($keywords{$kw} eq 'cost, card') { + $ability =~ m/({.*})/g; + $vars{'abilities'} .= "\n this.addAbility(new " . $kw . 'Ability(new ManaCostsImpl("' . fixCost($1) . '"), this));'; $vars{'abilitiesImports'} .= "\nimport mage.abilities.costs.mana.ManaCostsImpl;"; } elsif ($keywords{$kw} eq 'type') { $ability =~ m/\s([a-zA-Z\s]*)/g; diff --git a/Utils/gen-existing-cards-by-set.pl b/Utils/gen-existing-cards-by-set.pl index dc95dd1c2bd..66ac22e1ac6 100755 --- a/Utils/gen-existing-cards-by-set.pl +++ b/Utils/gen-existing-cards-by-set.pl @@ -56,12 +56,56 @@ while(my $line = ) { if ($data[1] eq $setName) { my $cardInfo = "$data[0],,,$data[2]"; + push(@setCards, $cardInfo); - $cardsFound = $cardsFound + 1; } else { $all_sets {$data[1]} = 1; } } + +# Fix up split cards +my $potentialSideA; +my @tempSetCards; + +foreach $potentialSideA (sort @setCards) { + #print (">>$potentialSideA\n"); + if ($potentialSideA =~ m/.*,,,(\d+)(a)$/) { + my $cardNumSideB = $1 . "b"; + my $val; + foreach $val (sort @setCards) { + if ($val =~ m/$cardNumSideB$/) { + $potentialSideA =~ s/,,,.*//; + $val =~ s/,,,.*//; + + # Add 'SideaSideb' to %cards + my $ds = $cards{$val}{$setName}; + print ("$potentialSideA$val,,,$cardNumSideB\n"); + my @newCard; + push (@newCard, "$potentialSideA$val"); + push (@newCard, "$setName"); + push (@newCard, "SPLIT"); + push (@newCard, @$ds[3]); + push (@newCard, "$potentialSideA // $val"); + $cards{$newCard[0]}{$newCard[1]} = \@newCard; + + $cardNumSideB =~ s/.$//; + push (@tempSetCards, "$potentialSideA$val,,,$cardNumSideB"); + + print ("Adding in: $potentialSideA \/\/ $val,,,$cardNumSideB\n"); + $cardsFound = $cardsFound - 1; + } + } + } + elsif ($potentialSideA =~ m/.*,,,(\d+)(b)$/) { + next; + } + else { + $cardsFound = $cardsFound + 1; + push (@tempSetCards, $potentialSideA); + } +} +@setCards = @tempSetCards; + close(DATA); print "Number of cards found for set " . $setName . ": " . $cardsFound . "\n"; @@ -186,6 +230,8 @@ foreach $name_collectorid (sort @setCards) } } else { + my $ds; + $ds = $cards{$cardName}{$setName}; my $className = toCamelCase($cardName); my $setId = lc($cardName); $setId =~ s/^(.).*/$1/; @@ -193,6 +239,13 @@ foreach $name_collectorid (sort @setCards) $googleSetName =~ s/ /+/img; my $fn = "..\\Mage.Sets\\src\\mage\\cards\\$setId\\$className.java"; my $str = " cards.add(new SetCardInfo(\"$cardName\", $cardNr, Rarity." . getRarity ($cards{$cardName}{$setName}[3], $cardName) . ", mage.cards.$setId.$className.class));\n"; + + if (@$ds[2] eq "SPLIT") { + my $oldCardName = $cardName; + $cardName = @$ds[4]; + $str = " cards.add(new SetCardInfo(\"$cardName\", $cardNr, Rarity." . getRarity ($cards{$oldCardName}{$setName}[3], $oldCardName) . ", mage.cards.$setId.$className.class));\n"; + } + my $plus_cardName = $cardName; $plus_cardName =~ s/ /+/img; $plus_cardName =~ s/,/+/img; diff --git a/Utils/gen-list-implemented-cards-for-set.pl b/Utils/gen-list-implemented-cards-for-set.pl index 2e330ae0f46..664b6077e56 100755 --- a/Utils/gen-list-implemented-cards-for-set.pl +++ b/Utils/gen-list-implemented-cards-for-set.pl @@ -67,7 +67,7 @@ my $toPrint = ''; foreach my $card (sort cardSort @setCards) { my $className = toCamelCase(@{$card}[0]); - my $currentFileName = "../Mage.Sets/src/mage/sets/" . $knownSets{$setName} . "/" . $className . ".java"; + my $currentFileName = "../Mage.Sets/src/mage/cards/" . lc(substr($className, 0, 1)) . "/" . $className . ".java"; if (-e $currentFileName) { if ($toPrint) { $toPrint .= "\n"; diff --git a/Utils/gen-list-unimplemented-cards-for-set.pl b/Utils/gen-list-unimplemented-cards-for-set.pl index a01e5662e8b..15df889f215 100755 --- a/Utils/gen-list-unimplemented-cards-for-set.pl +++ b/Utils/gen-list-unimplemented-cards-for-set.pl @@ -94,7 +94,7 @@ foreach my $card (sort cardSort @setCards) { $cardNames {@{$card}[0]} = 1; - my $currentFileName = "../Mage.Sets/src/mage/sets/" . $knownSets{$setName} . "/" . $className . ".java"; + my $currentFileName = "../Mage.Sets/src/mage/cards/" . lc(substr($className, 0, 1)) . "/" . $className . ".java"; if(! -e $currentFileName) { $cardNames {@{$card}[0]} = 0; if ($toPrint) { diff --git a/Utils/gen_types_list.pl b/Utils/gen_types_list.pl index c85d86a94c8..c4ad0aa8a87 100644 --- a/Utils/gen_types_list.pl +++ b/Utils/gen_types_list.pl @@ -37,7 +37,7 @@ while () $types{$1}++; $types_files{$1} .= $file . ",,,"; } - if ($line =~ m/this.supertype.add.*"([^"]*)"/) + if ($line =~ m/addSuperType.*"([^"]*)"/) { $types{$1}++; $types_files{$1} .= $file . ",,,"; diff --git a/Utils/keywords.txt b/Utils/keywords.txt index b905489993b..b20f2558f26 100644 --- a/Utils/keywords.txt +++ b/Utils/keywords.txt @@ -21,6 +21,7 @@ Dredge|number| Double Strike|instance| Dredge|number| Echo|manaString| +Embalm|cost, card| Enchant|type| Entwine|manaString| Evoke|card, manaString| diff --git a/Utils/known-sets.txt b/Utils/known-sets.txt index caa9156a522..f586453abb3 100644 --- a/Utils/known-sets.txt +++ b/Utils/known-sets.txt @@ -110,6 +110,7 @@ Magic Player Rewards|MagicPlayerRewards| Magic: The Gathering-Commander|Commander| Magic: The Gathering-Conspiracy|Conspiracy| Masterpiece Series|MasterpieceSeries| +Masterpiece Series Amonkhet|MasterpieceSeriesAmonkhet| Masters Edition|MastersEdition| Masters Edition II|MastersEditionII| Masters Edition III|MastersEditionIII| diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index 7fbd5d3285a..d0553e7440d 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -10736,6 +10736,7 @@ Angel of Deliverance|Launch Party|35|R|{6}{W}{W}|Creature - Angel|6|6|Flying$ Identity Thief|Launch Party|36|R|{2}{U}{U}|Creature - Shapeshifter|0|3|Whenever Identity Thief attacks, you may exile another target non-token creature. If you do, Identity Thief becomes a copy of that creature until end of turn. Return the exiled card to the battlefield under its owner's control at the beginning of the next end step.| Saheeli's Artistry|Launch Party|37|R|{4}{U}{U}|Sorcery|||Choose one or both — Create a token that's a copy of target artifact.; or Create a token that's a copy of target creature, except it's an artifact in addition to its other types.| Quicksmith Rebel|Launch Party|38|R|{3}{R}|Creature - Human Artificer|3|2|When Quicksmith Rebel enters the battlefield, target artifact you control gains "{T}: This artifact deals 2 damage to target creature or player" for as long as you control Quicksmith Rebel.| +Oracle's Vault|Launch Party|39|R|{4}|Artifact|||{2}, {T}: Exile the top card of your library. Until end of turn, you may play that card. Put a brick counter on Oracle's Vault.${T}: Exile the top card of your library. Until end of turn, you may play that card without paying its mana cost. Activate this ability only if there are three or more brick counters on Oracle's Vault.| Abomination|Legends|1|U|{3}{B}{B}|Creature - Horror|2|6|Whenever Abomination blocks or becomes blocked by a green or white creature, destroy that creature at end of combat.| Evil Eye of Orms-by-Gore|Legends|10|U|{4}{B}|Creature - Eye|3|6|Non-Eye creatures you control can't attack.$Evil Eye of Orms-by-Gore can't be blocked except by Walls.| Fire Sprites|Legends|100|C|{1}{G}|Creature - Faerie|1|1|Flying${G}, {tap}: Add {R} to your mana pool.| @@ -28612,7 +28613,8 @@ Heron's Grace Champion|Game Day|54|R|{2}{G}{W}|Creature - Human Knight|3|3|Flash Essence Extraction|Game Day|55|U|{1}{B}{B}|Instant|||Essence Extraction deals 3 damage to target creature and you gain 3 life.| Cultivator of Blades|Game Day|56|R|{3}{G}{G}|Creature - Elf Artificer|1|1|Fabricate 2$Whenever Cultivator of Blades attacks, you may have other attacking creatures get +X/+X until end of turn, where X is Cultivator of Blades's power.| Trophy Mage|Game Day|57|U|{2}{U}|Creature - Human Wizard|2|2|When Trophy Mage enters the battlefield, you may search your library for an artifact card with converted mana cost 3, reveal it, put it into your hand, then shuffle your library.| -Yahenni's Expertise|Aether Revolt|75|R|{2}{B}{B}|Sorcery|||All creatures get -3/-3 until end of turn.$You may cast a card with converted mana cost 3 or less from your hand without paying its mana cost.| +Yahenni's Expertise|Game Day|58|R|{2}{B}{B}|Sorcery|||All creatures get -3/-3 until end of turn.$You may cast a card with converted mana cost 3 or less from your hand without paying its mana cost.| +Glorybringer|Game Day|59|R|{3}{R}{R}|Creature - Dragon|4|4|Flying, haste$You may exert Glorybringer as it attacks. When you do, it deals 4 damage to target non-Dragon creature an opponent controls.| Garruk Relentless|Innistrad|181a|M|{3}{G}|Planeswalker - Garruk|||When Garruk Relentless has two or fewer loyalty counters on him, transform him.$0: Garruk Relentless deals 3 damage to target creature. That creature deals damage equal to its power to him.$0: Put a 2/2 green Wolf creature token onto the battlefield.| Garruk, the Veil-Cursed|Innistrad|181b|M||Planeswalker - Garruk|||+1: Put a 1/1 black Wolf creature token with deathtouch onto the battlefield.$-1: Sacrifice a creature. If you do, search your library for a creature card, reveal it, put it into your hand, then shuffle your library.$-3: Creatures you control gain trample and get +X/+X until end of turn, where X is the number of creature cards in your graveyard.| Stand|Invasion|292a|U|{W}|Instant|||Prevent the next 2 damage that would be dealt to target creature this turn.$| @@ -28844,6 +28846,7 @@ Ulvenwald Observer|Media Inserts|161|R|{4}{G}{G}|Creature - Treefolk|6|6|Wheneve Skyship Stalker|Media Inserts|162|R|{2}{R}{R}|Creature - Dragon|3|3|Flying${R}: Skyship Stalker gets +1/+0 until end of turn.${R}: Skyship Stalker gains first strike until end of turn.${R}: Skyship Stalker gains haste until end of turn.| Emrakul, the Aeons Torn|Media Inserts|163|M|{15}|Legendary Creature - Eldrazi|15|15|Emrakul, the Aeons Torn can't be countered.$When you cast Emrakul, take an extra turn after this one.$Flying, protection from colored spells, annihilator 6$When Emrakul is put into a graveyard from anywhere, its owner shuffles his or her graveyard into his or her library.| Scrap Trawler|Media Inserts|164|R|{3}|Artifact Creature - Construct|3|2|Whenever Scrap Trawler or another artifact you control is put into a graveyard from the battlefield, return to your hand target artifact card in your graveyard with lesser converted mana cost.| +Archfiend of Ifnir|Media Inserts|165|R|{3}{B}{B}|Creature - Demon|5|4|Flying$Whenever you cycle or discard another card, put a -1/-1 counter on each creature your opponents control.$Cycling {2}| Kytheon, Hero of Akros|Media Inserts|994|Special|{W}|Legendary Creature - Human Soldier|2|1|At end of combat, if Kytheon, Hero of Akros and at least two other creatures attacked this combat, exile Kytheon, then return him to the battlefield transformed under his owner's control.${2}{W}: Kytheon gains indestructible until end of turn.| Gideon, Battle-Forged|Media Inserts|994|Special||Planeswalker - Gideon|3|+2: Up to one target creature an opponent controls attacks Gideon, Battle-Forged during its controller's next turn if able.$+1: Until your next turn, target creature gains indestructible. Untap that creature.$0: Until end of turn, Gideon, Battle-Forged becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.| Jace, Vryn's Prodigy|Media Inserts|995|Special|{1}{U}|Legendary Creature - Human Wizard|0|2|{T}: Draw a card, then discard a card. If there are five or more cards in your graveyard, exile Jace, Vryn''s Prodigy, then return him to the battefield transformed under his owner's control. | @@ -30002,6 +30005,34 @@ Sword of War and Peace|Masterpiece Series|51|M|{3}|Artifact|||Equipped creature Trinisphere|Masterpiece Series|52|M|{3}|Artifact|||As long as Trinisphere is untapped, each spell that would cost less than three mana to cast costs three mana to cast.| Vedalken Shackles|Masterpiece Series|53|M|{3}|Artifact|||You may choose not to untap Vedalken Shackles during your untap step.${2}, {T}: Gain control of target creature with power less than or equal to the number of Islands you control for as long as Vedalken Shackles remains tapped.| Wurmcoil Engine|Masterpiece Series|54|M|{6}|Artifact Creature - Wurm|6|6|Deathtouch, lifelink$When Wurmcoil Engine dies, create a 3/3 colorless Wurm artifact creature token with deathtouch and a 3/3 colorless Wurm artifact creature token with lifelink.| +Austere Command|Masterpiece Series Amonkhet|1|Special|{4}{W}{W}|Sorcery|||Choose two - Destroy all artifacts.; Destroy all enchantments.; Destroy all creatures with converted mana cost 3 or less.; Destroy all creatures with converted mana cost 4 or greater.| +Aven Mindcensor|Masterpiece Series Amonkhet|2|Special|{2}{W}|Creature - Bird Wizard|2|1|Flash$Flying$If an opponent would search a library, that player search the top four cards of that library instead.| +Containment Priest|Masterpiece Series Amonkhet|3|Special|{1}{W}|Creature - Human Cleric|2|2|Flash$If a nontoken creature would enter the battlefield and it wasn't cast, exile it instead.| +Loyal Retainers|Masterpiece Series Amonkhet|4|Special|{2}{W}|Creature - Human Advisor|1|1|Sacrifice Loyal Retainers: Return target legendary creature card from your graveyard to the battlefield. Activate this ability only during your turn, before attackers are declared.| +Oketra the True|Masterpiece Series Amonkhet|5|Special|{3}{W}|Legendary Creature - God|3|6|Double strike, indestructible$Oketra the True can't attack or block unless you control at least three other creatures.${3}{W}: Create a 1/1 white Warrior creature token with vigilance.| +Worship|Masterpiece Series Amonkhet|6|Special|{3}{W}|Enchantment|||If you control a creature, damage that would reduce your life total to less than 1 reduces it to 1 instant.| +Wrath of God|Masterpiece Series Amonkhet|7|Special|{2}{W}{W}|Sorcery|||Destroy all creatures. They can't be regenerated.| +Consecrated Sphinx|Masterpiece Series Amonkhet|8|Special|{4}{U}{U}|Creature - Sphinx|4|6|Flying$Whenever an opponent draws a card, you may draw two cards.| +Counterbalance|Masterpiece Series Amonkhet|9|Special|{U}{U}|Enchantment|||Whenever an opponent casts a spell, you may reveal the top card of your library. If you do, counter that spell if it has the same converted mana cost as the revealed card.| +Counterspell|Masterpiece Series Amonkhet|10|Special|{U}{U}|Instant|||Counter target spell.| +Cryptic Command|Masterpiece Series Amonkhet|11|Special|{1}{U}{U}{U}|Instant|||Choose two - Counter target spell.; Return target permanent to its owner's hand.; Tap all creatures your opponents control.; Draw a card.| +Daze|Masterpiece Series Amonkhet|12|Special|{1}{U}|Instant|||You may return an Island you control to its owner's hand rather than pay Daze's mana cost.$Counter target spell unless its controller pays {1}.| +Divert|Masterpiece Series Amonkhet|13|Special|{U}|Instant|||Change the target of target spell with a single target unless that spell's controller pays {2}.| +Force of Will|Masterpiece Series Amonkhet|14|Special|{3}{U}{U}|Instant|||You may pay 1 life and exile a blue card from your hand rather than pay Force of Will's mana cost.$Counter target spell.| +Kefnet the Mindful|Masterpiece Series Amonkhet|15|Special|{2}{U}|Legendary Creature - God|5|5|Flying, indestructible$Kefnet the Mindful can't attack or block unless you have seven or more cards in hand.${3}{U}: Draw a card, then you may return a land you control to its owner's hand.| +Pact of Negation|Masterpiece Series Amonkhet|16|Special|{0}|Instant|||Counter target spell.$At the beginning of your next upkeep, pay {3}{U}{U}. If you don't, you lose the game.| +Spell Pierce|Masterpiece Series Amonkhet|17|Special|{U}|Instant|||Counter target noncreature spell unless its controller pays {2}.| +Stifle|Masterpiece Series Amonkhet|18|Special|{U}|Instant|||Counter target activated or triggered ability.| +Attrition|Masterpiece Series Amonkhet|19|Special|{1}{B}{B}|Enchantment|||{B}, Sacrifice a creature: Destroy target nonblack creature.| +Dark Ritual|Masterpiece Series Amonkhet|21|Special|{B}|Instant|||Add {B}{B}{B} to your mana pool.| +Diabolic Intent|Masterpiece Series Amonkhet|22|Special|{1}{B}|Sorcery|||As an additional cost to cast Diabolic Intent, sacrifice a creature.$Search your library for a card and put that card into your hand. Then shuffle your library.| +Entomb|Masterpiece Series Amonkhet|23|Special|{B}|Instant|||Search your library for a card and put that card into your graveyard. Then shuffle your library.| +Mind Twist|Masterpiece Series Amonkhet|24|Special|{X}{B}|Sorcery|||Target player discards X cards at random.| +Aggravated Assault|Masterpiece Series Amonkhet|25|Special|{2}{R}|Enchantment|||{3}{R}{R}: Untap all creatures you control. After this main phase, there is an additional combat phase followed by an additional main phase. Activate this ability only any time you could cast a sorcery.| +Chain Lightning|Masterpiece Series Amonkhet|26|Special|{R}|Sorcery|||Chain Lightning deals 3 damage to target creature or player. Then that player or that creature's controller may pay {R}{R}. If the player does, he or she may copy this spell and may choose a new target for that copy.| +Hazoret the Fervent|Masterpiece Series Amonkhet|27|Special|{3}{R}|Legendary Creature - God|5|4|Indestructible, haste$Hazoret the Fervent can't attack or block unless you have one or fewer cards in hand.${2}{R}, Discard a card: Hazoret deals 2 damage to each opponent.| +Maelstrom Pulse|Masterpiece Series Amonkhet|29|Special|{1}{B}{G}|Sorcery|||Destroy target nonland permanent and all other permanents with the same name as that permanent.| +Vindicate|Masterpiece Series Amonkhet|30|Special|{1}{W}{B}|Sorcery|||Destroy target permanent.| Duelist's Heritage|Commander 2016|1|R|{2}{W}|Enchantment|||Whenever one or more creatures attack, you may have target attacking creature gain double strike until end of turn.| Entrapment Maneuver|Commander 2016|2|R|{3}{W}|Instant|||Target player sacrifices an attacking creature. You create X 1/1 white Soldier creature tokens, where X is that creature's toughness.| Orzhov Advokist|Commander 2016|3|U|{2}{W}|Creature - Human Advisor|1|4|At the beginning of your upkeep, each player may put two +1/+1 counters on a creature he or she controls. If a player does, creatures that player controls can't attack you or a planeswalker you control until your next turn.| @@ -30798,3 +30829,297 @@ Selesnya Guildgate|Modern Masters 2017|246|C||Land - Gate|||Selesnya Guildgate e Shimmering Grotto|Modern Masters 2017|247|C||Land|||{T}: Add {C} to your mana pool.${1}, {T}: Add one mana of any color to your mana pool.| Simic Guildgate|Modern Masters 2017|248|C||Land - Gate|||Simic Guildgate enters the battlefield tapped.${T}: Add {G} or {U} to your mana pool.| Verdant Catacombs|Modern Masters 2017|249|R||Land|||{T}, Pay 1 life, Sacrifice Verdant Catacombs: Search your library for a Swamp or Forest card and put it onto the battlefield. Then shuffle your library.| +Angel of Sanctions|Amonkhet|1|M|{3}{W}{W}|Creature - Angel|3|4|Flying$When Angel of Sanctions enters the battlefield, you may exile target nonland permanent an opponent controls until Angel of Sanctions leaves the battlefield.$Embalm {5}{W}| +Anointed Procession|Amonkhet|2|R|{3}{W}|Enchantment|||If an effect would create one or more tokens under your control, it creates twice that many of those tokens instead.| +Anointer Priest|Amonkhet|3|C|{1}{W}|Creature - Human Cleric|1|3|Whenever a creature token enters the battlefield under your control, you gain 1 life.$Embalm {3}{W}| +Approach of the Second Sun|Amonkhet|4|R|{6}{W}|Sorcery|||If Approach of the Second Sun was cast from your hand and you've cast another spell named Approach of the Second Sun this game, you win the game. Otherwise, put Approach of the Second Sun into its owner's library seventh from the top and you gain 7 life.| +Aven Mindcensor|Amonkhet|5|R|{2}{W}|Creature - Bird Wizard|2|1|Flash$Flying$If an opponent would search a library, that player searches the top four cards of that library instead.| +Binding Mummy|Amonkhet|6|C|{1}{W}|Creature - Zombie|2|2|Whenever another Zombie enters the battlefield under your control, you may tap target artifact or creature.| +Cartouche of Solidarity|Amonkhet|7|C|{W}|Enchantment - Aura Cartouche|||Enchant creature you control$When Cartouche of Solidarity enters the battlefield, create a 1/1 white Warrior creature token with vigilance.$Enchanted creature gets +1/+1 and has first strike.| +Cast Out|Amonkhet|8|U|{3}{W}|Enchantment|||Flash$When Cast Out enters the battlefield, exile target nonland permanent an opponent controls until Cast Out leaves the battlefield.$Cycling {W}| +Compulsory Rest|Amonkhet|9|C|{1}{W}|Enchantment - Aura|||Enchant creature$Enchanted creature can't attack or block.$Enchanted creature has "{2}, Sacrifice this creature: You gain 2 life." +Devoted Crop-Mate|Amonkhet|10|U|{2}{W}|Creature - Human Warrior|3|2|You may exert Devoted Crop-Mate as it attacks. When you do, return target creature card with converted mana cost 2 or less from your graveyard to the battlefield.| +Djeru's Resolve|Amonkhet|11|C|{W}|Instant|||Untap target creature. Prevent all damage that would be dealt to it this turn.$Cycling {2}| +Fan Bearer|Amonkhet|12|C|{W}|Creature - Zombie|1|2|{2}, {T}: Tap target creature.| +Forsake the Worldly|Amonkhet|13|C|{2}{W}|Instant|||Exile target artifact or enchantment.$Cycling {2}| +Gideon of the Trials|Amonkhet|14|M|{1}{W}{W}|Planeswalker - Gideon|||+1: Until your next turn, prevent all damage target permanent would deal.$0: Until end of turn, Gideon of the Trials becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.$0: You get an emblem with "As long as you control a Gideon planeswalker, you can't lose the game and your opponent can't win the game."| +Gideon's Intervention|Amonkhet|15|R|{2}{W}{W}|Enchantment|||As Gideon’s Intervention enters the battlefield, choose a card name.$Your opponents can’t cast spells with the chosen name.$Prevent all damage that would be dealt to you and permanents you control by sources with the chosen name.| +Glory-Bound Initiate|Amonkhet|16|R|{1}{W}|Creature - Human Warrior|3|1|You may exert Glory-Bound Initiate as it attacks. When you do, it gets +1/+3 and gains lifelink until end of turn.| +Gust Walker|Amonkhet|17|C|{1}{W}|Creature - Human Wizard|2|2|You may exert Gust Walker as it attacks. When you do, it gets +1/+1 and gains flying until end of turn.| +Impeccable Timing|Amonkhet|18|C|{1}{W}|Instant|||Impeccable Timing deals 3 damage to target attacking or blocking creature.| +In Oketra's Name|Amonkhet|19|C|{1}{W}|Instant|||Zombies you control get +2/+1 until end of turn. Other creatures you control get +1/+1 until end of turn.| +Mighty Leap|Amonkhet|20|C|{1}{W}|Instant|||Target creature gets +2/+2 and gains flying until end of turn.| +Oketra the True|Amonkhet|21|M|{3}{W}|Legendary Creature - God|3|6|Double strike, indestructible$Oketra the True can't attack or block unless you control at least three other creatures.${3}{W}: Create a 1/1 white Warrior creature token with vigilance.| +Oketra's Attendant|Amonkhet|22|U|{3}{W}{W}|Creature - Bird Soldier|3|3|Flying$Cycling {2}$Embalm {3}{W}{W}| +Protection of the Hekma|Amonkhet|23|U|{4}{W}|Enchantment|||If a source an opponent controls would deal damage to you, prevent 1 of that damage.| +Regal Caracal|Amonkhet|24|R|{3}{W}{W}|Creature - Cat|3|3|Other Cats you control get +1/+1 and have lifelink.$When Regal Caracal enters the battlefield, create two 1/1 white Cat creature tokens with lifelink.| +Renewed Faith|Amonkhet|25|U|{2}{W}|Instant|||You gain 6 life.$Cycling {1}{W}$When you cycle Renewed Faith, you may gain 2 life.| +Rhet-Crop Spearmaster|Amonkhet|26|C|{2}{W}|Creature - Human Warrior|3|1|You may exert Rhet-Crop Spearmaster as it attacks. When you do, it gets +1/+0 and gains first strike until end of turn.| +Sacred Cat|Amonkhet|27|C|{W}|Creature - Cat|1|1|Lifelink$Embalm {W}| +Seraph of the Suns|Amonkhet|28|U|{5}{W}{W}|Creature - Angel|4|4|Flying$Indestructible| +Sparring Mummy|Amonkhet|29|C|{3}{W}|Creature - Zombie|3|3|When Sparring Mummy enters the battlefield, untap target creature.| +Supply Caravan|Amonkhet|30|C|{4}{W}|Creature - Camel|3|5|When Supply Caravan enters the battlefield, if you control a tapped creature, create a 1/1 white Warrior creature token with vigilance.| +Tah-Crop Elite|Amonkhet|31|C|{3}{W}|Creature - Bird Warrior|2|2|Flying$You may exert Tah-Crop Elite as it attacks. When you do, creatures you control get +1/+1 until end of turn.| +Those Who Serve|Amonkhet|32|C|{2}{W}|Creature - Zombie|2|4|| +Time to Reflect|Amonkhet|33|U|{W}|Instant|||Exile target creature that blocked or was blocked by a Zombie this turn.| +Trial of Solidarity|Amonkhet|34|U|{2}{W}|Enchantment|||When Trial of Solidarity enters the battlefield, creatures you control get +2/+1 and gain vigilance until end of turn.$When a Cartouche enters the battlefield under you control, return Trial of Solidarity to its owner's hand.| +Trueheart Duelist|Amonkhet|35|U|{1}{W}|Creature - Human Warrior|2|2|Trueheart Duelist can block an additional creature each combat.$Embalm {2}{W}| +Unwavering Initiate|Amonkhet|36|C|{2}{W}|Creature - Human Warrior|3|2|Vigilance$Embalm {4}{W} ({4}{W}, Exile this card from your graveyard: Create a token that's a copy of it, except it's a white Zombie Human Warrior with no mana cost. Embalm only as a sorcery.)| +Vizier of Deferment|Amonkhet|37|U|{2}{W}|Creature - Human Cleric|2|2|Flash$When Vizier of Deferment enters the battlefield, you may exile target creature if it attacked or blocked this turn. Return that card to the battlefield under its owner's control at the beginning of the next end step.| +Vizier of Remedies|Amonkhet|38|U|{1}{W}|Creature - Human Cleric|2|1|If one or more -1/-1 counters would be put on a creature you control, that many -1/-1 counters minus one are put on it instead.| +Winged Shepherd|Amonkhet|39|C|{5}{W}|Creature - Angel|3|3|Flying, vigilance$Cycling {W}| +Ancient Crab|Amonkhet|40|C|{1}{U}{U}|Creature - Crab|1|5|| +Angler Drake|Amonkhet|41|U|{4}{U}{U}|Creature - Drake|4|4|Flying$When Angler Drake enters the battlefield, you may return target creature to its owner's hand.| +As Foretold|Amonkhet|42|M|{2}{U}|Enchantment|||At the beginning of your upkeep, put a time counter on As Foretold.$Once each turn, you may pay {0} rather than pay the mana cost for a spell you cast with converted mana cost X or less, where X is the number of time counters on As Foretold.| +Aven Initiate|Amonkhet|43|C|{3}{U}|Creature - Bird Warrior|3|2|Flying$Embalm {6}{U}| +Cancel|Amonkhet|44|C|{1}{U}{U}|Instant|||Counter target spell.| +Cartouche of Knowledge|Amonkhet|45|C|{1}{U}|Enchantment - Aura Cartouche|||Enchant creature you control$When Cartouche of Knowledge enters the battlefield, draw a card.$Enchanted creature gets +1/+1 and has flying.| +Censor|Amonkhet|46|U|{1}{U}|Instant|||Counter target spell unless its controller pays {1}.$Cycling {U}| +Compelling Argument|Amonkhet|47|C|{1}{U}|Sorcery|||Target player puts the top five cards of his or her library into his or her graveyard.$Cycling {U}| +Cryptic Serpent|Amonkhet|48|U|{5}{U}{U}|Creature - Serpent|6|5|Cryptic Serpent costs {1} less to cast for each instant and sorcery card in your graveyard.| +Curator of Mysteries|Amonkhet|49|R|{2}{U}{U}|Creature - Sphinx|4|4|Flying$Whenever you cycle or discard another card, scry 1.$Cycling {U}| +Decision Paralysis|Amonkhet|50|C|{3}{U}|Instant|||Tap up to two target creatures. Those creatures don't untap during their controller's next untap step.| +Drake Haven|Amonkhet|51|R|{2}{U}|Enchantment|||When you cycle or discard a card, you may pay {1}. If you do, create a 2/2 blue Drake creature token with flying.| +Essence Scatter|Amonkhet|52|C|{1}{U}|Instant|||Counter target creature spell.| +Floodwaters|Amonkhet|53|C|{4}{U}{U}|Sorcery|||Return up to two target creatures to their owners' hands.$Cycling {2}| +Galestrike|Amonkhet|54|U|{2}{U}|Instant|||Return target tapped creature to its owner's hand.$Draw a card.| +Glyph Keeper|Amonkhet|55|R|{3}{U}{U}|Creature - Sphinx|5|3|Flying$Whenever Glyph Keeper becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.$Embalm {5}{U}{U}| +Hekma Sentinels|Amonkhet|56|C|{2}{U}|Creature - Human Cleric|2|3|Whenever you cycle or discard a card, Hekma Sentinels gets +1/+1 until end of turn.| +Hieroglyphic Illumination|Amonkhet|57|C|{3}{U}|Instant|||Draw two card.$Cycling {U}| +Illusory Wrappings|Amonkhet|58|C|{2}{U}|Enchantment - Aura|||Enchant creature$Enchanted creature has base power and toughness 0/2.| +Kefnet the Mindful|Amonkhet|59|M|{2}{U}|Legendary Creature - God|5|5|Flying, indestructible$Kefnet the Mindful can't attack or block unless you have seven or more cards in hand.${3}{U}: Draw a card, then you may return a land you control to its owner's hand.| +Labyrinth Guardian|Amonkhet|60|U|{1}{U}|Creature - Illusion Warrior|2|3|When Labyrinth Guardian becomes the target of a spell, sacrifice it.$Embalm {3}{U}| +Lay Claim|Amonkhet|61|U|{5}{U}{U}|Enchantment - Aura|||Enchant permanent$You control enchanted permanent.$Cycling {2}| +Naga Oracle|Amonkhet|62|C|{3}{U}|Creature - Naga Cleric|2|4|When Naga Oracle enters the battlefield, look at the top three cards of your library. Put any number of them into your graveyard and the rest back on top of your library in any order.| +New Perspectives|Amonkhet|63|R|{5}{U}|Enchantment|||When New Perspectives enters the battlefield, draw three cards.$As long as you have seven or more cards in hand, you may pay {0} rather than pay cycling costs.| +Open into Wonder|Amonkhet|64|U|{X}{U}{U}|Sorcery|||X target creatures can't be blocked this turn. Until end of turn, those creatures gain "Whenever this creature deals combat damage to a player, draw a card."| +Pull from Tomorrow|Amonkhet|65|R|{X}{U}{U}|Instant|||Draw X cards, then discard a card.| +River Serpent|Amonkhet|66|C|{5}{U}|Creature - Serpent|5|5|River Serpent can't attack unless there are five or more cards in your graveyard.$Cycling {U}| +Sacred Excavation|Amonkhet|67|U|{3}{U}|Sorcery|||Return up to two target cards with cycling from your graveyard to your hand.| +Scribe of the Mindful|Amonkhet|68|C|{2}{U}|Creature - Human Cleric|2|2|{1}, {T}, Sacrifice Scribe of the Mindful: Return target instant or sorcery card from your graveyard to your hand.| +Seeker of Insight|Amonkhet|69|C|{1}{U}|Creature - Human Wizard|1|3|{T}: Draw a card, then discard a card. Activate this ability only if you've cast a noncreature spell this turn.| +Shimmerscale Drake|Amonkhet|70|C|{4}{U}|Creature - Drake|3|4|Flying$Cycling {2}| +Slither Blade|Amonkhet|71|C|{U}|Creature - Naga Rogue|1|2|Slither Blade can't be blocked.| +Tah-Crop Skirmisher|Amonkhet|72|C|{1}{U}|Creature - Naga Warrior|2|1|Embalm {3}{U}| +Trial of Knowledge|Amonkhet|73|U|{3}{U}|Enchantment|||When Trial of Knowledge enters the battlefield, draw three cards, then discard a card.$When a Cartouche enters the battlefield under your control, return Trial of Knowledge to its owner's hand.| +Vizier of Many Faces|Amonkhet|74|R|{2}{U}{U}|Creature - Shapeshifter Cleric|0|0|You may have Vizier of Many Faces enter the battlefield as a copy of any creature on the battlefield, except if Vizier of Many Faces was embalmed, the token has no mana cost, it's white, and it's a Zombie in addition to its other types.$Embalm {3}{U}{U}| +Vizier of Tumbling Sands|Amonkhet|75|U|{2}{U}|Creature - Human Cleric|1|3|{T}: Untap another target permanent.$Cycling {1}{U}$When you cycle Vizier of Tumbling Sands, untap target permanent.| +Winds of Rebuke|Amonkhet|76|C|{1}{U}|Instant|||Return target nonland permanent to its owner's hand. Each player puts the top two cards of his or her library into his or her graveyard.| +Zenith Seeker|Amonkhet|77|U|{3}{U}|Creature - Bird Wizard|2|2|Flying$Whenever you cycle or discard a card, target creature gains flying until end of turn.| +Archfiend of Ifnir|Amonkhet|78|R|{3}{B}{B}|Creature - Demon|5|4|Flying$Whenever you cycle or discard another card, put a -1/-1 counter on each creature your opponents control.$Cycling {2}| +Baleful Ammit|Amonkhet|79|U|{2}{B}|Creature - Crocodile Demon|4|3|Lifelink$When Baleful Ammit enters the battlefield, put a -1/-1 counter on target creature you control.| +Blighted Bat|Amonkhet|80|C|{2}{B}|Creature - Zombie Bat|2|1|Flying${1}: Blighted Bat gains haste until end of turn.| +Bone Picker|Amonkhet|81|U|{3}{B}|Creature - Bird|3|2|Bone Picker costs {3} less to cast if a creature died this turn.$Flying, deathtouch| +Bontu the Glorified|Amonkhet|82|M|{2}{B}|Legendary Creature - God|4|6|Menace, indestructible$Bontu the Glorified can't attack or block unless a creature died under your control this turn.${1}{B}, Sacrifice another creature: Scry 1. Each opponent loses 1 life and you gain 1 life.| +Cartouche of Ambition|Amonkhet|83|C|{2}{B}|Enchantment - Aura Cartouche|||Enchant creature you control$When Cartouche of Ambition enters the battlefield, you may put a -1/-1 counter on target creature.$Enchanted creature gets +1/+1 and has lifelink.| +Cruel Reality|Amonkhet|84|M|{5}{B}{B}|Enchantment - Aura Curse|||Enchant player$At the beginning of enchanted player's upkeep, that player sacrifices a creature or planeswalker. If the player can't, he or she loses 5 life.| +Cursed Minotaur|Amonkhet|85|C|{2}{B}|Creature - Zombie Minotaur|3|2|Menace| +Dispossess|Amonkhet|86|R|{2}{B}|Sorcery|||Choose an artifact card name. Search target opponent's graveyard, hand, and library for any number of cards with the chosen name and exile them. Then that player shuffles his or her library.| +Doomed Dissenter|Amonkhet|87|C|{1}{B}|Creature - Human|1|1|When Doomed Dissenter dies, create a 2/2 black Zombie creature token.| +Dread Wanderer|Amonkhet|88|R|{B}|Creature - Zombie Jackal|2|1|Dread Wanderer enters the battlefield tapped.${2}{B}: Return Dread Wanderer from your graveyard to the battlefield. Activate this ability only any time you could cast a sorcery and only if you have one or fewer cards in hand.| +Dune Beetle|Amonkhet|89|C|{1}{B}|Creature - Insect|1|4|| +Faith of the Devoted|Amonkhet|90|U|{2}{B}|Enchantment|||Whenever you cycle or discard a card, you may pay {1}. If you do, each opponent loses 2 life and you gain 2 life.| +Festering Mummy|Amonkhet|91|C|{B}|Creature - Zombie|1|1|When Festering Mummy dies, you may put a -1/-1 counter on target creature.| +Final Reward|Amonkhet|92|C|{4}{B}|Instant|||Exile target creature.| +Gravedigger|Amonkhet|93|U|{3}{B}|Creature - Zombie|2|2|When Gravedigger enters the battlefield, you may return target creature card from your graveyard to your hand.| +Grim Strider|Amonkhet|94|U|{3}{B}|Creature - Horror|6|6|Grim Strider gets -1/-1 for each card in your hand.| +Horror of the Broken Lands|Amonkhet|95|C|{4}{B}|Creature - Horror|4|4|Whenever you cycle or discard another card, Horror of the Broken Lands gets +2/+1 until end of turn.$Cycling {B}| +Lay Bare the Heart|Amonkhet|96|U|{1}{B}|Sorcery|||Target opponent reveals his or her hand. You choose a nonlegendary, nonland card from it. That player discards that card.| +Liliana, Death's Majesty|Amonkhet|97|M|{3}{B}{B}|Planeswalker - Liliana|||+1: Create a 2/2 black Zombie creature token. Put the top two cards of your library into your graveyard.$-3: Return target creature card from your graveyard to the battlefield. That creature is a black Zombie in addition to its other colors and types.$-7: Destroy all non-Zombie creatures.| +Liliana's Mastery|Amonkhet|98|R|{3}{B}{B}|Enchantment|||Zombies you control get +1/+1.When Liliana's Mastery enters the battlefield, create two 2/2 black Zombie creature tokens.| +Lord of the Accursed|Amonkhet|99|U|{2}{B}|Creature - Zombie|2|3|Other Zombies you control get +1/+1.${1}{B}, {T}: All Zombies gain menace until end of turn.| +Miasmic Mummy|Amonkhet|100|C|{1}{B}|Creature - Zombie Jackal|2|2|When Miasmic Mummy enters the battlefield, each player discards a card.| +Nest of Scarabs|Amonkhet|101|U|{2}{B}|Enchantment|||Whenever you put one or more -1/-1 counters on a creature, create that many 1/1 black Insect tokens.| +Painful Lesson|Amonkhet|102|C|{2}{B}|Sorcery|||Target player draws two cards and loses 2 life.| +Pitiless Vizier|Amonkhet|103|C|{3}{B}|Creature - Minotaur Cleric|4|2|Whenever you cycle or discard a card, Pitiless Vizier gains indestructible until end of turn.| +Plague Belcher|Amonkhet|104|R|{2}{B}|Creature - Zombie Beast|5|4|Menace$When Plague Belcher enters the battlefield, put two -1/-1 counters on target creature you control.$Whenever another Zombie you control dies, each opponent loses 1 life.| +Ruthless Sniper|Amonkhet|105|U|{B}|Creature - Human Archer|1|2|Whenever you cycle or discard a card, you may pay {1}. If you do, put a -1/-1 counter on target creature.| +Scarab Feast|Amonkhet|106|C|{B}|Instant|||Exile up to three target cards from a single graveyard.$Cycling {B}| +Shadow of the Grave|Amonkhet|107|R|{1}{R}|Instant|||Return to your hand all cards in your graveyard that you cycled or discarded this turn.| +Soulstinger|Amonkhet|108|C|{3}{B}|Creature - Scorpion Demon|4|5|When Soulstinger enters the battlefield, put two -1/-1 counter on target creature you control.$When Soulstinger dies, you may put a -1/-1 counter on target creature for each -1/-1 counter on Soulstinger.| +Splendid Agony|Amonkhet|109|C|{2}{B}|Instant|||Distribute two -1/-1 counters among one or two target creatures.| +Stir the Sands|Amonkhet|110|U|{4}{B}{B}|Sorcery|||Create three 2/2 black Zombie creature tokens.$Cycling {3}{B}$When you cycle Stir the Sands, create a 2/2 black Zombie creature token.| +Supernatural Stamina|Amonkhet|111|C|{B}|Instant|||Until end of turn, target creature gets +2/+0 and gains "When this creature dies, return it to the battlefield tapped under its owner's control."| +Trespasser's Curse|Amonkhet|112|C|{1}{B}|Enchantment - Aura Curse|||Enchant player$Whenever a creature enters the battlefield under enchanted player's control, that player loses 1 life and you gain 1 life.| +Trial of Ambition|Amonkhet|113|U|{1}{B}|Enchantment|||When Trial of Ambition enters the battlefield, target opponent sacrifices a creature.$When a Cartouche enters the battlefield under your control, return Trial of Ambition to its owner's hand.| +Unburden|Amonkhet|114|C|{1}{B}{B}|Sorcery|||Target player discards two cards.$Cycling {2}| +Wander in Death|Amonkhet|115|C|{2}{B}|Sorcery|||Return up to two target creature cards from your graveyard to your hand.$Cycling {2}| +Wasteland Scorpion|Amonkhet|116|C|{2}{B}|Creature - Scorpion|2|2|Deathtouch$Cycling {2}| +Ahn-Crop Crasher|Amonkhet|117|U|{2}{R}|Creature - Minotaur Warrior|3|2|Haste$You may exert Ahn-Crop Crasher as it attacks. When you do, target creature can't block this turn.| +Battlefield Scavenger|Amonkhet|118|U|{1}{R}|Creature - Jackal Rogue|2|2|You may exert Battlefield Scavenger as it attacks.$Whenever you exert a creature, you may discard a card. If you do, draw a card.| +Blazing Volley|Amonkhet|119|C|{R}|Sorcery|||Blazing Volley deals damage to each creature your opponents control.| +Bloodlust Inciter|Amonkhet|120|C|{R}|Creature - Human Warrior|1|1|{T}: Target creature gains haste until end of turn.| +Bloodrage Brawler|Amonkhet|121|U|{1}{R}|Creature - Minotaur Warrior|4|3|When Bloodrage Brawler enters the battlefield, discard a card.| +Brute Strength|Amonkhet|122|C|{1}{R}|Instant|||Target creature gets +3/+1 and gain trample until end of turn.| +By Force|Amonkhet|123|U|{X}{R}|Sorcery|||Destroy X target artifacts.| +Cartouche of Zeal|Amonkhet|124|C|{R}|Enchantment - Aura Cartouche|||Enchant creature you control$When Cartouche of Zeal enters the battlefield, target creature can't block this turn.$Enchanted creature gets +1/+1 and has haste.| +Combat Celebrant|Amonkhet|125|M|{2}{R}|Creature - Human Warrior|4|1|If Combat Celebrant hasn't been exerted this turn, you may exert it as it attacks. When you do, untap all other creatures you control and after this phase, there is an additional combat phase.| +Consuming Fervor|Amonkhet|126|U|{R}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +3/+3 and has "At the beginning of your upkeep, put a -1/-1 counter on this creature."| +Deem Worthy|Amonkhet|127|U|{4}{R}|Instant|||Deem Worthy deals 7 damage to target creature.$Cycling {3}{R}$When you cycle Deem Worthy, you may have it deal 2 damage to target creature.| +Desert Cerodon|Amonkhet|128|C|{5}{R}|Creature - Beast|6|4|Cycling {R}| +Electrify|Amonkhet|129|C|{3}{R}|Instant|||Electrify deals 4 damage to target creature.| +Emberhorn Minotaur|Amonkhet|130|C|{3}{R}|Creature - Minotaur Warrior|4|3|You may exert Emberhorn Minotaur as it attacks. When you do, it gets +1/+1 and gains menace until end of turn.| +Flameblade Adept|Amonkhet|131|U|{R}|Creature - Jackal Warrior|1|2|Menace$Whenever you cycle or discard a card, Flameblade Adept gets +1/+0 until end of turn.| +Fling|Amonkhet|132|C|{1}{R}|Instant|||As an additional cost to cast Fling, sacrifice a creature.$Fling deals damage equal to the sacrificed creature's power to target creature or player.| +Glorious End|Amonkhet|133|M|{2}{R}|Instant|||End the turn. (Exile all spells and abilities on the stack, including the card. The player whose turn it is discards down to his or her maximum hand size. Damage wears off, and "this turn" and "until end of turn" effects end.)$At the beginning of your next end step, you lose the game.| +Glorybringer|Amonkhet|134|R|{3}{R}{R}|Creature - Dragon|4|4|Flying, haste$You may exert Glorybringer as it attacks. When you do, it deals 4 damage to target non-Dragon creature an opponent controls.| +Harsh Mentor|Amonkhet|135|R|{1}{R}|Creature - Human Cleric|2|2|Whenever an opponent activates an ability of an artifact, creature, or land on the battlefield, if it isn't a mana ability, Harsh Mentor deals 2 damage to that player.| +Hazoret the Fervent|Amonkhet|136|M|{3}{R}|Legendary Creature - God|5|4|Indestructible, haste$Hazoret the Fervent can't attack or block unless you have one or fewer cards in hand.${2}{R}, Discard a card: Hazoret deals 2 damage to each opponent.| +Hazoret's Favor|Amonkhet|137|R|{2}{R}|Enchantment|||At the beginning of combat on your turn, you may have target creature you control get +2/+0 and gain haste until end of turn. If you do, sacrifice it at the beginning of the next end step.| +Heart-Piercer Manticore|Amonkhet|138|R|{2}{R}{R}|Creature - Manticore|4|3|When Heart-Piercer Manticore enters the battlefield, you may sacrifice another creature. When you do, Heart-Piercer Manticore deals damage equal to that creature's power to target creature or player.$Embalm {5}{R}| +Hyena Pack|Amonkhet|139|C|{2}{R}{R}|Creature - Hyena|3|4|| +Limits of Solidarity|Amonkhet|140|U|{3}{R}|Sorcery|||Gain control of target creature until end of turn. Untap that creature. It gains haste until end of turn.$Cycling {2}| +Magma Spray|Amonkhet|141|C|{R}|Instant|||Magma Spray deals 2 damage to target creature. If that creature would die this turn, exile it instead.| +Manticore of the Gauntlet|Amonkhet|142|C|{4}{R}|Creature - Manticore|5|4|When Manticore of the Gauntlet enters the battlefield, put a -1/-1 counter on target creature you control. Manticore of the Gauntlet deals 3 damage to target opponent.| +Minotaur Sureshot|Amonkhet|143|C|{2}{R}|Creature - Minotaur Archer|2|3|Reach${1}{R}: Minotaur Sureshot gets +1/+0 until end of turn.| +Nef-Crop Entangler|Amonkhet|144|C|{1}{R}|Creature - Human Warrior|2|1|Trample$You may exert Nef-Crop Entangler as it attacks. When you do, it gets +1/+2 until end of turn.| +Nimble-Blade Khenra|Amonkhet|145|C|{1}{R}|Creature - Jackal Warrior|1|3|Prowess| +Pathmaker Initiate|Amonkhet|146|C|{1}{R}|Creature - Human Wizard|2|1|{T}: Target creature with power 2 or less can't be blocked this turn.| +Pursue Glory|Amonkhet|147|C|{3}{R}|Instant|||Attacking creatures get +2/+0 until end of turn.$Cycling {2}| +Soul-Scar Mage|Amonkhet|148|R|{R}|Creature - Human Wizard|1|2|Prowess$If a source you control would deal noncombat damage to a creature an opponent controls, put that many -1/-1 counters on that creature instead.| +Sweltering Suns|Amonkhet|149|R|{1}{R}{R}|Sorcery|||Sweltering Suns deals 3 damage to each creature.$Cycling {3}| +Thresher Lizard|Amonkhet|150|C|{2}{R}|Creature - Lizard|3|2|Thresher Lizard gets +1/+2 as long as you have one or fewer cards in hand.| +Tormenting Voice|Amonkhet|151|C|{1}{R}|Sorcery|||As an additional cost to cast Tormenting Voice, discard a card.$Draw two cards.| +Trial of Zeal|Amonkhet|152|U|{2}{R}|Enchantment|||When Trial of Zeal enters the battlefield, it deals 3 damage to target creature or player.$When a Cartouche enters the battlefield under your control, return Trial of Zeal to its owner's hand.| +Trueheart Twins|Amonkhet|153|U|{4}{R}|Creature - Jackal Warrior|4|4|You may exert Trueheart Twins as it attacks.$Whenever you exert a creature, creatures you control get +1/+0 until end of turn.| +Violent Impact|Amonkhet|154|C|{3}{R}|Sorcery|||Destroy target artifact or land.$Cycling {2}| +Warfire Javelineer|Amonkhet|155|U|{3}{R}|Creature - Minotaur Warrior|2|3|When Warfire Javelineer enters the battlefield, it deals X damage to target creature an opponent controls, where X is the number of instant and sorcery cards in your graveyard.| +Benefaction of Rhonas|Amonkhet|156|C|{2}{G}|Sorcery|||Reveal the top five cards of your library. You may put a creature card and/or enchantment card from among them into your hand. Put the rest into your graveyard.| +Bitterblade Warrior|Amonkhet|157|C|{1}{G}|Creature - Jackal Warrior|2|2|You may exert Bitterblade Warrior as it attacks. When you do, it gets +1/+0 and gains deathtouch until end of turn.| +Cartouche of Strength|Amonkhet|158|C|{2}{G}|Enchantment - Aura Cartouche|||Enchant creature you control$When Cartouche of Strength enters the battlefield, you may have enchanted creature fight target creature an opponent controls.$Enchanted creature gets +1/+1 and has trample.| +Champion of Rhonas|Amonkhet|159|R|{3}{G}|Creature - Jackal Warrior|3|3|You may exert Champion of Rhonas as it attacks. When you do, you may put a creature card from your hand onto the battlefield.| +Channeler Initiate|Amonkhet|160|R|{1}{G}|Creature - Human Druid|3|4|When Channeler Initiate enters the battlefield, put three -1/-1 counters on target creature you control.${T}, Remove a -1/-1 counter from Channeler Initiate: Add one mana of any color to your mana pool.| +Colossapede|Amonkhet|161|C|{4}{G}|Creature - Insect|5|5|| +Crocodile of the Crossing|Amonkhet|162|U|{3}{G}|Creature - Crocodile|5|4|Haste$When Crocodile of the Crossing enters the battlefield, put a -1/-1 counter on target creature you control.| +Defiant Greatmaw|Amonkhet|163|U|{2}{G}|Creature - Hippo|4|5|When Defiant Greatmaw enters the battlefield, put two -1/-1 counters on target creature you control.$Whenever you put one or more -1/-1 counters on Defiant Greatmaw, remove a -1/-1 counter from another target creature you control.| +Dissenter's Deliverance|Amonkhet|164|C|{1}{G}|Instant|||Destroy target artifact.$Cycling {G}| +Exemplar of Strength|Amonkhet|165|U|{1}{G}|Creature - Human Warrior|4|4|When Exemplar of Strength enters the battlefield, put three -1/-1 counters on target creature you control.$Whenever Exemplar of Strength attacks, remove a -1/-1 counter from it. If you do, you gain 1 life.| +Giant Spider|Amonkhet|166|C|{3}{G}|Creature - Spider|2|4|Reach| +Gift of Paradise|Amonkhet|167|C|{2}{G}|Enchantment - Aura|||Enchant land$When Gift of Paradise enters the battlefield, you gain 3 life.$Enchanted land has "{T}: Add two mana of any one color to your mana pool."| +Greater Sandwurm|Amonkhet|168|C|{5}{G}{G}|Creature - Wurm|7|7|Greater Sandwurm can't be blocked by creatures with power 2 or less.$Cycling {2}| +Hapatra's Mark|Amonkhet|169|U|{G}|Instant|||Target creature you control gains hexproof until end of turn. Remove all -1/-1 counters from it.| +Harvest Season|Amonkhet|170|R|{2}{G}|Sorcery|||Search your library for up to X basic land cards, where X is the number of tapped creatures you control, and put those card onto the battlefield tapped, then shuffle your library.| +Haze of Pollen|Amonkhet|171|C|{1}{G}|Instant|||Prevent all combat damage that would be dealt this turn.$Cycling {3}| +Honored Hydra|Amonkhet|172|R|{5}{G}|Creature - Snake Hydra|6|6|Trample$Embalm {3}{G}| +Hooded Brawler|Amonkhet|173|C|{2}{G}|Creature - Naga Warrior|3|2|You may exert Hooded Brawler as it attacks. When you do, it gets +2/+2 until end of turn.| +Initiate's Companion|Amonkhet|174|C|{1}{G}|Creature - Cat|3|1|Whenever Initiate's Companion deals combat damage to a player, untap target creature or land.| +Manglehorn|Amonkhet|175|U|{2}{G}|Creature - Beast|2|2|When Manglehorn enters the battlefield, you may destroy target artifact.$Artifacts your opponents control enter the battlefield tapped.| +Naga Vitalist|Amonkhet|176|C|{1}{G}|Creature - Naga Druid|1|2|{T}: Add to your mana pool one mana of any type that a land you control could produce.| +Oashra Cultivator|Amonkhet|177|C|{G}|Creature - Human Druid|0|3|{2}{G}, {T}, Sacrifice Oashra Cultivator: Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.| +Ornery Kudu|Amonkhet|178|C|{2}{G}|Creature - Antelope|3|4|When Ornery Kudu enters the battlefield, put a -1/-1 counter on target creature you control.| +Pouncing Cheetah|Amonkhet|179|C|{2}{G}|Creature - Cat|3|2|Flash| +Prowling Serpopard|Amonkhet|180|R|{1}{G}{G}|Creature - Cat Snake|4|3|Prowling Serpopard can't be countered.$Creature spells you control can't be countered.| +Quarry Hauler|Amonkhet|181|C|{3}{G}|Creature - Camel|4|3|When Quarry Hauler enters the battlefield, for each kind of counter on target permanent, put another counter of that kind on it or remove one from it.| +Rhonas the Indomitable|Amonkhet|182|M|{2}{G}|Legendary Creature - God|5|5|Deathtouch, indestructible$Rhonas, the Indomitable can't attack or block unless you control another creature with power 4 or greater.${2}{G}: Another target creature gets +2/+0 and gains trample until end of turn.| +Sandwurm Convergence|Amonkhet|183|R|{6}{G}{G}|Enchantment|||Creatures with flying can't attack you or planeswalkers you control.$At the beginning of your end step, create a 5/5 green Wurm creature token.| +Scaled Behemoth|Amonkhet|184|U|{4}{G}{G}|Creature - Crocodile|6|7|Hexproof| +Shed Weakness|Amonkhet|185|C|{G}|Instant|||Target creature gets +2/+2 until end of turn. You may remove a -1/-1 counter from it.| +Shefet Monitor|Amonkhet|186|U|{5}{G}|Creature - Lizard|6|5|Cycling {3}{G}$When you cycle Shefet Monitor, you may search your library for a basic land card or a Desert card, put it onto the battlefield, then shuffle your library.| +Sixth Sense|Amonkhet|187|U|{G}|Enchantment - Aura|||Enchant creature$Enchanted creature has "Whenever this creature deals combat damage to a player, you may draw a card."| +Spidery Grasp|Amonkhet|188|C|{2}{G}|Instant|||Untap target creature. It gets +2/+4 and gains reach until end of turn.| +Stinging Shot|Amonkhet|189|C|{G}|Instant|||Put three -1/-1 counters on target creature with flying.$Cycling {2}| +Synchronized Strike|Amonkhet|190|U|{2}{G}|Instant|||Untap up to two target creatures. They each get +2/+2 until end of turn.| +Trial of Strength|Amonkhet|191|U|{2}{G}|Enchantment|||When Trial of Strength enters the battlefield, create a 4/2 green Beast creature token.$When a Cartouche enters the battlefield under your control, return Trial of Strength to its owner's hand.| +Vizier of the Menagerie|Amonkhet|192|M|{3}{G}|Creature - Naga Cleric|3|4|You may look at the top card of your library. (You may do this at any time)$You may cast the top card of your library if it's a creature card.$You may spend mana as though it were mana of any type to cast creature spells.| +Watchful Naga|Amonkhet|193|U|{2}{G}|Creature - Naga Wizard|2|2|You may exert Watchful Naga as it attacks. When you do, draw a card.| +Ahn-Crop Champion|Amonkhet|194|U|{2}{G}{W}|Creature - Human Warrior|4|4|You may exert Ahn-Crop Champion as it attacks. When you do, untap all other creatures you control.| +Aven Wind Guide|Amonkhet|195|U|{2}{W}{U}|Creature - Bird Warrior|2|3|Flying, vigilance$Creature tokens you control have flying and vigilance.$Embalm {4}{W}{U}| +Bounty of the Luxa|Amonkhet|196|R|{2}{G}{U}|Enchantment|||At the beginning of your precombat main phase, remove all flood counters from Bounty of the Luxa. If no counters were removed this way, put a flood counter on Bounty of the Luxa and draw a card. Otherwise, add {C}{G}{U} to your mana pool.| +Decimator Beetle|Amonkhet|197|U|{3}{B}{G}|Creature - Insect|4|5|When Decimator Beetle enters the battlefield, put a -1/-1 counter on target creature you control.$Whenever Decimator Beetle attacks, remove a -1/-1 counter from target creature you control and put a -1/-1 counter on up to one target creature defending player controls.| +Enigma Drake|Amonkhet|198|U|{1}{U}{R}|Creature - Drake|0|4|Flying$Enigma Drake's power is equal to the number of instant and sorcery cards in your graveyard.| +Hapatra, Vizier of Poisons|Amonkhet|199|R|{B}{G}|Legendary Creature - Human Cleric|2|2|Whenever Hapatra, Vizier of Poisons deals combat damage to a player, you may put a -1/-1 counter on target creature.$Whenever you put one or more -1/-1 counters on a creature, create a 1/1 green Snake creature token with deathtouch.| +Honored Crop-Captain|Amonkhet|200|U|{R}{W}|Creature - Human Warrior|3|2|Whenever Honored Crop-Captain attacks, other attacking creatures get +1/+0 until end of turn.| +Khenra Charioteer|Amonkhet|201|U|{1}{R}{G}|Creature - Jackal Warrior|3|3|Trample$Other creatures you control have trample.| +Merciless Javelineer|Amonkhet|202|U|{2}{B}{R}|Creature - Minotaur Warrior|4|2|{2}, Discard a card: Put a -1/-1 counter on target creature. That creature can't block this turn.| +Neheb, the Worthy|Amonkhet|203|R|{1}{B}{R}|Legendary Creature - Minotaur Warrior|2|2|First strike$Other Minotaurs you control have first strike.$As long as you have one or fewer cards in hand, Minotaurs you control get +2/+0.$Whenever Neheb, the Worthy deals combat damage to a player, each player discards a card.| +Nissa, Steward of Elements|Amonkhet|204|M|{X}{G}{U}|Planeswalker - Nissa|||+2: Scry 2.$0: Look at the top card of your library. If it's a land card or a creature card with converted mana cost less than or equal to the number of loyalty counters on Nissa, Steward of Elements, you may put that card onto the battlefield.$-6: Untap up to two target lands you control. They become 5/5 Elemental creatures with flying and haste until end of turn. They're still lands.| +Samut, Voice of Dissent|Amonkhet|205|M|{3}{R}{G}|Legendary Creature - Human Warrior|3|4|Flash$Double strike, vigilance, haste$Other creatures you control have haste.${W}, {T}: Untap another target creature.| +Shadowstorm Vizier|Amonkhet|206|U|{U}{B}|Creature - Human Cleric|1|3|Flying$Whenever you cycle or discard a card, Shadowstorm Vizier gets +1/+1 until end of turn.| +Temmet, Vizier of Naktamun|Amonkhet|207|R|{W}{U}|Legendary Creature - Human Cleric|2|2|At the beginning of combat on your turn, target creature token you control gets +1/+1 until end of turn and can't be blocked this turn.$Embalm {3}{W}{U}| +Wayward Servant|Amonkhet|208|U|{W}{B}|Creature - Zombie|2|2|Whenever another Zombie enters the battlefield under your control, each opponent loses 1 life and you gain 1 life.| +Weaver of Currents|Amonkhet|209|U|{1}{G}{U}|Creature - Naga Druid|2|2|{T}: Add {C}{C} to your mana pool.| +Dusk|Amonkhet|210a|R|{2}{W}{W}|Sorcery|||Destroy all creatures with power 3 or greater.| +Dawn|Amonkhet|210b|R|{3}{W}{W}|Sorcery|||Aftermath (Cast this spell only from your graveyard. Then exile it.)$Return all creature cards with power 2 or less from your graveyard to your hand.| +Commit|Amonkhet|211a|R|{3}{U}|Instant|||Put target spell or nonland permanent into its owner's library second from the top.| +Memory|Amonkhet|211b|R|{4}{U}{U}|Sorcery|||Aftermath$Each player shuffles his or her hand and graveyard into his or her library, then draws seven cards.| +Never|Amonkhet|212a|R|{1}{B}{B}|Sorcery|||Destroy target creature or planeswalker.| +Return|Amonkhet|212b|R|{3}{B}|Sorcery|||Aftermath$Exile target card from a graveyard. Create a 2/2 black Zombie creature token.| +Insult|Amonkhet|213a|R|{2}{R}|Sorcery|||Damage can't be prevented this turn. If a source you control would deal damage this turn, it deals double that damage instead.| +Injury|Amonkhet|213b|R|{2}{R}|Sorcery|||Aftermath$Injury deals 2 damage to target creature and 2 damage to target player.| +Mouth|Amonkhet|214a|R|{2}{G}|Sorcery|||Create a 3/3 green Hippo creature token.| +Feed|Amonkhet|214b|R|{3}{G}|Sorcery|||Aftermath$Draw a card for each creature you control with power 3 or greater.| +Start|Amonkhet|215a|U|{2}{W}|Instant|||Create two 1/1 white Warrior creature tokens with vigilance.| +Finish|Amonkhet|215b|U|{2}{B}|Sorcery|||Aftermath$As an additional cost to cast End, sacrifice a creature.$Destroy target creature.| +Reduce|Amonkhet|216a|U|{2}{U}|Instant|||Counter target spell unless its controller pays {3}.| +Rubble|Amonkhet|216b|U|{2}{R}|Sorcery|||Aftermath$Up to three target lands don't untap during their controller's next untap step.| +Destined|Amonkhet|217a|U|{1}{B}|Instant|||Target creature gets +1/+0 and gains indestuctible until end of turn.| +Lead|Amonkhet|217b|U|{3}{G}|Sorcery|||Aftermath (Cast this spell only from your graveyard. Then exile it.)$All creatures able to block target creature this turn do so.| +Onward|Amonkhet|218a|U|{2}{R}|Instant|||Target creature gets +X/+0 until end of turn, where X is its power.| +Victory|Amonkhet|218b|U|{2}{W}|Sorcery|||Aftermath$Target creature gains double strike until end of turn.| +Spring|Amonkhet|219a|U|{2}{G}|Sorcery|||Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.| +Mind|Amonkhet|219b|U|{4}{U}{U}|Instant|||Aftermath$Draw two cards.| +Prepared|Amonkhet|220a|R|{1}{W}|Instant|||Untap target creature. It gains +2/+2 and has lifelink until end of turn.| +Fight|Amonkhet|220b|R|{3}{G}|Sorcery|||Target creature you control fights target an opponent controls.| +Failure|Amonkhet|221a|R|{1}{U}|Instant|||Return target spell to its owner's hand.| +Comply|Amonkhet|221b|R|{W}|Sorcery|||Aftermath$Choose a card name. Until your next turn, your opponents can't cast spells with the chosen name.| +Rags|Amonkhet|222a|R|{2}{B}{B}|Sorcery|||All creatures get -2/-2 until end of turn.| +Riches|Amonkhet|222b|R|{5}{U}{U}|Sorcery|Aftermath$Each opponent chooses a creature he or she controls. You gain control of those creatures.| +Cut|Amonkhet|223a|R|{1}{R}|Sorcery|||Cut deals 4 damage to target creature.| +Ribbons|Amonkhet|223b|R|{X}{B}{B}|Sorcery|||Aftermath$Each opponent loses X life.| +Heaven|Amonkhet|224a|R|{X}{G}|Instant|||Heaven deals X damage to each creature with flying.| +Earth|Amonkhet|224b|R|{X}{R}{R}|Sorcery|||Earth deals X damage to each creature without flying.| +Bontu's Monument|Amonkhet|225|U|{3}|Legendary Artifact|||Black creature spells you cast cost {1} less to cast.$Whenever you cast a creature spell, each opponent loses 1 life and you gain 1 life.| +Edifice of Authority|Amonkhet|226|U|{3}|Artifact|||{1}, {T}: Target creature can't attack this turn. Put a brick counter on Edifice of Authority.${1}, {T}: Until your next turn, target creature can't attack or block and its activated abilities can't be activated. Activate this ability only if there are three or more brick counter on Edifice of Authority.| +Embalmer's Tools|Amonkhet|227|U|{2}|Artifact|||Activated abilities of creature cards in your graveyard cost {1} less to activate.$Tap an untapped Zombie you control: Target player puts the top card of his or her library into his or her graveyard.| +Gate to the Afterlife|Amonkhet|228|U|{3}|Artifact|||Whenever a nontoken creature you control dies, you gain 1 life. Then you may draw a card. If you do, discard a card.${2}, {T}, Sacrifice Gate to the Afterlife: Search your graveyard, hand, and/or library for a card named God-Pharaoh's Gift and put it onto the battlefield. If you seearch your library this way, shuffle it. Activate this ability only if there are six or more creature cards in your graveyard.| +Hazoret's Monument|Amonkhet|229|U|{3}|Legendary Artifact|||Red creature spells you cast cost {1} less to cast.$Whenever you cast a creature spell, you may discard a card. If you do, draw a card.| +Honed Khopesh|Amonkhet|230|C|{1}|Artifact - Equipment|||Equipped creature gets +1/+1.$Equip {1}| +Kefnet's Monument|Amonkhet|231|U|{3}|Legendary Artifact|||Blue creature spells you cast cost {1} less to cast.$Whenever you cast a creature spell, target creature an opponent controls doesn't untap during its controller's next untap step.| +Luxa River Shrine|Amonkhet|232|C|{3}|Artifact|||{1}, {T}: You gain 1 life. Put a brick counter on Luxa River Shrine.${T}: You gain 2 life. Activate this ability only if there are three or more brick counters on Luxa River Shrine.| +Oketra's Monument|Amonkhet|233|U|{3}|Legendary Artifact|||White creature spells you cast cost {1} less to cast.$Whenever you cast a creature spell, create 1/1 a white Warrior creature token with vigilance.| +Oracle's Vault|Amonkhet|234|R|{4}|Artifact|||{2}, {T}: Exile the top card of your library. Until end of turn, you may play that card. Put a brick counter on Oracle's Vault.${T}: Exile the top card of your library. Until end of turn, you may play that card without paying its mana cost. Activate this ability only if there are three or more brick counters on Oracle's Vault.| +Pyramid of the Pantheon|Amonkhet|235|R|{1}|Artifact|||{2}, {T}: Add one mana of any color to your mana pool. Put a brick counter on Pyramid of the Pantheon.$ {T}: Add three mana of any one color to your mana pool. Activate this ability only of there are three or more brick counters on Pyramid of the Pantheon.| +Rhonas's Monument|Amonkhet|236|U|{3}|Legendary Artifact|||Green creature spells you cast cost {1} less to cast.$Whenever you cast a creature spell, target creature you control gets +2/+2 and gains trample until end of turn.| +Throne of the God-Pharaoh|Amonkhet|237|R|{2}|Legendary Artifact|||At the beginning of your end step, each opponent loses life equal to the number of tapped creatures you control.| +Watchers of the Dead|Amonkhet|238|U|{2}|Artifact Creature - Cat|2|2|Exile Watchers of the Dead: Each opponent chooses two cards in his or her graveyard and exiles the rest.| +Canyon Slough|Amonkhet|239|R||Land - Swamp Mountain|||({T}: Add {B} or {R} to your mana pool.)$Canyon Slough enters the battlefield tapped.$Cycling {2}| +Cascading Cataracts|Amonkhet|240|R||Land|||Indestructible${T}: Add {C} to your mana pool.${5}, {T}: Add five mana in any combination of colors to your mana pool.| +Cradle of the Accursed|Amonkhet|241|C||Land - Desert|||{T}: Add {C} to your mana pool.${3}, {T}, Sacrifice Cradle of the Accursed: Create a 2/2 black Zombie creature token. Activate this ability only any time you could cast a sorcery.| +Evolving Wilds|Amonkhet|242|C||Land|||{T}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| +Fetid Pools|Amonkhet|243|R||Land - Island Swamp|||({T}: Add {U} or {B} to your mana pool.)$Fetid Pools enters the battlefield tapped.$Cycling {2}| +Grasping Dunes|Amonkhet|244|U||Land - Desert|||{T}: Add {C} to your mana pool.${1}, {T}, Sacrifice Grasping Dunes: Put a -1/-1 counter on target creature. Activate this ability only any time you could cast a sorcery.| +Irrigated Farmland|Amonkhet|245|R||Land - Plains Island|||({T}: Add {W} or {U} to your mana pool.)$Irrigated Farmland enters the battlefield tapped.$Cycling {2}| +Painted Bluffs|Amonkhet|246|C||Land - Desert|||{T}: Add {C} to your mana pool.${1}, {T}: Add one mana of any color to your mana pool.| +Scattered Groves|Amonkhet|247|R||Land - Forest Plains|||({T}: Add {G} or {W} to your mana pool.)$Scattered Groves enters the battlefield tapped.$Cycling {2}| +Sheltered Thicket|Amonkhet|248|R||Land - Mountain Forest|||({T}: Add {R} or {G} to your mana pool.)$Sheltered Thicket enters the battlefield tapped.$Cycling {2}| +Sunscorched Desert|Amonkhet|249|C||Land - Desert|||When Sunscorced Desert enters the battlefield, it deals 1 damage to target player.${T}: Add {C} to your mana pool.| +Plains|Amonkhet|250|L||Basic Land - Plains|||| +Island|Amonkhet|251|L||Basic Land - Island|||| +Swamp|Amonkhet|252|L||Basic Land - Swamp|||| +Mountain|Amonkhet|253|L||Basic Land - Mountain|||| +Forest|Amonkhet|254|L||Basic Land - Forest|||| +Plains|Amonkhet|255|L||Basic Land - Plains|||| +Plains|Amonkhet|256|L||Basic Land - Plains|||| +Plains|Amonkhet|257|L||Basic Land - Plains|||| +Island|Amonkhet|258|L||Basic Land - Island|||| +Island|Amonkhet|259|L||Basic Land - Island|||| +Island|Amonkhet|260|L||Basic Land - Island|||| +Swamp|Amonkhet|261|L||Basic Land - Swamp|||| +Swamp|Amonkhet|262|L||Basic Land - Swamp|||| +Swamp|Amonkhet|263|L||Basic Land - Swamp|||| +Mountain|Amonkhet|264|L||Basic Land - Mountain|||| +Mountain|Amonkhet|265|L||Basic Land - Mountain|||| +Mountain|Amonkhet|266|L||Basic Land - Mountain|||| +Forest|Amonkhet|267|L||Basic Land - Forest|||| +Forest|Amonkhet|268|L||Basic Land - Forest|||| +Forest|Amonkhet|269|L||Basic Land - Forest|||| +Gideon, Martial Paragon|Amonkhet|270|M|{4}{W}|Planeswalker - Gideon|||+2: Untap all creatures you control. Those creatures get +1/+1 until end of turn.$0: Until end of turn, Gideon, Martial Paragon, becomes a 5/5 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.$-10: Creatures you control get +2/+2 until end of turn. Tap all creatures your opponents control.| +Companion of the Trials|Amonkhet|271|U|{2}{W}|Creature - Bird Soldier|2|2|Flying${1}{W}: Untap target creature. Activate this ability only if you control a Gideon planeswalker.| +Gideon's Resolve|Amonkhet|272|R|{4}{W}|Enchantment|||When Gideon's Resolve enters the battlefield, you may search your library and/or graveyard for a card named Gideon, Martial Paragon, reveal it, and put it into your hand. If you search your library this way, shuffle it.$Creature you control get +1/+1.| +Graceful Cat|Amonkhet|273|C|{2}{W}|Creature - Cat|2|2|Whenever Graceful Cat attacks, it gets +1/+1 until end of turn.| +Stone Quarry|Amonkhet|274|C||Land|||Stone Quarry enters the battlefield tapped.${T}: Add {R} or {W} to your mana pool.| +Liliana, Death Wielder|Amonkhet|274|M|{5}{B}{B}|Planeswalker - Liliana|||+2: Put a -1/-1 counter on up to one target creature.$-3: Destroy target creature with a -1/-1 counter on it.$-10: Return all creature cards from your graveyard to the battlefield.| +Desiccated Naga|Amonkhet|276|U|{2}{B}|Creature - Zombie Naga|3|2|{3}{B}: Target opponent loses 2 life and you gain 2 life. Activate this ability only if you control a Liliana planeswalker.| +Liliana's Influence|Amonkhet|277|R|{4}{B}{B}|Sorcery|||Put a -1/-1 counter on each creature you don't control. You may search your library and/or graveyard for a card named Liliana, Death Wielder, reveal it, and put it into your hand. If you search your library this way, shuffle it.| +Tattered Mummy|Amonkhet|278|C|{1}{B}|Creature - Zombie Jackal|1|2|When Tattered Mummy dies, each opponent loses 2 life.| +Foul Orchard|Amonkhet|279|C||Land|||Foul Orchard enters the battlefield tapped.${T}: Add {B} or {G} to your mana pool.| diff --git a/Utils/mtg-sets-data.txt b/Utils/mtg-sets-data.txt index ec33c790b97..e131cd91321 100644 --- a/Utils/mtg-sets-data.txt +++ b/Utils/mtg-sets-data.txt @@ -128,6 +128,7 @@ Mercadian Masques|MMQ| Morningtide|MOR| Magic Player Rewards|MPRP| Masterpiece Series|MPS| +Masterpiece Series Amonkhet|MPS-AKH| Mirrodin|MRD| Nemesis|NEM| New Phyrexia|NPH| diff --git a/pom.xml b/pom.xml index 0f9189810a0..f181416215d 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.mage mage-root - 1.4.22 + 1.4.23 pom Mage Root Mage Root POM @@ -84,7 +84,7 @@ - 1.4.22 + 1.4.23 UTF-8