Difference between revisions of "Scripting"

From theFarWilds
Jump to: navigation, search
Line 1: Line 1:
 
This is the start of the scripting API. It will be expanded over time. If you want something ask for it in the forum. Create your scripts here: [http://thefarwilds.com/story/login.html].
 
This is the start of the scripting API. It will be expanded over time. If you want something ask for it in the forum. Create your scripts here: [http://thefarwilds.com/story/login.html].
Scripts is written in [http://www.angelcode.com/angelscript/sdk/docs/manual/index.html AngelScript], it have similar to C syntax.
+
Scripts are written in [http://www.angelcode.com/angelscript/sdk/docs/manual/index.html AngelScript], it has syntax similar to C.
 
----
 
----
  

Revision as of 22:14, 16 March 2010

This is the start of the scripting API. It will be expanded over time. If you want something ask for it in the forum. Create your scripts here: [1]. Scripts are written in AngelScript, it has syntax similar to C.


Functions you can implement:

void setupGame(); 
// Sets up the game state such as # of players, Map Size, if they need to set a deck or not, etc

void beforeStart(); 
// Do things here before any action. Place creatures and buildings, change their decks etc.

void afterAction(); // not yet

void playersTurn(IPlayer player);  // not yet

bool canPass(IPlayer player); // not yet
// called when the real players try to pass. 
// This is so you can ensure they do a particular action before passing.


Functions you can call:

IEntity createEntity(string CardName, int x_coord , int y_coord,IPlayer controller );
IEntity createEntity(string CardName ,ILocation loc,IPlayer controller);
IEntity createEntity(string CardName ,ILocation loc);
ILocation createLocation(int x,int y);
IPlayer getAIPlayer(int index)
void addAIPlayer(string PlayerName,string Avatar,int teamID); 
// can only call this from configGame()
// all parameters are ignored for now



Example Scripts:

// Fortified AI
void configGame()
{
	addAIPlayer("Evil Fish","Crypt Doctor",0);
}

void beforeStart()
{
	IPlayer aiPlayer=getAIPlayer(0); 
	createEntity("Earthworks",6,6,aiPlayer);
	createEntity("Earthworks",10,10,aiPlayer);
	createEntity("Axe Captain",6,7,aiPlayer);
	createEntity("Attrition",-1,-1,aiPlayer);	
}

Coordinate System : Coordinates here is a bit unusual since TFW have hexagonal field. This page explains it a bit.