Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/MAFH.activity
diff options
context:
space:
mode:
authorBlitzkev <blitzkev@gmail.com>2010-02-19 16:22:49 (GMT)
committer Blitzkev <blitzkev@gmail.com>2010-02-19 16:22:49 (GMT)
commit86a4bc229c903ead1b67b6e735e79c2669e26791 (patch)
tree21809b7129d87bcf991a9fd0a959e5c92e9f7f6b /MAFH.activity
parent69c6d36e55bce5e401af659575505a5a9a420a2f (diff)
Merge
Diffstat (limited to 'MAFH.activity')
-rw-r--r--MAFH.activity/Enemy.py7
-rw-r--r--MAFH.activity/Map.py30
-rw-r--r--MAFH.activity/Menu.py2
-rw-r--r--MAFH.activity/Shop.py2
-rwxr-xr-xMAFH.activity/assets/map/al1.txt2
-rwxr-xr-xMAFH.activity/assets/map/al4.txt40
-rwxr-xr-xMAFH.activity/assets/map/al5.txt42
-rwxr-xr-xMAFH.activity/assets/map/al6.txt30
-rwxr-xr-xMAFH.activity/assets/map/al7.txt6
-rwxr-xr-xMAFH.activity/assets/map/bl2.txt30
-rw-r--r--MAFH.activity/assets/map/bl3.txt21
-rwxr-xr-xMAFH.activity/assets/map/bl4.txt30
-rw-r--r--MAFH.activity/assets/map/bl5.txt7
-rw-r--r--MAFH.activity/constants.py5
-rw-r--r--MAFH.activity/pippy_app.py47
15 files changed, 174 insertions, 127 deletions
diff --git a/MAFH.activity/Enemy.py b/MAFH.activity/Enemy.py
index d1ee6dc..4017acf 100644
--- a/MAFH.activity/Enemy.py
+++ b/MAFH.activity/Enemy.py
@@ -9,8 +9,10 @@ ENEMY = {
'2':{'name':_('Goblin'),'img':"concept_goblin.gif",'hp':40,'att':3,'weak':'fire'},
'3':{'name':_('Orc'),'img':"concept_orc.gif",'hp':50,'att':5,'weak':'lightning'},
'4':{'name':_('Stone Golem'),'img':"concept_orc.gif",'hp':10,'att':6,'weak':'missile'},
- #'5':{'name':_('Serratula')},
- #'6':{'name':_('Feren')},
+ '5':{'name':_('Serratula'),'img':"Crab.png",'hp':125,'att':12,'weak':'crit'},
+ '6':{'name':_('Feren'),'img':"merchant.gif",'hp':1500,'att':10,'weak':'special'},
+ '7':{'name':_('Cave Crab'),'img':"Crab.png",'hp':50,'att':7,'weak':'missile'},
+ '8':{'name':_('Frost Giant'),'img':"frost_giant.gif",'hp':45,'att':9,'weak':'fire'}
}
class Enemy(Actor):
@@ -30,6 +32,7 @@ class Enemy(Actor):
self.name=ENEMY[id]['name']
self.sprite.image=pygame.image.load(CHAR_PATH + ENEMY[id]['img'])
self.HP = ENEMY[id]['hp']
+ self.MHP=ENEMY[id]['hp']
self.ATT = ENEMY[id]['att']
self.weakness=ENEMY[id]['weak']
self.sprite.rect=(200,200,50,300)
diff --git a/MAFH.activity/Map.py b/MAFH.activity/Map.py
index 300cd7b..5c3c8a2 100644
--- a/MAFH.activity/Map.py
+++ b/MAFH.activity/Map.py
@@ -115,9 +115,16 @@ class Map:
self.totalSurface.fill((0,0,0),(player.currentX*40,player.currentY*40+5,5,30))
def display(self,player,screen):
- mapView=pygame.transform.chop(self.totalSurface,(0,0,0,0))
- mapView.fill((255,0,0),(player.currentX*40,player.currentY*40,38,38))
-
+ #pad the total surface with 100x100 pix
+ totalPadded=pygame.Surface((self.totalSurface.get_width()+100,self.totalSurface.get_height()+100))
+ totalPadded.blit(self.totalSurface,(100,100,self.totalSurface.get_width(),self.totalSurface.get_height()))
+ #blit a player-centered map on a new square surface
+ mapView=pygame.Surface((200,200))
+ sectRect=((self.sizeX-player.currentX+(2-self.sizeX))*40-100,(self.sizeY-player.currentY+(2-self.sizeY))*40-100,300,300)
+ mapView.blit(totalPadded,sectRect)
+ mapView.fill((250,0,0),(82,82,34,34))
+
+
NORTH=1
SOUTH=3
EAST=0
@@ -140,18 +147,5 @@ class Map:
angle=270
mapView=pygame.transform.rotate(mapView,angle)
angle=180
-
-
- sideDifference=self.sizeX-self.sizeY
- angle=angle*(math.pi/180)
- curSect=pygame.Rect(0,700,200,200)
- curSect.top+=((player.currentX*40-81)*math.cos(angle))-((player.currentY*40-81)*math.sin(angle))
- curSect.left-=((player.currentX*40-81)*math.sin(angle))+((player.currentY*40-81)*math.cos(angle))
- if player.playerFacing==EAST:
- curSect.top+=sideDifference*(40-81)
- elif player.playerFacing==SOUTH:
- curSect.left+=sideDifference*(40-81)
- screen.fill(0,(0,700,200,300),0)
- screen.blit(mapView,curSect)
- screen.fill(0,(200,700,1200,300),0)
-
+ screen.fill((0,0,0),(0,700,300,1000))
+ screen.blit(mapView,(0,700,200,200))
diff --git a/MAFH.activity/Menu.py b/MAFH.activity/Menu.py
index 3fdb001..6beeffd 100644
--- a/MAFH.activity/Menu.py
+++ b/MAFH.activity/Menu.py
@@ -499,7 +499,7 @@ class Menu:
self.tm_em_viewStatistics()
#########Pause Menu Buttons######################################
- elif name=="Save":
+ elif name=="Save" and self.name !="Pause Menu":
dataList=player.toString()
FILE=open(os.path.join(activity.get_activity_root(),"data/"+player.name+".txt"),"w")
FILE.write(simplejson.dumps(dataList))
diff --git a/MAFH.activity/Shop.py b/MAFH.activity/Shop.py
index bfd2f18..5cbc890 100644
--- a/MAFH.activity/Shop.py
+++ b/MAFH.activity/Shop.py
@@ -220,7 +220,7 @@ class Shop:
bgSprite=pygame.sprite.Sprite()
bgSprite.image=pygame.image.load(MENU_PATH+"ShopBG.gif")
bgSprite.rect=(0,0,600,900)
- merchantSprite.image=pygame.transform.scale(pygame.image.load(CHAR_PATH+"Merchant.gif"),(550,550))
+ merchantSprite.image=pygame.transform.scale(pygame.image.load(CHAR_PATH+"merchant.gif"),(550,550))
merchantSprite.rect=pygame.Rect(640,160,200,200)
merchantGroup=pygame.sprite.Group(merchantSprite)
bgGroup=pygame.sprite.Group(bgSprite)
diff --git a/MAFH.activity/assets/map/al1.txt b/MAFH.activity/assets/map/al1.txt
index b40fb9b..e3af6c7 100755
--- a/MAFH.activity/assets/map/al1.txt
+++ b/MAFH.activity/assets/map/al1.txt
@@ -9,7 +9,7 @@ Nx0000Eu00000lv000000
00Su000000000qv000000
000000000000000000000
NuSl000000000lhlh0000
-Nu0000Eu0000000000000
+Nu0000Eu0030000000000
00SuWuEu00000lv000000
Nl00Wu000000000000000
000000000000000000000
diff --git a/MAFH.activity/assets/map/al4.txt b/MAFH.activity/assets/map/al4.txt
index a709c52..6d109bc 100755
--- a/MAFH.activity/assets/map/al4.txt
+++ b/MAFH.activity/assets/map/al4.txt
@@ -3,23 +3,23 @@ al4.txt
4x5
0
al5.txt
-000000000000000000000
-00Su00Eu0000000000000
-0000WuEu0000000000000
-00SuWu000000000000000
-00Su00Eu0000000000000
-Nu00Wu000000000000000
-000000000000000000000
-Nu0000Ex0000000000000
-Nu0000Eu0000000000000
-00SuWuEu0000000000000
-0000WuEu0000000000000
-00SuWu000000000000000
-000000000000000000000
-Nu0000000000000000000
-000000000000000000000
-NuSu00000000000000000
-000000000000000000000
-00Se00Eu0000000000000
-0000WuEu0000000000000
-Nu00Wu000000000000000
+000000000000000000000
+00Su00Eu00000rvqv0000
+0000WuEu0000000000000
+00SuWu000000000000000
+00Su00Eu0000000000000
+Nu00Wu000000000000000
+000000000000000000000
+Nu0000Ex0000000000000
+Nu0000Eu0000000000000
+00SuWuEu0000000000000
+0000WuEu0000000000000
+00SuWu000000000000000
+000000000000000000000
+Nu0000000000000000000
+000000000000000000000
+NuSu00000000000000000
+000000000000000000000
+00Se00Eu0000000000000
+0000WuEu0000000000000
+Nu00Wu000000000000000
diff --git a/MAFH.activity/assets/map/al5.txt b/MAFH.activity/assets/map/al5.txt
index 4839bf9..cb2f87e 100755
--- a/MAFH.activity/assets/map/al5.txt
+++ b/MAFH.activity/assets/map/al5.txt
@@ -2,24 +2,24 @@ Dungeon 5
al5.txt
5x4
0
-al5.txt
-0000Wu000000000000000
-00Su00000000000000000
-000000000000000000000
-00Su00Eu0000000000000
-0000WuEl0000000000000
-0000WxEu0000000000000
-NuSuWuEu0000000000000
-0000WuEu0000000000000
-NuSuWuEu0000000000000
-0000Wu000000000000000
-000000000000000000000
-NuSu00000000000000000
-000000000000000000000
-NuSu00000000000000000
-000000000000000000000
-000000Eu0000000000000
-Nu00WuEu0000000000000
-00SeWuEu0000000000000
-Nu00WuEu0000000000000
-0000Wu000000000000000
+bl1.txt
+0000Wu000000000000000
+00Su00000000000000000
+000000000000000000000
+00Su00Eu0000000000000
+0000WuEl0000000000000
+0000WxEu0000000000000
+NuSuWuEu0000000000000
+0000WuEu0000000000000
+NuSuWuEu00000qv000000
+0000Wu000000000000000
+000000000000000000000
+NuSu000000000rv000000
+000000000000000000000
+NuSu00000000000000000
+000000000000000000000
+000000Eu0000000000000
+Nu00WuEu0000000000000
+00SeWuEu0000000000000
+Nu00WuEu0000000000000
+0000Wu000000000000000
diff --git a/MAFH.activity/assets/map/al6.txt b/MAFH.activity/assets/map/al6.txt
deleted file mode 100755
index 274ba4d..0000000
--- a/MAFH.activity/assets/map/al6.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Dungeon 6
-al6.txt
-5x5
-0
-al7.txt
-00Su00Eu00000000000000000
-0000WuEu00000000000000000
-0000WuEu00000000000000000
-0000WuEu00000000000000000
-0000WuEe00000000000000000
-NuSu000000000000000000000
-0000000000000000000000000
-0000000000000000000000000
-0000000000000000000000000
-0000000000000000000000000
-Nu0000Eu00000000000000000
-0000WuEu00000000000000000
-0000WuEu00000000000000000
-00SuWu0000000000000000000
-0000000000000000000000000
-0000000000000000000000000
-0000000000000000000000000
-0000000000000000000000000
-NuSu00Eu00000000000000000
-0000Wu0000000000000000000
-0000WxEu00000000000000000
-0000WuEu00000000000000000
-0000WuEu00000000000000000
-Nu00Wu0000000000000000000
-0000000000000000000000000
diff --git a/MAFH.activity/assets/map/al7.txt b/MAFH.activity/assets/map/al7.txt
deleted file mode 100755
index 2ce236a..0000000
--- a/MAFH.activity/assets/map/al7.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Dungeon 6
-al7.txt
-1x1
-0
-0
-00Se00000000000000000
diff --git a/MAFH.activity/assets/map/bl2.txt b/MAFH.activity/assets/map/bl2.txt
new file mode 100755
index 0000000..bc0206e
--- /dev/null
+++ b/MAFH.activity/assets/map/bl2.txt
@@ -0,0 +1,30 @@
+Dungeon 6
+bl2.txt
+5x5
+1
+bl3.txt
+00Su00Eu0000000000000
+0000WuEu0800800000000
+0000WuEu0000000000000
+00SuWu000000000000000
+00Su00Ee0000000000000
+NuSu00000000000000000
+00Su00Ex0000000000000
+000000Eu00000rh000000
+NuSuWp000000000000000
+NuSu000000000lv000000
+NuSu00000077000000000
+Nu0000Eu0088000000000
+00SuWu000000000000000
+NuSu00000880800000000
+NuSu000000000mv000000
+NuSu00Eu0008000000000
+0000Wu0000000qv000000
+Nu0000Eu0000000000000
+Nu00Wu000000000000000
+NuSu000000000lv000000
+Nu0000Eu0000000000000
+0000WuEu0000000000000
+0000WuEu0000000000000
+0000WuEuS000000000000
+Nu00Wu00070873b000000
diff --git a/MAFH.activity/assets/map/bl3.txt b/MAFH.activity/assets/map/bl3.txt
new file mode 100644
index 0000000..5f9fd36
--- /dev/null
+++ b/MAFH.activity/assets/map/bl3.txt
@@ -0,0 +1,21 @@
+Dungeon 6
+bl3.txt
+4x4
+1
+bl4.txt
+00SuWeEu00000000000000000
+00SuWu0000007000000000000
+00Sb00Eu00008000000000000
+00SuWu0000000000000000000
+NuSu00Eu00000000000000000
+Nu00Wu0000000qv0000000000
+NpSx00Ep00000000000000000
+NuSuWb0000007000000000000
+NuSu00El00000000000000000
+00SlWl0000008rv0000000000
+00Sp00Ep000008v0000000000
+NuSuWp0000000000000000000
+Nu0000Eu00008000000000000
+Nl00WuEu00000000000000000
+Np00WuEu00000000000000000
+NuWu000000007000000000000
diff --git a/MAFH.activity/assets/map/bl4.txt b/MAFH.activity/assets/map/bl4.txt
new file mode 100755
index 0000000..d9a1acc
--- /dev/null
+++ b/MAFH.activity/assets/map/bl4.txt
@@ -0,0 +1,30 @@
+Dungeon 6
+bl4.txt
+5x5
+1
+bl5.txt
+00Su00Eu00000000000000000
+0000WuEu00000000000000000
+NeSlWuEu07770000000000000
+0000WuEu00000000000000000
+00SuWu0000000000000000000
+NuSu000000000000000000000
+0000000000000000000000000
+NlSx0000S0000000000000000
+0000000000000000000000000
+NuSu000000000000000000000
+NuSu00El07870000000000000
+0000WlExS0000000000000000
+0000000000000000000000000
+0000WxElS0000000000000000
+NuSuWl0008780000000000000
+NuSu000000000000000000000
+0000000000000000000000000
+NxSl0000S0000000000000000
+0000000000000000000000000
+NuSu000000000000000000000
+Nu0000Eu00000000000000000
+0000WuEu00000000000000000
+Nl00WuEu08880000000000000
+0000WuEu000000000rv000000
+NuWu000000000qv0000000000
diff --git a/MAFH.activity/assets/map/bl5.txt b/MAFH.activity/assets/map/bl5.txt
new file mode 100644
index 0000000..bbf4c6f
--- /dev/null
+++ b/MAFH.activity/assets/map/bl5.txt
@@ -0,0 +1,7 @@
+Dungeon 6
+bl5.txt
+1x2
+1
+0
+NeSu000000000000000000000
+Nx00000000600000000000000
diff --git a/MAFH.activity/constants.py b/MAFH.activity/constants.py
index be419d1..91441ad 100644
--- a/MAFH.activity/constants.py
+++ b/MAFH.activity/constants.py
@@ -8,10 +8,11 @@ MAP_PATH = BASE_PATH + "map/"
MENU_PATH = BASE_PATH + "image/menu/"
HUD_PATH = BASE_PATH + "image/hud/"
ENV_PATH = BASE_PATH + "image/environment/"
+ITEM_PATH = BASE_PATH + "image/item/"
PUZZLE_PATH = BASE_PATH + "image/puzzle/"
FMC_PATH = BASE_PATH + "fmc/"
-TOUR_PATH = BASE_PATH + "/image/tutorial/"
-CHAR_PATH = BASE_PATH + "/image/character/"
+TOUR_PATH = BASE_PATH + "image/tutorial/"
+CHAR_PATH = BASE_PATH + "image/character/"
DOOR_ORDER = ['N','S','E','W']
DOOR_INDEX = {
diff --git a/MAFH.activity/pippy_app.py b/MAFH.activity/pippy_app.py
index a824bb8..393680d 100644
--- a/MAFH.activity/pippy_app.py
+++ b/MAFH.activity/pippy_app.py
@@ -6,7 +6,7 @@ import os.path
from random import *
from PopUp import PopUp
-from Items import get_item, Item
+from Items import get_item, Item, InvalidItemException
from Enemy import get_enemy, Enemy
from Hero import Hero
from Dungeon import Dungeon
@@ -286,11 +286,15 @@ class Player:
self.battlePlayer.HP=data[12]
i=13
self.battlePlayer.inv_Ar=[]
- while data[i]!= 'End Inventory':
- self.battlePlayer.inv_Ar.append(get_item(data[i]))
- i+=1
+ while not data[i]== 'End Inventory':
+ try:
+ self.battlePlayer.inv_Ar.append(get_item(data[i]))
+ i+=1
+ print(data[i])
+ print(get_item(data[i]).name)
+ except InvalidItemException:
+ break
i+=1
- line=data[i]
j=0
while data[i]!='End Equip':
if data[i]==None:
@@ -389,13 +393,14 @@ class Player:
for item in self.battlePlayer.inv_Ar:
if item.type=="key":
self.battlePlayer.inv_Ar.remove(item)
+ if self.dgn==None:
+ self.dgn=Dungeon('al1.txt')
if reload:
self.dgn=Dungeon(self.dgn.fileName)
elif self.dgn:
+ self.currentMenu.updateByName("Save",player,screen)
self.battlePlayer.MHP+=2
self.dgn=Dungeon(self.dgn.next)
- else:
- self.dgn=Dungeon('al1.txt')
if self.dgn.theme != self.theme:
self.loadImages(self.dgn.theme)
self.theme=self.dgn.theme
@@ -671,7 +676,7 @@ class BattleEngine:
screen.blit(inputText,pygame.Rect(250,400,200,30))
- if self.timeBonus<1:
+ if self.timeBonus<1 and self.timeBonus>=0:
screen.blit(pygame.transform.scale(pygame.image.load(HUD_PATH+"bt_"+repr(int(self.timeBonus*10)*10)+".gif"),(275,50)),(5,200,150,50))
pygame.display.flip()
@@ -688,6 +693,7 @@ class BattleEngine:
def attack(self,attacker,attackName):
defender=self.enemies[self.selEnemyIndex]
if attackName=="critical":
+ self.player.atkTutorial=True
attacker.setBonusAP(attacker.currentAnswer+int(self.timeBonus*10))
if isinstance(defender,Enemy) and defender.weakness=='normal':
attacker.setBonusAP(attacker.BAB*2)
@@ -696,10 +702,10 @@ class BattleEngine:
tup=(tup[0]+1,tup[1])
self.player.multiplicationStats[self.player.critDifficulty-1]=tup
if not player.scanTutorial:
- player.popUp=PopUp(10,10,["To discover an enemy's weakness","select scan"])
- player.scanTutorial=True
+ self.player.popUp=PopUp(10,10,["To discover an enemy's weakness","select scan"])
+ self.player.scanTutorial=True
else:
- player.popUp=None
+ self.player.popUp=None
elif attackName=="Fire":
attacker.setBonusAP(int(self.timeBonus*20)+10)
if isinstance(defender,Enemy) and defender.weakness=='fire':
@@ -711,7 +717,7 @@ class BattleEngine:
tup=self.player.geometryStats[self.player.geomDifficulty-1]
tup=(tup[0]+1,tup[1])
self.player.geometryStats[self.player.geomDifficulty-1]=tup
- self.player.geomTutorial=True
+ self.player.magTutorial=True
self.player.popUp=None
elif attackName=="Heal":
@@ -722,7 +728,7 @@ class BattleEngine:
tup=self.player.geometryStats[self.player.geomDifficulty-1]
tup=(tup[0]+1,tup[1])
self.player.geometryStats[self.player.geomDifficulty-1]=tup
- self.player.geomTutorial=True
+ self.player.magTutorial=True
self.player.popUp=None
elif attackName=="Lightning":
@@ -736,7 +742,7 @@ class BattleEngine:
tup=self.player.geometryStats[self.player.geomDifficulty-1]
tup=(tup[0]+1,tup[1])
self.player.geometryStats[self.player.geomDifficulty-1]=tup
- self.player.geomTutorial=True
+ self.player.magTutorial=True
self.player.popUp=None
elif attackName=="Missile":
@@ -750,7 +756,7 @@ class BattleEngine:
tup=self.player.geometryStats[self.player.geomDifficulty-1]
tup=(tup[0]+1,tup[1])
self.player.geometryStats[self.player.geomDifficulty-1]=tup
- self.player.geomTutorial=True
+ self.player.magTutorial=True
self.player.popUp=None
elif attackName=="Division":
@@ -1678,7 +1684,7 @@ def startPuzzle(player):
player.inPuzzle=True
player.traversal=False
if not player.puzzleTutorial:
- player.popUp=PopUp(10,10,["This door has a special kind of lock","To unlock it, you have to","Re-arrange the tiles so they make an image"])
+ player.popUp=PopUp(10,10,["This door has a special kind of lock","To unlock it, you have to","Re-arrange the tiles","using the arrow keys","to make the image whole"])
else:
player.popUp=None
def stopPuzzle(player,solved):
@@ -2032,15 +2038,6 @@ def drawPuzzle(player,screen):
#draw background and completed image
screen.fill((0,0,0),(0,0,1200,900))
screen.blit(player.puzzle.puzBG,(75,-750,1200,900))
- if player.puzzleTutorial==False:
- font=pygame.font.SysFont("cmr10",35,False,False)
- y=0
- screen.fill((255,255,255),(0,2,1200,200))
- lines=["This door is locked with a special lock. In order to unlock it, you must"," re-arrange the tiles and make the image whole. Use the arrow keys ","to slide the tiles. You can view the completed image by pressing","any other button. To give up, press or backspace."]
- screen.blit(pygame.image.load(TOUR_PATH+"button/"+"buttonX.gif"),(570,150,40,40))
- for message in lines:
- screen.blit(font.render(message,True,(75,0,0)),(0,20+y,200,300))
- y+=40
if player.puzzle.showFull:
screen.blit(player.puzzle.completedPuzzle,(300,100,600,400))
else: