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égesTrue→ ellenséges célpont szükségesFalse→ szövetséges célpont szükségesNone→ 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.