Within this panel you can configure "Named AI". These are AI-players with an own character, a background, a behaviour, own decks and likes and dislikes and even an own image.
Named AI
Here you see a setting of good old Malban.
Most items are just straight forward and I won't go into them. Following some bullit - information:
if possible jportal stores paths information "relative"
AI to use is the "base" AI
following the AI is the strategy setting to be used (look at last chapter)
You might provide an access code for a character - if so keep it in mind!
the picture is not scaled, I use a width of 215 pixels and a height - well so it fits
life given is the live which the AI will have in the game (in current game modes anyway - that might change)
Knowlege of decks: Here all decks are availabel which are built for "Computer decks" (last item under card-menu), you can select which of them an AI will know
Combos can be given - but are not supported by base AI as yet
CheckBox "Enable persistent memory". If checked the named AI can remember data from game to game. Meaning - don't be surprised if an AI says hello to you and knows your deck and your last name :-)! (well some programmer must configure the named AI likewise...)
This is getting a bit more involved. Here some further explanation. Each named AI can react on game events. One such a reaction is an event. There is not really a limit on events one might define, they will all be listed here.
Events
At the moment of writing following triggers for events exist (combo not used):
Init (initialization of game - even befor start)
Game start
Game end
ComboPlayed
Card played
Life lower
Life higher
Opponent Life lower
Opponent Life higher
Round #
Every # round
Attacking with #
Attacking with higher #
Blocking with #
Blocking with higher #
Receive spell damage
Receive spell damage higher #
Opponent spell damage
Opponent spell damage higher #
(Where spell damage is only a name - it actually means "damage received" also from creatures)
Only the fields which make sense must be filled. Meaning for "Game start" event there is no need to give a number or a card.
If a number is required for a trigger (life higher... attacking with # ... etc) than a number must be entered into the "Number field". "Card played" requires the "Gatherer" Card Id. Meaning if you you want a trigger for a very specific card - you enter
"4336" → Woha! "Fire dragon played"
Effects
For each trigger there is automatically an effect available. Effects may have multiple sub effects or just one. Following sub effects are available:
Text message
execute a script
play a sound
show an image
show the named AI image
The effect may either last for a certain duration (Delay - in milliseconds - so 3000 represent 3seconds).
Player picture shown is a seperate delay.
Or one might be required to confirmation (mouse click), which actually shouldn't be used much since you won't be able to do automatic battles of named AI's.
Than there is a last special button OTE - One Time Event.
If an event is like "Life lower 10", than you probably do not want a reminder every turn. One is enough, so by enableing OTE, the AI tells you about its sorry state only the first time it occurs.
Other bullits:
Text entered respects "Linefeeds" and "<BR>", nothing else realy.
sounds played can be either wav or MP3, don't overuse it...
images displayed can be of any size... don't overuse it!
the exclamation mark button gives a preview (preListen?) of the sound or the image (if image is to large to reach the close button, just click on the image)
scripting is tricky, it supports the usual stuff, you get access to "match" and "player"... meaning, you can do ANYTHING DON'T overuse that!
as special access within a script you get access to the effect structure, where you can set progamatically the effect settings - look at examples for that. The structure is found under csa.jportal.ai.namedai.*
to persistently save data (see above persistent checkbox) built a key you will reuse and set the data in the AI player class, like: player.getAIPlayer().setIntData("GamesPlayed", i+1);
reocurring events - use wisely, they easily get boring for the viewer! (every # round)