Files
rrttm/doc/CsataFormatum.md
2026-10-07 12:13:48 +02:00

5.8 KiB

Csata objektum

Szerkezet

{
    "enemies": [...],
    "party_members": [...],
    "enemy_turn_func": ...,
    "mus_id": "...",
    "init_ai_data": {...},
    "menus": [...],
    "spells": [...],
    "inventory": [...]
}

enemies

Az ellenséges egységek listája.

Típus

list[Combatant]

Példa

"enemies": [
    Combatant("Six-Seven kid", 120, 30, 80, 20, 0, 50, False, False),
    Combatant("Ice Sprite", 60, 15, 150, 10, 0, 200, False, True),
]

Minden elem egy Combatant objektum.


party_members

A játékos által irányított karakterek listája.

Típus

list[Combatant]

Példa

"party_members": [
    Combatant("Locke", 80, 45, 130, 15, 10, 10, False, False),
    Combatant("Terra", 100, 35, 100, 30, 30, 30, False, False),
]

A lista sorrendje határozza meg:

  • a karakter pozícióját a csatában,
  • a menük hozzárendelését,
  • a varázslatok hozzárendelését.

enemy_turn_func

Az ellenséges köröket kezelő függvény.

Típus

callable

Példa

"enemy_turn_func": enemy_turn_test

A függvényt a rendszer az ellenfelek körének feldolgozására használja.


mus_id

A csata alatt lejátszandó zene azonosítója.

Típus

str

Példa

"mus_id": "mus_fnafsux"

init_ai_data

Az MI számára átadott inicializáló adatok.

Típus

dict

moves

Az MI által használható képességek gyűjteménye.

Típus

dict[str, tuple]

Formátum

"azonosító": (
    név,
    függvény,
    célpont_szükséges
)

Paraméterek

  • név (str)
    A képesség megjelenő neve.

  • függvény (callable)
    A végrehajtandó függvény.

  • célpont_szükséges

    • True → ellenséges célpont szükséges
    • False → szövetséges célpont szükséges
    • None → nincs célpont

Példa

"attack": (
    "Physical attack",
    move_attack,
    True
)

Teljes példa

"moves": {
    "attack": ("Physical attack", move_attack, True),
    "fire": ("Fira", move_fire, True),
    "ice": ("Blizzara", move_ice, True),
    "cure": ("Cure", move_cure, False),
    "defend": ("Defend", move_defend, None)
}

menus

Karakterenként meghatározza a harci főmenüt.

Típus

list[list]

A külső lista a karaktereket reprezentálja.

A sorrendnek meg kell egyeznie a party_members listával.


Egy karakter menüje

[
    ["Attack", "phys_att"],
    ["Magic", "magic"],
    ["Item", "items"]
]

Menüpont formátuma

[
    megjelenő_szöveg,
    parancs
]

Paraméterek

  • megjelenő_szöveg (str)
  • parancs (str)

Speciális parancsok

Fizikai támadás

["Attack", "phys_att"]

Mágia

["Magic", "magic"]

Tárgyak

["Item", "items"]

Nem választható hely

["", "unselectable"]

Ez egy üres, nem kiválasztható menüpont.


spells

Karakterenként meghatározza az elérhető varázslatokat.

Típus

list[list]

A lista sorrendje megegyezik a party_members sorrendjével.


Varázslat formátuma

[
    név,
    mp_költség,
    (
        név,
        függvény,
        célpont_szükséges
    )
]

Paraméterek

  • név (str)
    A varázslat megjelenő neve.

  • mp_költség (int)
    A varázslat MP költsége.

  • akció (tuple)
    A végrehajtandó harci művelet.


Példa

[
    "Fira",
    15,
    ("Fira", move_fire, True)
]

Teljes példa

"spells": [
    [],
    [
        ["Fira", 0, ("Fira", move_fire, True)],
        ["Blizzara", 0, ("Blizzara", move_ice, True)]
    ],
    [
        ["Fira", 0, ("Fira", move_fire, True)],
        ["Blizzara", 0, ("Blizzara", move_ice, True)]
    ],
    []
]

Ebben az esetben:

  • Locke nem rendelkezik varázslatokkal,
  • Terra használhatja a Fira és Blizzara varázslatokat,
  • Celes használhatja a Fira és Blizzara varázslatokat,
  • Cyan nem rendelkezik varázslatokkal.

inventory

A csatában használható tárgyak listája.

Típus

list

Tárgy formátuma

[
    név,
    mennyiség,
    (
        név,
        függvény,
        célpont_szükséges
    )
]

Paraméterek

  • név (str)
    A tárgy megjelenő neve.

  • mennyiség (int)
    A rendelkezésre álló darabszám.

  • akció (tuple)
    A tárgy használatakor meghívandó művelet.


Példa

[
    "Phoenix Down",
    67,
    (
        "Phoenix Down",
        move_phoenix,
        False
    )
]

Teljes példa

"inventory": [
    [
        "Phoenix Down",
        67,
        (
            "Phoenix Down",
            move_phoenix,
            False
        )
    ]
]

Indexkapcsolatok

A következő listák indexei összetartoznak:

party_members[i]
menus[i]
spells[i]

Példa:

party_members[1]  # Terra
menus[1]          # Terra menüje
spells[1]         # Terra varázslatai

Ez biztosítja, hogy minden karakter saját menüvel és saját varázslistával rendelkezzen.


Összefoglaló

{
    "enemies": list[Combatant],
    "party_members": list[Combatant],
    "enemy_turn_func": callable,
    "mus_id": str,
    "init_ai_data": {
        "moves": dict[str, tuple]
    },
    "menus": list[list],
    "spells": list[list],
    "inventory": list
}

Egy csata teljes egészében leírható egyetlen szótárral, amely tartalmazza az összes résztvevőt, a harci lehetőségeket, az MI által használható képességeket, valamint a játékos számára elérhető menüket, varázslatokat és tárgyakat.