Se avete letto l’articolo sulle peculiarità del personaggio saprete che la prossima questione da risolvere è la gestione della miriade di bonus dati da classi, talenti e quant’altro. Per questo ho concluso che una semplice lista di bonus non basta: serve qualcosa di più flessibile, un sistema di “regole” che nel succitato articolo ho provato a schematizzare, definendolo “mini-linguaggio” e dandogli l’altisonante nome di RPGScript.
Stavolta penso però di aver cannato sia il nome che la definizione! Penso quindi che semplicemente non darò un nome a questa funzionalità, in quanto si basa saltanto su di una sintassi interpretata da una funzione.
Per farvi capire come sto procedendo, vi mostro come sto implementando i privilegi di classe del 1° livello del Barbaro (Ira, Analfabetismo, Movimento Veloce), che ne pensate?
[{
"type": "add",
"what": {"speed": 10},
"when": [
[
"armor < heavy",
"load < heavy"
]
]
}]
Analfabetismo
[{
"type": "add",
"what": {"skill_106": 0},
"when": [
["skill_106 < 2"],
["expression_1 == false"]
]
}, {
"id": "expression_1",
"type": "find",
"what": "class",
"when": [
["skill_106 >= 2"],
[
"skill_106 == null",
"class_type == base",
],
[
"skill_106 == null",
"class_type == prestige",
]
]
}]
Ira
[{
"type": "add",
"action": "free",
"what": {
"abilitypoints_1": 4,
"abilitypoints_3": 4,
"st_will": "2 (morale)",
"ac": -2
},
"times": [
{
"days": 1,
"encounters": 1
}
],
"duration": {
"rounds": "3 + abilitymod_3",
"onEnd": "related_1"
}
}, {
"id": "related_1"
"type": "add",
"what": {
"condition": "fatigued"
},
"duration": {
"encounters": 1
}
}]
Ueueueue sentivo puzza di bruciato ma non era il caffè, era jure il mefitico!
Capisco la sintassi pitonesca, ma non ti conveniva salvare il tutto a stringa ed implementando un analizzatore lessicale ad hoc? Così puoi:
– togliere gli apicini,
– togliere la prima quadra e la prima graffa,
– sostituire il resto delle graffe con tonde
?
Molto più leggibile IMVHO e meno “prono ad errori”. A me verrebbe il mal di testa. 😀
Bentornato Jure!
Beh, la sintassi va anche bene, nel senso che puoi inventartela come meglio credi o come pensi sia più facile fare l’interprete di questa sintassi. Lì sta il diventimento!
Buona fortuna 🙂
Grazie a tutti! Eh sì, sono tornato!
Eldrad, mi sono affidato alla sintassi JSON perché sia JavaScript che PHP la digeriscono benissimo, e in caso di errore me ne accorgo subito perché esplode tutto XD. Vorrei inoltre evitare di introdurre una sintassi mai usata finora, anche perché leggere la sintassi JSON mi risulta particolarmente facile visto che la uso ogni giorno per lavoro 😉
Ok come non detto. Pensavo nell’ottica di userfriendlytà del grande pubblico. Buon passatempo!
Dopo un po’ di analisi, ecco come sta cambiando la sintassi. Vai al thread su: 5° Clone / Dragon’s Lair