Ich glaub ein viertes Yield wäre das sauberste und schnellste. Vermutlich kannst du es auch mit Phyton machen das würde dann aber wohl sehr langsam werden.
Hmm, genaugenommen, müsstest du nicht mal ein viertes Yield hinzufügen, deine Städte werden ja keine Fruchtbarkeit abbauen, daher kann es als einfache Feldeigenschaft reingenommen werden.
Um ehrlich zu sein, weiß ich grad nicht genau was du genau mit der Fruchtbarkeit machen willst. Sollen nur dort Nahrungsressourcen angebaut werden dürfen oder wie?
Die Fruchtbarkeit als Eigenschaft des Geländefeldes soll den Nahrungsertrag der Nahrungsressource verändern. Je fruchtbarer der Boden, auf dem die Nahrungsressource - Pflanzen, keine Tiere - wächst, desto mehr Nahrung.
Beispiel:
Angenommen Weizen bringt 10 Nahrung.
Fruchtbarkeit des Bodens ist 1,2 -> Positiv, also fruchtbarer Boden
Multipliziert ergibt das 12 Nahrung.
Woanders ist der Boden nicht so gut.
Fruchtbarkeit des Bodens ist 0,8 -> Negativ, also nicht so guter Boden
Multipliziert ergibt das nur 8 Nahrung.
Jede Geländeform hat ihre Fruchtbarkeit und wirkt sich so auf den Nahrungsertrag aus. Man kann die Fruchtbarkeit aber steigern. Bewässerung und Düngung fallen mir spontan ein. Vielleicht kommen noch weitere Ideen, was die technologische Entwicklung möglich machen sollte.
Dann reicht es das als Feldeigenschaftsvariable irgendwo im SDK einzutragen und zu benutzen. Brauchst kein viertes Yield dazu tun. Hab mal sowas ähnliches gemacht, kann dir aber nicht genau sagen wie das aussieht, da ich das mal vor Jahren gemacht hab. Gibt bei den Fanatics ein paar Tutorials in die Richtung, da musst du aber suchen.
DLL um die Feldeigenschaft Fruchtbarkeit erweitert. Kompilierung ergab keine Fehler.
XML "CIV4TerrainSchema.xml" um die Feldeigenschaft Fruchtbarkeit erweitert.
XML "CIV4TerrainInfos.xml" um die Feldeigenschaft Fruchtbarkeit erweitert.
Mod geladen -> lauter Fehlermeldungen, die sich auf andere XML bezogen. Ich habe mir die erwähnten XML angeschaut und gesehen, dass sie voller Eigenschaften Tags sind, die den Wert Null haben. Gebäude und deren Auswirkungen.
Muss das sein? Muss ich jedem Gebäude die Eigenschaft Fruchtbarkeit zuweisen? Kommt mir unsinnig vor. Wenn ein spezielles Gebäude die Eigenschaft Fruchtbarkeit verändert, dann sollte es diese Eigenschaft drinnen haben. Wenn es das nicht tut, dann sollte man es weglassen können. Ich denke, dass würde die Ladezeiten des Mods auch beschleunigen, wenn man all die unnötigen Eigenschaften in der XML für ein Gebäude weglassen könnte.
Das kommt drauf an, wie du das Tag im Schema definiert hast. Grundsätzlich ist es sinnvoll, bei allen Typen ein Tag gleich hinzufügen. Das geht mit der richtigen Nutzung von Suchen und Ersetzen sehr einfach und schnell. Alternativ muss man extra angeben, dass auch das nicht vorhanden sein eines Tags erlaubt ist.
einmal definierst du über <ElementType name="TerrainInfo" content="eltOnly"> irgend wo <ElementType name="iFertility" content="textOnly" dt:type="int" />. Das macht das Tag iFertility erst bekannt und sagt, es ist vom Typ Integer. content="textOnly" sagt dabei, es gibt keine Kinderelemente wie bei <ElementType name="TerrainInfo" content="eltOnly">. Jetzt musst du noch sagen, dass iFertility ein Kindtag von TerrainInfo ist, was du mit oben getan hast.
Großes D. Ich habe die Anzeige des Verteidigungsbonus studiert und seine Implementierung in der DLL als Basis für die Anzeige der Fruchtbarkeit genommen.
Aber bei weiterem Überlegen könnte ich es dabei belassen.
Wenn der Boden fruchtbar ist, bringt er ebend einige Prozente an Nahrung mehr.
Wenn nicht, dann senkt er den Nahrungsertrag um einige Prozente. Die Anzeige funktioniert in beide Richtungen, + und -.
Ich denke, ich werde ein Brot-Icon neben die Prozentwerte platzieren. Auf diese Weise könnte dem Benutzer auf den ersten Blick klar sein, was es mit der Fruchtbarkeit auf sich hat. Ebend mehr, oder weniger Nahrung und zwar um einen bestimmten Prozenzwert.
EDIT:
Auf der anderen Seite sieht es doof aus, wenn eine negative Fruchtbarkeit durch Geländeverbesserungen auf Null kommt. Fruchtbarkeit 0 % könnte zu Verwirrung führen.
Geändert von Harcourt (20. November 2014 um 14:46 Uhr)