void onTab(Cursor cursor) { if (!Enabled) return; Entity e = layer.Entities.EntityAt(cursor.Location); if (e != null && layer.Entities.CurrentGroup == Group && e.Group == Group) { e.EndPhase(); if (e == selectedEntity) squarePoints.Clear(); } }
void onSelect(Cursor cursor) { if (layer.Entities.CurrentGroup != Group || !Enabled) return; Entity e = layer.Entities.EntityAt(cursor.Location); if (cursor.SelectedEntity != null) { switch (cursor.SelectedEntity.Phase) { case Phase.Move: if (!cursor.SelectedEntity.Moving && cursor.SelectedEntity.CanMoveTo(cursor.Location)) { cursor.SelectedEntity.MoveTo(cursor.Location); cursor.SelectedEntity.EndPhase(); squarePoints.Clear(); } break; case Phase.Attack: if (cursor.SelectedEntity.CanAttack(cursor.Location)) { cursor.SelectedEntity.Attack(layer.Entities.EntityAt(cursor.Location)); cursor.SelectedEntity.EndPhase(); squarePoints.Clear(); } break; case Phase.Finished: break; } cursor.SelectedEntity = null; } else if (e != null && e.Group == Group && e.Phase != Phase.Finished) { cursor.SelectedEntity = e; squarePoints.Clear(); } }
void onExit(Cursor cursor) { if (Enabled) { cursor.SelectedEntity = null; squarePoints.Clear(); } }
void onOpen(Cursor cursor) { if (Enabled && selectedEntity == null) { Entity e = layer.Entities.EntityAt(cursor.Location); if (e != null && e.Group == Group && e.Phase != Phase.Finished) { if (e.Moving || e.Attacking) return; Enabled = false; e.InvMode = true; selectedEntity = e; } } }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { ScreenHelper.Initialize(GraphicsDevice, graphics); ScreenHelper.Camera = new Camera(new Vector2(ScreenHelper.Viewport.Width, ScreenHelper.Viewport.Height), null); // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // TODO: use this.Content to load your game content here layer = TileLayer.FromFile(Content, "layer.txt"); layer.Entities.BloodTexture = Content.Load<Texture2D>("Sprites/Blood"); layer.Entities.HealingTexture = Content.Load<Texture2D>("Sprites/Healing"); Texture2D cursorTexture = Content.Load<Texture2D>("UI/Cursor_1"); Texture2D arrowTexture = Content.Load<Texture2D>("UI/Arrows"); Texture2D overlayTexture = Content.Load<Texture2D>("UI/Tile Overlays"); Texture2D rogue = Content.Load<Texture2D>("Sprites/Rogue"); Texture2D knight = Content.Load<Texture2D>("Sprites/Knight"); Texture2D priest = Content.Load<Texture2D>("Sprites/Priest"); Texture2D iconTexture = Content.Load<Texture2D>("UI/Phase Icons"); Texture2D healthbarTexture = Content.Load<Texture2D>("UI/Health Bar"); SpriteFont font = Content.Load<SpriteFont>("Fonts/Font1"); ScreenHelper.Font = font; cursor = new Cursor(layer, cursorTexture, arrowTexture, overlayTexture, TimeSpan.FromSeconds(0.1), new Point(20, 20), "Player"); entity = new Entity("", "Enemy", "Healer", 20, 5, 1, layer, new Point(15, 17), priest, iconTexture, healthbarTexture); Weapon w = new Weapon("Healing", "Enemy", 3.0, 1, 1, true); entity.Items.Add(w); entity.EquippedWeapon = w; layer.Entities.Add(entity); entity = new Entity("", "Enemy", "Default", 20, 5, 3, layer, new Point(22, 20), knight, iconTexture, healthbarTexture); entity.EquippedWeapon = Item.FromFile("Sword.txt", "Enemy") as Weapon; layer.Entities.Add(entity); entity = new Entity("", "Enemy", "Default", 20, 5, 3, layer, new Point(15, 16), knight, iconTexture, healthbarTexture); entity.EquippedWeapon = new Weapon("Sword", "Enemy", 2.0, 1, 1); layer.Entities.Add(entity); layer.Pathfind = new Pathfinder(layer); }