/* (non-Javadoc) Methode überschrieben * @see org.d3s.alricg.charKomponenten.sonderregeln.SonderregelInterface#canAddSelf(org.d3s.alricg.held.box.HeldProzessor, boolean, org.d3s.alricg.charKomponenten.links.Link) * * - Das Ziel dieser Sonderregel (also die Eigenschaft) wird aus dem * srLink ausgelesen und ist das "zweitZiel". * - Es darf keine Eigenschaft die SF "Herausragende Eigenschaft" bekommen, die * durch die Herkunft gesenkt wurde. */ public boolean canAddSelf(Held held, boolean ok, Link srlink) { Eigenschaft element; Link tmpLink; // Auslesen des gewünschten Links element = (Eigenschaft) srlink.getZweitZiel(); tmpLink = ((LinkProzessor<Eigenschaft, HeldenLink>) held.getProzessor(CharKomponente.eigenschaft)) .getElementBox() .getObjectById(element); // Überprüfung ob die Modis durch die Herkunft u.ä. negativ sind, // dann dürfte diese SR nicht gewählt werden if (((GeneratorLink) tmpLink).getWertModis() < 0) { return false; } // Die Sonderregel darf nur einmal zu einem ELement existieren if (held.getSonderregelAdmin().hasSonderregel(this.getId(), null, element)) { return false; } // Prüfen ob "Stubenhocker" --> Nicht erlaubt mit KK, KO und GE! if (element.getEigenschaftEnum().equals(EigenschaftEnum.GE) || element.getEigenschaftEnum().equals(EigenschaftEnum.KK) || element.getEigenschaftEnum().equals(EigenschaftEnum.KO)) { if (held.getSonderregelAdmin().hasSonderregel("SR-Stubenhocker", null, null)) { return false; } } return ok; }
/* (non-Javadoc) Methode überschrieben * @see org.d3s.alricg.charKomponenten.sonderregeln.SonderregelInterface#changeCanUpdateStufe(boolean, org.d3s.alricg.held.HeldenLink) * - Ein "H. Eigenschaft" kann nicht mehr geändert werden */ public boolean changeCanUpdateWert(boolean canUpdate, HeldenLink link) { // Die Stufe kann (auf normalem Weg) nicht mehr geändert werden if (eigen.equals(link.getZiel())) { return false; } return canUpdate; }
/* (non-Javadoc) Methode überschrieben * @see org.d3s.alricg.charKomponenten.sonderregeln.SonderregelInterface#changeMinStufe(int, org.d3s.alricg.charKomponenten.links.Link) * - Da eine Herausragende Eigenschaft nicht gesenkt werden kann gilt: * Minimale Stufe = Maximale Stufe. */ public int changeMinWert(int minStufe, Link link) { if (eigen.equals(link.getZiel())) { // Der Wert kann nicht mehr gesenkt werden! return prozessor.getMaxWert(link); } return minStufe; }