Torridity / dsworkbench

The planning tool for the browser game 'Die Staemme'
Apache License 2.0
16 stars 14 forks source link

Farmmanager #50

Open Lace123 opened 6 years ago

Lace123 commented 6 years ago

Hi, wollte ein paar Änderungen am Farmmanager machen, habe gesehen, dass gerade aktiv daran gearbeitet wird. Daher liste ich hier mal meine Ideen auf.

  1. Mir ist aufgefallen, dass mit den letzten Änderungen das C-farmen nicht mehr funktioniert. Er zieht 1 vom Klick-counter ab, schickt aber nichts ab und bringt auch keinen Fehler. (Bei alten Versionen ohne die letzten Änderungen geht es)
  2. Es wäre nützlich eine zusätzliche Leiste zu haben, die die minimale Distanz zu den Dörfern angibt. So könnte man die nahe liegenden Farmen mit höherer Priorität abfarmen.
  3. R-Tab einen Hacken einfügen, der es erlaubt zwischen absoluten und prozentualen Resten zu tauschen. Grund: Wenn man Dörfer farmt, die weiter weg sind, laufen die Einheiten lange zurück, bis man sie wieder losschicken kann. --> 30% der Lkav einbehalten, damit man wieder alle Dörfer abfarmen kann. (Hat auch noch ein paar andere effizienz implikationen, die ich hier nicht alle ausführen möchte)
  4. Erlauben, alte Berichte einzulesen. Es funktioniert nicht, dass Workbench Berichte, die älter als der Farmeintrag sind der Farm zuzuweisen. D.h. wenn man in der Datenbank einen Bericht von gestern hat, aber die Farm heute neu hinzugefügt hat, weißt Workbench den Bericht nicht zu, denkt es hat keine Berichte für die Farm. Der Vorteil wäre es, dass man alle Farminformationen(auch BB-Dörfer) von einer alten Version in eine neuere importieren kann, also ohne großen aufwand die DS Version wechseln kann. Alternativ könnte man auch erlauben, dass die Funktion nach Farmen in Berichten suchen auch die Barbarendörfer beachtet. Derzeit muss man nach Barbarendörfern suchen, die werden hinzugefügt und dadurch kann man keine älteren Informationen zuweisen, sondern muss einen neuen Bericht einlesen.
  5. Wenn der Angriff Verluste aufweist, die Farm sperren/oder den Wall schätzen (letzteres ist wohl zu aufwendig. Die könnten mit einem gelben Schloss gesperrt werden, dass nur Angriffe mit Rammen erlaubt, wenn derWall Stufe 2 oder höher, oder der Bericht Verluste hatte. Das würde es erlauben, die Farmen einmal zuspähen und dann ohne Späher weiterzufamen.
  6. Das Farmen mit gewissen Gruppen erluben. Denke die Idee kam schnonmal auf.
  7. Ein Feld bei C-Farmen einfügen, dass eine manuelle Obergrenze hinzufügt. Z.b. 2h, so dass WB maximal so viele Einheiten schickt, dass einen Produktion von 2 h abgefarmt wird. Grund: So kann man einen für sich sinnvollen Betrag einfügen und WB schickt keine 100 Lkav auf ein kleines Dorf, nur weil es lange nicht mehr abgefarmt wurde. Die Annahme, dass sich Rohstoffe ansammeln ist absolut unrealistisch. Die wichtigste Änderung, die es sogar effizienter machen kann WB zu benutzen anstelle von build-in Farmmanager. Habe ich bereits getestet.
  8. Mehrfachangriffe erlauben. Alos, wenn man einen Angriff losschickt, die theoretische Menge direkt um den Betrag, der geplündert würde erniedrigen und es ermöglichen auf die gleiche Farm nocheinmal zu laufen. Mit dem minimal farm angaben, kann man verhindern, dass man auf Dörfer läuft, bei denen sich das Farmen noch nicht lohnt. Grund: Bei weit entfernten farmen kommt man nur alle 4 Stunden vorbei. Aber Leute werden da aktiv farmen. Wenn man alle 2 h einen Angriff darauf schickt, der die Produktion von den 2h abholt, kann man seine farm effizienz enorm steigern.
  9. Das Rammen mitschicken funktioniert nur bei c-farmen, aber nicht bei A/B. Wäre aber nützlich, weil man dann bei C nur Lkav einträgt und in A z.b. 100 Axt, damit man wenig Verluste beim Wall hat und die dann mit Rammen losschicken kann.
  10. Einen Indikator einfügen, der einen darauf hinweist, ob das Dorf ein Spieler oder ein BAba Dorf ist. Eventuell ein Button, der Babas ausblendet. Habe ab und zu einenn Spieler hinzugefügt, und den wieder zufinden, wenn er entfernt werden muss, weil er wieder aktiv wurde ist ganz schön aufwendig.

Sorry für die vielen Rechtschreibfehler, habe dass alles einfach schnell runtergetippt.

extremeCrazyCoder commented 6 years ago

Erstmal da sind einige gute Ideen dabei und einiges sollte schon implementiert sein. Aktiv dran rum basteln tue ich grad nicht also wenn du willst kannst du gern mit dem coden beginnen. Ich arbeite eher immer so Schwung weise am Ende vom Tage commite ich allerdings alle Changes. Ich würde dich daher einfach bitten, dass du dir die aktuelle Version aus meinem repro holst und dann deine Changes entweder zu mir pusht oder ins Main repro damit keine Konflikte entstehen.

1) Das ist mir noch nicht aufgefallen, nachdem ich den aber selten bis nie nutze ist das auch nicht verwunderlich. Wenn du willst kann ich mir das mal ansehen oder du siehst es dir an :) 2) Bei A, B, C kann man sowas ja schon angeben oder meinst du die sollte in der Tabelle sein? 3) Nachdem die Truppen jetzt vom neuen Standardangriff Parser eingelesen werden solltest du hier die gleichen Möglichkeiten haben wie bei diesen auch. (gilt für A, B, C, R) also ist eine Prozent Angabe kein Problem (man beachte allerdings #49 was noch nicht in der Offiziellen version drinnen ist) 4) das wäre irgendwie gegen denn sinn des Features, allerdings kannst du neu gefundene Farmen ja mit einem extrem alten wert initialisieren, was das einlesen von irgendeinem Bericht am Anfang ermöglichen würde. Weiters könntest du den Export / Import der Farm-Manager settings hinzufügen 5) Das Feature würde ich irgendwie zum ein / ausschalten machen sonst könnte das andere User stören. Das Wall schätzen sollte nicht so schwer sein (solange der inc nicht komplett rot ist), da müsstest du einfach das DSSim Modul nutzen (Wie das geht kannst du dir beim SOS analyzer ansehen). Die ganzen infos wie z.B.: Luck, Truppenstärken sind ja vorhanden man muss sie nur nutzen :=) 6) Ich hatte da leider keine Zeit dafür wenn du lust hast kannst du ja #35 gleich mit machen :D 7) Die Idee der Erfolgsquote ging ja schon in diese Richtung, so eine Implementierung könnte das Farmen allerdings wirklich verbessern. 8) Wird schwer zu implementieren sein, weil jetzt alles darauf ausgelegt ist, dass immer nur 1x Truppen gesendet werden. Du kannst dich aber daran versuchen 9) Warum nicht (klarerweise mit Checkbox) 10) Kann ich verstehen dass das verwirrend sein kann, du solltest aber schauen, dass die Tabelle nicht zu groß wird

Lace123 commented 6 years ago

Kenne mich hier noch nicht so aus.^^ Muss erst noch herausfinden, wie das alles funktioniert mit dem zusammenfügen usw. bin kein Programmiergnie. :-P

Habe aber gerade sowieso nichts zum zusammenfügen, weil ich die Änderungen in einer alten Version gemacht habe, da ich den Fehler mit c-farmen in der neuen Version nicht gefunden habe. (Finde den ganzen Code etwas unübersichtlich-- Unübersichtlichkeit liegt aber nicht an den neuen Änderungen)

Zu 9. (Rammen farmen) habe den Fehler gefunden. Die Checkboxen gibt es ja schon. Aber die rammen wurden im Troophelper bei getTroopsForCarriage gesetzt, das wird aber nur für c-farmen verwendet. Man müsste es in farminformation bei farmfarm einfügen, damit es bei A/B auch funktioniert.

Zu 2. (Min Disatanz beim farmen) Verstehe nicht, welches Feature du damit meinst^^. Sehe nur die Einstellung zu max und min Laufzeit. Hier nochmal ausführlicher, auf was ich hinauswollte: Die Liste der Farmen wird von oben nach unten abgearbeitet. Dabei steht sie Sortiert nach dem Koordinaten system von oben links nach unten rechts. Wenn man genau die hälfte der Truppe hat, um das angegebene Gebiet abzufarmen, dann schickt er alle Truppen auf die linke Seite, obwohl es nähere farmen auf der rechten Seite gibt. Das kann man umgehen, indem man die max Laufzeit so einstellt, dass es genau passt, aber dafür muss man selber einschätzen wie weit man laufen kann. Daher der Einfall mit der min Distanz, dass die Tabelle nach min Distanz abgearbeitet wird.

  1. Neue Idee: Eine Katta-möglichkeit einstellen. Man kann Barbarendörfer runterkattern, damit sie die Rohstoffgebäude weiter ausbauen. Grund: Wenn die Kaserne auf 0 ist und HG unter 3, dann ist die Chance, dass die Babas Rohstoffgebäude ausbauen bei 50%. (Außerdem wird der Wall seltener ausgebaut, was die Verluste beim farmen verringert) Außerdem gibt es ein Ausbaulimit bei 500 Punkten. Durch das Kattan, werden unnötige Gebäude abgerissen und macht die Farmen auf diese Art lukrativer. Darüberhinaus hat man die meiste Zeit sowieso nichts mit den Kattas zu tun, während die Lkavs farmen. Wäre sogar komplementär zum ingame-Farmmanager. Umsetzung: Man muss die Mmöglichkeit haben, dass man die Gebäudeart, die man kattan will angibt, damit beim Übertragen immer auf das selbe gebäude geschoßen wird. Ansonsten ist das unmöglich manuell immer einzustellen, auf was man schießt. Zumdem sollte man ein Text einfügen, der erklärt, dass bevor man abschickt den Standard angriff auf das gewünschte gebäude zu setzten. Außer es gibt eine Möglichkeit das Kattaziel gleich mitzuübertragen (glaube ich nicht). Der Rest wäre synonym zu Rammen mitschicken.
extremeCrazyCoder commented 6 years ago

zu 2: ok zu 9: Ich würde das nicht Fehler nennen, aber ich habs mir nicht genug angeschaut um sagen zu können ob das einer ist zu 11: Das ist nicht möglich. Ich kann zwar sagen, dass katas bei einem Angriff dabei sein sollen ich kann aber nicht festlegen auf welches Gebäude sie gehen (sonst ist die Idee nett)

sieh dich einfach mal ein bisschen im Code um. Ich arbeite derzeit an der Befehlsübersicht (intern) & dem Taktikplaner.

Lace123 commented 6 years ago

C-farmen gefixed // correct speed by used units (not necessary as they are sorted by runtime!? // ... but won't hurt anyway) speed = Math.max(speed, units.getSpeed()); Hat den Bug ausgelöst xD wie ironisch.

Rammen können auch mit A/B tab geschickt werden Einen Fehler behoben, bei dem auch weniger als die min. Truppen geschickt wurden.

Habe einen Katta-tab eingefügt, bei dem man ein Ziel auswählen kann, dass dann automatisch runtergekattert wird.

Würde dann noch die Erfoglsquote berücksichtigen bei A/B entfernen. Da werden fixe Truppen losgeschickt, dass bringt bei denen gar nichts. Als nächstes schaue ich mir auch noch das mit der Effizienz Obergrenze und farmen mit Gruppen an.

Lace123 commented 6 years ago

Ich brauche mal eine zweite Meinung. MinHaul scheint ein Relikt zu sein. Es wird nur in der Berechnung für C verwendet, nicht aber für A/B. Allerdings würde es andersherum mehr Sinn machen. Bei C gibt man sowieso eine Untergrenze bei den Einheiten an. Bei C ist dann entweder die Farmgrenze oder die Einheitengrenze überflüssig (Je nachdem, welche höher ist wirkt) Aktion: Würde es ändern, dass minHaul bei A/B die Farmen beschränkt und würde es bei C durch die Farmobergrenze ersetzen. Was sind die Meinungen? Übersehe ich was?

extremeCrazyCoder commented 6 years ago

Also so weit ich das sehe hat min Haul die Funktion, dass es definiert ob noch ressourcen da waren im BB-Dorf oder nicht (anhand der gespähten Ressourcen) über den sinn lässt sich streiten. Du kannst das mit dem beschränken der Farmen gern so implementieren.

Wie das mit dem Kata tab funktioniert musst du mir nochmal erklären

Lace123 commented 6 years ago

Man kann ingame ein Standardziel für Katapulte festlegen. Das legt man ingame dann zum Beispiel auf das Hauptgebäude und wählt in der WB das Hauptgebäude aus. Dann schickt die WB auf farmen genau so viele Katapulte, dass das Gebäude auf 0 bzw. 1 zerstört wird. Dadurch erhöht sich die Profitabilität vom farmen. Wird eher selten gemacht, weil der Aufwand relativ groß ist. Mit WB ist das aber ein eher geringer Aufwand.

extremeCrazyCoder commented 6 years ago

ah ok :) das kann funktionieren

Lace123 commented 6 years ago

Zwei Kleinigkeiten gibt es noch, die ich optimieren könnte..

  1. Das Kattan auf kleine Farmen beschränken (<600P), um keine großen Babas unnötig klein zuschießen
  2. Die Katapulte so splitten, dass immer eine Stufe zerstört wird. Das wissen einige nicht, aber so kann man mehr Schaden verursachen, als alle Katas auf einmal zu schicken. (Könnte mit einer Checkbox implementiert werden?)
  3. Dass Kataangriffe nicht als Farmangriff zählen, so dass der Status nicht geändert wird, und man währenddessen die Farm weiter normal mit Lkavs abfarmen kann.

Ich habe mir gerade eben das Feature "Farmen in Berichten suchen" angeschaut. Es sollte auch Barbarendörfer erkennen. Macht es aber nicht. Habe einen logger nach jedem if/else Schritt eingebaut. Die Barbarendörfer landen aber nirgends. Scheint ein Problem mit den Reports von Barbarendörfern zu sein. Irgendwas stimmt auf jedenfall nicht. Außerdem erkennt er keine Berichte, die bereits als Farm im Farmmanager eingetragen waren, auch wenn man sie aus der Farmliste löscht. Keine Ahnung, ob die Fehler miteinander verbunden sind. Das Problematische ist, dass man so schwerlich die WB Version wechseln kann, weil man alle Berichte nochmal einlesen muss, was ein unnötig großer Zeitaufwand ist. Vielleicht willst du dir mal anschauen, was da los ist. Denke ich bleibe erst mal beim Farmmanager.

extremeCrazyCoder commented 6 years ago

Vor der nächsten release werde ich mir alles was du noch an Bugs über lässt ansehen :)

Lace123 commented 6 years ago

Hi, Ich bin inzwischen an zwei Stellen an Probleme gestoßen mit TroopAmountDynamic. Die Funktion getAmountForUnit gibt entweder das zurück, was der min Betrag in den Konfigurationen ist, oder das was im Dorf steht, je nachdem was weniger ist. Die Konfigurationen sind aber eine Untergrenze.

  1. Schickt er immer Farmtruppen ab, selbst wenn nur 1 Axtkämpder da ist.

  2. Bei allowedFarmUnits sind immer welche vorhanden, selbst wenn nur eine einzelne Farmeinheit im Dorf steht. Was an mehreren Stellen zu Schwierigkeiten führt.

Ist das so gewollt und nicht ganz richtig implementiert im Farmmanager? Code im Farmmanager oder bei TroopAmountDynamic abändern?

Außerdem würde ich gerne das schicken von Kattas und Rammen von den Farmangriffen separieren, so dass man Dörfer auf die Kattas laufen immer noch abfarmen kann. Bei Rammen war das bisher ja kein Problem, weil man ansonsten Verluste hätte, aber Katas sind zum optimieren der Farmen da. Das lange sperren der Farm, obwohl verlustfreies farmen möglich ist, ist da eher hinderlich. Würde die Zeile "letztes Farmergebnis" dafür entfernen. (zeigt an, ob die Farm beim letzten mal überschüßige Rohstoffe im Lager hatte. Überflüßig, weil C-farmen automatisch die Ressis mit einrechnet und die Erfolgchance ein wesentlich weitsichtigeres Maß zum feststellen der Profitabilität der Farmen ist).

Wenn ich schon dabei bin einen Roman zu schreiben vielleicht noch kurz deine Meinung: Bin gerade dabei einen Algorithmus zu bauen, der eine sinnvolle Farmreihenfolge festlegt. Ist da die Median Distanz von Farmen zu den Farmdörfern oder die minimale Distanz zu den Farmdörfern besser. Habe schon eine eigene Meinung, würde aber gerne eine unvoreingenommene zweite lesen.

extremeCrazyCoder commented 6 years ago

Der erste Punkt ist so gewollt und sollte nicht in der TroopAmountDynamic Klasse geändert werden, weil wir sonst an anderen stellen Probleme bekommen. Der 2. Punkt ist eine Funktion des Farmmanagers, daher kannst du den natürlich problemlos verändern. Ich muss jetzt aber zugeben, dass ich den sinn von der Funktion nicht wirklich verstanden habe^^ (warum die bei A und B verwendet wird) die schaut ja nur nach, ob mehr als 0 Truppen da sind und gibt dann an bei welchen Einheiten das zutrifft. (Bei C verstehe ich den Sinn ja noch da die LZ davon abhängt) Du könntest ja z.B. in TroopAmountDynamic eine Funktion einbauen mit der du solche Elemente vergleichen kannst.

Das mit den Katas klingt sinnvoll, ich würde aber sagen, nachdem du die Funktion selber eingebaut hast weißt du vermutlich besser als ich was sie machen sollte und musst mich daher nicht Fragen ob das ok ist :)

zum Algorithmus: Ist jetzt etwas schwierig für mich da eine Aussage zu machen, weil ich meist auf No-Farm Welten spiele ich werde es aber dennoch mal Probieren (kannst dir dann ja noch eine 3. oder 4. Meinung einholen :D )

Ich würde sagen, dass man am Effizientesten Farmt, wenn der median aller Distanzen (von den Farmtrupps die verschickt werden) am kleinsten ist. Meine Idee dahinter ist, dass es nicht so schlimm ist wenn ein Trupp relativ weit reisen muss und dafür alle anderen kürzer laufen können. Ich würde dir aber dazu raten, dass du es testest, weil ich jetzt nur nach Gefühl geantwortet habe und wenig praktische Erfahrungen damit hab.

Ach ja was mir noch aufgefallen ist: Du hast beim Klonen des Repros einen Fehler gemacht. https://github.com/Lace123/ds-workbench ist kein Fork von Torridity's oder meinem Repro, daher wirst du deine Änderungen nicht per Pull-Request an uns weitergeben können. Hast du eh oben rechts auf Fork gedrückt?

P.S. Jetzt hab ich dir auch einen Roman zurückgeschrieben ich hoffe das stört dich nicht^^

Lace123 commented 6 years ago

Hast du was an FarmInformation DSWorkbenchFarmManager FarmManager TroopHelper geändert? Wenn ja ist das wohl u aufwendig alles zu übertragen. Dann sind das wohl private Änderungen für mich^^

extremeCrazyCoder commented 6 years ago

nein hab ich nicht, wobei es meistens auch kein Problem wäre wenn ich was geändert hätte. Ich kann meine Changes derzeit allerdings nicht comiten, weil die noch nicht stabil laufen :D

Lace123 commented 6 years ago

Alles klar, dann versuche ich mal einen Fork zu machen, bevor sich viel ändert. Soll ich das bei deinem repository machen?

extremeCrazyCoder commented 6 years ago

das sollte eigentlich egal sein ich würde sagen suchs dir aus :) ob meins oder das von Torridity

extremeCrazyCoder commented 6 years ago

sobald du dann fertig bist bitte commiten und eine Pull-Request erstellen

Lace123 commented 6 years ago

Mache ich dann. Will es aber erst noch bisschen testen.

Lace123 commented 6 years ago

Habe einen Pull-request gestellt. Aber, habe nur provisorisch Icons eingefügt. Habe kein Photoshop und kennen mich damit auch nicht aus. Falls jemand bessere Icons einfügen kann, wäre das wohl besser.

  1. gelöst
  2. gelöst
  3. war schon gelöst
  4. Nichts gemacht. Kommt mir so vor, als ob da nicht alles passt in speziellen Fällen.
  5. Kompromis
  6. gelöst
  7. gelöst
  8. Kompromis für Rammen und Katapulte.
  9. gelöst
  10. Ignoriert
  11. gelöst

Bestehende Probleme:

  1. Partial Farmen hat vorher nicht richtig funktioniert, und habe es auch nicht gefixed.
  2. Icons sollten geupdated werden
  3. Erlauben, die Farminformationen zu exportieren. Dann könnte man die Informationen wie Success rate Gebäudestufen usw. übernehmen, falls man die Workbenchversion wechselt.
  4. Das übertragen der Angriffe ist wesentlich langsamer, falls nicht der Standard browser verwendet. Keine Ahnung, ob man das ändern kann.
extremeCrazyCoder commented 6 years ago

ok danke für die Zusammenfassung 4) Also die alten Berichte werde ich beide fixes die ich vorgeschlagen habe noch implementieren (einer von denen ist existientes Prob. 3)

5) Da werde ich den 2. Teil implementieren 8) Mal schauen wie das schön zu implementieren geht vielleicht muss ich da den gesamten Code umbauen 10) mach ich dann auch noch

3 Sachen nur für nächstes mal: 1) Benutze bitte keinen Auto-Formater, weil der den Code nicht gerade verbessert hat 2) Achte bitte darauf (zumindest vor dem Commit) dass du 4 Leerzeichen benutzt um Einrückungen zu machen. Ein Großteil deines Codes enthält Tabulatoren. Dies sollte im ganzen Projekt einheitlich sein 3) Benutze bitte für changes am GUI immer den Design tab von Netbeans ansonsten wird das .form file nicht mit verändert was zu Problemen führt beim nächsten der Änderungen am GUI machen will (mit dem Designer von Netbeans)

Lace123 commented 6 years ago

Mir ist gerade noch aufgefallen, dass ich ausversehen das "/res/ui/ram.png" Bild gelöscht habe. Das ist genau das selbe wie "/res/ui/rams.png".

Danke für die Hinweise. Aber was meinst du mit den 4 Leerzeichen? Waren nicht viele Gui Änderungen. Wusste nicht, dass der nächste dann so viele Probleme hat. Kannst du die Änderungen jetzt gar nicht verwenden?

extremeCrazyCoder commented 6 years ago

doch kann ich ich muss nur das was am GUI gemacht hast nochmal rückgängig machen und dann in Netbeans nochmal machen :)

bei den Einrückungen ist es so ziemlich im ganzen Projekt so, dass 1x Einrücken (Für ein IF / WHILE / ...) = 4x Leerzeichen bei dir ist es = 1x Tabulator

Wegen dem Bild ok das kann ich eigentlich wieder zurückumbennen und dann im Code von rams auf ram ändern oder?

extremeCrazyCoder commented 6 years ago

warum nutzt du in updateHaulInformation@FarmInformation:555 eigentlich nicht mehr getWoodInStorage ? Dann werden doch die vorhandenen Ressourcen nicht mitgezählt, oder übersehe ich da was?

Lace123 commented 6 years ago

Jo, das Bild muss nur umbenannt werden.

Bin mir nicht ganz sicher, was du meinst. WoodInStorage habe ich etwas umfunktioniert. Jetzt werden die zusätzlichen Ressourcen auf das Farmlimit addiert. D.h. man kann 2h angeben und dann schickt er automatisch 2 h- Produktionen + gespähte Ressourcen.

getWoodinStorage (theoretischer wert, um Einheiten zu schicken) berechnet, wie viele Ressourcen im Speicher sind. HaulInformation (Tatsächlich mitgenommene Ressourcen) sind, wie viel Ressourcen von den Truppen mitgenommen wurden.

extremeCrazyCoder commented 6 years ago

danke für die Antwort ich muss mir die Änderungen noch ein bisschen genauer ansehen, wenn ich Zeit habe, aber sieht nett aus :)

Das mit dem .form File sollte jetzt erledigt sein Kannst du dir bevor ich die Änderungen dann zu Torridity pulle nochmal testen? (wenn du Lust hast auch jetzt schon, ich habe aber noch keine zusätzlichen Funktionen implementiert) sollte dir was auffallen was ich an der UI vergessen habe sag es bitte

Ist derzeit noch eher eine frühe alpha was auf meinem Repro ist :D

Lace123 commented 6 years ago

Alles klar, kann deine Version dann testen. Benutzte meine Version gerade auf einer Welt um alles in Aktion zu sehen. Mir sind noch 5 Kleinigkeiten aufgefallen, aber im großen und ganzen funktioniert das ziemlich gut. Vor allem von dem Kata-Tab bin ich sehr positiv überrascht, das funktioniert wirklich extrem gut.

Edit: Habe 2 Wochen später angefangen und komme unter die Top 30 geplünderte Ressourcen.

Die Kleinigkeiten, kann ich später auch selber nochmal anschauen, weil ich weiß, wo ich das finde.

Probleme: -Reset durch reset button, nur wenn es benötigt wird. Verhindert potenziell ungewolltes -Die Einstellungen von Farmgruppe und Kataziel korrekt speichern und laden (nach neustart) -remove extra ressources, wenn man Truppen mit C-Farm losschickt, damit man sie nicht ausversehen durch den reset button löscht -falls not spyed -> set status to not_initiated instead of not_spyed -bei den ifs im DSWorkbenchFarmmanager sind zwei Klammern falsch gesetzt (dadurch werden Normaleangriffe nicht auf Kataziele geschickt) -Das senden von Spähern ohne Farmtruppen erlauben, falls man neue Farmen einfach nur spähen will -Falls Truppen im letzten Bericht komplett vernichtet und Dorf Baba, automatisch entsperren -RamsOnWay resettet nicht korrekt -Tooltips aussagekräftiger formulieren -Babapunktelimit variabel anhand der Welteinstellung festlegen

extremeCrazyCoder commented 6 years ago

wenn du eh schon weißt wo die Fehler liegen wäre es sicher effizienter, wenn du sie ausbesserst - dann kannst du dir auch gleich mal das ansehen was ich verbrochen habe ;)

wenn geht nutz bitte die Änderungen die ich noch gemacht habe (und falls du was an der UI änderst Netbeans)

was mir noch so aufgefallen ist -Der Kata tab sticht durch das andere Icon extrem hervor da würde ich einfach ein K nehmen (damit das aussieht wie die anderen -Die zwei Buttons zum löschen der Farmangriffe sind etwas verwirrend da sie exakt gleich aussehen -Sonst bin ich schon gespannt die Features auszuprobieren

Lace123 commented 6 years ago

Hatte weniger Zeit. Bin aber dazu gekommen, es mir anzuschauen. Ein paar Sachen am UI müssen noch geändert werden. Das mit den Icons wusste ich schon, aber um ordentliche Icons zu machen müsste man Photoshop benutzen, damit kenne ich mich aber nicht aus.

Off topic: Greift der SOS Analyzer auf die eingelesenen Berichte zu? Man könnte es ja so machen, dass er sich merkt, ob die Off immer noch unterwegs ist und den Angriff dann als Fake makiert, weil die Off noch auf dem Rückweg war, als der Angriff abgeschickt wurde. Aber das geht vielleicht auch zu weit.

extremeCrazyCoder commented 6 years ago

Sorry das ich dir nicht zurückgeschrieben habe ich hatte viel zu tun also die Icons sollte ich jetzt "Verbessert" haben. Ich nutz immer Gimp für solche Angelegenheiten, das ist aber auch nicht einfach zu bedienen.

zum Off-Topic: Nein tut er nicht, aber das kann ja in einer der nächsten Versionen dazukommen

Edit: Pull-Request ist raus, was noch fehlt kommt später

Lace123 commented 6 years ago

Alles klar. Von mir werden wohl noch einige Änderungen kommen. Bin fleißig am testen und mir sind noch einige Sachen aufgefallen.

habe den Räuber des Tages mit dem Farmmanager bekommen. 14,5 mio gefarmt, 4 mio vor dem zweiten gewesen. Der ACC war auf Rang 26. die Lage war nicht optimal zum Farmen aber andere Spieler in der Nähe inaktiv. Alles in allem, denke ich ist es Zeitaufwendiger aber um einiges effizienter als der in-Build Farmmanager. Bringt definitiv etwas, wenn auch nicht so viel für große Accounts, da es da wohl zu viel Zeit braucht mit Wb zu Farmen. Das Kata Feature überzeugt mich vollkommen. Ist auf jedenfalls ein massiver Mehrwert.

Lace123 commented 6 years ago

Also ich habe Probleme mit Netbeans und bevor ich mich hier ewig abmühe, kennst du vielleicht die Lösung. Jedesmal, wenn ich eine Änderung mache, die etwas an der Form datei ändert, löscht er alle texte im Farmmanager. Also Labelbeschriftungen und button beschrieftungen etc. Weißt du woran das liegt?

extremeCrazyCoder commented 6 years ago

Klingt sehr komisch nein da kann ich dir leider auch nicht weiterhelfen...

wenns gar nicht geht dann nutz einfach eine andere Umgebung

Lace123 commented 6 years ago

Ok, for the record, falls irgendwann jemand ein ähnliches Problem hat. NetBeans hat den Text aus unerfindlichen Gründen nicht erkannt. Habe das Textfeld angeklickt und dann einfach auf ok gedrückt und jetzt sind sie wieder drin... Hast du das selbe Problem? Falls nicht ist die Frage, ob dann deine NetBeans version die Texte noch erkennt, wenn ich das bei allen Texten im Farmmanager mache, irgendwas muss sich ja ändern.

extremeCrazyCoder commented 6 years ago

Nein das Problem hatte ich noch nicht wenn meine Version das nimmer erkennt ist das auch egal.

Lace123 commented 6 years ago

Habe einen Pull request gestellt. Damit sollte das neue Gui korrekt sein. (Wenn deinen neuen icons dazu kommen)

extremeCrazyCoder commented 6 years ago

ok ich sehe sie zwar gerade nicht ich kann mir aber notfalls auch einfach die Änderungen aus deinem repro holen :)

extremeCrazyCoder commented 6 years ago

Ich bin gerade beim abarbeiten von dem was noch zu tun ist. Was hast du mit

Partial Farmen hat vorher nicht richtig funktioniert, und habe es auch nicht gefixed.

Gemeint? (Kommentar vom 12 April) Soweit ich sehe macht partielles Farmen eh nur bei C einen Sinn (die Art wie es eingebaut wurde, dass es nur bei C gilt ist natürlich unschön, aber gut)

Lace123 commented 6 years ago

Ja es macht nur bei C Sinn. allerdings hat der Hacken, den man setzten konnte nichts bewirkt der Algorithmus hat immer so geschickt, als ob "Partial Farmen" erlaubt wäre, unabhängig davon, ob man es erlauben wollte oder nicht. (Wenn ich das noch richtig in Erinnerung habe. Villeicht war es auch anders rum, dass er nie Partial gefarmt hat.)

Lace123 commented 6 years ago

Bei dem Kata Tool ist eine Grenze für das runter kattander Barbarendörfer angegeben, die sich an dem Ausbaulimit für Barbarendörfer orientiert (sollte). Leider, habe ich in den Servereinstellungen, die eingelesen werden, keine Variable dafür gefunden, daher ist die Grenze fix auf 500 Punkte gesetzt. Meistens ist heutzutage die Grenze bei 500, falls es aber eine Änderung gibt, funktioniert das Tool nicht mehr korrekt.

extremeCrazyCoder commented 6 years ago

ok danke für die Info ich hab nur die Komentare gelesen und mir gedacht, dass du meintest es sollte auch für A/B/K funktionieren

Das mit der BB-Grenze sollte kein Problem sein einzubauen: hier https://de155.die-staemme.de/interface.php?func=get_config unter 500 steht es

diese Datei wird für die anderen Servereinstellungen sowieso ausgelesen

extremeCrazyCoder commented 6 years ago

könntest du bitte den Farmmanager von meinem aktuellen master branch testen?

Ich hab einiges verändert, um mit JAVA 10 kompatibler zu sein & mit Mac wieder kompatibel zu werden. Daher ist unter anderem die Library XStream raus geflogen, die bis jetzt sich um das speichern und laden von den Farminformationen gekümmert hat.

Was dich vielleicht freuen wird, ist dass ich derzeit dabei bin den Export & Import von Farmen zu implementieren. Der Import ist schon vorhanden (da die Formate aber nicht kompatibel sind kannst du nicht von der vorherigen Version importieren). Die Exportdaten kannst du derzeit nur über die backup.xml bekommen.

Ich spiele leider selber auf einem Server wo die BBs immer sofort geadelt werden, weshalb ich den Farmmanager nicht testen kann

extremeCrazyCoder commented 6 years ago

zwischen Spielerdörfern und Barbaren kann jetzt anhand der Hintergrundfarbe in der Tabelle unterschieden werden

Lace123 commented 5 years ago

Ist zwar schon eine Weile her, habe aber wieder ein bisschen Zeit. Werde das Tool auf Herz und Nieren testen allerdings habe gerade erst auf einer neuen Welt angefangen. Um das genauer zu testen, brauche ich noch ein bisschen Zeit, bis ich weit genug voran gekommen bin in der Welt.

Habe mir den Code schonmal ein bisschen angeschaut und eine Kleinigkeit geändert: KnownVillage updatet jetzt die Zeit der letzten erhaltenen Information einheitlich intern, dass man das nicht überall manuell hinzufügen muss. (Teilweise wurde das schon gemacht, teilweise nicht)

Ist es gewollt, dass der Building parser "KnownVillage.getLastUpdate()"-method nicht benutzt, um zu schauen ob neuere Informationen vorhanden sind? (aka immer die vorhandenen Informationen überschreibt). Wenn kein Datum eingelesen wird, von wann die Infos sind, macht das ja durchaus Sinn.

Wollte den code für den Farmmanager noch ein bisschen umschreiben, um das ganze etwas übersichtlicher zu machen und für meine eigene Übung. Besonders die FarmInformation class macht ziemlich viel auf einmal, außerdem ist sie nicht unbedingt intuitiv. Ich weiß noch, dass die mich am Anfang am meisten verwirrt hat. Wollte die aufsplitten, dass sie nur noch die Informationen zum Farmen enthält und dann eine zusätzliche class für die Farmangriffe. Das würde mehere Farmangriffe auf ein Ziel erlauben.

FarmInformation class beinhaltet bisher:

Kannst du mir den Grund erklärern, dass es KnownVillage und Village object gibt? Um Speicher zu sparen? KnownVillage enthält das Village Object und dann noch die Gebäude Level Informationenen. Aber überall wo ich bisher auf KnownVillage gestoßen bin, wurde auch das Village objekt benutzt, das kommt mir irgendwie unnötig vor. Könnte man nicht KnownVillage als subclass von Village machen und sobald man Informationen zu einem Dorf erhält das Village Objekt im DataHolder durch ein KnownVillage Objekt ersetzten?

extremeCrazyCoder commented 5 years ago

Also erstmal Testen: Gehört gemacht. Ich habe bereits div beschwerden im Forum bekommen, dass der Farmmanager nichts tut / nicht so tut wie er soll. Bei mir selber sehe ich die Eingabe für die Truppen gar nicht, daher kann ich deren Bugs gar nicht testen sondern stecke noch vorher fest. Ich hab derzeit nur leider keine Zeit das zu fixen.

ok das klingt gut (einheitliches Update der Zeit)

BuildingParser: Wie du sagst werden die Infos nicht ausgelesen, daher macht ist es gar nicht möglich dies zu überprüfen. Weiters gehe ich davon aus, dass jemand jetzt gerade DS aufgemacht hat und dort STRG+A STRG+C drückt. Dadurch ist es nicht möglich dass die gespeicherten Infos aktueller sind. Wenn du willst kannst du sowas gern implementieren, ich hab es damals nicht mal als Möglichkeit angesehen, dass sowas passiert.

Der Farmmanager Code ist tatsächlich etwas schwierig lesbar. Ich wäre froh wenn du das verbessern kannst. Das ich mich in dem Code nicht auskenne ist einer der Gründe warum ich das Fixen der Farmmanager Bugs jetzt schon fast 1 Monat vor mir her schiebe :)

Bezüglich KnownVillage und Village: Bequemlichkeit :) Als ich den Code umgebaut habe so dass KnownVillage anstatt inerner Variablen benutzt wird habe ich das nicht mit verändert, weiters finde ich dass KnownVillage.getVillage().... nicht wirklich zur Lesbarkeit beiträgt.

Das KnownVillage eine subklasse von Village wird ist eine Möglichkeit. Der Nachteil davon ist, dass dafür ein komplett Umbau diverser interner Klassen notwendig ist (viel Arbeit). Wenn du dies als Coding Übung siehst dann nur zu :) Wenn du dir generell den Code von Workbench ansiehst wirst du merken, dass solche Situationen öfters vorkommen.

Wie schnell wirst du dir ca. den Farmmanager ansehen? Wenn du Lage brauchst (>1 Monat) würde ich erst mal die Bugs fixen und dann den Code umbauen.

Lace123 commented 5 years ago

Hast du vielleicht im Kopf, was genau beim Farmmanager nicht funktioniert hat? Ich habe im Forum geschaut, aber er hat nur Screenshots reingesetzt, die sind allerdings bereits abgelaufen. Also ich kann die Screenshots nicht mehr anschauen.

Das mit dem Eisen ist ein seltsamer Bug, das muss ich erstmal nachstellen. Normalerweise sind alle Rohstoffe immer gleich behandelt und das fällt eigentlich auf, wenn im Code nur 2 Rohstoffe an einer Stelle verwendet werden. Das mit den Lkav wird wahrscheinlich daran liegen, dass er mit allem farmen lässt und WB immer das Dorf mit der kürzesten Distanz wählt. Schaue ich mir nochmal genauer an, aber das wird einfach behoben, indem er sagt, dass er nur mit Lkav farmen will, bzw. die richtige Farmgruppe auswählt. (Bin gerade zu faul mir einen Forumsaccount zu machen lol, mache ich vielleicht später.)

extremeCrazyCoder commented 5 years ago

Ich glaub der Fehler war: "Es wurden keine gültigen Farmtrupps für die Konfiguration A gefunden"

Truppen waren eingestellt

Kann dir aber auch nicht mehr sagen. Danke dass du dich drum kümmerst

NerdOfTheFuture commented 5 years ago

Hallo,

ich weiß nicht ob das hier der richtige Ort ist, um die Frage/Anregung zu posten, sagt dann einfach bescheid.

Ich finde die Kata-Funktion des Farmmanagers sehr gut, allerdings würde ich vorschlagen die Grenze für maximale Größe der Barbarendörfer in den Einstellungen anpassbar zu machen. Ist ja je nach Welt unterschiedlich wie weit sie sich selbstständig ausbauen und so kann man noch besser seine Barbarendörfer züchten.

MfG

Robin

extremeCrazyCoder commented 5 years ago

Ist auf jeden Fall keine schlechte Idee Theroretisch ließe sich die maximale Größe der BBs eh aus den Welteneinstellungen auslesen, ich kann aber nicht sagen in wie weit das bereits gemacht wird.

extremeCrazyCoder commented 5 years ago

@Lace123 den Farmmanager Bug sollte ich mit 55067e6d35b45fae3d850acc0a5f9c4987bf39a0 behoben haben Fehlermeldungen siehe #65