Vai al contenuto

Mephit: gestione dei bonus

Risposte in primo piano

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

  • 2 settimane dopo...
  • Risposte 1
  • Visualizzazioni 2,1k
  • Creata
  • Ultima risposta

Utenti più attivi in questa discussione

Immagini pubblicate

  • Autore

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

Crea un account o accedi per commentare

Impostazioni cookie

Utilizziamo cookie tecnici necessari al funzionamento del sito e, solo con il tuo consenso, cookie statistici (analytics) per misurare e migliorare i servizi. Non utilizziamo cookie di profilazione pubblicitaria. Leggi la Cookie Policy oppure gestisci le preferenze.

Account

Navigation

Cerca

Configura le notifiche push del browser

Chrome (Android)
  1. Tocca l'icona del lucchetto accanto alla barra degli indirizzi.
  2. Tocca Autorizzazioni → Notifiche.
  3. Regola le tue preferenze.
Chrome (Desktop)
  1. Fai clic sull'icona del lucchetto nella barra degli indirizzi.
  2. Seleziona Impostazioni sito.
  3. Trova Notifiche e regola le tue preferenze.