1. package game.logics.actors.enemies
  2. {
  3. import com.soybeansoft.display.blit.helpers.RectTilesRenderer;
  4. import com.soybeansoft.util.MathUtil;
  5. import com.soybeansoft.util.RectTiles;
  6. import flash.geom.Point;
  7. import flash.geom.Rectangle;
  8. import game.Config;
  9. import game.logics.actions.MoveTo;
  10. import game.logics.actions.Parallel;
  11. import game.logics.actions.Shoot;
  12. import game.logics.actors.Enemy;
  13. import game.logics.EnemyPattern;
  14. import game.logics.ObjectFactory;
  15. import game.logics.Weapon;
  16. import game.logics.weapons.Enemy01Weapon;
  17.  
  18. /**
  19. * ...
  20. * @author Guntur Sarwohadi
  21. */
  22. public class Enemy01 extends Enemy
  23. {
  24. private var tick:int = 0;
  25.  
  26. public function Enemy01(position:Point, weapon:Weapon, patterns:EnemyPattern, factory:ObjectFactory)
  27. {
  28. super(position, weapon, patterns, factory);
  29.  
  30. speed = 4;
  31. health = 50;
  32. }
  33.  
  34. override public function shoot():void
  35. {
  36. weapon.shoot(new Point(position.x, position.y), MathUtil.rangedArray(0, 350, 10));
  37. }
  38.  
  39. override protected function build():void
  40. {
  41. assetName = Config.ASSET_ENEMY01;
  42. hit.width = hit.height = 32;
  43. hit.x = hit.y = -16;
  44.  
  45. face = new RectTiles(new Rectangle(0, 0, 64, 64), 64, 64);
  46. faceHit = new RectTiles(new Rectangle(0, 64, 64, 64), 64, 64);
  47.  
  48. face.delay = faceHit.delay = 2;
  49.  
  50. facePos = new Point( -32, -32);
  51. renderHelper = new RectTilesRenderer(assetName, face, facePos, position);
  52. }
  53.  
  54. }
  55.  
  56. }