Vai al contenuto

Mephit: gestione dei bonus


jure

Messaggio consigliato

Un 20 naturale a tutti!

Ho da poco ricominciato a mettere mano a Mephit.

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 in un precedente articolo ho provato a schematizzare, definendolo “mini-linguaggio” anche se in realtà 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?

rpgscript-class-feature.jpg
 

Movimento Veloce

[{"type":"add","what":{"speed":10},"when":[{"armor":"<heavy","load":"<heavy"}]]

Analfabetismo

[{"type":"add","what":{"skill_106":0},when:[{"skill_106":'<2',"level_pc","=level_class"}]}]

Ira

[{"type":"add","action":"free","what":{"ability_1":4,"ability_3":4,"st_will":"morale_2","ac":-2},"times":[{"day":1,"encounter":1}],"duration":{"round":"3+ability_3","onEnd":"related_1"}},{"type":"related","what":{"condition":"fatigued"},"duration":{"encounter":1}}]

 

Fonte: http://www.mephit.it/blog/2018/02/rpgscript-comincia-prendere-forma/

 

Modificato da jure
Link al commento
Condividi su altri siti

  • 2 settimane dopo...

  • Risposte 1
  • Creato
  • Ultima risposta

Principali partecipanti

Giorni popolari

Principali partecipanti

Immagini inviate

Dopo un po' di analisi, ecco come sta cambiando la sintassi.

Movimento veloce

Spoiler

[
    {
        "type": "add",
        "what": [
            "speed +10"
        ],
        "when": [
            [
                "armor < heavy",
                "load < heavy"
            ]
        ]
    }
]

 

Analfabetismo

Spoiler

[
    {
        "type": "add",
        "what": [
            "skill_106"
        ]
    },
    {
        "type": "add",
        "what": "note",
        "notes": [
            {
                "it": "Analfabeta",
                "en": "Illiterate"
            }
        ],
        "when": [
            [
                "skill_106 < 2"
            ],
            [
                "ignore_thisClass !has notes_'Illiterate'"
            ]
        ]
    }
]

 

Ira 1 volta al giorno

Spoiler

[
    {
        "type": "add",
        "action": "free",
        "what": [
            "str_points +4",
            "con_points +4",
            "will +2 (morale)",
            "ac -2"
        ],
        "times": [
            [
                "days 1",
                "encounters 1"
            ]
        ],
        "duration": [
            [
                "rounds 3 + con_mod"
            ]
        ],
        "on": [
            "end related_1"
        ]
    },
    {
        "id": "related_1",
        "type": "add",
        "what": {
            "condition": "fatigued"
        },
        "duration": [
            [
                "encounters 1"
            ]
        ]
    }
]

 

Schivare prodigioso

Spoiler

[
    {
        "type": "already",
        "what": "feature_5"
    },
    {
        "type": "remove",
        "what": [
            "condition dex_lost"
        ],
        "when": [
            [
                "source == flatfooted",
                "conditions !has immobilized"
            ],
            [
                "opponentConditions has invisible",
                "conditions !has immobilized"
            ]
        ]
    }
]

 

Schivare prodigioso migliorato

Spoiler

[
    {
        "type": "immune",
        "what": [
            "condition flanked"
        ],
        "when": [
            [
                "action == defense",
                "attack != sneak_attack"
            ],
            [
                "action == defense",
                "attack == sneak_attack",
                "sourceClass_level >= thisClass_level + 4"
            ]
        ]
    }
]

 

Percepire trappole +1

Spoiler

[
    {
        "type": "add",
        "what": [
            "ref +1"
        ],
        "when": [
            [
                "action save",
                "opponentType == trap"
            ]
        ]
    },
    {
        "type": "add",
        "what": [
            "ac +1"
        ],
        "when": [
            [
                "action == defense",
                "opponentType == trap"
            ]
        ]
    }
]

 

 

Modificato da jure
Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente registrato per poter lasciare un commento

Crea un account

Crea un nuovo account e registrati nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.
 

Accedi ora
×
×
  • Crea nuovo...