What is implemented?
- implemented all set cards of set "Starter 1999"
- implemented all set cards of set "Portal three kingdoms"
- some of them include new abilities which were not present befor like:
- legendary creatures
- tapping in "Blocker" round (Kongming's Contraptions)
- tapping of "Attackers" with opponent chosing cards on reaction to that
- effect "buf others as long as xxx is in play" (e.g. Kongming, "Sleeping Dragon")
- some special abilites (like horesmanship)
- toyed around a bit with quest mode,
new quests can be build with types:
- must win in # turns
- destroy # number of creatures
- don´t let more as # of your creatures be killed
additionally you can play a quest with a PreSet.
- I define a Preset as a "Game Situation", which means, you have
a quest where you can give player and/or opponent a fixed hand/graveyard/library/land/creature lists with which the quest must be fullfilled.
- a quest like Rescue lady XX makes more sense if you have predefined settings
- might imlpement even a tutorial this way :-)
- you can chose a starting player for quests now
- a new menu item "import supported sets", which lets you (... well) import all supported sets at once
- Match Stat window now shows Quest progress and some more player related stuff
- added a couple of quests to open up the two new sets
- added booster draft as game mode
- technically: "abilities" (invoked by tapping) now go on stack and
are not evaluated at once. There might be some more "accept stack" clicking needed
but for some new (and maybe many future) cards that was neccessary
- Bugfixes (numerous, can´t tell them all):
- some gui stuff for Linux, where texts were cut off etc.
- now I know you MUST have Sun JAVA 1.6 at least in order for JPortal to work
less won´t do, and Gnu Java won´t work either, I developed JPortal using
Netbeans and for that it seems to take liking in Sun Java
- default start in Window mode now, for better Mac "compatabilty"
- tried fixing AI that it won´t endless loop anymore
a) implemented a "Watch" mechanism for endless loops, which will break
it internally (and give an error message to debug log)
b) If a card for a situation is selected by AI and not accepted by the
game, AI won´t chose the same card again, it now never
choses (in one round) the same card for the same situation
I hope that will fix the rare occasions of endless loops
Actually everything I wanted for version 1.0 is imlpemented.
- All set: "portal" implemented and work as designed
- All set: "portal second age" implemented and work as designed
- AI can battle other AI - looks cool when they fight each other :-)
- Game completly playable, AI seems also pretty undumb, and will get better still :-)
- Configurations to make life easier and less clickably :-)
- AI-Hint system, works pretty good!
- a gui environment, meaning window with pretty menu items, switchable to fullscreen, display of cards, scaling, debugging, logging etc
- loading set spoiler text and card images from "Gatherer" (google it if you don´t know whta it is)
- all needed info for the game is extracted from those loadings
- (loading from wagic is also implemented, but will probably vanish soon)
- viewing and editing of cards in a set
- generating a "heap" from a set and edit etc
- building a deck from a heap and edit etc
- each card can have numerous scripts, that are loaded and executed for situations a card can be in (framework for scripting situation/type/ability implemented and works quite stable)
- template scripting is possible, so not every card really needs its own scripts, in case of "business as usual" cards, template scripts are loaded
- AI is also scriptable,
- the match (the actual java-class) and the actual players are totally independend of each other, meaning, the "match" entity of JPortal doesn´t even know if a player is a computer or a human player, communication is done via message passing, ai "lives" in its own thread and generates "game events" just like a human player would
- "the match" knows all of the game, and each player can get information regarding the game from the "match"
- "the match" implements all rules that are not card related, that is for example:
- phases of the game
- segment of phases
- putting players "actions" on the stack
- evalution of the stack
- all card related rules are - well - card related and are scripted. if a card s scripted wrongly, than it won´t do as expeted. this opens wide doors for cheat abilities, if players are "dumb" (or smart?) enough to change card coding, but - well its their responsibility to play a fair game or not...
- help can be displays, both, java doc for classes and game help
- ah yea, import, one can generate load and loads of debug log files :-)
- Quest system (only 4 quests for now), and a quest designer, quests can be configured in game
- a Shop where one can buy boosters and rare cards (and sell)
- AI with "personality"