Commits

Anonymous committed 49c636b

# 8/14/09 - v0.4.0 Alpha
- Fixed Akyu's name to Akyu instead of Akyuu in the hints page
- Added some more hints to the hint page
- Changed CH1ST2 treasure to a Wooden Statue for trading
- Added Broken Lantern to rewards of CH1ST3
- Poison Dust now counterattacks
- [Bugfix] Fixed treasure descriptions flowing over edge of screen
- [Bugfix] Wrong treasure ID in CH1ST3
- [Bugfix] Crash when executing the last trade in a list of trades

Comments (0)

Files changed (12)

Story of a Lost Sky/battle_system/mapobj.py

         """
         for status_effect in unit.status.keys():
             print "Executing %s" % status_effect
+            
+            hp_before = unit.HP
+            
             # Checks if a unit has recovered
             recovery = self.engine.status_effects_catalog[status_effect].check_recovery(unit)
             
             else:
                 # Executes effects of the S.E.
                 self.engine.status_effects_catalog[status_effect].execute_effect(unit)
+        
+            # if unit's HP is different show the change.
+            if hp_before != unit.HP:
+                self.center_on(unit)
+                unit.render_hp_change(hp_before,unit.HP)
+        
         if unit.alive == False:
             self.kill(unit)
         
                     if self.framenum == 10:
                         self.framenum = 0
                     self.framenum += 1
-                    print self.framenum
                     
                     self.user_input()
 

Story of a Lost Sky/changelog.txt

 # 8/14/09
 - Changed version numbers to 0.4.0 and saved it as a variable in engine
 - Removed AD5B's splash image from splash screen
+- Fixed Akyu's name to Akyu instead of Akyuu in the hints page
+- Added some more hints to the hint page
+- Changed CH1ST2 treasure to a Wooden Statue for trading
+- Added Broken Lantern to rewards of CH1ST3
+- Poison Dust now counterattacks
 - [Bugfix] Fixed cursor keys frame reset to 6 triggering every 9 frames instead of every 9 frames if an arrow key was being held down
+- [Bugfix] Fixed treasure descriptions flowing over edge of screen
+- [Bugfix] Wrong treasure ID in CH1ST3
+- [Bugfix] Crash when executing the last trade in a list of trades
 
 # 8/11/09
 - Moved duplicated code in battle system / battle system no anim into functions
 - Added HP meters to no animation events.
 - Portrait images for locations and regions. Reorganized how the text is displayed
 
-
 # 8/10/09
 - Added Aya sprite and portrait
 - Fixed Keine and Mokou's battle image

Story of a Lost Sky/core_system/engine.py

         self.enable_prologue = True
         self.single_turn_win = False
         self.enable_splash = True
+        self.enable_wm_tutorial = True
         self.unlock_wm = True
+        self.unlock_shops = False  
         
         # Music - Currently playing song
         self.current_music = None
             text_single_treasure_data.append(self.sfont.render(self.treasure_catalog[treasure_key].name,True,(0,0,0)))
             text_single_treasure_data.append(self.sfont.render(str(self.player.treasures[treasure_key]),True,(0,0,0)))
             text_single_treasure_data.append(self.sfont.render(self.treasure_catalog[treasure_key].type,True,(0,0,0)))
-            text_single_treasure_data.append(self.sfont.render(self.treasure_catalog[treasure_key].desc,True,(0,0,0)))
+            text_single_treasure_data.append([])
+            desc_lines = self.linesplitter(self.treasure_catalog[treasure_key].desc,50)
+            [text_single_treasure_data[5].append(self.sfont.render(line,True,(0,0,0))) for line in desc_lines]
             text_all_treasure_data.append(text_single_treasure_data)
             
         text_all_treasure_data.sort()
                     self.surface.blit(text_quantity,(480,70))
                     self.surface.blit(text_all_treasure_data[menu_pos][3],(490,90))
                     self.surface.blit(text_desc,(480,110))
-                    self.surface.blit(text_all_treasure_data[menu_pos][5],(490,130))
+                    [self.surface.blit(line,(490,130+20*index)) for index,line in enumerate(text_all_treasure_data[menu_pos][5])]
                     
                 pygame.display.flip()
                 self.clock.tick(60)
         self.surface.blit(text_properties,(490,320))
         [self.surface.blit(property_text,(500,340+20*count)) for count,property_text in enumerate(text_selected_trait[14])]
      
+    def draw_treasure_data(self,treasure_key):
+
+        """
+        # Function name: draw_treasure_data
+        # Purpose: draws information about a single treasure
+        # Inputs: treasure_key - treasure id string
+        """
+    
+        text_treasure = self.engine.bfont.render("Treasure",True,(0,0,0))
+        text_desc = self.engine.bfont.render("Description",True,(0,0,0))
+        text_single_treasure_data = self.get_single_treasure_data(treasure_key)
+        # Renders currently selected treasure data
+        self.engine.surface.blit(text_single_treasure_data[0],(470,50))
+        self.engine.surface.blit(text_treasure,(470,70))
+        self.engine.surface.blit(text_desc,(480,110))
+        self.engine.surface.blit(text_single_treasure_data[1],(490,130))
+        
     def get_text_selected_trait(self,trait):
                     
         """

Story of a Lost Sky/data/XML/Missions/CH1ST2.xml

                 <speaker>None</speaker>
             </sub_action>
             <sub_action name="say">
-                <line>Acquired Treasure Item: Rain Tear!</line>
+                <line>Acquired Treasure Item: Wooden Statue!</line>
                 <speaker>None</speaker>
             </sub_action>
             
             <sub_action name="add_item">
                 <item_type>treasure</item_type>
-                <item_id>synth_water</item_id>
+                <item_id>000_statue</item_id>
                 <quantity>1</quantity>
             </sub_action>
         </map_action>

Story of a Lost Sky/data/XML/Missions/CH1ST3.xml

     </deploy_screen>
     
     <rewards>
-        <reward type="treasure">synth_wind</reward>
+        <reward type="treasure">broken_lantern</reward>
+        <reward type="treasure">synth_wood</reward>
         <reward type="treasure">synth_metal</reward>
     </rewards>
     

Story of a Lost Sky/data/XML/hints.xml

 <player_hints>
     <hint name="Spell Alignments">
-        <author>Hieda no Akyuu</author>
+        <author>Hieda no Akyu</author>
         <hint_text>The world of magic is one of balance and flow. It is written in the magic texts: "To create the basic world around us Nature gives rise to the Elements. The balanced arrangement of the Elements is where the Spirit of every creature comes from. The Spirit is used to imagine and materialize the Forces such as the swing of a sword. Force is a destructive power that provides Nature with the component of death and completes the cycle." Moving with the flow will increase the effectiveness of your magic.</hint_text>
     </hint>
     <hint name="Support and Action Traits">
-        <author>Hieda no Akyuu</author>
+        <author>Hieda no Akyu</author>
         <hint_text>Support traits are abilities that assist in the background. For instance, they might enhance the attack or gradually recover the health of a character. Action traits on the other hand are abilities that actively change the flow of battle. They are generally more powerful and can do things like allow a character to fly over any terrain and survive a knockout attack.</hint_text>
     </hint>
+    <hint name="Learning new Traits">
+        <author>Hieda no Akyu</author>
+        <hint_text>As units gain in level, they will also receive Trait Points. These trait points are used to buy new traits for the characters. Remember to periodically check in on the trait learning to see if some new traits are available. Some traits will only be available to certain types of characters or if a character has reached a certain level.</hint_text>
+    </hint>
+    <hint name="Treasures">
+        <author>Hieda no Akyu</author>
+		<prereq>CH1ST4</prereq>
+        <hint_text>Gensokyo is full of treasures and undiscovered artifacts sitting around waiting to be found. Be sure to check in odd places like roadside shrines or out of place trees.</hint_text>
+    </hint>
+    <hint name="Spell Synthesis">
+        <author>Patchouli Knowledge</author>
+		<prereq>CH1ST4</prereq>
+        <hint_text>I've recently discovered a new method of crafting spells. As any sorcerer knows, the basic five elements are Metal, Earth, Wood, Water, and Fire. From each crystal you can create a spells. My research is continuing into the ability to combine crystals for spells.</hint_text>
+    </hint>
     
         
 </player_hints>

Story of a Lost Sky/data/XML/spellcatalog.xml

         <!--SC Unlock Level-->
         <spirit_unlock>0.0</spirit_unlock>
         
-        <counterattack>False</counterattack>
+        <counterattack>True</counterattack>
         
         <give_status>
         	<type>Poison</type>

Story of a Lost Sky/data/XML/trading.xml

 <trading_list>
 
 	<!-- Ordinary trades go here -->
-    <trade name="Test Trade">
+    <trade name="Collectable Carvings">
 
 		<special_trade>False</special_trade>
         <id_string>trade_01</id_string>
-        <desc>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</desc>
+        <desc>I'm looking for some wooden statues that have been carved into the shapes of animals. They're rather magnificent since they actually date back to the time of the border. I'll trade some spell creation crystals for them.</desc>
         <repeatable>True</repeatable>
         <points>200</points>
         <item_wanted>
-            <item_id>synth_fire</item_id>
+            <item_id>000_statue</item_id>
+            <quantity>1</quantity>
+        </item_wanted>
+        <item_offered>
+            <item_id>synth_water</item_id>
+            <item_type>treasure</item_type>
+            <quantity>1</quantity>
+        </item_offered>
+        <item_offered>
+            <item_id>synth_wood</item_id>
+            <item_type>treasure</item_type>
+            <quantity>1</quantity>
+        </item_offered>
+        <item_offered>
+            <item_id>synth_metal</item_id>
+            <item_type>treasure</item_type>
+            <quantity>1</quantity>
+        </item_offered>
+    </trade>
+    <trade name="Sorcerer's Talisman">
+		<special_trade>False</special_trade>
+        <id_string>trade_02</id_string>
+        <desc>Long ago, it's said that there was a monster that lived in the woods to the northeast of the village. He was exorcised by being convinced to eat an offering that contained a magic talisman. I once owned the talisman that was said to have exorcised him, but it's been lost.</desc>
+        <prereq>CH1ST4</prereq>
+        <repeatable>False</repeatable>
+        <points>200</points>
+        <item_wanted>
+            <item_id>001_talisman</item_id>
             <quantity>1</quantity>
         </item_wanted>
         <item_offered>
             <quantity>2</quantity>
         </item_offered>
         <item_offered>
-            <item_id>Fried Tofu</item_id>
-            <item_type>spell_action</item_type>
-            <quantity>2</quantity>
-        </item_offered>
-    </trade>
-    <trade name="Test Trade 2">
-		<special_trade>False</special_trade>
-        <id_string>trade_02</id_string>
-        <desc>Description of this trade</desc>
-        <repeatable>False</repeatable>
-        <points>200</points>
-        <!--<item_wanted>
-            <item_id>synth_fire</item_id>
-            <quantity>1</quantity>
-        </item_wanted>-->
-        <item_wanted>
-            <item_id>synth_earth</item_id>
-            <quantity>1</quantity>
-        </item_wanted>
-        <item_offered>
-            <item_id>synth_water</item_id>
-            <item_type>treasure</item_type>
-            <quantity>10</quantity>
-        </item_offered>
-        <item_offered>
-            <item_id>Fireball</item_id>
+            <item_id>Medicinal Drop</item_id>
             <item_type>spell_action</item_type>
             <quantity>2</quantity>
         </item_offered>

Story of a Lost Sky/data/XML/treasure.xml

 <treasure_catalog>
 
+	<!-- Key Items -->
+    <item name="Broken Lantern">
+        <id_string>broken_lantern</id_string>
+        <type>Generic</type>
+        <desc>A broken lantern that belongs to Yuyuko Saigyouji. Used to attract ghosts to whoever is carrying it.</desc>
+    </item>
+
     <!-- Treasure Items -->
     <item name="Wooden Statue">
         <id_string>000_statue</id_string>

Story of a Lost Sky/srpg.py

 engine.enable_splash = True
 engine.enable_wm_tutorial = True
 engine.unlock_wm = False
+engine.unlock_shops = False  
 
 ############################
 # Main Program 

Story of a Lost Sky/worldmap_system/trading.py

                         if trade_performed:
                             self.update_available_trades()
                             all_trade_data = self.get_text_trade_data(self.engine.trading_catalog.ordinary_trades,self.available_trades)
+                            if menu_pos > len(all_trade_data)-1:
+                                menu_pos = len(all_trade_data)-1
+                            
                         
                     if event.key == K_x:
                         menu_flag = False

Story of a Lost Sky/worldmap_system/worldmap.py

         text_menu_header = self.engine.bfont.render("Main Menu",True,(0,0,0))
         text_party = self.engine.bfont.render("Party",True,(0,0,0))
         text_treasure = self.engine.bfont.render("Treasure",True,(0,0,0))
-        text_synthesis = self.engine.bfont.render("Spell Synthesis",True,(0,0,0))
-        text_trading = self.engine.bfont.render("Item Trading",True,(0,0,0))
+        if self.engine.unlock_shops or self.engine.check_event_completion(['CH1ST4']):
+            text_synthesis = self.engine.bfont.render("Spell Synthesis",True,(0,0,0))
+            text_trading = self.engine.bfont.render("Item Trading",True,(0,0,0))
+        else:
+            text_synthesis = self.engine.bfont.render("Spell Synthesis",True,(100,100,100))
+            text_trading = self.engine.bfont.render("Item Trading",True,(100,100,100))
+            
         text_mission = self.engine.bfont.render("Missions",True,(0,0,0))
         text_data = self.engine.bfont.render("Save / Load",True,(0,0,0))
         text_options = self.engine.bfont.render("Options",True,(0,0,0))
                             self.engine.treasure_menu()
                             
                         # Spell Synthesis menu
-                        elif menu_pos == 3:
+                        elif menu_pos == 3 and (self.engine.unlock_shops or self.engine.check_event_completion(['CH1ST4'])):
                             self.engine.spell_synthesis_system.spell_synthesis_menu()
                             
                         # Item Trading Menu
-                        elif menu_pos == 4:
+                        elif menu_pos == 4 and (self.engine.unlock_shops or self.engine.check_event_completion(['CH1ST4'])):
                             self.engine.trading_system.trading_menu()
                             
                         # Selects Save / Load Menu