BKampfBot / BKampfBot

9 stars 5 forks source link

Spezial-, Sonderkarten in Klatsche integrieren #26

Open Xanadou opened 12 years ago

Xanadou commented 12 years ago

hallo georf,

wie du gesehen haben müßtest kannst du bei der klatsche sonder- und spezialkarten bekommen. wäre klasse wenn man die mit integrieren könnte. damit können skills gemacht werden im kampfrausch weniger kämpfe gemacht werden etc.

hier mal die karten die sinnvoll mit dem bot eingesetzt werden können:

Raus aus dem Knast Mit dieser Karte werdet Ihr sofort aus dem Knast entlassen, ohne daß Ihr mit dem Direktor um Eure Beute würfeln müßt.

Freiwurf 1 zusätzlicher Wurf. Diese Karte könnt Ihr auch einsetzen, wenn das Tageslimit bereits erreicht ist.

Stromschlag Die Anforderung beim Feld E-Werk wird bei Einsatz dieser Karte automatisch erfüllt. Wichtig: Diese Karte muß eingesetzt werden, bevor ein Kampf auf dem Feld "E-Werk" durchgeführt wurde!

Dampfhammer Durch diese Spezialkarte werden die ersten 5 von 10 ehrenhafte Kämpfen auf dem Feld Kampfrausch gutgeschrieben. Wichtig: Diese Karte muß eingesetzt werden, bevor ein Kampf auf dem Feld "Kampfrausch" durchgeführt wurde!

Knastgeschenk Klatschen und Beute als Belohnung auf dem "Nur zu Besuch Feld".

Protein Bei Auftrag mit Skillerhöhung erfolgt die Erhöhung durch Einsatz der Karte.

Rückfahrschein Man kann, ohne den Verlust von Klatschen und Beutegewinn der Hinfahrt, auf dem Zugfeld zurückfahren.

es gibt noch weitere karten, die aber nicht sinnvoll mit dem bot einsetzbar sind. wäre prima wenn du die karten integrieren könntest.

lg xanadou

georf commented 12 years ago

Notizen:

1 = Raus aus dem Knast
2
3 = Freie Auswahl
4 = Freiwurf
5 = Neustart
6 = Weitsprung
7
8
georf commented 12 years ago

http://forum.bundeskampf.com/index.php?page=Thread&postID=325059#post325059

georf commented 12 years ago

Ich habe jetzt damit angefangen.

Es sollten funktionieren:

Möchte man das Ganze nicht, setzt man die Bundesklatsche-Option Karten auf false:

"Bundesklatsche":{
  "Karten":false
}
Xanadou commented 12 years ago

herzlichen dank :)

werde ich testen. nimmst aber doch nur die spezialkarten, oder?

georf commented 12 years ago

Das habe ich noch nicht hochgeladen. Hat lokal dann doch nicht funktioniert. Muss mal sehen, woran es liegt.

Gibt es einen Unterschied zwischen Spezialkarten und Sonderkarten?

Am 27.02.2012 23:22, schrieb Xanadou:

herzlichen dank :)

werde ich testen. nimmst aber doch nur die spezialkarten, oder?


Reply to this email directly or view it on GitHub: https://github.com/BKampfBot/BKampfBot/issues/26#issuecomment-4204628

georf commented 12 years ago

Wie soll das mit dem Bahnhofsfeld funktionieren?

Xanadou commented 12 years ago

der einzige unterschied ist das du sonderkarten nicht kaufen kannst, sondern nur gewinnen.

die sache mit dem rückfahrschein ist easy. wenn du auf dem bahnhof nach vorne gefahren bist, kannst die karte setzten um wieder zurück zu fahren. meineserachtens eines der unsinnigsten karten ;)

BKampfBot commented 12 years ago

From: MisterX

Unsinnig ist die Karte nicht. So könnte man mit Glück doch noch auf die 2 4-Gewinnt-Felder zwischen den beiden Bahnhöfen kommen. Vorausgesetzt natürlich, man legt Wert darauf in dieser Runde auf diese Felder zu kommen.

Generated by anonymIssue

georf commented 12 years ago

Ich erwarte Vorschläge. Und außerdem will ich wissen in welche Richtung man fahren kann und wie es Sinn erigbt

georf commented 12 years ago

Macht es Sinn, die Weitsprung-Karte einzusetzen, um auf ein Schatzfeld zu kommen? Ich würde es dann so bauen, dass wenn die Karte da ist und ein Schatzfeld in Reichweite (1-6 Felder entfernt), wird sie eingesetzt.

Xanadou commented 12 years ago

wenn du vorgefahren bist auf den bahnhof, kannst die karte einsetzten um wieder zurück zu fahren. macht sinn, da du natürlich mehr felder in dieser runde erreichen kannst und damit mehr geld hast.

die idee mit der weitsprungkarte finde ich nicht schlecht. sollte aber abschaltbar sein, falls man die evtl für den letzten tag braucht um das startfeld noch zu erreichen um die beut aus der runde zu sichern.

georf commented 12 years ago

Ist jetzt in der Version 1.3.3 mit drin. Siehe auch https://github.com/BKampfBot/Material/wiki/Konfiguration-Bundesklatsche

georf commented 12 years ago

Mir fehlen aber noch Informationen über weitere Karten, deswegen bisher nur die genannten Karten.

Xanadou commented 12 years ago

neben den eingangs beschriebenen karten gibt es dann noch folgende:

Neustart Hiermit könnt Ihr die schon gemachten Würfe eines Tages wieder auf Null setzen. Die Zählung beginnt wieder von vorn. Erneute zusätzliche Würfe müssen wieder mit FP bezahlt werden.

Beute sichern Mit dieser Karte könnt Ihr Eure ungesicherte Beute in den gesicherten Bereich übertragen, bevor Ihr das Startfeld überquert. (nützlich zum Ende des Countdown, wenn die Runde nicht mehr beendet werden kann)

Freie Auswahl Jedes Spielfeld in Vorwärtsrichtung kann angesteuert werden. Dazu einfach das entsprechende Feld anklicken. Es ist auch möglich, jenes Feld anzuklicken, auf dem Ihr Euch gerade befindet. Dann macht der Zwerg eine Reise über Start und steht wieder am Ausgangspunkt. Beim Überqueren des Startfeldes wird bei gleicher Feldwahl nicht die Beute gesichert! Wichtig: Für den Einsatz dieser Karte wird 1 regulärer Wurf abgezogen.

georf commented 12 years ago

Das hatte ich auch schon gefunden, aber ich meine, dass ich Informationen darüber benötige, wie die Karten intern benutzt werden. Zum Beispiel die IDs und sowas. Dafür muss ich die nur selber irgendwann mal bekommen :)

Xanadou commented 12 years ago
public final static int CARD_KNASTRAUS = 1;
public final static int CARD_BEUTESICHERN = 2;
public final static int CARD_FREIEAUSWAHL = 3;
public final static int CARD_FREIWURF = 4;
public final static int CARD_NEUSTART = 5;
public final static int CARD_WEITSPRUNG = 6;
public final static int CARD_DAMPFHAMMER = 7;
public final static int CARD_KNASTGESCHENK = 8;
public final static int CARD_PROTEIN = 9;
public final static int CARD_STROMSCHLAG = 10;
public final static int CARD_FAHRSCHEIN = 11;
Tanis77 commented 11 years ago

Hallo zusammen. Geht der bot bei euch noch?

Xanadou commented 11 years ago

weitere karten eingebunden. müsste nur ne möglichkeit haben die hier einzubinden

lg xanadou

Xanadou commented 11 years ago

mir fehlt noch ne karte. knastgeschenk müste noch eingebaut werden. rest hab ich glaub ich ;) lg xanadou

georf commented 11 years ago

dann schicke mir doch mal deine Ergebnisse...

Xanadou commented 11 years ago

mach ich. wird aber we werden. ich schau mal ob die die fehlende karte gleich mit einbaue, wenn ich lust und zeit hab ;)

lg xanadou

Xanadou commented 11 years ago

KampfField.java:

Nach Dampfhammer einsetzten: // Stromschlag einsetzen

    if (fightsToDo == 3 
          && fieldName.equals("E-Werk")
          && start == 0
          && getKlatsche()
            .useCardAsk(PlanBundesklatsche.CARD_STROMSCHLAG)) {
      start = Integer.valueOf(getResult().getJSONObject("char")
                .getString("num2"));
     }
Xanadou commented 11 years ago

KnastField.java:

suche nach:

`Output.printTabLn("Beim Würfeln funktioniert etwas nicht. "

füge danach ein:

if (getKlatsche().useCardAsk(PlanBundesklatsche.CARD_KNASTGESCHENK)) { Output.printClockLn("Knastgeschenk erhalten", Output.INFO); return true; }

Xanadou commented 11 years ago

Karte Protein fehlt nur noch

lg Xanadou

Xanadou commented 11 years ago

Habe die Protein-Karte mal bei mir eingebaut. Kann ich heute aber nicht mehr testen. Gebe bescheid sobald getestet ist.

lg xanadou

Xanadou commented 11 years ago

das testen dauert wohl noch was. muss erst mal das verdammte feld treffen und dann auch noch skillen müssen. die chance steht aber nicht schlecht bei 4 zwergen ;)

lg xanadou

Xanadou commented 11 years ago

hi georf,

du hast bei den karten id`s noch eine kleinigkeit vergessen anzupassen (planbundesklatsche.java):

public static String id2Card(int id) {
        switch (id) {
        default:
            return "Unbekannt: " + id;
        case CARD_KNASTRAUS:
            return "Raus aus dem Knast";
        case CARD_BEUTESICHERN:
            return "Beute sichern";
        case CARD_FREIEAUSWAHL:
            return "Freie Auswahl";
        case CARD_FREIWURF:
            return "Freiwurf";
        case CARD_NEUSTART:
            return "Neustart";
        case CARD_WEITSPRUNG:
            return "Weitsprung";
        case CARD_DAMPFHAMMER:
            return "Dampfhammer";
        case CARD_KNASTGESCHENK:
            return "Knastgeschenk";
        case CARD_PROTEIN:
            return "Protein";
        case CARD_STROMSCHLAG:
            return "Stromschlag";
        case CARD_FAHRSCHEIN:
            return "Rückfahrschein";
        }
    }

........

private int[] cards = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

lg xanadou

Xanadou commented 11 years ago

hallo georf,

für protein:

'' if (text .equalsIgnoreCase("Der Schwimmkurs im hiesigen Hallenbad fordert deine ganze Kraft, steigere deinen Fitnesswert um 1 Punkt!")) {

        if (getKlatsche().useCardAsk(PlanBundesklatsche.CARD_PROTEIN)) {
            Output.printClockLn("Karte Protein gesetzt", Output.INFO);
            return cancelButton();
        }

        else if (!getConfig().isNull("Fitness")) {

            boolean bank = false;
            try {
                bank = getConfig().getBoolean("Fitness");
            } catch (JSONException e) {
            }

            int bought = Skill.get("Fitness").buy(1, bank);
            return cancelButton(bought <= 0);

        } else {
            return cancelButton();
        }
    }''

kannst du mal drüber schauen ob das so stimmen kann? ich kann nicht mehr testen da sie meine zwerge gesperrt haben leider :(

achso, ist die actionfield.java ;) bei den anderen skill sachen steht das selbe.

also die karte setzt er. nur ob das andere noch weiter funktioniert konnte ich nicht mehr testen

Xanadou commented 11 years ago

bitte actionfield.java noch ergänzen:

if (text.equalsIgnoreCase("Für ein anstehendes Referat musst du besonders konzentriert sein, steigere deinen Wahrnehmungswert um 1 Punkt!")) {

        if (getKlatsche().useCardAsk(PlanBundesklatsche.CARD_PROTEIN)) {
            Output.printClockLn("Karte Protein gesetzt", Output.INFO);
            return cancelButton();
        }

        else if (!getConfig().isNull("Wahrnehmung")) {

            boolean bank = false;
            try {
                bank = getConfig().getBoolean("Wahrnehmung");
            } catch (JSONException e) {
            }

            int bought = Skill.get("Wahrnehmung").buy(1, bank);
            return cancelButton(bought <= 0);

        } else {
            return cancelButton();
        }
    }

dann:

if (text.equalsIgnoreCase("Du warst im Fitnesscenter und hast stundenlang deine Armmuskulatur trainiert, steigere deinen Skill Mukkies um 1 Punkt!")) {

        if (getKlatsche().useCardAsk(PlanBundesklatsche.CARD_PROTEIN)) {
            Output.printClockLn("Karte Protein gesetzt", Output.INFO);
            return cancelButton();
        }

        else if (!getConfig().isNull("Mukkies")) {

            boolean bank = false;
            try {
                bank = getConfig().getBoolean("Mukkies");
            } catch (JSONException e) {
            }

            int bought = Skill.get("Mukkies").buy(1, bank);
            return cancelButton(bought <= 0);

        } else {
            return cancelButton();
        }
    }

dann:

if (text.equalsIgnoreCase("Der alljährliche Schützenwettbewerb im Kastanienweitwurf steht an, steigere deinen Skill Schleuderkraft um 1 Punkt!")) {

        if (getKlatsche().useCardAsk(PlanBundesklatsche.CARD_PROTEIN)) {
            Output.printClockLn("Karte Protein gesetzt", Output.INFO);
            return cancelButton();
        }

        else if (!getConfig().isNull("Schleuderkraft")) {

            boolean bank = false;
            try {
                bank = getConfig().getBoolean("Schleuderkraft");
            } catch (JSONException e) {
            }

            int bought = Skill.get("Schleuderkraft").buy(1, bank);
            return cancelButton(bought <= 0);

        } else {
            return cancelButton();
        }
    }

    if (text.equalsIgnoreCase("Heute steht alles im Zeichen deines persönlichen Glücks, steigere deinen Skill Glück um 1 Punkt!")) {

        if (getKlatsche().useCardAsk(PlanBundesklatsche.CARD_PROTEIN)) {
            Output.printClockLn("Karte Protein gesetzt", Output.INFO);
            return cancelButton();
        }

        else if (!getConfig().isNull("Glueck")) {

            boolean bank = false;
            try {
                bank = getConfig().getBoolean("Glueck");
            } catch (JSONException e) {
            }

            int bought = Skill.get("Glueck").buy(1, bank);
            return cancelButton(bought <= 0);

        } else {
            return cancelButton();
        }
    }
Xanadou commented 11 years ago

wenn so eingebaut hast passt es, georf!

kannst zu machen, denn ich weiß das du es eh besser einbaust *lach

lg xanadou