diff --git a/Mage.Client/replay_pid4992.log b/Mage.Client/replay_pid4992.log new file mode 100644 index 0000000000..f868e9b81c --- /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/cards/CardDraggerGlassPane.java b/Mage.Client/src/main/java/mage/client/cards/CardDraggerGlassPane.java index ed9ae1f67f..e79ea3944c 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/dialog/NewTournamentDialog.java b/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java index 205442fde9..c3f38fc4c8 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java @@ -26,13 +26,19 @@ * 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.*; +import java.io.File; +import java.util.*; +import java.util.List; +import javax.swing.*; +import javax.swing.filechooser.FileFilter; import mage.cards.decks.Deck; import mage.cards.decks.importer.DeckImporterUtil; import mage.cards.repository.ExpansionInfo; @@ -55,13 +61,6 @@ import mage.view.TableView; import mage.view.TournamentTypeView; import org.apache.log4j.Logger; -import javax.swing.*; -import javax.swing.filechooser.FileFilter; -import java.awt.*; -import java.io.File; -import java.util.*; -import java.util.List; - /** * @author BetaSteward_at_googlemail.com */ @@ -127,10 +126,9 @@ public class NewTournamentDialog extends MageDialog { } /** - * 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 @@ -603,7 +601,7 @@ public class NewTournamentDialog extends MageDialog { DeckImporterUtil.importDeck(this.player1Panel.getDeckFile()), tOptions.getPassword())) { for (TournamentPlayerPanel player : players) { - if (!player.getPlayerType().toString().equals("Human")) { + 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()); @@ -664,7 +662,6 @@ 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(); @@ -693,7 +690,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")) { @@ -914,7 +910,6 @@ public class NewTournamentDialog extends MageDialog { } - private void drawPlayers() { this.pnlOtherPlayers.removeAll(); for (TournamentPlayerPanel panel : players) { @@ -1039,7 +1034,8 @@ public class NewTournamentDialog extends MageDialog { } /** - * Save the settings to java prefs to reload it next time the dialog will be created + * Save the settings to java prefs to reload it next time the dialog will be + * created * * @param tOptions Tournament options */ @@ -1091,7 +1087,6 @@ public class NewTournamentDialog extends MageDialog { return table; } - // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnCancel; private javax.swing.JButton btnOk; diff --git a/Mage.Client/src/main/resources/card-pictures-tok.txt b/Mage.Client/src/main/resources/card-pictures-tok.txt index b4ddbd99d1..68c2d0e5d2 100644 --- a/Mage.Client/src/main/resources/card-pictures-tok.txt +++ b/Mage.Client/src/main/resources/card-pictures-tok.txt @@ -1,4 +1,29 @@ + +|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| diff --git a/Mage.Server/src/main/java/mage/server/ChatManager.java b/Mage.Server/src/main/java/mage/server/ChatManager.java index 1a826f53d7..e7f921de2b 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 */ @@ -114,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()) { 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 2668e71ea0..4317726854 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; @@ -58,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 */ @@ -158,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; @@ -251,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); } @@ -349,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); @@ -399,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)); }); } 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 0000000000..485c4bc2cc --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AhnCropChampion.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.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 { + private final static FilterControlledCreaturePermanent otherCreaturesFilter = new FilterControlledCreaturePermanent("other creatures you control"); + static { + otherCreaturesFilter.add(new AnotherPredicate()); + } + + 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(otherCreaturesFilter)))); + } + + public AhnCropChampion(final AhnCropChampion card) { + super(card); + } + + @Override + public AhnCropChampion copy() { + return new AhnCropChampion(this); + } +} diff --git a/Mage.Sets/src/mage/cards/a/AnointedProcession.java b/Mage.Sets/src/mage/cards/a/AnointedProcession.java index b4ab67cf2e..0b666b621f 100644 --- a/Mage.Sets/src/mage/cards/a/AnointedProcession.java +++ b/Mage.Sets/src/mage/cards/a/AnointedProcession.java @@ -28,19 +28,12 @@ package mage.cards.a; 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; /** * @@ -52,7 +45,7 @@ public class AnointedProcession extends CardImpl { 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 AnointedProcessionEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CreateTwiceThatManyTokensEffect())); } public AnointedProcession(final AnointedProcession card) { @@ -64,43 +57,3 @@ public class AnointedProcession extends CardImpl { return new AnointedProcession(this); } } - -class AnointedProcessionEffect extends ReplacementEffectImpl { - - public AnointedProcessionEffect() { - 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 AnointedProcessionEffect(final AnointedProcessionEffect effect) { - super(effect); - } - - @Override - public AnointedProcessionEffect copy() { - return new AnointedProcessionEffect(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/a/AvenInitiate.java b/Mage.Sets/src/mage/cards/a/AvenInitiate.java new file mode 100644 index 0000000000..9bb4a995c0 --- /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/AvenWindGuide.java b/Mage.Sets/src/mage/cards/a/AvenWindGuide.java new file mode 100644 index 0000000000..e1a2cdb273 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AvenWindGuide.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.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.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.v.Vigilance; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.filter.StaticFilters; +import mage.filter.predicate.permanent.TokenPredicate; + +/** + * + * @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. + Ability ability = + new SimpleStaticAbility( + Zone.BATTLEFIELD, + new GainAbilityControlledEffect( + FlyingAbility.getInstance(), + Duration.WhileOnBattlefield, + StaticFilters.FILTER_CREATURE_TOKENS)); + ability.addEffect( + new GainAbilityControlledEffect( + VigilanceAbility.getInstance(), + Duration.WhileOnBattlefield, + StaticFilters.FILTER_CREATURE_TOKENS)); + 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/b/BalefulAmmit.java b/Mage.Sets/src/mage/cards/b/BalefulAmmit.java new file mode 100644 index 0000000000..b0b0a541f1 --- /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/BattlefieldScavenger.java b/Mage.Sets/src/mage/cards/b/BattlefieldScavenger.java index a6184a253a..8507a57279 100644 --- a/Mage.Sets/src/mage/cards/b/BattlefieldScavenger.java +++ b/Mage.Sets/src/mage/cards/b/BattlefieldScavenger.java @@ -29,18 +29,12 @@ package mage.cards.b; import java.util.UUID; import mage.MageInt; -import mage.abilities.AbilityImpl; -import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.effects.Effect; +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; -import mage.constants.Zone; -import mage.game.Game; -import mage.game.events.GameEvent; -import mage.game.permanent.Permanent; /** * @@ -50,7 +44,7 @@ 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); @@ -60,7 +54,7 @@ public class BattlefieldScavenger extends CardImpl { 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 WheneverYouExertCreatureTriggeredAbility(new RummageEffect())); + this.addAbility(new ExertCreatureControllerTriggeredAbility(new RummageEffect())); } public BattlefieldScavenger(final BattlefieldScavenger card) { @@ -72,38 +66,3 @@ public class BattlefieldScavenger extends CardImpl { return new BattlefieldScavenger(this); } } - - -class WheneverYouExertCreatureTriggeredAbility extends TriggeredAbilityImpl { - - WheneverYouExertCreatureTriggeredAbility(Effect effect) { - super(Zone.BATTLEFIELD, effect); - } - - WheneverYouExertCreatureTriggeredAbility(final WheneverYouExertCreatureTriggeredAbility 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 WheneverYouExertCreatureTriggeredAbility copy() { - return new WheneverYouExertCreatureTriggeredAbility(this); - } - - @Override - public String getRule() { - return "Whenever you exert a creature, " + super.getRule(); - } -} diff --git a/Mage.Sets/src/mage/cards/b/BedlamReveler.java b/Mage.Sets/src/mage/cards/b/BedlamReveler.java index 4a27b5141b..b0a2370d0f 100644 --- a/Mage.Sets/src/mage/cards/b/BedlamReveler.java +++ b/Mage.Sets/src/mage/cards/b/BedlamReveler.java @@ -27,25 +27,20 @@ */ 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.*; import mage.filter.common.FilterInstantOrSorceryCard; -import mage.game.Game; -import mage.players.Player; -import mage.util.CardUtil; - -import java.util.UUID; /** * @@ -54,14 +49,14 @@ import java.util.UUID; 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); @@ -85,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/BenefactionOfRhonas.java b/Mage.Sets/src/mage/cards/b/BenefactionOfRhonas.java new file mode 100644 index 0000000000..d5728f154a --- /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/BindingMummy.java b/Mage.Sets/src/mage/cards/b/BindingMummy.java new file mode 100644 index 0000000000..e84f8dbf91 --- /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/BitterbladeWarrior.java b/Mage.Sets/src/mage/cards/b/BitterbladeWarrior.java new file mode 100644 index 0000000000..aca7d8f47d --- /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/BlazingVolley.java b/Mage.Sets/src/mage/cards/b/BlazingVolley.java new file mode 100644 index 0000000000..c2d7958281 --- /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/BlightedBat.java b/Mage.Sets/src/mage/cards/b/BlightedBat.java new file mode 100644 index 0000000000..92255eb84e --- /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/BloodchiefAscension.java b/Mage.Sets/src/mage/cards/b/BloodchiefAscension.java index 477416bc39..76f6483569 100644 --- a/Mage.Sets/src/mage/cards/b/BloodchiefAscension.java +++ b/Mage.Sets/src/mage/cards/b/BloodchiefAscension.java @@ -55,7 +55,7 @@ import java.util.UUID; 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, @@ -68,7 +68,7 @@ public class BloodchiefAscension extends CardImpl { 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/BloodlustInciter.java b/Mage.Sets/src/mage/cards/b/BloodlustInciter.java new file mode 100644 index 0000000000..464f7dc996 --- /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/BloodrageBrawler.java b/Mage.Sets/src/mage/cards/b/BloodrageBrawler.java new file mode 100644 index 0000000000..415d9d50f6 --- /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/BonePicker.java b/Mage.Sets/src/mage/cards/b/BonePicker.java new file mode 100644 index 0000000000..634e3cd278 --- /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/BontuTheGlorified.java b/Mage.Sets/src/mage/cards/b/BontuTheGlorified.java new file mode 100644 index 0000000000..49836fc48d --- /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(); + + static { + filter.add(new AnotherPredicate()); + } + + public BontuTheGlorified(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{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 index 668e474597..f60d6c9bd0 100644 --- a/Mage.Sets/src/mage/cards/b/BontusMonument.java +++ b/Mage.Sets/src/mage/cards/b/BontusMonument.java @@ -42,7 +42,7 @@ import mage.constants.CardType; import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterCard; -import mage.filter.FilterSpell; +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; @@ -53,15 +53,11 @@ import mage.filter.predicate.mageobject.ColorPredicate; */ public class BontusMonument extends CardImpl { - private static final FilterCard filter = new FilterCard("Black creature spells"); - private static final FilterSpell filter2 = new FilterSpell("a creature spell"); + private static final FilterCard filter = new FilterCard("black creature spells"); static { filter.add(Predicates.and(new ColorPredicate(ObjectColor.BLACK), new CardTypePredicate(CardType.CREATURE))); } - static { - filter2.add(new CardTypePredicate(CardType.CREATURE)); - } public BontusMonument(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); @@ -72,7 +68,7 @@ public class BontusMonument extends CardImpl { 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), filter2, false); + 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); 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 0000000000..bb551d1e8e --- /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/c/CartoucheOfSolidarity.java b/Mage.Sets/src/mage/cards/c/CartoucheOfSolidarity.java index a6076e767d..cca0812bd6 100644 --- a/Mage.Sets/src/mage/cards/c/CartoucheOfSolidarity.java +++ b/Mage.Sets/src/mage/cards/c/CartoucheOfSolidarity.java @@ -31,6 +31,7 @@ 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; @@ -71,8 +72,11 @@ public class CartoucheOfSolidarity extends CardImpl { this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WarriorVigilantToken()))); // Enchanted creature gets +1/+1 and has first strike. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.AURA))); + 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) { 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 0000000000..600c9a8646 --- /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/CommitMemory.java b/Mage.Sets/src/mage/cards/c/CommitMemory.java new file mode 100644 index 0000000000..44dd82778b --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CommitMemory.java @@ -0,0 +1,181 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are 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.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}", false); + + // 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/CompellingArgument.java b/Mage.Sets/src/mage/cards/c/CompellingArgument.java new file mode 100644 index 0000000000..10b2384809 --- /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/CompulsoryRest.java b/Mage.Sets/src/mage/cards/c/CompulsoryRest.java new file mode 100644 index 0000000000..2b3da68be1 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CompulsoryRest.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.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +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)); + grantedAbility.addCost(new SacrificeSourceCost()); + 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/CradleOfTheAccursed.java b/Mage.Sets/src/mage/cards/c/CradleOfTheAccursed.java new file mode 100644 index 0000000000..85e3b0dbc8 --- /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/CrypticSerpent.java b/Mage.Sets/src/mage/cards/c/CrypticSerpent.java index de09958f46..b6b1eeabb2 100644 --- a/Mage.Sets/src/mage/cards/c/CrypticSerpent.java +++ b/Mage.Sets/src/mage/cards/c/CrypticSerpent.java @@ -30,20 +30,13 @@ package mage.cards.c; 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.cost.SourceCostReductionForEachCardInGraveyardEffect; 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.FilterInstantOrSorceryCard; -import mage.game.Game; -import mage.players.Player; -import mage.util.CardUtil; /** * @@ -59,9 +52,7 @@ public class CrypticSerpent extends CardImpl { this.toughness = new MageInt(5); // Cryptic Serpent costs {1} less to cast for each instant and sorcery card in your graveyard. - Ability ability = new SimpleStaticAbility(Zone.ALL, new CrypticSerpentCostReductionEffect()); - ability.setRuleAtTheTop(true); - this.addAbility(ability); + this.addAbility(new SimpleStaticAbility(Zone.ALL, new SourceCostReductionForEachCardInGraveyardEffect(new FilterInstantOrSorceryCard()))); } public CrypticSerpent(final CrypticSerpent card) { @@ -73,39 +64,3 @@ public class CrypticSerpent extends CardImpl { return new CrypticSerpent(this); } } - -class CrypticSerpentCostReductionEffect extends CostModificationEffectImpl { - - CrypticSerpentCostReductionEffect() { - super(Duration.WhileOnStack, Outcome.Benefit, CostModificationType.REDUCE_COST); - staticText = "{this} costs {1} less to cast for each instant or sorcery card in your graveyard"; - } - - CrypticSerpentCostReductionEffect(CrypticSerpentCostReductionEffect 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 CrypticSerpentCostReductionEffect copy() { - return new CrypticSerpentCostReductionEffect(this); - } -} diff --git a/Mage.Sets/src/mage/cards/c/CutRibbons.java b/Mage.Sets/src/mage/cards/c/CutRibbons.java index 994302b4c8..551324b99b 100644 --- a/Mage.Sets/src/mage/cards/c/CutRibbons.java +++ b/Mage.Sets/src/mage/cards/c/CutRibbons.java @@ -16,8 +16,9 @@ import java.util.UUID; * @author Stravant */ public class CutRibbons extends SplitCard { + public CutRibbons(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}","{X}{B}{B}",false); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}", "{X}{B}{B}", false); // Cut // Cut deals 4 damage to target creature. @@ -25,9 +26,9 @@ public class CutRibbons extends SplitCard { getLeftHalfCard().getSpellAbility().addEffect(new DamageTargetEffect(4)); // to - - // Feed - // Draw a card for each creature you control with power 3 or greater + + // Ribbons + // Each opponent loses X life. ((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility()); getRightHalfCard().getSpellAbility().addEffect(new LoseLifeOpponentsEffect(new ManacostVariableValue())); @@ -41,4 +42,4 @@ public class CutRibbons extends SplitCard { public CutRibbons copy() { return new CutRibbons(this); } -} \ No newline at end of file +} 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 0000000000..726a9a05b6 --- /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/DefiantGreatmaw.java b/Mage.Sets/src/mage/cards/d/DefiantGreatmaw.java new file mode 100644 index 0000000000..56994aac9f --- /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/DesertCerodon.java b/Mage.Sets/src/mage/cards/d/DesertCerodon.java new file mode 100644 index 0000000000..17129eeec4 --- /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/DevotedCropMate.java b/Mage.Sets/src/mage/cards/d/DevotedCropMate.java new file mode 100644 index 0000000000..895dd3602e --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DevotedCropMate.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.d; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +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. + BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect()); + 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/Dispossess.java b/Mage.Sets/src/mage/cards/d/Dispossess.java new file mode 100644 index 0000000000..4c1e749ae4 --- /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/DoublingSeason.java b/Mage.Sets/src/mage/cards/d/DoublingSeason.java index 78ace98682..6d051176af 100644 --- a/Mage.Sets/src/mage/cards/d/DoublingSeason.java +++ b/Mage.Sets/src/mage/cards/d/DoublingSeason.java @@ -27,9 +27,11 @@ */ package mage.cards.d; +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; @@ -40,8 +42,6 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; -import java.util.UUID; - /** * * @author LevelX2 @@ -52,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())); @@ -68,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/DreadWanderer.java b/Mage.Sets/src/mage/cards/d/DreadWanderer.java index f8d9bd3fdd..cf13c8f04e 100644 --- a/Mage.Sets/src/mage/cards/d/DreadWanderer.java +++ b/Mage.Sets/src/mage/cards/d/DreadWanderer.java @@ -27,11 +27,8 @@ */ package mage.cards.d; -import java.util.UUID; import mage.MageInt; -import mage.abilities.CountType; import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.condition.common.CardsInHandCondition; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalActivatedAbility; import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect; @@ -41,6 +38,9 @@ import mage.constants.CardType; import mage.constants.TimingRule; import mage.constants.Zone; +import java.util.UUID; +import mage.abilities.condition.common.HeckbentCondition; + /** * * @author fireshoes @@ -60,8 +60,7 @@ public class DreadWanderer extends CardImpl { // {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. - CardsInHandCondition condition = new CardsInHandCondition(CountType.FEWER_THAN, 2); - ConditionalActivatedAbility ability = new ConditionalActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(), new ManaCostsImpl("{2}{B}"), condition); + ConditionalActivatedAbility ability = new ConditionalActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(), new ManaCostsImpl("{2}{B}"), HeckbentCondition.instance); ability.setTiming(TimingRule.SORCERY); addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/d/DueRespect.java b/Mage.Sets/src/mage/cards/d/DueRespect.java index 1f33b8f3fc..1e1cc7ee2a 100644 --- a/Mage.Sets/src/mage/cards/d/DueRespect.java +++ b/Mage.Sets/src/mage/cards/d/DueRespect.java @@ -87,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/e/EdificeOfAuthority.java b/Mage.Sets/src/mage/cards/e/EdificeOfAuthority.java new file mode 100644 index 0000000000..4d95815c71 --- /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/Electrify.java b/Mage.Sets/src/mage/cards/e/Electrify.java new file mode 100644 index 0000000000..1dd3727053 --- /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/EmbalmersTools.java b/Mage.Sets/src/mage/cards/e/EmbalmersTools.java new file mode 100644 index 0000000000..389fe73f9d --- /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/EmberhornMinotaur.java b/Mage.Sets/src/mage/cards/e/EmberhornMinotaur.java new file mode 100644 index 0000000000..2a16f49984 --- /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/EnigmaDrake.java b/Mage.Sets/src/mage/cards/e/EnigmaDrake.java new file mode 100644 index 0000000000..4ba4683fb0 --- /dev/null +++ b/Mage.Sets/src/mage/cards/e/EnigmaDrake.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.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.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.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 in your graveyard")), 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/EssenceScatter.java b/Mage.Sets/src/mage/cards/e/EssenceScatter.java index d0e0057484..8e15cfc7fe 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceScatter.java +++ b/Mage.Sets/src/mage/cards/e/EssenceScatter.java @@ -31,11 +31,10 @@ 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; +import mage.filter.common.FilterCreatureSpell; /** * @@ -43,17 +42,10 @@ import java.util.UUID; */ 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/f/FailureComply.java b/Mage.Sets/src/mage/cards/f/FailureComply.java new file mode 100644 index 0000000000..187cedcf02 --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/FailureComply.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.f; + +import mage.abilities.Ability; +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.game.Game; +import mage.game.events.GameEvent; +import mage.target.TargetSpell; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; +import mage.MageObject; +import mage.game.events.GameEvent.EventType; +import mage.abilities.effects.common.NameACardEffect; + +import java.util.UUID; + +/** + * @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}", false); + + // 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()); + getRightHalfCard().getSpellAbility().addEffect(new NameACardEffect(NameACardEffect.TypeOfName.ALL)); + 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 = "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/FaithOfTheDevoted.java b/Mage.Sets/src/mage/cards/f/FaithOfTheDevoted.java new file mode 100644 index 0000000000..dd4b8816c8 --- /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/FanBearer.java b/Mage.Sets/src/mage/cards/f/FanBearer.java new file mode 100644 index 0000000000..e7f0b2d17f --- /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/FesteringMummy.java b/Mage.Sets/src/mage/cards/f/FesteringMummy.java new file mode 100644 index 0000000000..4e929b8dd4 --- /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/FinalReward.java b/Mage.Sets/src/mage/cards/f/FinalReward.java new file mode 100644 index 0000000000..5344a98e3e --- /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/Fling.java b/Mage.Sets/src/mage/cards/f/Fling.java index e54a2547cf..947139f3b0 100644 --- a/Mage.Sets/src/mage/cards/f/Fling.java +++ b/Mage.Sets/src/mage/cards/f/Fling.java @@ -25,24 +25,19 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.f; -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.game.Game; -import mage.game.permanent.Permanent; -import mage.players.Player; 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; /** * @@ -51,11 +46,13 @@ import java.util.UUID; 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) { @@ -67,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/Fog.java b/Mage.Sets/src/mage/cards/f/Fog.java index b84ab9f5cd..d1e614e711 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. @@ -45,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/ForsakeTheWorldly.java b/Mage.Sets/src/mage/cards/f/ForsakeTheWorldly.java new file mode 100644 index 0000000000..d204524620 --- /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/g/Galestrike.java b/Mage.Sets/src/mage/cards/g/Galestrike.java new file mode 100644 index 0000000000..e1e87e3276 --- /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 3c211eb745..ee2950c453 100644 --- a/Mage.Sets/src/mage/cards/g/GalinasKnight.java +++ b/Mage.Sets/src/mage/cards/g/GalinasKnight.java @@ -61,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/Ghoultree.java b/Mage.Sets/src/mage/cards/g/Ghoultree.java index fb259b14af..8a8bc52c3e 100644 --- a/Mage.Sets/src/mage/cards/g/Ghoultree.java +++ b/Mage.Sets/src/mage/cards/g/Ghoultree.java @@ -27,20 +27,15 @@ */ package mage.cards.g; +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.cost.SourceCostReductionForEachCardInGraveyardEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +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; - -import java.util.UUID; /** * @@ -49,7 +44,7 @@ import java.util.UUID; 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"); @@ -57,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) { @@ -71,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/GideonsIntervention.java b/Mage.Sets/src/mage/cards/g/GideonsIntervention.java new file mode 100644 index 0000000000..b4311796fc --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GideonsIntervention.java @@ -0,0 +1,171 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are 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.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. + this.addAbility(new AsEntersBattlefieldAbility(new NameACardEffect(NameACardEffect.TypeOfName.ALL))); + + // 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/GiftOfParadise.java b/Mage.Sets/src/mage/cards/g/GiftOfParadise.java new file mode 100644 index 0000000000..1446fc572d --- /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/GloriousEnd.java b/Mage.Sets/src/mage/cards/g/GloriousEnd.java new file mode 100644 index 0000000000..0a8a134107 --- /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/GloryBoundInitiate.java b/Mage.Sets/src/mage/cards/g/GloryBoundInitiate.java index 079c01a3a1..cb00e8d7b0 100644 --- a/Mage.Sets/src/mage/cards/g/GloryBoundInitiate.java +++ b/Mage.Sets/src/mage/cards/g/GloryBoundInitiate.java @@ -30,6 +30,7 @@ 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; @@ -54,8 +55,12 @@ public class GloryBoundInitiate extends CardImpl { 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. - BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(new BoostSourceEffect(1, 3, Duration.EndOfTurn)); - ability.addEffect(new GainAbilitySourceEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn)); + 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)); } 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 0000000000..2d5d1a3bf7 --- /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/GraspingDunes.java b/Mage.Sets/src/mage/cards/g/GraspingDunes.java new file mode 100644 index 0000000000..afbbb355cd --- /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/GreaterSandwurm.java b/Mage.Sets/src/mage/cards/g/GreaterSandwurm.java new file mode 100644 index 0000000000..55a0e07958 --- /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/GustWalker.java b/Mage.Sets/src/mage/cards/g/GustWalker.java new file mode 100644 index 0000000000..3734b0c311 --- /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/h/HapatrasMark.java b/Mage.Sets/src/mage/cards/h/HapatrasMark.java new file mode 100644 index 0000000000..f4764c969f --- /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 0000000000..8d9a946549 --- /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 0000000000..aeaf10646f --- /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/HazeOfPollen.java b/Mage.Sets/src/mage/cards/h/HazeOfPollen.java new file mode 100644 index 0000000000..a24500e5c5 --- /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/HeartPiercerManticore.java b/Mage.Sets/src/mage/cards/h/HeartPiercerManticore.java new file mode 100644 index 0000000000..4b36a40490 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HeartPiercerManticore.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.h; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.SacrificeCostCreaturesPower; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.DoIfCostPaid; +import mage.abilities.keyword.EmbalmAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.permanent.AnotherPredicate; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author fireshoes + */ +public class HeartPiercerManticore extends CardImpl { + + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another creature"); + + static { + filter.add(new AnotherPredicate()); + } + + 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. + // When you do, Heart-Piercer Manticore deals damage equal to that creature's power to target creature or player. + Ability ability = new EntersBattlefieldTriggeredAbility(new DoIfCostPaid(new DamageTargetEffect(new SacrificeCostCreaturesPower()), + new SacrificeTargetCost(new TargetControlledCreaturePermanent(filter))), true); + ability.addTarget(new TargetCreatureOrPlayer()); + this.addAbility(ability); + + // 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); + } +} 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 0000000000..bd6bed738c --- /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/HelixPinnacle.java b/Mage.Sets/src/mage/cards/h/HelixPinnacle.java index 666c0de23b..5a5501bfb6 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/HieroglyphicIllumination.java b/Mage.Sets/src/mage/cards/h/HieroglyphicIllumination.java new file mode 100644 index 0000000000..977d061378 --- /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/HonedKhopesh.java b/Mage.Sets/src/mage/cards/h/HonedKhopesh.java new file mode 100644 index 0000000000..58d3114165 --- /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/HonoredCropCaptain.java b/Mage.Sets/src/mage/cards/h/HonoredCropCaptain.java new file mode 100644 index 0000000000..a948ede332 --- /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/HoodedBrawler.java b/Mage.Sets/src/mage/cards/h/HoodedBrawler.java new file mode 100644 index 0000000000..619dced9a5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HoodedBrawler.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.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. + BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(new BoostSourceEffect(2, 2, Duration.EndOfTurn)); + this.addAbility(new ExertAbility(ability)); + } + + public HoodedBrawler(final HoodedBrawler card) { + super(card); + } + + @Override + public HoodedBrawler copy() { + return new HoodedBrawler(this); + } +} 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 0000000000..413a3030c8 --- /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/i/IllusoryWrappings.java b/Mage.Sets/src/mage/cards/i/IllusoryWrappings.java new file mode 100644 index 0000000000..9c0d08c281 --- /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/InitiatesCompanion.java b/Mage.Sets/src/mage/cards/i/InitiatesCompanion.java new file mode 100644 index 0000000000..522ff492bb --- /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/k/KhenraCharioteer.java b/Mage.Sets/src/mage/cards/k/KhenraCharioteer.java new file mode 100644 index 0000000000..4241a73888 --- /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/l/LabyrinthGuardian.java b/Mage.Sets/src/mage/cards/l/LabyrinthGuardian.java new file mode 100644 index 0000000000..09a13cb50f --- /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/LayClaim.java b/Mage.Sets/src/mage/cards/l/LayClaim.java new file mode 100644 index 0000000000..f1d4e2efe3 --- /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/LostLegacy.java b/Mage.Sets/src/mage/cards/l/LostLegacy.java index c92cff3af8..fc60ec788b 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/LuxaRiverShrine.java b/Mage.Sets/src/mage/cards/l/LuxaRiverShrine.java new file mode 100644 index 0000000000..acf3e5b15c --- /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/m/ManticoreOfTheGauntlet.java b/Mage.Sets/src/mage/cards/m/ManticoreOfTheGauntlet.java new file mode 100644 index 0000000000..b1892b6e44 --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/ManticoreOfTheGauntlet.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.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(), new StaticValue(1)); + counters.setTargetPointer(new FirstTargetPointer()); + Ability ability = new EntersBattlefieldTriggeredAbility(counters); + Effect damage = new DamageTargetEffect(new StaticValue(3), true, "", true); + damage.setTargetPointer(new SecondTargetPointer()); + ability.addTarget(new TargetControlledCreaturePermanent()); + ability.addTarget(new TargetOpponent()); + addAbility(ability); + } + + public ManticoreOfTheGauntlet(final ManticoreOfTheGauntlet card) { + super(card); + } + + @Override + public ManticoreOfTheGauntlet copy() { + return new ManticoreOfTheGauntlet(this); + } +} \ No newline at end of file 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 0000000000..b5e3f8ee59 --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/MercilessJavelineer.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.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)); + 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/MiasmaMummy.java b/Mage.Sets/src/mage/cards/m/MiasmicMummy.java similarity index 88% rename from Mage.Sets/src/mage/cards/m/MiasmaMummy.java rename to Mage.Sets/src/mage/cards/m/MiasmicMummy.java index 40bf8f465b..6b80b70226 100644 --- a/Mage.Sets/src/mage/cards/m/MiasmaMummy.java +++ b/Mage.Sets/src/mage/cards/m/MiasmicMummy.java @@ -39,9 +39,9 @@ import mage.constants.CardType; * * @author fireshoes */ -public class MiasmaMummy extends CardImpl { +public class MiasmicMummy extends CardImpl { - public MiasmaMummy(UUID ownerId, CardSetInfo setInfo) { + public MiasmicMummy(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}"); this.subtype.add("Zombie"); @@ -49,16 +49,16 @@ public class MiasmaMummy extends CardImpl { this.power = new MageInt(2); this.toughness = new MageInt(2); - // When Miasma Mummy enters the battlefield, each player discards a card. + // When Miasmic Mummy enters the battlefield, each player discards a card. this.addAbility(new EntersBattlefieldTriggeredAbility(new DiscardEachPlayerEffect())); } - public MiasmaMummy(final MiasmaMummy card) { + public MiasmicMummy(final MiasmicMummy card) { super(card); } @Override - public MiasmaMummy copy() { - return new MiasmaMummy(this); + public MiasmicMummy copy() { + return new MiasmicMummy(this); } } 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 0000000000..25aad4e93b --- /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/n/NagaOracle.java b/Mage.Sets/src/mage/cards/n/NagaOracle.java new file mode 100644 index 0000000000..aecbaac530 --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NagaOracle.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.n; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldAbility; +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; + +/** + * + * @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. + addAbility(new EntersBattlefieldAbility( + 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))); + } + + 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 0000000000..a72b71c138 --- /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/NefCropEntangler.java b/Mage.Sets/src/mage/cards/n/NefCropEntangler.java new file mode 100644 index 0000000000..ecd68bdd75 --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NefCropEntangler.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.n; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @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. + } + + public NefCropEntangler(final NefCropEntangler card) { + super(card); + } + + @Override + public NefCropEntangler copy() { + return new NefCropEntangler(this); + } +} diff --git a/Mage.Sets/src/mage/cards/n/NemesisOfMortals.java b/Mage.Sets/src/mage/cards/n/NemesisOfMortals.java index 439c37eb9a..1ef6947234 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/NissaStewardOfElements.java b/Mage.Sets/src/mage/cards/n/NissaStewardOfElements.java index 1491771262..f9d22ebf8c 100644 --- a/Mage.Sets/src/mage/cards/n/NissaStewardOfElements.java +++ b/Mage.Sets/src/mage/cards/n/NissaStewardOfElements.java @@ -27,7 +27,6 @@ */ package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; @@ -40,17 +39,9 @@ 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.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.Filter; import mage.filter.common.FilterControlledLandPermanent; import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.Predicates; @@ -61,6 +52,8 @@ import mage.game.permanent.token.Token; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -125,7 +118,7 @@ class NissaStewardOfElementsEffect extends OneShotEffect { FilterPermanentCard filter = new FilterPermanentCard(); filter.add(Predicates.or(new CardTypePredicate(CardType.CREATURE), new CardTypePredicate(CardType.LAND))); - filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, count)); + filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, count)); Card card = player.getLibrary().getFromTop(game); if (card != null) { Cards cards = new CardsImpl(); 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 0000000000..886602ac54 --- /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/OketrasAttendant.java b/Mage.Sets/src/mage/cards/o/OketrasAttendant.java new file mode 100644 index 0000000000..395abb9e26 --- /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/OpenIntoWonder.java b/Mage.Sets/src/mage/cards/o/OpenIntoWonder.java new file mode 100644 index 0000000000..a61ba06d4c --- /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/OrneryKudu.java b/Mage.Sets/src/mage/cards/o/OrneryKudu.java new file mode 100644 index 0000000000..e0c354206a --- /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/p/PaintedBluffs.java b/Mage.Sets/src/mage/cards/p/PaintedBluffs.java new file mode 100644 index 0000000000..1d8b8db331 --- /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/ParallelLives.java b/Mage.Sets/src/mage/cards/p/ParallelLives.java index 558a58d56a..40108f7454 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/PathmakerInitiate.java b/Mage.Sets/src/mage/cards/p/PathmakerInitiate.java new file mode 100644 index 0000000000..81db59f2c7 --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PathmakerInitiate.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.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)); + } + + public PathmakerInitiate(final PathmakerInitiate card) { + super(card); + } + + @Override + public PathmakerInitiate copy() { + return new PathmakerInitiate(this); + } +} 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 0000000000..112aa93f68 --- /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/PrimordialHydra.java b/Mage.Sets/src/mage/cards/p/PrimordialHydra.java index 767c394a4c..90cc0b68f9 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/PursueGlory.java b/Mage.Sets/src/mage/cards/p/PursueGlory.java new file mode 100644 index 0000000000..1b66e14bac --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PursueGlory.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.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.StaticFilters; +import mage.filter.common.FilterAttackingCreature; +import mage.filter.common.FilterCreaturePermanent; + +/** + * + * @author stravant + */ +public class PursueGlory extends CardImpl { + private static final FilterAttackingCreature filter = new FilterAttackingCreature("Attacking creatures"); + + 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, filter, 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/q/QuestForRenewal.java b/Mage.Sets/src/mage/cards/q/QuestForRenewal.java index fda8e18ba9..6ac0939aba 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/r/RampantGrowth.java b/Mage.Sets/src/mage/cards/r/RampantGrowth.java index 5cdafdc93e..46ef4b2b37 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/ReduceInStature.java b/Mage.Sets/src/mage/cards/r/ReduceInStature.java index c049bcc193..97c874dc6f 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/RhetCropSpearmaster.java b/Mage.Sets/src/mage/cards/r/RhetCropSpearmaster.java new file mode 100644 index 0000000000..6e04445ae1 --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RhetCropSpearmaster.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.r; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BecomesExertSourceTriggeredAbility; +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. + BecomesExertSourceTriggeredAbility ability = + new BecomesExertSourceTriggeredAbility( + new BoostSourceEffect(1, 0, Duration.EndOfTurn)); + ability.addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn)); + 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 index bb20f84846..33fc4c0538 100644 --- a/Mage.Sets/src/mage/cards/r/RhonasTheIndomitable.java +++ b/Mage.Sets/src/mage/cards/r/RhonasTheIndomitable.java @@ -27,10 +27,8 @@ */ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.CountType; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -43,11 +41,7 @@ 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.Duration; -import mage.constants.SuperType; -import mage.constants.Zone; -import mage.filter.Filter; +import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; @@ -57,13 +51,15 @@ 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()); } @@ -90,7 +86,7 @@ public class RhonasTheIndomitable extends CardImpl { 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 gain trample until end of turn"); + effect.setText("and gains trample until end of turn"); ability.addEffect(effect); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); @@ -135,13 +131,13 @@ class RhonasTheIndomitableRestrictionEffect extends RestrictionEffect { @Override public boolean applies(Permanent permanent, Ability source, Game game) { FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent(); - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 3)); + 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 (CountType.compare(permanentsOnBattlefield, CountType.FEWER_THAN, 1)); + return permanentsOnBattlefield < 1; // is this correct? } return true; } // do not apply to other creatures. diff --git a/Mage.Sets/src/mage/cards/r/RiseFromTheGrave.java b/Mage.Sets/src/mage/cards/r/RiseFromTheGrave.java index a07453826f..b6b3a0a86f 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. @@ -31,18 +31,10 @@ 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; /** 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 0000000000..cf05d530fa --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RiverSerpent.java @@ -0,0 +1,103 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are 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) { + return new CardsInControllerGraveyardCount().calculate(game, source, this) < 5; + } +} \ No newline at end of file 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 0000000000..0a98701e0b --- /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/s/SacredExcavation.java b/Mage.Sets/src/mage/cards/s/SacredExcavation.java new file mode 100644 index 0000000000..225bcedc65 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SacredExcavation.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.s; + +import java.util.UUID; + +import mage.MageObject; +import mage.abilities.Ability; +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.Predicate; +import mage.filter.predicate.mageobject.AbilityPredicate; +import mage.game.Game; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author stravant + */ +public class SacredExcavation extends CardImpl { + private static final FilterCard cardsWithCycling = new FilterCard(); + static { + cardsWithCycling.add(new CyclingPredicate()); + } + + 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); + } +} + +class CyclingPredicate implements Predicate { + @Override + public boolean apply(MageObject input, Game game) { + for (Ability ability : input.getAbilities()) { + if (ability instanceof CyclingAbility) { + return true; + } + } + return false; + } +} \ No newline at end of file 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 0000000000..7c89aa918b --- /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/SandwurmConvergence.java b/Mage.Sets/src/mage/cards/s/SandwurmConvergence.java new file mode 100644 index 0000000000..57c5ddd133 --- /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/ScaledBehemoth.java b/Mage.Sets/src/mage/cards/s/ScaledBehemoth.java new file mode 100644 index 0000000000..9e8149bc62 --- /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/SeekerOfInsight.java b/Mage.Sets/src/mage/cards/s/SeekerOfInsight.java new file mode 100644 index 0000000000..88f8e6f142 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SeekerOfInsight.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.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; + } +} \ No newline at end of file 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 0000000000..b4b48192af --- /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/ShadowOfTheGrave.java b/Mage.Sets/src/mage/cards/s/ShadowOfTheGrave.java new file mode 100644 index 0000000000..417732d13a --- /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 0000000000..2d295a7993 --- /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/ShedWeakness.java b/Mage.Sets/src/mage/cards/s/ShedWeakness.java new file mode 100644 index 0000000000..d3c03ff392 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/ShedWeakness.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.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.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()); + } + + 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/ShimmerscaleDrake.java b/Mage.Sets/src/mage/cards/s/ShimmerscaleDrake.java new file mode 100644 index 0000000000..5f926aaec5 --- /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/SlitherBlade.java b/Mage.Sets/src/mage/cards/s/SlitherBlade.java new file mode 100644 index 0000000000..b172270254 --- /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/Soulstinger.java b/Mage.Sets/src/mage/cards/s/Soulstinger.java new file mode 100644 index 0000000000..63605720d6 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/Soulstinger.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.DiesTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.dynamicvalue.common.CountersSourceCount; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +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(), new StaticValue(2), Outcome.Detriment)); + 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(), + 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); + 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/SparringMummy.java b/Mage.Sets/src/mage/cards/s/SparringMummy.java new file mode 100644 index 0000000000..7a24b2b3cb --- /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/SpringMind.java b/Mage.Sets/src/mage/cards/s/SpringMind.java new file mode 100644 index 0000000000..1632e30310 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SpringMind.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.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.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}", false); + + // 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/StartFinish.java b/Mage.Sets/src/mage/cards/s/StartFinish.java new file mode 100644 index 0000000000..df35e908e2 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/StartFinish.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.s; + +import java.util.UUID; +import mage.abilities.costs.common.SacrificeTargetCost; +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.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}", false); + + // Start + // Create two 1/1 white Warrior creature tokens with vigilance. + getLeftHalfCard().getSpellAbility().addEffect(new CreateTokenEffect(new WarriorVigilantToken(), 2)); + + // 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/StingingShot.java b/Mage.Sets/src/mage/cards/s/StingingShot.java new file mode 100644 index 0000000000..be4d986f78 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/StingingShot.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.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.StaticValue; +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.constants.Outcome; +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(); + 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(), + new StaticValue(3), + Outcome.Removal)); + + // 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/SupernaturalStamina.java b/Mage.Sets/src/mage/cards/s/SupernaturalStamina.java new file mode 100644 index 0000000000..d03363ab44 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SupernaturalStamina.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.s; + +import java.util.UUID; + +import mage.abilities.common.DiesCreatureTriggeredAbility; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.ReturnToBattlefieldUnderYourControlSourceEffect; +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 ReturnToBattlefieldUnderYourControlSourceEffect(), + /*optional=*/false), + Duration.EndOfTurn)); + } + + public SupernaturalStamina(final SupernaturalStamina card) { + super(card); + } + + @Override + public SupernaturalStamina copy() { + return new SupernaturalStamina(this); + } +} 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 0000000000..53066e6b69 --- /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/SynchronizedStrike.java b/Mage.Sets/src/mage/cards/s/SynchronizedStrike.java new file mode 100644 index 0000000000..3f80324d29 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SynchronizedStrike.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.s; + +import java.util.UUID; + +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.filter.StaticFilters; +import mage.filter.common.FilterCreaturePermanent; +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()); + getSpellAbility().addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn)); + } + + public SynchronizedStrike(final SynchronizedStrike card) { + super(card); + } + + @Override + public SynchronizedStrike copy() { + return new SynchronizedStrike(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 0000000000..361332c94c --- /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/ThoseWhoServe.java b/Mage.Sets/src/mage/cards/t/ThoseWhoServe.java new file mode 100644 index 0000000000..fc16c575f9 --- /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/ThresherLizard.java b/Mage.Sets/src/mage/cards/t/ThresherLizard.java new file mode 100644 index 0000000000..810b9e7e4a --- /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/TimeToReflect.java b/Mage.Sets/src/mage/cards/t/TimeToReflect.java new file mode 100644 index 0000000000..6c5cb7513d --- /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/TrespassersCurse.java b/Mage.Sets/src/mage/cards/t/TrespassersCurse.java new file mode 100644 index 0000000000..e9b3ee94e9 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TrespassersCurse.java @@ -0,0 +1,151 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are 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. + } + + 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.getSourceId()); + if (enchantment != null + && enchantment.getAttachedTo() != null + && game.getControllerId(event.getSourceId()).equals(enchantment.getAttachedTo())) { + 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; + } +} \ No newline at end of file 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 0000000000..1eca9ca754 --- /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/v/ViolentImpact.java b/Mage.Sets/src/mage/cards/v/ViolentImpact.java new file mode 100644 index 0000000000..75832a27b8 --- /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/VizierOfDeferment.java b/Mage.Sets/src/mage/cards/v/VizierOfDeferment.java new file mode 100644 index 0000000000..93a2f3a47f --- /dev/null +++ b/Mage.Sets/src/mage/cards/v/VizierOfDeferment.java @@ -0,0 +1,151 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are 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("AttackedThisTurn"); + BlockedThisTurnWatcher watcherBlocked = (BlockedThisTurnWatcher) game.getState().getWatchers().get("BlockedThisTurn"); + if (watcherAttacked != null) { + for (UUID creatureId : watcherAttacked.getAttackedThisTurnCreatures()) { + creaturesThatCanBeTargeted.add(new PermanentIdPredicate(creatureId)); + } + } + if (watcherBlocked != null) { + for (MageObjectReference mor : watcherBlocked.getBlockedThisTurnCreatures()) { + creaturesThatCanBeTargeted.add(new PermanentIdPredicate(mor.getPermanent(game).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 it 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/VizierOfRemedies.java b/Mage.Sets/src/mage/cards/v/VizierOfRemedies.java new file mode 100644 index 0000000000..ba7c6813c7 --- /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/w/WanderInDeath.java b/Mage.Sets/src/mage/cards/w/WanderInDeath.java new file mode 100644 index 0000000000..13587301d9 --- /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/WarfireJavelineer.java b/Mage.Sets/src/mage/cards/w/WarfireJavelineer.java new file mode 100644 index 0000000000..53cfa52352 --- /dev/null +++ b/Mage.Sets/src/mage/cards/w/WarfireJavelineer.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.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()))); + 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/WastelandScorpion.java b/Mage.Sets/src/mage/cards/w/WastelandScorpion.java new file mode 100644 index 0000000000..ee7b9a0fee --- /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/WaywardServant.java b/Mage.Sets/src/mage/cards/w/WaywardServant.java new file mode 100644 index 0000000000..c8f521ed54 --- /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/WeaverOfCurrents.java b/Mage.Sets/src/mage/cards/w/WeaverOfCurrents.java new file mode 100644 index 0000000000..dfd1541ce2 --- /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/WindsOfRebuke.java b/Mage.Sets/src/mage/cards/w/WindsOfRebuke.java new file mode 100644 index 0000000000..070c4ed126 --- /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/z/ZenithSeeker.java b/Mage.Sets/src/mage/cards/z/ZenithSeeker.java new file mode 100644 index 0000000000..fc42e21f04 --- /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/sets/Amonkhet.java b/Mage.Sets/src/mage/sets/Amonkhet.java index 8beb34436a..c2ec329ef6 100644 --- a/Mage.Sets/src/mage/sets/Amonkhet.java +++ b/Mage.Sets/src/mage/sets/Amonkhet.java @@ -27,6 +27,8 @@ */ package mage.sets; +import java.util.ArrayList; +import java.util.List; import mage.cards.CardGraphicInfo; import mage.cards.ExpansionSet; import mage.cards.repository.CardCriteria; @@ -35,9 +37,6 @@ import mage.cards.repository.CardRepository; import mage.constants.Rarity; import mage.constants.SetType; -import java.util.ArrayList; -import java.util.List; - /** * * @author fireshoes @@ -65,9 +64,8 @@ public class Amonkhet extends ExpansionSet { 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("Anointed Procession", 2, Rarity.RARE, mage.cards.a.AnointedProcession.class)); - cards.add(new SetCardInfo("Approach of the Second Sun", 4, Rarity.RARE, mage.cards.a.ApproachOfTheSecondSun.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)); @@ -76,34 +74,59 @@ public class Amonkhet extends ExpansionSet { 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)); @@ -111,9 +134,20 @@ public class Amonkhet extends ExpansionSet { 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)); @@ -121,26 +155,47 @@ public class Amonkhet extends ExpansionSet { 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("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("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))); @@ -149,32 +204,49 @@ public class Amonkhet extends ExpansionSet { 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", 274, 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", 140, Rarity.UNCOMMON, mage.cards.l.LordOfTheAccursed.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("Miasma Mummy", 100, Rarity.COMMON, mage.cards.m.MiasmaMummy.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("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("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))); @@ -185,47 +257,87 @@ public class Amonkhet extends ExpansionSet { 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("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 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 diff --git a/Mage/src/main/java/mage/abilities/AbilityImpl.java b/Mage/src/main/java/mage/abilities/AbilityImpl.java index ca4f014e73..ad0c40cb2e 100644 --- a/Mage/src/main/java/mage/abilities/AbilityImpl.java +++ b/Mage/src/main/java/mage/abilities/AbilityImpl.java @@ -338,7 +338,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 } diff --git a/Mage/src/main/java/mage/abilities/common/ControlsPermanentsControllerTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/ControlsPermanentsControllerTriggeredAbility.java index 1aae08aba4..750f6a6a86 100644 --- a/Mage/src/main/java/mage/abilities/common/ControlsPermanentsControllerTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/ControlsPermanentsControllerTriggeredAbility.java @@ -69,7 +69,7 @@ public class ControlsPermanentsControllerTriggeredAbility extends StateTriggered @Override public boolean checkTrigger(GameEvent event, Game game) { int inputValue = game.getBattlefield().countAll(filter, getControllerId(), game); - return ComparisonType.compare(value, type, inputValue); + return ComparisonType.compare(inputValue, type, value); } @Override 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 0000000000..ff91f35fb0 --- /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/condition/common/HeckbentCondition.java b/Mage/src/main/java/mage/abilities/condition/common/HeckbentCondition.java new file mode 100644 index 0000000000..db1c66c60a --- /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/effects/common/NameACardEffect.java b/Mage/src/main/java/mage/abilities/effects/common/NameACardEffect.java index 3559542e8b..63effc4e1c 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/continuous/SetPowerToughnessEnchantedEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/SetPowerToughnessEnchantedEffect.java new file mode 100644 index 0000000000..daa23ef63f --- /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/SourceCostReductionForEachCardInGraveyardEffect.java b/Mage/src/main/java/mage/abilities/effects/common/cost/SourceCostReductionForEachCardInGraveyardEffect.java new file mode 100644 index 0000000000..4cd0dd416f --- /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/replacement/CreateTwiceThatManyTokensEffect.java b/Mage/src/main/java/mage/abilities/effects/common/replacement/CreateTwiceThatManyTokensEffect.java new file mode 100644 index 0000000000..3459ae69f1 --- /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/keyword/ExertAbility.java b/Mage/src/main/java/mage/abilities/keyword/ExertAbility.java index dde33b839d..2034b96fa9 100644 --- a/Mage/src/main/java/mage/abilities/keyword/ExertAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/ExertAbility.java @@ -35,6 +35,7 @@ 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; @@ -68,9 +69,11 @@ public class ExertAbility extends SimpleStaticAbility { : "You may exert {this}") + " as it attacks. "; if (ability != null) { this.addSubAbility(ability); - ruleText += ("When you do, " + - ability.getEffects().get(0).getText(ability.getModes().getMode()) - + ". "); + 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)"; diff --git a/Mage/src/main/java/mage/cards/repository/CardRepository.java b/Mage/src/main/java/mage/cards/repository/CardRepository.java index 1131a20ea2..6269341446 100644 --- a/Mage/src/main/java/mage/cards/repository/CardRepository.java +++ b/Mage/src/main/java/mage/cards/repository/CardRepository.java @@ -41,7 +41,6 @@ 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; @@ -206,6 +205,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 { diff --git a/Mage/src/main/java/mage/filter/StaticFilters.java b/Mage/src/main/java/mage/filter/StaticFilters.java index aaf639ea76..94e9a610f2 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/game/permanent/token/WurmToken3.java b/Mage/src/main/java/mage/game/permanent/token/WurmToken3.java new file mode 100644 index 0000000000..aa8d61ab09 --- /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/watchers/common/CardsCycledOrDiscardedThisTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/CardsCycledOrDiscardedThisTurnWatcher.java new file mode 100644 index 0000000000..b54118f03d --- /dev/null +++ b/Mage/src/main/java/mage/watchers/common/CardsCycledOrDiscardedThisTurnWatcher.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.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.CYCLED_CARD + || 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/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index f186a1578a..b340977e4f 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -30834,54 +30834,96 @@ Anointed Procession|Amonkhet|2|R|{3}{W}|Enchantment|||If an effect would create 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 cast another spell named Approach of the Second Sun this game, you win the game. If not, you gain 7 life and put Approach of the Second Sun back into your library as the 7th card from the top.| 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.| @@ -30889,74 +30931,133 @@ Lord of the Accursed|Amonkhet|99|U|{2}{B}|Creature - Zombie|2|3|Other Zombies yo Miasma Mummy|Amonkhet|100|C|{1}{B}|Creature - Zombie Jackal|2|2|When Miasma 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.| -Hyena Pack|Amonkhet|139|C|{2}{R}{R}|Creature - Hyena|3|4|| +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.| @@ -30968,8 +31069,13 @@ 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|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.| @@ -30977,8 +31083,13 @@ Rhonas's Monument|Amonkhet|236|U|{3}|Legendary Artifact|||Green creature spells 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.|