So, hier auch mal wieder ein Lebenszeichen abzugeben: Das Schweigen in diesem Thread heißt nicht, dass nichts passiert ist (jedenfalls auf meiner Seite), sondern bloß, dass nichts Veröffentlichbares dabei herauskam.
Welcher Zustand sich so langsam einem absehbaren Ende nähert.
Aber das Wichtigste zuerst
Ich hab einen Namen gefunden. Meine Entwicklungslinie heißt ganz einfach CbC (Control by Comment). Obwohl mindestens eine Funktion ohne Kommentar auskommt. Eigentlich alle, wenn man sie entsprechend implementiert ...
Ansonsten sind zum jetzigen Zeitpunkt entwickelt, getestet und bei mir im Einsatz:
- Forst
Herde
rotierendes LERNE
rotierendes MACHE
Kategoriesortierte Lager- und Verteilungsfunktionen (ersetzt mir momentan #behalte)
Ein Bestätiger für Lernen <skill> bis Level n
eine Funktion für Personalpool
automatisiertes Tarnen und Angabe von Parteitarnung
vier Utilities, die das Leben leichter machen
.
Entwickelt zu ohne Fehlermeldung aber noch nicht getestet ist
gib
Momentan noch nicht drin aber auf der Agenda ist die Verkettung von Metabefehlen in einer einzigen Zeile.
Momentan basteln tu ich an
next, danach werd ich mich an den
study-Komplex machen (und will dort vor allem die Zehner-Fixierung aus Forlage loswerden und multiple Lehrer und Multiple Schüler ermöglichen).
Das Ganze ist bisher weder ins Reine geschrieben, noch Verallgemeinert, noch dokumentiert, aber teilweise auskommentiert. Spontan rausrücken werd ich unten aber die Utilities.
Nun die Fragen:
Irgendwelche freiwilligen Beta-Tester anwesend?
Oder soll ich es erst raushauen, wenn es einigermaßen rund und poliert ist?
Irgendwelche Wunsch-Funktionen? (über die vom Originalen Forlage hinaus (
http://www.metadrei.org/toolbelt/forlag ... -doku.html ))
..und hier die Versprochenen Utilities:
Code: Alles auswählen
// schnelle Verteilung von Zeug (oder Personen) an temps
tempotemp(Unit unit, int anzahl, int startID, String was){
// anzahl: Anzahl der Temps.
// startID: die Zahl hinter "temp " in der Temp-ID.
// ACHTUNG: Funktioniert nur, wenn eingestellt ist, dass Temps von x hochgezählt werden
// (die Standardeinstellung leitet Tamp-IDs von der Erzeugenden Einheit ab)
// Extras->Optionen->System: Tempeinheiten: Nummern von Tempeinheiten dezimal zählen und hochzählen
for (i = 0; i < anzahl; i++)
{helper.addOrder(unit, "GIB temp "+(i+startID).toString()+" "+was);}
}
Das in die Bibliothek, zur Anwendung gibt man einer Einheit dann zB
tempotemp(unit, 1234, 1, "3 Speer");
und führt es über die Einheit aus. Anschließend sollte das Skript wieder aus der EInheit gelöscht werden.
Code: Alles auswählen
//Vergessen von Skills, die nicht in non stehen
// ACHTUNG: Wenn Ausdauer in die Ausnahme soll, muss "ausdauer" (kleingeschrieben!), weil Speichermacke von Magellan
// Umlaute und ß bleiben drin
// Kommas sind nicht notwendig, Leerzeichen werden empfohlen
tempoverg(Unit unit, String non){
for (skill : unit.getModifiedSkills()){
if (!(non.contains(skill.toString().substring(0, skill.toString().indexOf(" "))))){
helper.addOrder(unit, "VERGESSEN "+skill.toString().substring(0, skill.toString().indexOf(" ")));
helper.updateUnit(unit);
}// /if(!(non
}// /for(s
}// /tempoverg(Unit,String)
Code: Alles auswählen
setOrderPreserveComments(Unit unit, String order){
// ersetzt helper.setOrder(Unit,String), wenn Kommentare erhalten bleiben sollen
ArrayList comments = new ArrayList();
for (String o : unit.getOrders()){
if (o.startsWith("//")){
// nicht wundern: die drei klammern am Ende der vorigen Zeile werden in der Bibliothek grün,
// funktionieren aber trotzdem
comments.add(o);
}// /if(o.startsWith
}// /for(String
helper.setOrder(unit, ""); // das set-Element: Wir löschen einfach alles
for (String c : comments){
helper.addOrder(unit, c); //Kommentare werden wiedergegeben
}// /for(String
helper.addOrder(unit, order); // Befehl wird gegeben
helper.updateUnit(unit);
}// /setOrderPreserveComments(Unit,String)
Code: Alles auswählen
// und das hier war eine ad-hoc-Sache, weil es mich genervt hatte,
// bei String.split() keine get(index)-Funktion zu haben.
ArrayList splitToArrayList(String s, String trenner){
arr = new ArrayList();
for (e : s.split(trenner)){
arr.add(e);
}// /for(e
return arr;
}// /ArrayList splitToArrayList(String,String)
ArrayList splitToArrayList(String s, String trenner, int limit){
arr = new ArrayList();
for (e : s.split(trenner, limit)){
arr.add(e);
}// /for(e
return arr;
}// /ArrayList splitToArrayList(String,String,int)