Example #1
0
    def __call__(self, args):
        """
      resolves combat based on a physical attack

      calculate the terminal velocity of the attack (the speed at the point of the impact)
      calculate the kinetic energy of the weapon given the speed

      actor
      ability:
      target:  
    """
        if not args['actor'].target.alive: return False
        print 'attack %(target)s' % {'target': args['actor'].target}
        from dungeon.dungeonmaster import DungeonMaster
        dm = DungeonMaster(args['stage'])

        attack_time = 0.5  #for now, all attacks are heavy

        #calculate terminal velocity (speed) weapon travels from rest
        weapon_speed = args['actor'].strength * (
            1 / args['actor'].weapon.mass) * attack_time
        #calculate distance weapon travels given
        weapon_dist = (1.0 / 2.0) * weapon_speed * attack_time
        #calculate kinetic energy of weapon
        weapon_kenergy = (1.0 / 2.0) * pow(weapon_speed,
                                           2) * args['actor'].weapon.mass

        print 'Weapon Speed: %(ws)s' % {'ws': weapon_speed}
        print 'Weapon Distance: %(wd)s' % {'wd': weapon_dist}
        print 'Weapon Kinetic Energy: %(ke)s' % {'ke': weapon_kenergy}

        #calculate
        target_dist = (1.0 / 2.0) * args['target'].agility * (
            1.0 / args['target']._mass) * attack_time * attack_time
        tweapon_speed = args['target'].strength * (
            1 / args['actor'].weapon.mass) * attack_time
        print 'Target Speed: %(ts)s' % {'ts': target_dist}

        #=============================================================================================
        #hit automatically, cause a wound
        args['target'].health -= weapon_kenergy
        if args['target'].health <= 0:
            print 'target death'
        print 'hit! target health: %(th)s' % {'th': args['target'].health}
        dm.foo(args['target'])
Example #2
0
  def __call__(self,args):
    """
      resolves combat based on a physical attack

      calculate the terminal velocity of the attack (the speed at the point of the impact)
      calculate the kinetic energy of the weapon given the speed

      actor
      ability:
      target:  
    """
    if not args['actor'].target.alive: return False
    print 'attack %(target)s' % { 'target': args['actor'].target }
    from dungeon.dungeonmaster import DungeonMaster
    dm = DungeonMaster( args['stage'] )

    attack_time = 0.5 #for now, all attacks are heavy
    
      #calculate terminal velocity (speed) weapon travels from rest
    weapon_speed   = args['actor'].strength * ( 1 / args['actor'].weapon.mass  ) * attack_time
      #calculate distance weapon travels given
    weapon_dist    = (1.0/ 2.0 ) * weapon_speed * attack_time
      #calculate kinetic energy of weapon
    weapon_kenergy = (1.0/2.0) * pow(weapon_speed,2) * args['actor'].weapon.mass 

    print 'Weapon Speed: %(ws)s' % {'ws':weapon_speed}
    print 'Weapon Distance: %(wd)s' % { 'wd':weapon_dist}
    print 'Weapon Kinetic Energy: %(ke)s' % {'ke': weapon_kenergy}

      #calculate 
    target_dist=(1.0/2.0)*args['target'].agility*(1.0/args['target']._mass)*attack_time*attack_time
    tweapon_speed=args['target'].strength*( 1 / args['actor'].weapon.mass  ) * attack_time
    print 'Target Speed: %(ts)s' % {'ts': target_dist}
    
    #=============================================================================================
      #hit automatically, cause a wound
    args['target'].health -= weapon_kenergy
    if args['target'].health <= 0:
      print 'target death'
    print 'hit! target health: %(th)s' % {'th': args['target'].health }
    dm.foo( args['target'] )
Example #3
0
from dungeon.dungeongenerator import DungeonGenerator
from dungeon.dungeonmaster import DungeonMaster
#=================================================================================================
from character.effect import Effect

import os

dg = DungeonGenerator(10,64)
dungeon = dg.generate()

decorator = DungeonDecorator()
pc = decorator.decorate(dungeon)
controller = Controller( pc )
selection = controller._selection

dungeonmaster = DungeonMaster(dungeon)

b = Character("Hardeep", 
              "/home/lorin/projects/ge/art/planetcute/Character Boy.png",
              None,
              [])

def drw():
  pcloc= dungeon.loc( pc )
  dungeonmaster.update()
  dungeon.draw( pcloc )
  selection.draw()
  pos = actor.Vertex()
def drwsel():
  pcloc = dungeon.loc( pc )
  dungeon.draw( pcloc, True )
Example #4
0
#screen =  pygame.Surface( size )#pygame.display.set_mode(size)

#
clock = pygame.time.Clock()

#
gfx = Graphics()
dg = DungeonGenerator(10,64)
dungeon = dg.generate()

#
decorator = DungeonDecorator()
pc = decorator.decorate(dungeon)
selection = pc.controller.selection

dungeonmaster = DungeonMaster(dungeon)

print "character list len %(num)i"%{'num': len(dungeon.characters)}

#
update_list = list() #every frame, items in this list are updated and blitted to screen

#=================================================================================================
guisys = GuiSystem()
#=================================================================================================

#=================================================================================================
import os
path = os.path.join('home', '*.fasta') 
print path
Example #5
0
#screen =  pygame.Surface( size )#pygame.display.set_mode(size)

#
clock = pygame.time.Clock()

#
gfx = Graphics()
dg = DungeonGenerator(10, 64)
dungeon = dg.generate()

#
decorator = DungeonDecorator()
pc = decorator.decorate(dungeon)
selection = pc.controller.selection

dungeonmaster = DungeonMaster(dungeon)

print "character list len %(num)i" % {'num': len(dungeon.characters)}

#
update_list = list(
)  #every frame, items in this list are updated and blitted to screen

#=================================================================================================
guisys = GuiSystem()
#=================================================================================================

#=================================================================================================
import os
path = os.path.join('home', '*.fasta')
print path