sábado, 13 de noviembre de 2010

Scripts

Con la poca actividad que hay en este blog, cualquiera diría que el proyecto está muerto, pero no. Si gue adelante, con paso lento pero seguro...
Os voy a enseñar la pinta que tiene un script de lua de los que usamos para definir las cartas del juego. En este caso se trata de la carta "Jikoku Fighter" una nave Gongen con una habilidad mantenida. Es importante la distinción entre los distintos tipos de habilidades que poseen las cartas. En este caso es una habilidad que se dispara constantemente, lo que llamamos una "ongoing hability".
Este es el script:


card = {};
card.type = "fighter";
card.image = "Content/cardImages/JikokuFighter.jpg";
card.name = "Jikoku Fighter";
card.number = "1080";
card.faction = "1";
card.destinyNumber = "1";
card.cost = "1";
card.iconCost = "2";
card.unlimited = "false";

card.capacity = "1";
card.scouting = "false";
card.power = "2";
card.tactics = "2";
card.defense = "4";

card.text = "As long as you have at least two other Gongen fighters here, this ship is defense +2";

luanet.load_assembly("WarsR"); --our misleading namespace yay!
OngoingAbility = luanet.import_type("WarsR.Abilities.OngoingAbility");

function doOngoing()
location = card:getPlace()
ships = location:getShipsHere(card:getPlayer():isFirstPlayer(),not card:getPlayer():isFirstPlayer())
contador = 0
for variable = 0, ships.Count-1, 1 do
if ships[variable]:getFaction() == 1 then
contador = contador + 1;
end
end
if(contador>2) then
card:setDefense(ongoing:getCard():getDefense()+2)
end
end

Podemos observar facilmente que las primeras lineas son simplemente los datos y números que aparecen en la carta, como son la fuerza, el destino o la facción. Lo realmente importante es la función "doOngoing()" donde se chequea el numero de naves gongen presentes en la misma localización que esta carta, y si es mayor que dos, se suma un +2 a la defensa.
El programa se encargará de lanzar esta función constantemente.

Bueno, no me da tiempo a contaros más, ya que estoy trabajando, pero otro dia os mostraré algún script más complejo, como podría ser el de cartas con habilidades activadas o disparadas.

Un saludo!