/rpy2wse

Converts Ren'Py visual novels to WebStory Engine HTML5 game using RPYC and some code magic

#rpy2wse Converts Ren'Py visual novels to WebStory Engine HTML5 game using RPYC and some code magic

##CONTACTS Copyleft by lolbot, member of IIchan.hk eroge project. Written on hard day's nights of pretty nice autumn 2013. You can contact me at: https://github.com/lolbot-iichan

##NO GUARANTIES

  • Please, note, that this code is not perfect.
  • IN FACT, THERE ARE ABSULUTELY NO GUARANTIES.
  • Some problems must be marked by converter with "" comments in generated xml file.
  • However, even if there is no such comments, converted code still may be wrong in some way.
  • Python is not my native language, so sorry for awful non-pythonic style.

##LICENSE? WHAT LICENSE? It's mostly a Proof Of Concept. You can use this code however you want, I think. But be warned, you won't get any presents from Santa, if you delete all the copylefts and introduce this work as your's.

##CHANGELOG

###0.1 - 2013.10.11

  • renpy.ast.Say: simple text by defined characters
  • renpy.ast.UserStatement: play, stop
  • renpy.ast.Translate
  • renpy.ast.EndTranslate
  • renpy.ast.Menu: each block is one jump command
  • renpy.ast.Jump: no expressions
  • renpy.ast.Return
  • renpy.ast.Scene
  • renpy.ast.Show
  • renpy.ast.Hide
  • Runtime: simple menu, jump to rpy_start

###0.2 - 2013.10.20

  • renpy.ast.With: None, Fade, Dissolve
  • Styles: main menu background
  • Runtime: calling splashscreen, if present
  • Useless: Debug file added

###0.3 - 2013.10.27

  • convert mp3 to ogg and back (using console utils)
  • renpy.ast.Python: simple math only (aka 'x = True', 'x = x + 9', 'x += 1')
  • renpy.ast.If: simple conditions only (aka 'if x', 'if False', 'else')
  • renpy.ast.Menu: blocks inside branches
  • renpy.ast.Python: renpy.pause calls
  • renpy.ast.UserStatement: pause
  • renpy.ast.With: Pause

###0.4 - 2014.08.12

  • Styles: config.main_menu_music
  • Styles: config.window_icon
  • Runtime: hide&show textbox during transitions
  • renpy.ast.Say: {{, \n, {i}, {b}, {u}, {s}
  • renpy.ast.Pass
  • renpy.ast.Python: string assignment (aka 'x = "qwerty"')
  • renpy.ast.If: more simple conditions (aka 'if x == 0', 'if x == "qwerty"')
  • renpy.ast.Call: no expressions
  • renpy.ast.With: vpunch, hpunch (aka 'with vpunch')
  • renpy.display.motion.ATLTransform (aka 'show slavya at right')

###0.5 - in progress

  • Runtime: toggle textbox on 'h'
  • Runtime: simple help screen
  • Runtime: toggle savegames menu on Right-click
  • Styles: color from who_args
  • Styles: config.windows_icon
  • renpy.ast.Python: renpy.play calls
  • renpy.ast.With: MoveTransition (aka 'show slavya at right with move', using )

##THINGS TO DO IN NEAREST FUTURE

###using <var/>:

  • renpy.ast.Python: more complex math (aka 'x = y * 3 + 2')
  • renpy.ast.If: refactoring for using nested tags
  • renpy.ast.Menu: refactoring for using nested tags
  • renpy.ast.If: more complex math (aka 'if x == 2', 'if x > 5 and x < y')
  • renpy.ast.Menu: options with conditions
  • renpy.ast.Jump: expression
  • renpy.ast.Call: expression

###runtime:

  • Runtime: better zorder for bgs and sprites
  • Runtime: toggle fullscreen on 'f'
  • Runtime: toggle fastforward on 'tab'
  • Runtime: fastforward during 'ctrl'
  • Runtime: toggle textbox on Middle-click

###conversion:

  • Convertion: download audio conversion tools
  • Convertion: patch RenPy's script.py file

###styles:

  • Styles: generate hardcoded styles.css
  • Styles: generate styles for default font and text size
  • Styles: generate styles for message window frame
  • Styles: generate styles for choice buttons
  • Styles: click-to-continue icon

###other todo:

  • renpy.ast.Say: extend
  • snow & cherry blossom animation
  • fit screen on mobile
  • renpy.text.extras.ParameterizedText (aka 'show text "qwerty" at truecenter', using at custom textbox, hehe)