207 lines
6.4 KiB
Java
207 lines
6.4 KiB
Java
package at.reisinger;
|
|
|
|
import at.reisinger.server.helper.EnumHelper;
|
|
import com.fasterxml.jackson.annotation.*;
|
|
|
|
/**
|
|
* Ein einzelner Trading deal wird hier verwaltet.
|
|
*/
|
|
@JsonAutoDetect
|
|
public class TradingDeal {
|
|
@JsonProperty
|
|
private String id, username;
|
|
@JsonProperty
|
|
private Card cardToTrade;
|
|
@JsonProperty
|
|
private ElementTyp requiredElementType;
|
|
@JsonProperty
|
|
private double requiredMinDamage;
|
|
@JsonProperty
|
|
private CardType requiredCardType;
|
|
|
|
/**
|
|
* Ein TradingDeal wird erstellt
|
|
* @param id Id des Trading deals
|
|
* @param cardToTrade at.reisinger.Card die getauscht werden soll
|
|
* @param requiredElementType Req ElementType für den Tausch
|
|
* @param requiredMinDamage Req min damage für den Tausch
|
|
* @param requiredCardType Req at.reisinger.Card Type für den Tausch
|
|
*/
|
|
public TradingDeal(String id, Card cardToTrade, ElementTyp requiredElementType, double requiredMinDamage, CardType requiredCardType, String username) {
|
|
this.id = id;
|
|
this.cardToTrade = cardToTrade;
|
|
if(requiredElementType == null){
|
|
requiredElementType = ElementTyp.UNDEF;
|
|
}
|
|
if(requiredCardType == null) {
|
|
requiredCardType = CardType.UNDEF;
|
|
}
|
|
this.requiredElementType = requiredElementType;
|
|
this.requiredMinDamage = requiredMinDamage;
|
|
this.requiredCardType = requiredCardType;
|
|
this.username = username;
|
|
}
|
|
|
|
/**
|
|
* Ein TradingDeal wird erstellt, anhand des type werden der ElementType und der CardType automatisch bestimmt
|
|
* @param id Id des Trading deals
|
|
* @param cardToTrade at.reisinger.Card die getauscht werden soll
|
|
* @param type ElementTyp und CardType in einem String. Beide Enums werden durch diesen String gewählt.
|
|
* Wird kein passender Typ gefunden, dann bleibt diese Eigenschaft auf null
|
|
*/
|
|
@JsonCreator
|
|
public TradingDeal(@JsonProperty("Id") String id, @JsonProperty("CardToTrade") Card cardToTrade, @JsonProperty("MinimumDamage") double requiredMinDamage, @JsonProperty("Type") String type, String username) {
|
|
this(id, cardToTrade, EnumHelper.stringToElementType(type), requiredMinDamage, EnumHelper.stringToCardType(type), username);
|
|
}
|
|
|
|
/**
|
|
* Holt die ID des Trading deals
|
|
* @return Id des Trading Deals
|
|
*/
|
|
public String getId() {
|
|
return id;
|
|
}
|
|
|
|
/**
|
|
* Setzt die id des TradingDeals
|
|
* @param id Id des TradingDeals
|
|
*/
|
|
public void setId(String id) {
|
|
this.id = id;
|
|
}
|
|
|
|
/**
|
|
* Holt den usernamen
|
|
* @return Der username als String
|
|
*/
|
|
@JsonGetter
|
|
public String getUsername() {
|
|
return username;
|
|
}
|
|
|
|
/**
|
|
* Setzt den usernamen
|
|
* @param username Der username als String
|
|
*/
|
|
@JsonSetter
|
|
public void setUsername(String username) {
|
|
this.username = username;
|
|
}
|
|
|
|
|
|
/**
|
|
* at.reisinger.Card die getraded werden soll
|
|
* @return at.reisinger.Card die getradet werden soll
|
|
*/
|
|
@JsonGetter
|
|
public Card getCardToTrade() {
|
|
return this.cardToTrade;
|
|
}
|
|
|
|
/**
|
|
* Req Element type holen
|
|
* @return Req Element Type
|
|
*/
|
|
@JsonGetter
|
|
public ElementTyp getRequiredElementType() {
|
|
return this.requiredElementType;
|
|
}
|
|
|
|
/**
|
|
* Req min damage holen
|
|
* @return Req min damage
|
|
*/
|
|
@JsonGetter
|
|
public double getRequiredMinDamage() {
|
|
return this.requiredMinDamage;
|
|
}
|
|
|
|
/**
|
|
* Hole req cardtype
|
|
* @return Req at.reisinger.CardType
|
|
*/
|
|
@JsonGetter
|
|
public CardType getRequiredCardType() {
|
|
return this.requiredCardType;
|
|
}
|
|
|
|
/**
|
|
* Setzt den at.reisinger.User des Trades
|
|
* @param tradingUser at.reisinger.User der Traded
|
|
|
|
public void setTradingUser(User tradingUser) {
|
|
this.tradingUser = tradingUser;
|
|
}
|
|
*/
|
|
/**
|
|
* Setzt die Karte die Getradet werden soll
|
|
* @param cardToTrade at.reisinger.Card zum tauschen
|
|
*/
|
|
@JsonSetter
|
|
public void setCardToTrade(Card cardToTrade) {
|
|
this.cardToTrade = cardToTrade;
|
|
}
|
|
|
|
/**
|
|
* Setzt req elementType
|
|
* @param requiredElementType Der Req elementType
|
|
*/
|
|
@JsonSetter
|
|
public void setRequiredElementType(ElementTyp requiredElementType) {
|
|
this.requiredElementType = requiredElementType;
|
|
}
|
|
|
|
/**
|
|
* Setzt die req Min damage
|
|
* @param requiredMinDamage Die req min gamage
|
|
*/
|
|
@JsonSetter
|
|
public void setRequiredMinDamage(double requiredMinDamage) {
|
|
this.requiredMinDamage = requiredMinDamage;
|
|
}
|
|
|
|
/**
|
|
* Setzt req cardType
|
|
* @param requiredCardType Der Req at.reisinger.CardType
|
|
*/
|
|
@JsonSetter
|
|
public void setRequiredCardType(CardType requiredCardType) {
|
|
this.requiredCardType = requiredCardType;
|
|
}
|
|
|
|
/**
|
|
* Vom deal im Parameter wird die at.reisinger.Card mit den Requirements von THIS verglichen
|
|
* @param checkDeal Von diesem Deal wird die CardToTrade geprüft
|
|
* @return True wenn der Deal passt
|
|
*/
|
|
public boolean dealOk(TradingDeal checkDeal){
|
|
return this.cardOk(checkDeal.getCardToTrade());
|
|
}
|
|
|
|
/**
|
|
* Von der at.reisinger.Card im Parameter wird die at.reisinger.Card mit den Requirements von THIS verglichen
|
|
* @param checkCard at.reisinger.Card die mit dem Deal verglichen wird
|
|
* @return True wenn der Deal passt
|
|
*/
|
|
public boolean cardOk(Card checkCard){
|
|
System.out.println(checkCard.getCardType().equals(this.requiredCardType));
|
|
System.out.println(checkCard.getCardType().toString());
|
|
System.out.println(this.requiredCardType.toString());
|
|
System.out.println(" ");
|
|
System.out.println(checkCard.getElementTyp().equals(this.requiredElementType));
|
|
System.out.println(checkCard.getElementTyp().toString());
|
|
System.out.println(this.requiredElementType);
|
|
System.out.println(" ");
|
|
System.out.println(checkCard.getDamage() >= this.requiredMinDamage);
|
|
System.out.println(checkCard.getDamage());
|
|
System.out.println(this.requiredMinDamage);
|
|
if(checkCard.getCardType().equals(this.requiredCardType) && checkCard.getElementTyp().equals(this.requiredElementType) && checkCard.getDamage() >= this.requiredMinDamage){
|
|
System.out.println("Da simma true");
|
|
return true;
|
|
}else {
|
|
System.out.println("da simma false");
|
|
return false;
|
|
}
|
|
}
|
|
}
|