Heute war ich ziemlich produktiv. Das Bild ist zwar hässlich, aber was solls:
Links ist einer der späteren Gegner (Kreis im Kreis). Leider kam der recht lustlos daher, obwohl ich die Idee ganz witzig finde. Das Problem ist, dass das Gegner perfektionieren viel Ausprobieren verlangt. Viele kleine Anpassungen sind das schlimmste für meinen Arbeitsprozess, da ich für jeden Test das Spiel neu laden muss. Schrecklich. Ich habe mir x mal überlegt ob ich noch einen kleinen in-game Editor einbauen soll, aber das erschien dann doch wieder zu aufwändig.
Nur ... es geht einfacher. Groschen-Fall-Geräusch. Ich kann doch das Game informieren wenn ich im Editor was gespeichert habe. Ich habe den Editor in einem Tab und muss dem Game-Tab mitteilen, dass ich gespeichert habe. Das geht wie ich heute herausgefunden habe ganz einfach über localStorage im Browser. Im Editor setze ich einen Wert und im Game überprüfe ich auf Storage-Events (war mir neu). Implementiert. Im Spiel überprüfe ich dann ob die entsprechende Einheit geladen ist / existiert und ersetze mit der neu geladenen Version. Viel zu einfach und sowas von erleichternd.
Ein weiteres altes Problem bin ich angegangen. Ursprünglich war Friendly-Fire geplant. Damit es nicht zu schlimm werden würde, hatte ich folgende "brilliante" Idee. Spielerfiguren haben HP * 100 und Schuss-Schaden *1, Gegner haben Schuss-Schaden*100. So konnte ich Friendly Fire ohne zusätzliche Unterscheidung einfügen. Das wurde nicht im Code realisiert sondern in den Einheiten-JSON-Files.
Nur... Friendly-Fire habe ich ziemlich schnell wieder entfernt, aber die HP/Schussschaden Idee habe ich nie geändert. Dies wird erst zum Problem wenn Gegner Friendly-Fire haben (z.B. Explosionsschaden), was öfters die sofortige Zerstörung zur Folge hat. Ich habe also zwei Scripte geschrieben die meine DB anpassen. Alle Gegnerfiles werden mit Regex so angepasst, dass sie weniger Schaden machen. Alle Playerfiles mussten hingegen eine HP Korrektur bekommen. Es wird sicher noch einige Probleme nach sich ziehen, aber es ist jetzt endlich einheitlich. Gegner die Gegner umbringen dürfte jetzt ebenfalls ein Gedanke sein mit dem ich spielen darf.
2 neue Gegner Prototypen habe ich ebenfalls erstellt.