diff options
author | Jesusaves <cpntb1@ymail.com> | 2020-12-16 19:41:56 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2020-12-16 19:41:56 -0300 |
commit | 4492fb781ac9a3f5707a3d83f033d7807cd5b8cd (patch) | |
tree | d0bd72a92a4e2bb32462c1a93b23a616e71cd42e /game/03_init.rpy | |
parent | e4a937a0a27e7024e730a778b13e92a9f4dd0d9a (diff) | |
download | client-4492fb781ac9a3f5707a3d83f033d7807cd5b8cd.tar.gz client-4492fb781ac9a3f5707a3d83f033d7807cd5b8cd.tar.bz2 client-4492fb781ac9a3f5707a3d83f033d7807cd5b8cd.tar.xz client-4492fb781ac9a3f5707a3d83f033d7807cd5b8cd.zip |
Split defs.rpy in five files
Diffstat (limited to 'game/03_init.rpy')
-rw-r--r-- | game/03_init.rpy | 313 |
1 files changed, 313 insertions, 0 deletions
diff --git a/game/03_init.rpy b/game/03_init.rpy new file mode 100644 index 0000000..1125462 --- /dev/null +++ b/game/03_init.rpy @@ -0,0 +1,313 @@ +######################################################################################## +# This file is part of Spheres. +# Copyright (C) 2019 Jesusalva + +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. + +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +######################################################################################## +# Definitions +############################################################################ +# This is the JSON data formatter +init python: + def logindata(): + global password + # TODO: Obtain user id based on device + return """{ + "passwd": "%s", + "version": "%s" + }""" % (password, config.version) + + + def recruitdata(t, a): + return """{ + "tavern": %d, + "amount": %d + }""" % (t, a) + + + def questdata(q, p): + return """{ + "quest_id": %d, + "party_id": %d + }""" % (q, p) + + + def battledata(u, s): + return """{ + "unit": %s, + "sphere": %s + }""" % (json.dumps(u), json.dumps(s)) + + def card_composite(cid, path): + # We need to try to get rarity + try: + r=allunits[int(cid)]["rare"] + except: + r=4 # FIXME + + # We need to try to get the element + try: + e=allunits[int(cid)]["attribute"] + print str(e) + except: + e=0 + + return Composite( + (640, 960), + (0, 0), "gfx/cards/bg.png", + (0, 0), path, + (0, 0), "gfx/cards/"+str(r)+".png", + (0, 0), "gfx/cards/ele/"+str(e)+".png") + # size,) + + # TODO: square_ and gfx/square/units + # Converts regular image filepaths to displayables names and vice-versa + def img_regex(name, reverse=False): + if not reverse: + # Extension is ommited, add them yourself! + if name.startswith("unit_"): + return "gfx/units/%s" % name.replace("unit_") + elif name.startswith("mob_"): + return "gfx/mobs/%s" % name.replace("mob_") + elif name.startswith("dialog_"): + return "gfx/dialog/%s" % name.replace("dialog_") + elif name.startswith("bg "): + return "gfx/bg/%s" % name.replace("bg ") + elif name.startswith("summon_"): + return "gfx/summons/%s" % name.replace("summon_") + else: + print("ERROR: Not a regular filename") + return name + else: + if name.startswith("gfx/units/"): + return "unit_%s" % name + elif name.startswith("gfx/mobs/"): + return "mob_%s" % name + elif name.startswith("gfx/dialog/"): + return "dialog_%s" % name + elif name.startswith("gfx/bg/"): + return "bg %s" % name + elif name.startswith("gfx/summons/"): + return "summon_%s" % name + else: + print("ERROR: Not a regular display name") + return name + + # Loads a sound called VAL + def get_sfx(val, ext): + # Search for the sound + show_img(val, False, ext=ext) + + valb=dl_search(persistent.allfiles, 0, val)[1] + if valb == ERR_INVALID: + print ("Invalid Sound: %s (%s)" % (path, val)) + return "sfx/regnum.mp3" # FIXME + return valb + + # Load sprite images: "unit" + for file in renpy.list_files(): + fn=file.replace('gfx/units/','').replace('/', ' ').replace('.png','') + if file.startswith('gfx/units/'): + if file.endswith('.png') or file.endswith('.webp'): + name = "unit_"+fn + #renpy.image(name, Image(file, yanchor=1.0)) + renpy.image(name, card_composite(fn, file)) + + dl=dl_search(persistent.allfiles, 0, name) + if dl is not ERR_INVALID: + persistent.allfiles.append((name, file)) + allfiles.append(name) + continue + continue + + # Load sprite images: "mob" + for file in renpy.list_files(): + fn=file.replace('gfx/mobs/','').replace('/', ' ').replace('.png','') + if file.startswith('gfx/mobs/'): + if file.endswith('.png') or file.endswith('.webp'): + name = "mob_"+fn + renpy.image(name, Image(file, yanchor=1.0)) + if not name in persistent.allfiles: + persistent.allfiles.append((name, file)) + allfiles.append(name) + continue + continue + + + # Load sprite images: "dialog" + for file in renpy.list_files(): + fn=file.replace('gfx/dialog/','').replace('/', ' ').replace('.png','').replace('.webp','') + if file.startswith('gfx/dialog/'): + if file.endswith('.png') or file.endswith('.webp'): + name = "dialog_"+fn + renpy.image(name, Image(file, yanchor=1.0)) + dl=dl_search(persistent.allfiles, 0, name) + if dl is not ERR_INVALID: + persistent.allfiles.append((name, file)) + allfiles.append(name) + continue + continue + + + # Load background images: "bg" + for file in renpy.list_files(): + fn=file.replace('gfx/bg/','').replace('/', ' ').replace('.png','').replace('.webp','') + if file.startswith('gfx/bg/'): + if file.endswith('.png') or file.endswith('.webp'): + name = "bg "+fn + renpy.image(name, Frame(file, 0, 0)) + dl=dl_search(persistent.allfiles, 0, name) + if dl is not ERR_INVALID: + persistent.allfiles.append((name, file)) + allfiles.append(name) + continue + continue + + + # Load summon images: "summon" + for file in renpy.list_files(): + fn=file.replace('gfx/summons/','').replace('/', ' ').replace('.png','').replace('.webp','') + if file.startswith('gfx/summons/'): + if file.endswith('.png') or file.endswith('.webp'): + name = "summon_"+fn + renpy.image(name, Image(file, yanchor=1.0)) + dl=dl_search(persistent.allfiles, 0, name) + if dl is not ERR_INVALID: + persistent.allfiles.append((name, file)) + allfiles.append(name) + continue + continue + + def star_write(am): + i, st = 0, "" + while i < am: + i+=1 + st+="★" + return st + + + # Overrides renpy.image() method + def new_img(name, where): + # d: Downloaded path + if not isinstance(name, tuple): + name = tuple(name.split()) + + #d = renpy.renpy.easy.displayable(where) + if renpy.android: + d=ExtraImage(where) + else: + d = renpy.renpy.easy.displayable(where) + renpy.renpy.display.image.register_image(name, d) + return + + # Retrieves Ren'Py displayable name associated to PATH + def get_img(path): + # Search for the image name + val=img_regex(path, True) + show_img(val, False) + + valb=dl_search(persistent.allfiles, 0, val)[1] + if valb == ERR_INVALID: + print ("Invalid Image: %s (%s)" % (path, val)) + return "gfx/spinner.png" + return valb + + # Overrides renpy.show() and renpy.image() methods + # Missing: transient=False, munge_name=True + def show_img(img, show=True, at_list=[ ], tag=None, zorder=None, behind=[ ], atl=None, what=None, layer=None, ext=".png"): + global tr_loading + # Image exists, display it + if img in allfiles: + if show: + renpy.show(img, at_list=at_list, tag=tag, zorder=zorder, behind=behind, atl=atl, what=what, layer=layer) + return + + # Have we downloaded this image previously? + path=dl_search(persistent.allfiles, 0, img) + print str(path) + + # Image doesn't exists, we must download it + while (path == ERR_INVALID): + tr_loading=True + # Latest version converts these formats to WebP + if ext in [".png", ".jpg", ".jpeg"]: + ext=".webp" + # Otherwise, preserve extension. + if renpy.android: + addr="extra_%s%s" % (img.replace(" ", "_"), ext) + else: + addr="extra/%s%s" % (img.replace(" ", "_"), ext) + + f=open(get_path(addr), "w") + stdout("Downloading additional file: %s" % img.replace(" ", "_")) + x=requests.get("http://%s:%d/%s?token=%s" % (HOST, UPDP, img.replace(" ", "_"), get_token())) # , timeout=8.0 → Need to handle sudden death + if x.status_code == 200: + f.write(x.content) + f.close() + # Android needs paths to be saved by full + if renpy.android: + addr=get_path(addr) + path=((img, addr)) + persistent.allfiles.append(path) + else: + try: + retry=renpy.call_screen("confirm", "Error downloading file.\nError Code: %d\n\nRetry?" % x.status_code, Return(True), Return(False)) + if not retry: + if tag is None: + tag=img + path=None + if show: + renpy.show("spinner", at_list=at_list, tag=tag, zorder=zorder, behind=behind, atl=atl, what=what, layer=layer) # TODO Show error + return + # TODO: “Retry?” + except: + print("Failed, trying again") + + # Image exists, but wasn't loaded yet + if (path != ERR_INVALID and path is not None): + print "Detected not loaded image" + # Valid Image Extensions: PNG, JPG, JPEG, GIF, WEBP + if ext in [".png", ".jpg", ".jpeg", ".gif", ".webp"]: + # Maybe it is an unit + if img.startswith("unit_"): + new_img(img, card_composite(img.replace("unit_", ""), path[1])) + else: + new_img(img, path[1]) + + stdout("registered image: "+path[1]) + allfiles.append(img) + if show: + renpy.show(img, at_list=at_list, tag=tag, zorder=zorder, behind=behind, atl=atl, what=what, layer=layer) + tr_loading=False + return + + # Something went wrong + stdout("show_img reached abnormal ending") + return + + ########################################################## + # Other Music + MUSIC_BATTLE=RetString("sfx/bgm03.mp3") + MUSIC_BOSS=RetString("sfx/bgm04.mp3") + MUSIC_PARTY=RetString("sfx/bgm02.mp3") + #MUSIC_PARTY=ExecuteOnCall(get_sfx, "sfx_bgm05", ".mp3")#"sfx/bgm05.mp3" + MUSIC_VICTORY=RetString("sfx/bgm06.mp3") + MUSIC_WORLDMAP=RetString("sfx/bgm02.mp3") + #MUSIC_WORLDMAP=ExecuteOnCall(get_sfx, "sfx_bgm07", ".mp3")#"sfx/bgm07.mp3" + MUSIC_PROLOGUE01=RetString("sfx/regnum.mp3") + MUSIC_PROLOGUE02=RetString("sfx/prologue.mp3") + MUSIC_PROLOGUE03=RetString("sfx/shining.mp3") + + ws = None + |