Difference between revisions of "Scripting"

From theFarWilds
Jump to: navigation, search
 
(20 intermediate revisions by 4 users not shown)
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].
+
[[Category:Scripts]]
 +
Scripts are written in [http://www.angelcode.com/angelscript/sdk/docs/manual/index.html AngelScript] (current used version is 2.26.2), it has syntax similar to C.  Create your scripts [http://story.thefarwilds.com/login.html here].  If you want something ask for it in the [http://thefarwilds.com/forum/viewforum.php?f=14 forum].
  
----
+
The scripts you write interact with the game via a collection of [[Hook Functions]].  These hook functions are called by the game at the appropriate times and execute your code.  See the [[#Examples]] section for more details.
  
Functions you can implement:
+
== API ==
 +
* [[Preprocessor]]
 +
* [[Hook Functions]]
 +
* [[Global Functions]]
 +
* [[Config Functions]]
 +
* [[Player Functions]]
 +
* [[Entity Functions]]
 +
* [[Location Functions]]
 +
* [[DlgBox Functions]]
 +
* [[Card Functions]]
 +
* [[Action Functions]]
  
void setupGame();
+
== Examples ==
// Sets up the game state such as # of players, Map Size, if they need to set a deck or not, etc
+
[[Scripting Examples]]
+
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.
+
  
 
+
== Helpful Hints ==
Functions you can call:
+
[[Coordinate System]] : Coordinates in TFW are a bit weird. This page explains.
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);
+
}
+

Latest revision as of 15:35, 5 June 2013

Scripts are written in AngelScript (current used version is 2.26.2), it has syntax similar to C. Create your scripts here. If you want something ask for it in the forum.

The scripts you write interact with the game via a collection of Hook Functions. These hook functions are called by the game at the appropriate times and execute your code. See the #Examples section for more details.

API

Examples

Scripting Examples

Helpful Hints

Coordinate System : Coordinates in TFW are a bit weird. This page explains.