/* (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#initSonderregel(org.d3s.alricg.held.box.HeldProzessor, org.d3s.alricg.charKomponenten.links.Link) * * - Das Ziel dieser Sonderregel (also die Eigenschaft) wird aus dem * srElementlink ausgelesen und ist das "zweitZiel". * - Die betreffende Eigenschaft wird auf das Maximum gesetzt und um den * Wert in "link" erhöht. */ public void initSonderregel(Held held, Link srLink) { GeneratorLink tmpLink; IdLink modiLink; assert srLink.getZweitZiel() != null; this.prozessor = held.getProzessor(CharKomponente.eigenschaft); // Auslesen des gewünschten Links eigen = (Eigenschaft) srLink.getZweitZiel(); tmpLink = (GeneratorLink) prozessor.getElementBox().getObjectById(eigen); // Link erstellen der die Eigenschaft um den gewünschten Wert erhöht modiLink = new IdLink(this, null); modiLink.setWert(srLink.getWert()); // Neuen Link hinzufügen, tmpLink.addLink(modiLink); // Eigenschaft auf den Maximalen Wert setzen tmpLink.setUserGesamtWert(prozessor.getMaxWert(tmpLink)); }