Everything is Regicide – now with Treason

In Everything is Regicide with UserPatch 1.5 I described how to turn any random map script into a custom regicide map, with the help of UserPatch 1.5 and the guard_state command.

However, regicide is only half the fun without the Treason1 technology. For the mere cost of 400 gold, it briefly reveals the positions of all enemy kings. Treason can also be researched repeatedly, making it easier for you to hunt those kings down and eventually kill them, defeating the player instantly.

Treason is only available in regicide games, where it replaces the Spies technology2. Treason could hence not be used on the custom regicide maps above. The latest update of UserPatch 1.5 however allows us to manually enable the technology in our random map script, without the use of any mod!

Adding Treason to Custom Regicide Maps

First we need to define three constants at the top of the script (if they are not defined already):

#const GAIA_SET_PLAYER_DATA -10
#const DATA_MODE_FLAGS 1
#const ATTR_SET 0

Now we can mess with the availability of Treason and Spies in the <PLAYER_SETUP> section by adding an effect_amount command:

<PLAYER_SETUP>
  […]
  effect_amount GAIA_SET_PLAYER_DATA DATA_MODE_FLAGS ATTR_SET 1

The value 1 at the end enables the Treason technology, the value 2 disables the Spies technology, and the value 3 does both (so Treason is available while Spies is not).

I have of course updated all the custom King of the Hill Regicide maps over at Github to include both Treason and Spies: click me

Have fun!

Does it have to be a king?

The guard_state option not only works with kings, but with arbitrary units.

Supposedly, Treason also works with other units that a guard_state is set for. If there is a king, it is revealed, else one guard_state unit is revealed. This behaviour is not necessarily ideal, but without doubt better than before.

  1. (the medieval kind)
  2. For the mere price of 200 Gold per enemy villager (min. 200, max 30.000), Spies reveals the line of sight of all enemy players‘ units.

Mahlowat 3.0

Erfreulicherweise hatte ich vor kurzem Gelegenheit, dem in die Jahre gekommenen Mahlowat eine Auffrischungskur zu verpassen und die Oberfläche komplett neu zu schreiben. Ich darf präsentieren: Den Mahlowat 3.0!

Wow.

Im Vergleich zur Vorgängerversion ergeben sich die folgenden Änderungen:

  1. Kein PHP mehr, alles läuft komplett per HTML, JavaScript und JSON
  2. Keine Social Buttons mehr (benutzt sowieso niemand)
  3. Keine 17 mitgelieferten Styles mehr (die Funktion war sowieso undokumentiert)
  4. Keine Zählung der Aufrufe und keine Speicherung der Antworten mehr auf dem Server (siehe 1 und 2)
  5. Mehrsprachigkeit! (aktuell DE, EN, FR)
  6. Auf Mobilgeräten besser nutzbar! (Yay!)

Und das bleibt wie bisher:

  1. Komfortabler Konfigurator (leider derzeit nur mit Deutschen Anweisungen)
  2. Open Source unter MIT-Lizenz!
  3. Die lästige Arbeit mit den zur Wahl antretenden Gruppen wird euch immer noch nicht abgenommen

Screenshots

Desktop-Ansicht

Mobilansicht

Weiterführende Informationen

Projektseite auf GitHub

Testinstallationen auf Deutsch, Englisch und Französisch1

Viel Spaß!

Mehr

  1. Es mag sein, dass mein Französisch etwas eingerostet ist.

Laufband-GIFs erstellen

Hier ein kleines Tutorial für die Feiertage, das euch zeigt, wie mit relativ wenig Aufwand Laufband- oder auch Spruchband-GIFs erstellt werden können.

Wir beginnen mit dem Endprodukt: So könnte das Ergebnis aussehen.

Zunächst überlegen wir uns, welche Dimensionen das fertige Laufband haben soll. Für das Tutorial wähle ich 100×40 Pixel aus.

Dann gestalten wir das komplette Bild das später durchlaufen soll. Die Höhe ist der eben festgelegte Wert, die Länge ist theoretisch beliebig.

Beachtet, dass das Laufband am Anfang und am Ende einen neutralen Bereich hat, der mindestens so breit ist wie das fertige Laufband. Im Beispiel sind das die >100px breiten grünen Randbereiche.

Nun benötigen wir eine Kommandozeile und das imagemagick-Paket1. Im Ordner in dem das volle Laufband liegt erstellen wir einen Unterordner „einzelbilder“. Jetzt müssen wir ein bisschen rechnen: Wir benötigen die Breite des vollen Spruchbands minus die Breite des fertigen Spruchbands. In unserem Beispiel ist das also 550 – 100 = 450.

Den Wert setzen wir statt des X in den folgenden Befehl ein und führen ihn aus (falls der Dateiname des Laufbands anders ist, muss dieser natürlich auch angepasst werden):

for i in {000..X..2}; do convert -crop 100x40+$i+0 +repage laufband-komplett.png einzelbilder/$i.png; done

Im Beispiel führen wir also den folgenden Befehl aus:

for i in {000..450..2}; do convert -crop 100x40+$i+0 +repage laufband-komplett.png einzelbilder/$i.png; done

Im Ordner „einzelbilder“ werden nun die Dateien 000.png bis 450.png angelegt.

Was passiert hier genau? Das Bild wird von 0 bis 450 in zwei-Pixel-Schritten „abgetastet“ und immer ein 100×40 Pixel großer Bereich herausgetrennt und als separates Bild gespeichert.

Der nächste Befehl den wir ausführen fügt all die Einzelbilder zu einem animierten GIF zusammen:

convert einzelbilder/*.png animiert.gif

Das sieht doch schon vielversprechend aus!

Nun wollen wir die Animation noch etwas flüssiger laufen lassen. Hierzu öffnen wir die Datei in GIMP.  Die einzelnen Animationsschritte werden in GIMP als Ebenen dargestellt. Das interessiert uns jedoch nicht weiter, sondern wir führen den Befehl „Filter > Animation > Optimieren (für GIF)“ aus. Dieser erstellt eine kleinere Kopie des GIFs in einem neuen Tab.

Zu guter Letzt exportieren wir diese Datei per „Datei > Exportieren als…“ in eine Datei mit der Endung „.gif“. In den Exporteinstellungen wählen wir „Als Animation“ aus, in den Optionen für animierte GIFs im selben Fenster wählen wir dann „Schleife endlos wiederholen“, setzen als Pause 17 Millisekunden, als Einzelbildübergang „Kumulative Ebenen (Kombinieren)“, und wählen sowohl „Obige Pause für alle Einzelbilder verwenden“ als auch „Obigen Übergang für alle Einzelbilder verwenden“ aus. Ein Klick auf „Exportieren“ speichert das Endprodukt.

Frohe Weihnachten!

  1. Ob das installiert ist seht ihr, wenn ihr in der Kommandozeile „convert“ ausführt. Falls das Kommando nicht gefunden wurde, installiert das imagemagick-Paket nach.