Parâmetros de retorno de chamada
Quando você ouve um evento, você cria uma função conhecida como umretorno de chamadaque é executada sempre que o evento ocorre. A função de retorno de chamada recebe vários parâmetros que são objetos que fornecem informações que você deseja saber sobre o evento, para que você possa decidir o que fazer.
Os parâmetros de retorno de chamada para cada evento variam, mas incluem:
obj
O objeto que foi alterado. Quaisquer alterações que você fizer neste objeto também serão salvas no jogo. Portanto, se você quiser mover um objeto Gráfico para a esquerda, você deve modificar a propriedade left
do obj
usando set
.
-
obj.get("property")
retorna o valor atual da propriedade. -
obj.set("property", "novovalor")
define um novo valor para a propriedade. Se você estiver alterando várias propriedades ao mesmo tempo, você pode passar um objeto:obj.set({left: 10, top: 20});
prev
Este é um objeto das propriedades doobj
como eram antes de qualquer alteração devido a este evento. Útil para determinar "quanto" uma propriedade mudou.
NOTA:Este é um objeto básico, então você acessa as propriedades usando a notação de colchetes:prev["bar1_value"]
, NÃO usando as funções set ou get.
Ordenação de Eventos
Os eventos são disparados de forma síncrona (ou seja, cada função não começará até que a anterior tenha terminado) em ordem do primeiro vinculado ao último vinculado e também de uma propriedade específica para um objeto geral. Então, dado o seguinte:
on("change:graphic", function1); on("change:graphic", function2); on("change:graphic:left", function3);
Se os objetosleft
forem alterados, a ordem será function3, depois function1, depois function2.
Além disso, se você tiver vários scripts em sua campanha, os scripts serão carregados na mesma ordem em que aparecem na página de Scripts da Campanha, da esquerda para a direita.
Nota: Os eventos são acionados apenas por alterações feitas pelos jogadores/o GM que estão a jogar o jogo. Os eventos não serão acionados por alterações na API. Portanto, se um jogador mover uma peça no tabuleiro, você receberá um evento "change:graphic". Se modificar a propriedade gráfica da mesma imagem num script de Mod (API), não será acionado um evento de "change:graphic".
Eventos da Campanha
pronto
Este evento é acionado após todos os dados atuais da campanha terem sido carregados. Portanto, se você quiser encontrar uma lista de todos os objetos em uma campanha, ou um objeto específico que já está na Campanha, certifique-se de procurá-lo apenas depois que o evento ready for disparado. Além disso, se se ligar a eventosadd
(comoadd:graphic
) antes de o eventoready
disparar, receberá eventos add para objectos que já estavam presentes na campanha.
on("ready", function() { var tokenThatAlreadyExisted = getObj("graphic", "-ABc123"); });
change:campaign:playerpageid
Disparado sempre que a página em que os jogadores estão atualmente muda.
change:campaign:turnorder
Disparado sempre que a ordem de turno para a campanha muda.
change:campaign:initiativepage
Disparado sempre que a ordem de turno é ocultada ou exibida para uma página. Isso pode não ser o mesmo que o ID da página atualmente ativa. Se isto estiver definido como false
(incluindo se um script de Mod (API) o definir como falso), irá encerrar a ordem de turno para todos os GMs/jogadores. Definir como um ID de página válido abrirá para todos os Mestres/players.
Eventos do Objeto
change:graphic
Acionado sempre que um objeto Gráfico (que é quase qualquer tipo de objeto no jogo de tabuleiro, incluindo fichas, mapas e cartas) é alterado.
Observação: Objetos Gráficos criados pela API acionarão esse evento ao serem criados.
Parâmetros de retorno: obj, prev
on("change:graphic", function(obj, prev) { //Faça algo com "obj" aqui. "prev" é uma lista de valores anteriores. // Observe que "obj" e "prev" são diferentes TIPOS de objetos. // para trabalhar com obj, você precisa usar obj.get("name"); // para trabalhar com prev, você pode usar prev["name"]; });
change:graphic:(property)
Você também pode se ligar a um evento para cada propriedade específica do objeto. Então, se você tem um script que você quer executar apenas quando a rotaçãomuda, você faria:
on("change:graphic:rotation", function(obj, prev) { //Sempre defina a rotação de volta para 0, para que ninguém possa girar objetos. obj.set("rotation", 0); });
add:graphic
Disparado sempre que um objeto gráfico é adicionado à mesa de jogo pela primeira vez. Também será chamado para objetos existentes quando a mesa de jogo iniciar se você se ligar a este eventoforado eventoready
.
Parâmetros de retorno: obj
on("add:graphic", function(obj) { //Será chamado para todos os novos gráficos, incluindo aqueles que já existiam no início da sessão de jogo. }); var começou = false; em("pronto", function() { em("adicionar:gráfico", function(obj) { //Será chamado apenas para novos objetos que forem adicionados, pois objetos existentes já foram carregados antes do evento pronto ser acionado. }); //Você também pode definir uma variável e ignorar eventos de adição até que ela seja verdadeira. começou = true; });
destruir:gráfico
Acionado sempre que um objeto gráfico for removido do tabuleiro.
Parâmetros de retorno: obj
Outros Tipos de Objetos
Também existem eventos para todos os outros tipos de objetos e subtipos, como:
mudança:caminho, adicionar:caminho, destruir:caminho, mudança:texto, adicionar:texto, destruir:texto, mudança:token, adicionar:token, destruir:token, mudança:carta, adicionar:carta, destruir:carta
Veja a referência de Objetos para uma lista completa de todos os tipos e subtipos de objetos.