save the old version
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
__pycache__
|
||||||
|
saves/**
|
||||||
BIN
FSEX300.ttf
Normal file
BIN
Shadow.png
Normal file
|
After Width: | Height: | Size: 94 KiB |
BIN
TTSBG1.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
36
chara.py
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
import pygame as pg
|
||||||
|
class playable:
|
||||||
|
class ulo:
|
||||||
|
def __init__(self,player):
|
||||||
|
self.hb = [pg.Rect(player["pos"][0] + 5, player["pos"][-1] + 100 ,50, 25)]
|
||||||
|
UPP = pg.image.load("./img/ulo/uloUPP.png")
|
||||||
|
UP1 = pg.image.load("./img/ulo/uloUP1.png")
|
||||||
|
UP2 = pg.image.load("./img/ulo/uloUP2.png")
|
||||||
|
RIGHTP = pg.image.load("./img/ulo/uloRIGHTP.png")
|
||||||
|
RIGHT1 = pg.image.load("./img/ulo/uloRIGHT1.png")
|
||||||
|
RIGHT2 = pg.image.load("./img/ulo/uloRIGHT2.png")
|
||||||
|
LEFTP = pg.image.load("./img/ulo/uloLEFTP.png")
|
||||||
|
LEFT1 = pg.image.load("./img/ulo/uloLEFT1.png")
|
||||||
|
LEFT2 = pg.image.load("./img/ulo/uloLEFT2.png")
|
||||||
|
DOWNP = pg.image.load("./img/ulo/uloDOWNP.png")
|
||||||
|
DOWN1 = pg.image.load("./img/ulo/uloDOWN1.png")
|
||||||
|
DOWN2 = pg.image.load("./img/ulo/uloDOWN2.png")
|
||||||
|
def npcmv(pos,lap,hb,idn):
|
||||||
|
return "coll1("+str(pos)+","+str(lap)+",'["+str(["pg.R"+str(x)[2:-1] for x in hb])[2:-2]+"]',eval(\'maps.\'+player[\'maap\']+\'.hbmp\'),obon[0]+[x[0] for x in obon[3] if x[1] != \'"+idn[0]+"\']+chara.playable.ulo(player).hb)"
|
||||||
|
class npc:
|
||||||
|
class test:
|
||||||
|
name = "test"
|
||||||
|
def __init__(self,x,y,idn=None,look=None):
|
||||||
|
self.hb = [pg.Rect(x +5 , y + 100 , 50 , 25)]
|
||||||
|
if idn != None:
|
||||||
|
self.ib = [([pg.Rect(x , y + 95 , 60 , 35)],["UP","DOWN","LEFT","RIGHT"],self.action(idn))]
|
||||||
|
actmx = 2
|
||||||
|
def skn(look="DOWN",timer=0,stop=0):
|
||||||
|
if stop:
|
||||||
|
return pg.image.load("./img/ulo/ulo"+str(look)+"P.png")
|
||||||
|
return pg.image.load("./img/ulo/ulo"+str(look)+["1","2"][int(timer%1//0.5)]+".png")
|
||||||
|
|
||||||
|
def action(self,idn):
|
||||||
|
return ["textbox(['test'])\ndidn('"+idn[0]+"',1)","textbox(['test1'])\ndidn('"+idn[0]+"',2)","textbox(['test2'])"][int(idn[1])]
|
||||||
|
def mv(self,lap,pos,look,idn):
|
||||||
|
return npcmv(pos,lap,self.hb,idn)
|
||||||
52
gtxt.py
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
#syntax(txtbox text): \n to skip line or use """ ( not nessesary as lineskips are automatic )
|
||||||
|
# for colored text use \bCOLOR\bCOLOREDTEXT\b
|
||||||
|
# to move text to next textbox make another string in the list
|
||||||
|
# for multiple choices use a list of the choices instead of strigs
|
||||||
|
# first choice will result in ch0 second in chx (x being #of choices) third chx-1...
|
||||||
|
class en:
|
||||||
|
items = { "i000": ["snails","hailed as \"holy food\" by the cavemen"], #id : [name,description]
|
||||||
|
"i001": ["",""] }
|
||||||
|
def itmget(self,iid,No):
|
||||||
|
return ["You found \b(255,0,0)\b"+str(No)+" "+self.items[iid][0]+"\b"]
|
||||||
|
class intro:
|
||||||
|
txt = ["""\b(90,170,195)\bGAMBAS TOWN\b,
|
||||||
|
in the middle of nowhere, out in the sea,
|
||||||
|
in the very near future.""",
|
||||||
|
"""A little Sea Slug falls in love with a rock.
|
||||||
|
He's always been in love with this little stone.
|
||||||
|
Everyday, he goes in this small abyssal plain
|
||||||
|
and wastes all his time with this mineral.""",
|
||||||
|
"You are this Slug.",
|
||||||
|
"Would you like to continue ?"]
|
||||||
|
chx = [["yup","nop","maybe"]]
|
||||||
|
ch0 = ["good boy"]
|
||||||
|
ch1 = ["eh"]
|
||||||
|
ch2 = ["k"]
|
||||||
|
observations = { "anemone0": ["An anemone\nthis type is a pretty rare one\nit was passed down from your father"
|
||||||
|
,"you find it rather cute"],
|
||||||
|
"chair0" : ["A simple, sturdy chair"],
|
||||||
|
"nontendo": ["This the Newest and Greatest from\nthe video game company \b(255,0,0)\bNontendo®","the \b(255,0,0)\bSUPER NONTENDO\b","Do you want to play ?",["No","No零","No零零"]] }
|
||||||
|
class fr:
|
||||||
|
items = { "i000": ["Escargots","Vénéré comme \"nourriture sacré\" par l'homme des carvernes"], #id : [name,description]
|
||||||
|
"i001": ["",""] }
|
||||||
|
def itmget(self,iid,No):
|
||||||
|
return ["Vous trouvez \b(255,0,0)\b"+str(No)+" "+self.items[iid][0]+"\b"]
|
||||||
|
class intro:
|
||||||
|
txt = ["""\b(90,170,195)\bGAMBAS TOWN\b,
|
||||||
|
Au milieu de nullle part, au fond l'océan,
|
||||||
|
dans un futur très proche.""",
|
||||||
|
"""Une petite limace de mer tomba amoureuse d'un rocher.
|
||||||
|
Elle avait toujours été amoureuse de cette petite pierre.
|
||||||
|
Tout les jours, elle allait dans cette petite plaine abyssale,
|
||||||
|
pour passer tout son temps avec ce caillou.""",
|
||||||
|
"Vous êtes cette limace.",
|
||||||
|
"Voulez-vous continuer ?"]
|
||||||
|
chx = [["Ouep","nope","Peut-être"]]
|
||||||
|
ch0 = ["Bon garçon"]
|
||||||
|
ch1 = ["euh"]
|
||||||
|
ch2 = ["k"]
|
||||||
|
observations = { "anemone0": ["Une anémone\ncette espèce est plutôt rare \nvous l'avez hérité de votre père"
|
||||||
|
,"vous la trouvez plutôt mignonne"],
|
||||||
|
"chair0" : ["Une chaise, simple et solide"],
|
||||||
|
"nontendo": ["C'est la nouveauté incroyable de \nla compagnie de jeu vidéo \b(255,0,0)\bNontendo®","la \b(255,0,0)\bSUPER NONTENDO\b","Voulez-vous jouer ?",["Non","Non零","Non零零"]] }
|
||||||
|
|
||||||
0
img/.gitkeep
Normal file
BIN
img/Untitled.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
0
img/items/.gitkeep
Normal file
BIN
img/items/Coquillage_40.png
Normal file
|
After Width: | Height: | Size: 285 B |
0
img/maps/.gitkeep
Normal file
BIN
img/maps/chambre.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
img/maps/mur_chambre_Ulo_bas.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
img/non.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
img/obj/TV.png
Normal file
|
After Width: | Height: | Size: 439 B |
BIN
img/obj/TV_stand_and_nontendo.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
img/obj/anemone.png
Normal file
|
After Width: | Height: | Size: 878 B |
BIN
img/obj/bed.png
Normal file
|
After Width: | Height: | Size: 866 B |
BIN
img/obj/chair.png
Normal file
|
After Width: | Height: | Size: 511 B |
BIN
img/obj/chair_and_table.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
img/obj/furniture.png
Normal file
|
After Width: | Height: | Size: 717 B |
BIN
img/obj/locker.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
img/obj/nontendo.png
Normal file
|
After Width: | Height: | Size: 482 B |
BIN
img/obj/poster.png
Normal file
|
After Width: | Height: | Size: 332 B |
BIN
img/obj/table.png
Normal file
|
After Width: | Height: | Size: 667 B |
BIN
img/obj/table_and_chaire.png
Normal file
|
After Width: | Height: | Size: 719 B |
BIN
img/sprites/test.png
Normal file
|
After Width: | Height: | Size: 750 B |
0
img/ulo/.gitkeep
Normal file
BIN
img/ulo/uloDOWN1.png
Normal file
|
After Width: | Height: | Size: 660 B |
BIN
img/ulo/uloDOWN2.png
Normal file
|
After Width: | Height: | Size: 672 B |
BIN
img/ulo/uloDOWNP.png
Normal file
|
After Width: | Height: | Size: 602 B |
BIN
img/ulo/uloLEFT1.png
Normal file
|
After Width: | Height: | Size: 518 B |
BIN
img/ulo/uloLEFT2.png
Normal file
|
After Width: | Height: | Size: 528 B |
BIN
img/ulo/uloLEFTP.png
Normal file
|
After Width: | Height: | Size: 474 B |
BIN
img/ulo/uloRIGHT1.png
Normal file
|
After Width: | Height: | Size: 540 B |
BIN
img/ulo/uloRIGHT2.png
Normal file
|
After Width: | Height: | Size: 550 B |
BIN
img/ulo/uloRIGHTP.png
Normal file
|
After Width: | Height: | Size: 497 B |
BIN
img/ulo/uloUP1.png
Normal file
|
After Width: | Height: | Size: 611 B |
BIN
img/ulo/uloUP2.png
Normal file
|
After Width: | Height: | Size: 610 B |
BIN
img/ulo/uloUPP.png
Normal file
|
After Width: | Height: | Size: 594 B |
16
itms.py
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
#class item id: #english name
|
||||||
|
# type = usable/equipement/...
|
||||||
|
# subtype = combatusable/weapon... (optional)
|
||||||
|
# effect = ["stat/statuseffect",
|
||||||
|
# option(if stat:modifier if status effect immunity/removal=0 apply=1),
|
||||||
|
# length of the effect(0 for one time effects i.e. health potions etc)] ( optional )
|
||||||
|
# worth = price when sold ( optional )
|
||||||
|
# def __init__(self,options/targetstat...): if some effect is stat dependent i.e. restores half health...
|
||||||
|
# self.effect += ... (item will have to be referenced with () at the end) ( optional )
|
||||||
|
class i000: #snail
|
||||||
|
type = "usable"
|
||||||
|
subtype = "combatusable"
|
||||||
|
effect = [["hp",5,0]]
|
||||||
|
img = "./img/non.png"
|
||||||
|
worth = 100
|
||||||
|
stack = True
|
||||||
13
maps.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import pygame as pg
|
||||||
|
class home:
|
||||||
|
mapp = pg.image.load('./img/maps/chambre.png')
|
||||||
|
hb1 = pg.Rect(0,0,295,587)
|
||||||
|
hb2 = pg.Rect(0,0,743,249)
|
||||||
|
hb3 = pg.Rect(920,0,30,1000)
|
||||||
|
hbmp = [hb1,hb2,hb3]
|
||||||
|
obj = [["table_basse_rose",536,136,3,1,1],["armoire_verte",744,64,3,1],["lit_orange",292,244,3,1],["mur_de_ulo",0,0,4,1],["table_avec_chaise",560,408,3,0]]
|
||||||
|
npc = [["test00",400,400,3,1,0,"randomv(fps,2,3,60,i)","DOWN",0,0,0]]
|
||||||
|
music = './music/Gambas_town.mp3'
|
||||||
|
fx = False
|
||||||
|
ldz = [([pg.Rect(0,0,-1,1000)],None,"mapsw(maps.home,[500,300])")]
|
||||||
|
|
||||||
0
music/.gitkeep
Normal file
BIN
music/19-_the_Credits.mp3
Normal file
BIN
music/2-_Gambas_Town_theme.mp3
Normal file
BIN
music/3-_Title_song.mp3
Normal file
BIN
music/Gambas_town.mp3
Normal file
BIN
music/Itemfound.wav
Normal file
BIN
music/NG.mp3
Normal file
BIN
music/chambre Ulo.mp3
Normal file
34
obj.py
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
import pygame as pg
|
||||||
|
|
||||||
|
class table_basse_rose :
|
||||||
|
skn = pg.image.load('./img/obj/TV_stand_and_nontendo.png')
|
||||||
|
def __init__(self,x,y):
|
||||||
|
self.hb = [pg.Rect(x,y+55,167,95)]
|
||||||
|
self.ib = [([pg.Rect(x+78,y+119,52,92)],["UP"],'textbox(settings["text"].observations["nontendo"])')]
|
||||||
|
|
||||||
|
class armoire_verte :
|
||||||
|
skn = pg.image.load('./img/obj/locker.png')
|
||||||
|
def __init__(self,x,y):
|
||||||
|
self.hb = [pg.Rect(x,y,175,251)]
|
||||||
|
self.ib = [([pg.Rect(x+48,y+218,80,80)],["UP"],'item_get("i000",5)')]
|
||||||
|
|
||||||
|
class lit_orange :
|
||||||
|
skn = pg.image.load('./img/obj/bed.png')
|
||||||
|
def __init__(self,x,y):
|
||||||
|
self.hb = [pg.Rect(x,y,198,142)]
|
||||||
|
self.ib = [([pg.Rect(x+19,y+111,160,64)],["UP"],"")]
|
||||||
|
|
||||||
|
class mur_de_ulo:
|
||||||
|
skn = pg.image.load('./img/maps/mur_chambre_Ulo_bas.png')
|
||||||
|
def __init__(self,x,y):
|
||||||
|
self.hb = [pg.Rect(x,y+790,930,48)]
|
||||||
|
self.ib = []
|
||||||
|
|
||||||
|
class table_avec_chaise:
|
||||||
|
skn = pg.image.load('./img/obj/chair_and_table.png')
|
||||||
|
def __init__(self,x,y):
|
||||||
|
self.hb = [pg.Rect(x,y+40,187,115),pg.Rect(x+64,y+72,71,119+5)]
|
||||||
|
self.ib = [([pg.Rect(x+64,y+8,64,64)],["DOWN"],'textbox(settings["text"].observations["anemone0"])')
|
||||||
|
,([pg.Rect(x+136,y+148,24,56)],["LEFT"],'textbox(settings["text"].observations["chair0"])')
|
||||||
|
,([pg.Rect(x+64,y+204,72,20)],["UP"],'textbox(settings["text"].observations["chair0"])')
|
||||||
|
,([pg.Rect(x+40,y+148,24,56)],["RIGHT"],'textbox(settings["text"].observations["chair0"])')]
|
||||||