1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.magicproject.test;
20
21 import java.io.IOException;
22 import java.io.InputStream;
23
24 import net.sf.magicproject.clickable.ability.Ability;
25 import net.sf.magicproject.clickable.targetable.card.MCard;
26
27 /***
28 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
29 * @since 0.85
30 */
31 public class HasPropertyIntersectionIdCard extends HasPropertyIntersection {
32
33 /***
34 * Create an instance of HasPropertyIntersectionIdCard by reading a file.
35 * Offset's file must pointing on the first byte of this test <br>
36 * <ul>
37 * Structure of InputStream : Data[size]
38 * <li>property to test [Expression]</li>
39 * </ul>
40 *
41 * @param inputFile
42 * is the file containing this event
43 * @throws IOException
44 * if error occured during the reading process from the specified
45 * input stream
46 */
47 HasPropertyIntersectionIdCard(InputStream inputFile) throws IOException {
48 super(inputFile);
49 }
50
51 @Override
52 protected boolean testCard(Ability ability, MCard tested) {
53 final MCard other = on.getCard(ability, tested);
54 final int propertyMask = this.propertyMask.getValue(ability,tested,null);
55 for (Integer property : onMask.getCard(ability, tested).getProperties()) {
56 if ((property.intValue() & propertyMask) != 0
57 && other.hasIdCard(property.intValue() & ~propertyMask)) {
58
59 return true;
60 }
61 }
62 return false;
63 }
64
65 }