Commit 9bfafeaf authored by fallenstardust's avatar fallenstardust Committed by GitHub

Merge pull request #202 from jwyxym/searcher

增加'<', '=', '>'的攻守搜索方法
parents 409d8abf 6d621d16
...@@ -200,6 +200,27 @@ public class CardSearchInfo implements ICardFilter{ ...@@ -200,6 +200,27 @@ public class CardSearchInfo implements ICardFilter{
return false; return false;
} }
public boolean chkAtkDef(int ct, String search) {
switch (search.charAt(0)) {
case '>':
if (search.length() > 1 && search.charAt(1) == '=') {
return ct >= (TextUtils.isDigitsOnly(search.substring(2)) ? i(search.substring(2)) : -2);
} else {
return ct > (TextUtils.isDigitsOnly(search.substring(1)) ? i(search.substring(1)) : -2);
}
case '<':
if (search.length() > 1 && search.charAt(1) == '=') {
return ct <= (TextUtils.isDigitsOnly(search.substring(2)) ? i(search.substring(2)) : -2);
} else {
return ct < (TextUtils.isDigitsOnly(search.substring(1)) ? i(search.substring(1)) : -2);
}
case '=':
return ct == (TextUtils.isDigitsOnly(search.substring(1)) ? i(search.substring(1)) : -2);
default:
return ct == (TextUtils.isDigitsOnly(search) ? i(search) : -2);
}
}
@Override @Override
public boolean isValid(Card card) { public boolean isValid(Card card) {
if(keyWord != null && !keyWord.isValid(card)){ if(keyWord != null && !keyWord.isValid(card)){
...@@ -221,10 +242,8 @@ public class CardSearchInfo implements ICardFilter{ ...@@ -221,10 +242,8 @@ public class CardSearchInfo implements ICardFilter{
if (!(i(atks[0]) <= card.Attack && card.Attack <= i(atks[1]))) { if (!(i(atks[0]) <= card.Attack && card.Attack <= i(atks[1]))) {
return false; return false;
} }
} else { } else if (!chkAtkDef(card.Attack, atk)) {
if (card.Attack != ((TextUtils.isDigitsOnly(atk) ? i(atk) : -2))) { return false;
return false;
}
} }
} }
...@@ -239,10 +258,8 @@ public class CardSearchInfo implements ICardFilter{ ...@@ -239,10 +258,8 @@ public class CardSearchInfo implements ICardFilter{
if (!(i(defs[0]) <= card.Defense && card.Defense <= i(defs[1]))) { if (!(i(defs[0]) <= card.Defense && card.Defense <= i(defs[1]))) {
return false; return false;
} }
} else { } else if (card.isLink() || !chkAtkDef(card.Defense, def)) {
if (card.Defense != ((TextUtils.isDigitsOnly(def) ? i(def) : -2))) { return false;
return false;
}
} }
} }
} }
......
...@@ -83,6 +83,10 @@ public class Card extends CardData implements Parcelable { ...@@ -83,6 +83,10 @@ public class Card extends CardData implements Parcelable {
return (isType(Type, CardType.Fusion) || isType(Type, CardType.Synchro) || isType(Type, CardType.Xyz) || isType(Type, CardType.Link)); return (isType(Type, CardType.Fusion) || isType(Type, CardType.Synchro) || isType(Type, CardType.Xyz) || isType(Type, CardType.Link));
} }
public static boolean isLink(long Type) {
return isType(Type, CardType.Link);
}
public Card type(long type) { public Card type(long type) {
this.Type = type; this.Type = type;
return this; return this;
...@@ -120,6 +124,10 @@ public class Card extends CardData implements Parcelable { ...@@ -120,6 +124,10 @@ public class Card extends CardData implements Parcelable {
return isSpellTrap(Type); return isSpellTrap(Type);
} }
public boolean isLink() {
return isType(Type, CardType.Link);
}
public boolean isExtraCard() { public boolean isExtraCard() {
return (isType(CardType.Fusion) || isType(CardType.Synchro) || isType(CardType.Xyz) || isType(Type, CardType.Link)); return (isType(CardType.Fusion) || isType(CardType.Synchro) || isType(CardType.Xyz) || isType(Type, CardType.Link));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment