Skip to content

Latest commit

 

History

History
53 lines (44 loc) · 3.29 KB

HACK.md

File metadata and controls

53 lines (44 loc) · 3.29 KB

Get Involved!

Your own awesome changes(This is a bit out of date but should still work)

Recommended GitConfig Settings

[core]
	repositoryformatversion = 0
	filemode = false
	ignorecase = true
	autocrlf = false
[push]
	default = simple

Components

TODO: Installer, octgnFX/Graphics, octgnFX/Lib, octgnFX/Octgn.Data, octgnFX/Octgn.LobbyServer, octgnFX/Octgn.Server, octgnFX/Octgn.StandAloneServer, octgnFX/Skylabs.Lobby

Python

Octgn uses IronPython for its in-game scripting engine.

The python definitions go in PythonApi.py. You can call outside code with the following syntax: _api.function_name and it will call the corresponding function in ScriptApi.cs. For example, the following code found in PythonApi.py is the random function:

  return _api.Random(min, max)```

It calls Random with a min and max value that is located in [ScriptApi.cs](https://github.com/kellyelton/OCTGN/blob/master/octgnFX/Octgn/Scripting/ScriptAPI.cs).

# octgnFX/Octgn.Data
Octgn.Data is the access to the database (mostly). OCTGN uses a SQLite Database to hold all game, set, and card data. This project provides access to that data in meaningful formats. Most of the items in this project are relatively self-explanatory, but keep in mind that many of them are only the data counterparts of octgnFX/Octgn classes.

Some of the classes do not (as of yet) have direct connections to the database. Deck.cs is a prime example. Currently all decks are stored/accessed as individual files with the user determining name and location.

Cards are installed through [Octgn.Data/Game.cs](https://github.com/kellyelton/OCTGN/blob/master/octgnFX/Octgn.Data/Game.cs). Data is read from a Set Def, which is a zip file that contains XML card definitions, images, and relationship data. OCTGN parses the cards through a [CardModel.cs](https://github.com/kellyelton/OCTGN/blob/master/octgnFX/Octgn.Data/CardModel.cs) constructor (passing along an XML reader), and Inserts the models individually into the database.