home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 56 / CDPowerplay56Disc2.iso / demos / blade / data1.cab / Program_Executable_Files / Lib / LevelFuncs.py < prev    next >
Encoding:
Python Source  |  2000-10-27  |  1.7 KB  |  36 lines

  1. ################################################################################
  2. # LevelFuncs.py                                                                #
  3. ################################################################################
  4. import Bladex
  5. import CharStats
  6.  
  7. class EnemyLevelControl:
  8.     """Enemy Level Control Class \
  9.     Used for adjusting enemy levels, based on how well the player is doing \
  10.     against designer expectations for this map.  Normally to be instantiated \
  11.     during map creation, all further enemies created can have their level \
  12.     adjusted according to how well the player was doing in the moment of the \
  13.     control creation.  Syntax for creation is: \
  14.         lvl_control= LevelFuncs.EnemyLevelControl (expected_player_lvl_min, expected_player_lvl_max) \
  15.     then later replace calls like... \
  16.         enemy.Level= 9 \
  17.     with \
  18.         enemy.Level= lvl_control.GiveLevel (8, 10) \
  19.     """
  20.     
  21.     progression_factor= 0.0
  22.          
  23.     def __init__(self, expected_player_lvl_min, expected_player_lvl_max):        
  24.         player= Bladex.GetEntity ("Player1")
  25.         try:
  26.             LevelLimit= 1.0*CharStats.GetCharExperienceCost(player.CharType, player.Level)
  27.             adjusted_player_lvl= player.Level + player.PartialLevel/LevelLimit
  28.             adjusted_player_lvl= max (adjusted_player_lvl, 1.0*expected_player_lvl_min)
  29.             adjusted_player_lvl= min (adjusted_player_lvl, 1.0*expected_player_lvl_max)
  30.             self.progression_factor= (adjusted_player_lvl-expected_player_lvl_min) / (expected_player_lvl_max-expected_player_lvl_min)
  31.         except:
  32.             print "!!!Error!!! initializing EnemyLevelControl.  Probable cause: Player1 not accessible"
  33.  
  34.     def GiveLevel (self, enemy_lvl_min, enemy_lvl_max):
  35.         return round ((enemy_lvl_max-enemy_lvl_min)*self.progression_factor+enemy_lvl_min)
  36.