Der Python-Ansatz würde weniger Arbeit erfordern, weil man halt nicht für jede der Ressourcen eine eigene Geländeverbesserung erstellen müsste.
Nachteil wäre aber, dass die Boni im Cityscreen nicht hinter den Ressourcen angezeigt werden würden.
Der Python-Code müsste an drei Stellen ansetzen: onCityBuilt(), onImprovementBuilt() und onImprovementDestroyed().
onCityBuilt() müsste im FC der Stadt nach angeschlossenen Ressourcen suchen (getBonusType(TeamType), getImprovementType(), isConnectedTo(CyCity)) und für jede den gewünschten Bonus geben (changeExtraHealth(x), changeExtraHappiness(y)).
onImprovementBuilt() müsste prüfen, ob es eine Ressource anschließt, und in einer Umgebung eines FC nach Städten suchen, falls diese gefunden werden, muss geprüft werden, ob eine Straßenverbindung besteht und dann müssten die Boni verteilt werden.
Wenn das gebaute Improvement eine Straße ist, muss jede Stadt im FC noch einmal den gleichen Prozess wie in onCityBuilt() durchführen (ich sehe zumindest keinen einfacheren Weg).
onImprovementDestroyed() macht das gleiche wie onImprovementBuilt(), nur dass die am Ende verteilten Boni eben negativ sind.
Ich hoffe du kannst damit etwas anfangen.
