<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns="http://usefulinc.com/ns/doap#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Project><name>TextRPG</name>
<shortdesc>A simple TextRPG which uses the 1d6 RPG backend module for character management and interaction.</shortdesc>
<description>Information: http://rpg-1d6.sf.net 


Usage: 
    - ministory_helper.py 
    Test the ministory (a testcase for the textrpg module)
    - textrpg.py 
    Start the internal test story of the textrpg. 

Plans: 
    - Simple to use functions in easy to read scriptfiles in the style of the ministory file. 
    - char.compete(other, skill_name) -&gt; See who wins and by how much. 
    - a basic implementation as minimal api reference for anyrpg plugins.
    - Add the basic scripting function "python_interpreter(startup_data)", which shows an interactive python interpreter with the startup data already entered and interpreted. 


Ideas: 
    - Lazy loading modules, to be able to print stuff at once without having to print before the imports.


Basic design principles for the scripting language: 
    
    - The action is character centered wherever possible and useful. 
       -&gt; char.say(text) instead of dialog(char, text)
    
    - Anything which affects only one character or any interaction between only a few characters which is initiated by one of them gets called from the character via char.action(). 
       -&gt; char.compete_skill(char2, skill_name) instead of competition_skill(char1, char2, skill_name)
    
    - Anything which affects the whole scene, or a whole group of not necessarily interacting characters gets called as basic function via action() or as class in its own right via class.action(). 
       -&gt; save([char1, char2]) instead of char1.save() char2.save()
    
    - The seperate class way should only be chosen, if the class can feel like a character in its own right and needs seperate states which may or may not be persistent over subsequent runs. 
       -&gt; For example AI.choose_the_way(players_answer) or music.action()
    
    - Data should be stored inside the chars wherever possible. If a script gets started with the same character again, the situation should resemble the previous one as much as possible, except where dictated otherwise by the story_helper. 
       -&gt; char.save() instead of 'on quit' store_char_data(char) + 'on start' load_char_data(char)
    
    - Actions should be written as verb_noun or simply verb. 
       -&gt; char.say() and char.compete_skill() instead of char.text() and char.skill_compete()
    
    - In the story function, an action is a parameter of the story. 
       -&gt; story(switch_background_image="bg_image.png")

The code for the TextRPG can be found at U{http://freehg.org/ArneBab/textrpg}



Changes:

textrpg 0.4.8 (2008-10-24)

- FIX: char.say() now uses autoscrolling, too. 

textrpg 0.4.6 (2008-10-23)

- Improved shell output by using sys.stdout.write() instead of print (thanks to AKF).
- German tutorial: Character creation chapter added.
- Added scrolling text (char by char). 

- FIX: textrpg example code now uses story() instead of the low level diag() function to output text. 

textrpg 0.4.4 (2008-09-28)

- Added docstrings to the basic textrpg functions (they were missing after the last large refactoring). 

textrpg 0.4.2 (2008-07-21)

- Added a simple_ story.py (originally written for a german python forum)
- yaml is now distributed with TextRPG. 
- FIX: Textlines were getting joined if the user pressed enter multiple times
in a short time.

textrpg 0.4.1 (2008-07-09)

- Added a branching story, walking through darker woods. 

textrpg 0.4 (2008-07-09)

- FIX: Installed versions didn't find the modules in rpg_lib. 
- Added german tutorial chapter 1 and 2: "telling and testing" and "asking users and distributing stories". 
- Moved the basic modules into the rpg_lib directory. 
- Raise Exception in anyrpg, if some helper function gets used which isn't implemented in the specific module
- Turned all basic functions into wrappers for class methods, so a change of them affects every other basic function. 

textrpg 0.3 (2008-07-07)

- FIX: Answering Yes in battle screen didn't work. 
- Now experience is spent incrementally (one point per step).
- Added char.check_skill(name_of_skill).

textrpg 0.2: 

- FIX: Installation required Changelog.txt which isn't distributed. 

textrpg 0.1: 

- Added give_exp() function for scripts which calls the experience "screen". 
- Renamed ews package to textrpg_1d6 to avoid clashes with possibly installed ews module -&gt; useful while also working on the backend. 
- Fertigkeiten now get increased by related attributes. Which attribute is related must be declared explicitely.
- Added fighting styles: defensive and attack head.
- Show base TP in battle stats.
- A bit more 'you did great' output if at least 9 battles were won and the character lost afterwards.
- The player is prompted to decide on a battle strategy/style each round. 
- The experience can also be increased by simply saying char.exp = new_value. If the new value is lower than the current value, nothing happens, but it gives the return value False.
- exp is now a property, and so it wil always be up to date.
- added ministory scripting example.
- simpler scripting added.
- Prepared localization of most internal strings.
- Text output and documentation update.
- Ask whenever the round is for the player which action to take and many smaller changes (i.e.: tabs to spaces).
- Added interface for different fighting styles and a hit treshold (below which the character evades the attack or the attack hits the shield).
- Nicer Experience 'screen'.
- Nicer battle output and output, when a skill got raised.
- upgrade now returns what it did: (obj before, obj after).
- Begun writing the TextRPG. 

- FIX: Damage for own attacks except the first wasn't printed.
- FIX: empty attributes to attribute dict problems -&gt; turned attributes into a property.
- FIX: persistent game states didn't work due to a version management bug (workdir had not been changed everywhere).
- FIX: corrected dieing.

ews 0.1

- created ews as rpg backend package.</description>
<homepage rdf:resource="http://1w6.org/programme" />
<maintainer><foaf:Person><foaf:name>Arne Babenhauserheide</foaf:name>
<foaf:mbox_sha1sum>acc8ef0ac84a6472dc600aec434a9371a363963b</foaf:mbox_sha1sum></foaf:Person></maintainer>
<release><Version><revision>0.4.8</revision></Version></release>
</Project></rdf:RDF>