Latest Posts

Topic: Militärgebäude - Bevorzuge : ?

Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 221
OS: Windows 11 Home 64-bit
Version: 1.2.1~rc1
Ranking
Widelands-Forum-Junkie
Location: Deutschland
Posted at: 2020-12-13, 14:56

Hallo Widelands Freunde,

Warum tauscht das Programm nicht die Soldaten aus wenn, - Im Militärgebäude ein komplett untrainierter Soldat ist - Im Lager nur noch trainierte Soldaten sind - Das Kolosseum keine Soldaten mehr zum trainieren hat ?

Warum gibt es nicht die Option : Bevorzuge Neulinge - Für den Anfang oder wenn man nicht genug Ressoursen zum trainieren aller Soldaten hat Bevorzuge Normal - Innland Sicherung Bevorzuge Helden - Front

Ich würde nähmlich meine komplett Ausgebildeten Soldaten gerne an die Front schicken und in meiner Innland-Verteidung halb trainierte Soldaten haben. Leider kann keinen Einfluss drauf nehmen, in welches Militärgebäude genau der komplett trainierte Soldat geht.


Top Quote
WorldSavior
Avatar
Joined: 2016-10-15, 04:10
Posts: 2125
OS: Linux
Version: Recent tournament version
Ranking
One Elder of Players
Location: Germany
Posted at: 2020-12-13, 15:27

Teayo wrote:

Hallo Widelands Freunde,

Hi Teayo

Warum tauscht das Programm nicht die Soldaten aus wenn, - Im Militärgebäude ein komplett untrainierter Soldat ist - Im Lager nur noch trainierte Soldaten sind - Das Kolosseum keine Soldaten mehr zum trainieren hat ?

Es gibt mehrere Möglichkeiten, zB,:

  1. Das Gebäude bevorzugt Neulinge face-wink.png
  2. Ein Tausch ist bereits im Gange. Es kann nur ein Tausch zur Zeit stattfinden und der braucht ein wenig Zeit.
  3. Das Militärgebäude ist nicht mit dem Straßennetz verbunden face-wink.png
  4. Im Gebäude fehlen Soldaten (Stichwort Kapazität) bzw. sind erst auf dem Weg dorthin

Du könntest hier einen Spielstand hochladen oder ein Replay mit Zeitpunkt, dann können wir uns das mal ansehen.

Warum gibt es nicht die Option : Bevorzuge Neulinge - Für den Anfang oder wenn man nicht genug Ressoursen zum trainieren aller Soldaten hat Bevorzuge Normal - Innland Sicherung Bevorzuge Helden - Front

Wie genau sollen die denn aussehen, hast du genaue Definitionen für die? Mitunter wäre das schwierig zu implementieren.

Ich würde nähmlich meine komplett Ausgebildeten Soldaten gerne an die Front schicken und in meiner Innland-Verteidung halb trainierte Soldaten haben. Leider kann keinen Einfluss drauf nehmen, in welches Militärgebäude genau der komplett trainierte Soldat geht.

Eine dritte Schaltfläche "Keine Bevorzugung / Kein Austauschen" könnte sinnvoll sein, und vielleicht noch mehrere Schaltflächen mit Abstufungen...


Wanted to save the world, then I got widetracked

Top Quote
Nordfriese
Avatar
Joined: 2017-01-17, 18:07
Posts: 2056
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2020-12-13, 15:43

Warum tauscht das Programm nicht die Soldaten aus wenn, - Im Militärgebäude ein komplett untrainierter Soldat ist - Im Lager nur noch trainierte Soldaten sind - Das Kolosseum keine Soldaten mehr zum trainieren hat ?

Von sich aus wird ein Militärgebäude, das auf »Neulinge bevorzugen« eingestellt ist, niemals einen Soldaten akzeptieren, der besser ausgebildet ist als der aktuelle Bewohner – das geht nur durch manuelles Mikromanagement:
Die Lösung besteht darin, die Gebäude mit den untrainierten Soldaten kurz auf »Helden bevorzugen« umzustellen, dann abzuwarten bis die untrainierten Soldaten ins Kolosseum gegangen sind und trainiert wurden, und dann wieder auf »Neulinge bevorzugen« umzustellen.

Warum gibt es nicht die Option : Bevorzuge Neulinge - Für den Anfang oder wenn man nicht genug Ressoursen zum trainieren aller Soldaten hat Bevorzuge Normal - Innland Sicherung Bevorzuge Helden - Front

Ich würde nähmlich meine komplett Ausgebildeten Soldaten gerne an die Front schicken und in meiner Innland-Verteidung halb trainierte Soldaten haben. Leider kann keinen Einfluss drauf nehmen, in welches Militärgebäude genau der komplett trainierte Soldat geht.

Weil noch keiner die Zeit hatte, dieses feature zu implementieren face-wink.png

Edited: 2020-12-13, 15:46

Top Quote
Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 221
OS: Windows 11 Home 64-bit
Version: 1.2.1~rc1
Ranking
Widelands-Forum-Junkie
Location: Deutschland
Posted at: 2020-12-14, 14:58

Nordfriese schrieb am 13.12.2020 : "Von sich aus wird ein Militärgebäude, das auf »Neulinge bevorzugen« eingestellt ist, niemals einen Soldaten akzeptieren, der besser ausgebildet ist als der aktuelle Bewohner – das geht nur durch manuelles Mikromanagement: Die Lösung besteht darin, die Gebäude mit den untrainierten Soldaten kurz auf »Helden bevorzugen« umzustellen, dann abzuwarten bis die untrainierten Soldaten ins Kolosseum gegangen sind und trainiert wurden, und dann wieder auf »Neulinge bevorzugen« umzustellen."

Klar, so ähnlich mache ich das auch, jedoch bekomme ich dann auch wieder teils Probleme, wenn ich die Kaserne wieder fortsetze und neue unausgebildete Soldaten der Wirtschaft hinzufüge.
Hier probiere ich derzeit das so zu machen das die Kaserne, und die beiden Ausbildungsstätten mit einen separaten Lager verbunden sind, was ich dann manuell vom Rest der Wirtschaft entkopple.
Dadurch erreiche ich, das die Neulinge nachdem sie ins Lager gegangen sind, gleich ausgebildet werden, statt einen bereits ausgebildeten Soldaten abzulösen in der Inland Verteidigung.


Soweit ich das richtig verstanden hab funktioniert der Soldaten tausch so :


Wenn Eigenschaft X besitzt den Wert Y bei Militärgebäude Z
Wenn X = "bevorzuge Neulinge" dann : Falls Soldat-Wert (Summe der Trainingspunkte) von Militärgebäude Z größer Soldat-Wert Lager dann führe Soldat tauschen aus
Wenn X = "bevorzuge Helden" dann : Falls Soldat-Wert von Z kleiner Soldat-Wert Lager dann führe Soldat tauschen aus


Hier könnte ich mir nun folgende Erweiterungen vorstellen :
A (einfach) : Wenn X = "Keine Bevorzugung / Kein Austauschen" dann : Führe nichts aus
B (schwer) : Wenn X = "Bevorzuge Normale Soldaten" dann : Tausche die Soldaten so das der Soldat aus dem Lager einen Soldat-Wert hat, der dem durchschnitt der aktuellen Armee entspricht


Ansonsten könnte ich mir noch folgende Erweiterung vorstellen (aufwendig) :
C (sehr schwer) :
1. Spieler öffnet Militärgebäude Fenster oder Lager Fenster
2. Falls Spieler öffnet Lager Fenster, Spieler klickt auf den Reiter "Arbeiter" bzw. einen neuen Reiter "Soldaten"
3. Spieler klickt auf Soldat, neues Fenster erscheint oder Soldat wird selektiert (ausgewählt)
4. Spieler klickt auf Aktion
* Schicke Soldat ins Lager (führt dazu das der Soldat ausgetauscht wird, da die Kapazität des Militärgebäudes aufgefüllt werden muss)
* Schicke Soldat zu Militärgebäude Z (führt dazu das der Soldat mit dem Soldat aus den anderen Militärgebäude tauscht)
Falls Spieler hat Aktion ausgewählt Schicke Soldat zu Militärgebäude dann :
- Setze Transparenz von schwarz_11px.png auf 50%
- Blende Bild schwarz_1
1px.png ein
- Skaliere Bild schwarz_11px.png auf Bildschirmauflösung
- Komme zur vordersten Ebene Bild schwarz_1
1px.png (Ebene -1)
- Sende an alle Objekte der Gruppe "Militärgebäude" Aktion einblenden
- Wenn Aktion einblenden empfange dann komme zur vordersten Ebene nach vorn (Ebene 0)
- Erschaffe Knopf bei allen Militärobjekten
5. Wenn Spieler Knopf von Militärgebäude Z anklickt, öffne Militärgebäude Fenster
6. Wenn Spieler Soldat auswählt dann selektiere Ihn wähle aus bzw. überspringe Schritt 7 und führe sofort Schritt 8 aus
7. Wenn Spieler auf Bestätigen klickt dann führe 8. aus
8. Tausche die beiden ausgewählten Soldaten.


Beim Lager würde unter dem neuen Reiter "Soldaten" alle Soldaten wie bei einen Militärgebäude in Reihen angezeigt werden.


Und nun noch ein paar Punkte die ich noch ändern würde :
- Ein normales Lager würde zur Gruppe der Militärgebäude zählen, siehe wie Hauptquartier
- Soldaten würden, falls vorhanden das Lager verteidigen
- Es würde Kriegsschiffe geben, aber diese Diskussion über diese Thematik hatte ich in diesen Forum schonmal gelesen. (Löst das Problem mit bereits besetzten Inseln) , Häfen angreifen
- Soldaten können gegnerische Zivilgebäude einzeln angreifen und zerstören, wenn keine Verteidigung erscheint (Die Idee finde ich selber nicht gut aber da ich sie mal hatte möchte ich sie hier erwähnen) (Macht dann Militärgebäude teils Überflüssig + Etwas Übertrieben)
- Soldaten können gegnerische Zivilisten einzeln angreifen und töten, wenn keine Verteidigung erscheint (Ebenfalls wie oben finde ich die Idee selber nicht gut) (...)
- Wenn man zum erschaffen von Soldaten eine Kaserne braucht, dann kann ich mir eine "Schule" gut vorstellen für alle anderen Arbeiter.

Edited: 2020-12-14, 15:00

Top Quote
Nordfriese
Avatar
Joined: 2017-01-17, 18:07
Posts: 2056
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2020-12-14, 15:27

Teayo wrote:

Soweit ich das richtig verstanden hab funktioniert der Soldaten tausch so :

Wenn Eigenschaft X besitzt den Wert Y bei Militärgebäude Z
Wenn X = "bevorzuge Neulinge" dann : Falls Soldat-Wert (Summe der Trainingspunkte) von Militärgebäude Z größer Soldat-Wert Lager dann führe Soldat tauschen aus
Wenn X = "bevorzuge Helden" dann : Falls Soldat-Wert von Z kleiner Soldat-Wert Lager dann führe Soldat tauschen aus

Korrekt. Wenn in einem Militärgebäude mehrere Soldaten stationiert sind, ist stets der schlechteste (»Helden bevorzugen«) bzw der beste (»Neulinge bevorzugen«) zum Austausch vorgesehen.

Hier könnte ich mir nun folgende Erweiterungen vorstellen :
A (einfach) : Wenn X = "Keine Bevorzugung / Kein Austauschen" dann : Führe nichts aus

Steht schon auf der Wunschliste

B (schwer) : Wenn X = "Bevorzuge Normale Soldaten" dann : Tausche die Soldaten so das der Soldat aus dem Lager einen Soldat-Wert hat, der dem durchschnitt der aktuellen Armee entspricht

Gute Idee, werde ich ins zugehörige issue kopieren

Ansonsten könnte ich mir noch folgende Erweiterung vorstellen (aufwendig) :
C (sehr schwer) :
1. Spieler öffnet Militärgebäude Fenster oder Lager Fenster
2. Falls Spieler öffnet Lager Fenster, Spieler klickt auf den Reiter "Arbeiter" bzw. einen neuen Reiter "Soldaten"
3. Spieler klickt auf Soldat, neues Fenster erscheint oder Soldat wird selektiert (ausgewählt)
4. Spieler klickt auf Aktion
* Schicke Soldat ins Lager (führt dazu das der Soldat ausgetauscht wird, da die Kapazität des Militärgebäudes aufgefüllt werden muss)
* Schicke Soldat zu Militärgebäude Z (führt dazu das der Soldat mit dem Soldat aus den anderen Militärgebäude tauscht)
Falls Spieler hat Aktion ausgewählt Schicke Soldat zu Militärgebäude dann :
- Setze Transparenz von schwarz_1×1px.png auf 50%
- Blende Bild schwarz_1×1px.png ein
- Skaliere Bild schwarz_1×1px.png auf Bildschirmauflösung
- Komme zur vordersten Ebene Bild schwarz_1×1px.png (Ebene -1)
- Sende an alle Objekte der Gruppe "Militärgebäude" Aktion einblenden
- Wenn Aktion einblenden empfange dann komme zur vordersten Ebene nach vorn (Ebene 0)
- Erschaffe Knopf bei allen Militärobjekten
5. Wenn Spieler Knopf von Militärgebäude Z anklickt, öffne Militärgebäude Fenster
6. Wenn Spieler Soldat auswählt dann selektiere Ihn wähle aus bzw. überspringe Schritt 7 und führe sofort Schritt 8 aus
7. Wenn Spieler auf Bestätigen klickt dann führe 8. aus
8. Tausche die beiden ausgewählten Soldaten.

Nicht sicher, ob ich das jetzt richtig verstanden habe… Also im Wesentlichen eine UI, die es mir erlaubt, zwei Soldaten, die in zwei verschiedenen Militärgebäuden stationiert sind, auszuwählen und einen Austausch dieser beiden Soldaten gegeneinander zu erzwingen? Klingt gut, aber die UI könnte komplex werden, und vor allem könnte das normale Austauschsystem dem Nutzer einen Strich durch die Rechnung machen, wenn man nicht vorher daran denkt, die Präferenzen der Gebäude auf »Kein Austausch« zu setzen.

Beim Lager würde unter dem neuen Reiter "Soldaten" alle Soldaten wie bei einen Militärgebäude in Reihen angezeigt werden.
Und nun noch ein paar Punkte die ich noch ändern würde :
- Ein normales Lager würde zur Gruppe der Militärgebäude zählen, siehe wie Hauptquartier
- Soldaten würden, falls vorhanden das Lager verteidigen

Diese Feature-Gruppe heißt »Garrison« und steht schon seit etlichen Jahren auf der Wunschliste, ohne dass jemand es in Angriff nehmen würde …

  • Soldaten können gegnerische Zivilgebäude einzeln angreifen und zerstören, wenn keine Verteidigung erscheint (Die Idee finde ich selber nicht gut aber da ich sie mal hatte möchte ich sie hier erwähnen) (Macht dann Militärgebäude teils Überflüssig + Etwas Übertrieben)
  • Soldaten können gegnerische Zivilisten einzeln angreifen und töten, wenn keine Verteidigung erscheint (Ebenfalls wie oben finde ich die Idee selber nicht gut) (...)

Du willst deine Soldaten doch wohl nicht zu Kriegsverbrechen anstiften?! face-wink.png
-1, das verstärkt nur den militärischen Charakter des Spiels. Und da Verteidiger meist ein klein wenig schwerfällig sind, ist es selbst in gut geschützten Gebieten Zufall, ob die Wächter rechtzeitig bei den Eindringlingen ankommen, um deine Zivilisten vor ihnen zu schützen.

  • Wenn man zum erschaffen von Soldaten eine Kaserne braucht, dann kann ich mir eine "Schule" gut vorstellen für alle anderen Arbeiter.

Siehe https://www.widelands.org/forum/topic/5084/


Top Quote
JanO
Avatar
Joined: 2015-08-02, 11:56
Posts: 177
Ranking
At home in WL-forums
Posted at: 2020-12-14, 21:10

Nordfriese wrote:

Ansonsten könnte ich mir noch folgende Erweiterung vorstellen (aufwendig) :
C (sehr schwer) :
1. Spieler öffnet Militärgebäude Fenster oder Lager Fenster
2. Falls Spieler öffnet Lager Fenster, Spieler klickt auf den Reiter "Arbeiter" bzw. einen neuen Reiter "Soldaten"
3. Spieler klickt auf Soldat, neues Fenster erscheint oder Soldat wird selektiert (ausgewählt)
4. Spieler klickt auf Aktion
* Schicke Soldat ins Lager (führt dazu das der Soldat ausgetauscht wird, da die Kapazität des Militärgebäudes aufgefüllt werden muss)
* Schicke Soldat zu Militärgebäude Z (führt dazu das der Soldat mit dem Soldat aus den anderen Militärgebäude tauscht)
Falls Spieler hat Aktion ausgewählt Schicke Soldat zu Militärgebäude dann :
- Setze Transparenz von schwarz_1×1px.png auf 50%
- Blende Bild schwarz_1×1px.png ein
- Skaliere Bild schwarz_1×1px.png auf Bildschirmauflösung
- Komme zur vordersten Ebene Bild schwarz_1×1px.png (Ebene -1)
- Sende an alle Objekte der Gruppe "Militärgebäude" Aktion einblenden
- Wenn Aktion einblenden empfange dann komme zur vordersten Ebene nach vorn (Ebene 0)
- Erschaffe Knopf bei allen Militärobjekten
5. Wenn Spieler Knopf von Militärgebäude Z anklickt, öffne Militärgebäude Fenster
6. Wenn Spieler Soldat auswählt dann selektiere Ihn wähle aus bzw. überspringe Schritt 7 und führe sofort Schritt 8 aus
7. Wenn Spieler auf Bestätigen klickt dann führe 8. aus
8. Tausche die beiden ausgewählten Soldaten.

Nicht sicher, ob ich das jetzt richtig verstanden habe… Also im Wesentlichen eine UI, die es mir erlaubt, zwei Soldaten, die in zwei verschiedenen Militärgebäuden stationiert sind, auszuwählen und einen Austausch dieser beiden Soldaten gegeneinander zu erzwingen? Klingt gut, aber die UI könnte komplex werden, und vor allem könnte das normale Austauschsystem dem Nutzer einen Strich durch die Rechnung machen, wenn man nicht vorher daran denkt, die Präferenzen der Gebäude auf »Kein Austausch« zu setzen.

Ich denke, wenn du das implementierst, ist es ein überschaubarer Aufwand, "Kein Austausch" automatisch aktivieren zu lassen, oder?
Eine Frage wäre ohnehin noch, was passiert wenn man bei einem Militärgebäude, bei dem "Kein Austausch" aktiv ist, einen Soldaten manuell rauswirft. Hier könnte man (alternativ zum oben genannten Mechanismus über das Lagerhaus) auch einen Dialog anbieten, in dem auf dem freien Platz ein Soldat mit mehr oder weniger bestimmten Eigenschaften angefordert wird.

Edited: 2020-12-14, 21:11

Top Quote
Nordfriese
Avatar
Joined: 2017-01-17, 18:07
Posts: 2056
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2020-12-14, 22:12

Ich denke, wenn du das implementierst, ist es ein überschaubarer Aufwand, "Kein Austausch" automatisch aktivieren zu lassen, oder?

Stimmt, das wäre sinnvoll. Wäre evtl. ein bisschen unerwartet, aber man kann natürlich dazu auch einen Modifier wie Strg festlegen um diese Automatik zu übergehen. Also kein Problem mit diesem Aspekt face-smile.png

Die größte Betonung bei diesem Feature liegt natürlich auf »wenn es implementiert wird« face-wink.png

Eine Frage wäre ohnehin noch, was passiert wenn man bei einem Militärgebäude, bei dem "Kein Austausch" aktiv ist, einen Soldaten manuell rauswirft. Hier könnte man (alternativ zum oben genannten Mechanismus über das Lagerhaus) auch einen Dialog anbieten, in dem auf dem freien Platz ein Soldat mit mehr oder weniger bestimmten Eigenschaften angefordert wird.

Vorsicht, diese zwei Dinge sind leicht durcheinander zu werfen. Solange ein Militärgebäude vakante Stellen hat, nimmt es den erstbesten Soldaten, der zur Verfügung steht – komplett ohne Rücksicht auf irgendwessen Trainingsstufen. Nur wenn in einem Militärgebäude die eingestellte Anzahl Soldaten anwesend ist, sucht das Gebäude nach besseren bzw. schlechteren Soldaten, die für einen Austausch in Frage kämen. Nach dem manuellen Rauswurf eines Soldaten wird daher immer zunächst irgendein Soldat eingezogen, um wieder aufzufüllen; und erst nach seinem Eintreffen wird gegebenenfalls ein besser geeigneter angefordert.


Top Quote
JanO
Avatar
Joined: 2015-08-02, 11:56
Posts: 177
Ranking
At home in WL-forums
Posted at: 2020-12-15, 08:34

Dann sollte "kein Austausch" implizit auch "kein automatisches Auffüllen" bedeuten. Um Bedienfehler auszuschließen vielleicht aber nur so lange, wie das Fenster des Militärgebäudes geöffnet ist...


Top Quote
Nordfriese
Avatar
Joined: 2017-01-17, 18:07
Posts: 2056
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2020-12-15, 10:16

Dann sollte "kein Austausch" implizit auch "kein automatisches Auffüllen" bedeuten. Um Bedienfehler auszuschließen vielleicht aber nur so lange, wie das Fenster des Militärgebäudes geöffnet ist...

Das wäre meiner Meinung nach ziemlich sinnlos, denn wenn die Kapazität auf 5 gesetzt ist und 4 Soldaten anwesend sind, erwartet eigentlich jeder, dass sich die Wirtschaft bemühen wird, noch 1 Soldaten hinzuschicken. Das vom Öffnen/Schließen des Fensters abhängig zu machen würde bedeuten, Desyncs zu riskieren, und dies auf netzwerksichere Art zu implementieren wäre ein erheblicher Mehraufwand. Daher -1.

Wenn du einen Soldaten wegschicken willst und nicht wünschst, dass nachgefüllt wird, brauchst du im Anschluss nur einmal auf den Knopf zu klicken, der die Kapazität um 1 verringert face-wink.png


Top Quote
JanO
Avatar
Joined: 2015-08-02, 11:56
Posts: 177
Ranking
At home in WL-forums
Posted at: 2020-12-15, 13:48

Wenn ich das mache, kann ich aber keinen neuen nach Wunsch anfordern face-wink.png

Die Idee mit dem Fenster Schließen kommt daher, dass man sonst eventuell vergisst, den Soldatenaustausch wieder zu aktivieren und sich Stunden später wundert, dass irgendein Gebäude sich eigenartig verhält. Das Problem ließe sich bestimmt auch anders lösen.


Top Quote