public Boolean movePlayer(Character.Movement Move) { if (map.getHero().returnMove(Move) == Character.Movement.noMovement) { return(false); } else { int xPos = map.getHero().getX(); int yPos = map.getHero().getY(); if (Move == Character.Movement.Up) { if (map.getMap()[yPos - 1, xPos] is Gold) { map.getHero().PickUp((Gold)map.getMap()[yPos - 1, xPos]); map.getMap()[yPos - 1, xPos] = new EmptyTile(yPos - 1, xPos); map.pub_UpdateVision(); } } else if (Move == Character.Movement.Down) { if (map.getMap()[yPos + 1, xPos] is Gold) { map.getHero().PickUp((Gold)map.getMap()[yPos + 1, xPos]); map.getMap()[yPos + 1, xPos] = new EmptyTile(yPos + 1, xPos); map.pub_UpdateVision(); } } else if (Move == Character.Movement.Left) { if (map.getMap()[yPos, xPos - 1] is Gold) { map.getHero().PickUp((Gold)map.getMap()[yPos, xPos - 1]); map.getMap()[yPos, xPos - 1] = new EmptyTile(yPos, xPos - 1); map.pub_UpdateVision(); } } else if (Move == Character.Movement.Right) { if (map.getMap()[yPos, xPos + 1] is Gold) { map.getHero().PickUp((Gold)map.getMap()[yPos, xPos + 1]); map.getMap()[yPos, xPos + 1] = new EmptyTile(yPos, xPos + 1); map.pub_UpdateVision(); } } map.updateCharaterPosition(map.getHero(), Move); moveEnemies(); enemyAttacks(); return(true); } }
private void moveEnemies() { Enemy[] enemies = map.getEnemies(); for (int i = 0; i < enemies.Length; ++i) { Character.Movement direction = enemies[i].returnMove(Character.Movement.None); //None is just a placeholder map.updateCharaterPosition(enemies[i], direction); } }
private void moveEnemies() { Enemy[] enemies = map.getEnemies(); for (int i = 0; i < enemies.Length; ++i) { Character.Movement move = enemies[i].returnMove(Character.Movement.noMovement); map.updateCharaterPosition(enemies[i], move); } }
public bool MovePlayer(Character.Movement direction) { int x, y, tempx, tempy; x = this.localMap.hero.X; y = this.localMap.hero.Y; Character.Movement selectedMove = direction; switch (selectedMove) { case Movement.NoMovement: selectedMove = Movement.NoMovement; break; case Movement.Up: x = 0; y = -1; break; case Movement.Down: x = 0; y = 1; break; case Movement.Left: x = -1; y = 0; break; case Movement.Right: x = 1; y = 0; break; default: selectedMove = Movement.NoMovement; break; } // Check for valid move if (localMap.MapGrab[localMap.hero.X + x, localMap.hero.Y + y] is EmptyTile || localMap.GetItemAtPosition(localMap.hero.X + x, localMap.hero.Y + y) is Gold) { // Valid localMap.hero.Move(selectedMove); localMap.UpdateMap(); localMap.MapGrab[localMap.hero.X - x, localMap.hero.Y - y] = new EmptyTile(localMap.hero.X - x, localMap.hero.Y - y); return(true); } else { return(false); } }
public Boolean movePlayer(Character.Movement dir) { if (map.getHero().returnMove(dir) != Character.Movement.None) { map.updateCharaterPosition(map.getHero(), dir); moveEnemies(); return(true); } else { return(false); } }
public String HeroAttacks(Character.Movement Move) { Hero h = map.getHero(); Tile Target = new EmptyTile(0, 0); switch (Move) { case Character.Movement.Up: Target = map.getMap()[h.getY() - 1, h.getX()]; break; case Character.Movement.Down: Target = map.getMap()[h.getY() + 1, h.getX()]; break; case Character.Movement.Left: Target = map.getMap()[h.getY(), h.getX() - 1]; break; case Character.Movement.Right: Target = map.getMap()[h.getY(), h.getX() + 1]; break; } if (Target is Enemy) { h.Attack((Character)Target); Character c_Target = (Character)Target; if (c_Target.IsDead()) { map.removeTile(c_Target); } moveEnemies(); if (!c_Target.IsDead()) { return("1" + c_Target.ToString()); } else { return("The enemy is dead"); } } else { return("0"); } }
public String attackEnemy(Character.Movement dir) { Hero h = map.getHero(); Tile target = new EmptyTile(0, 0); // Set as an empty tile for placeholding switch (dir) { case Character.Movement.Up: target = map.getMap()[h.getY() - 1, h.getX()]; break; case Character.Movement.Down: target = map.getMap()[h.getY() + 1, h.getX()]; break; case Character.Movement.Left: target = map.getMap()[h.getY(), h.getX() - 1]; break; case Character.Movement.Right: target = map.getMap()[h.getY(), h.getX() + 1]; break; } if (target is Enemy) { h.attack((Character)target); Character c_target = (Character)target; if (c_target.isDead()) { map.removeFromMap(c_target); } moveEnemies(); if (!c_target.isDead()) { return("1" + c_target.ToString()); //Returning 1 infront of string indicates success } else { return("1The enemy is dead"); } } else { return("0"); //Returning 0 infront of string indicates failure } }
private void GamePlay_KeyUp(object sender, KeyEventArgs e) { if (!action_complete && (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down || e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)) { String response = ge.attackEnemy(ge.GetMap().getHero(), direction, 0, null); Boolean success = false; if (response[0] == '1') { success = true; } actionStatus("attack " + dir_text, success, response.Substring(1)); action_complete = true; direction = Character.Movement.None; } }
public void updateCharaterPosition(Tile character, Character.Movement direction) { Character c = (Character)map[character.getY(), character.getX()]; EmptyTile emp; switch (direction) { case Character.Movement.Up: emp = (EmptyTile)map[character.getY() - 1, character.getX()]; map[character.getY() - 1, character.getX()] = c; map[character.getY(), character.getX()] = emp; c.move(Character.Movement.Up); emp.setY(emp.getY() + 1); break; case Character.Movement.Down: emp = (EmptyTile)map[character.getY() + 1, character.getX()]; map[character.getY() + 1, character.getX()] = c; map[character.getY(), character.getX()] = emp; c.move(Character.Movement.Down); emp.setY(emp.getY() - 1); break; case Character.Movement.Left: emp = (EmptyTile)map[character.getY(), character.getX() - 1]; map[character.getY(), character.getX() - 1] = c; map[character.getY(), character.getX()] = emp; c.move(Character.Movement.Left); emp.setX(emp.getX() + 1); break; case Character.Movement.Right: emp = (EmptyTile)map[character.getY(), character.getX() + 1]; map[character.getY(), character.getX() + 1] = c; map[character.getY(), character.getX()] = emp; c.move(Character.Movement.Right); emp.setX(emp.getX() - 1); break; } this.updateVision(); }
public override Movement returnMove(Character.Movement direction) { int[] possible_moves = { 0, 1, 2, 3 }; Boolean move_found = false; Character.Movement dir = Character.Movement.None; while (!move_found) { dir = (Character.Movement)possible_moves[rnd.Next(0, possible_moves.Length)]; if (this.vision[(int)dir] is EmptyTile) { move_found = true; } else if (possible_moves.Length != 1) { int[] new_possible_moves = new int[possible_moves.Length - 1]; int index = 0; for (int i = 0; i < possible_moves.Length; ++i) { if (possible_moves[i] != (int)dir) { new_possible_moves[index] = possible_moves[i]; ++index; } } possible_moves = new_possible_moves; } else { dir = Character.Movement.None; move_found = true; } } return(dir); }
public bool MovePlayer(Character.Movement direction) { bool move = true; /*bool looted = false; * if (direction == Character.Movement.Nothing) * { * looted = false; * } * else * { * looted = true; * } * * if (looted == true) * { * * }*/ return(move); }
public bool MovePlayer(Character.Movement direction) { bool move = false; bool looted = false; if (direction == Character.Movement.Nothing) { looted = false; } else { looted = true; } if (looted == true) { } return(move); }
public bool moveplayer(Character.Movement direction) { if (Mooving.Moove == Character.Movement.Up) { return(true); } if (Mooving.Moove == Character.Movement.Down) { return(true); } if (Mooving.Moove == Character.Movement.Left) { return(true); } if (Mooving.Moove == Character.Movement.Right) { return(true); } return(false); }
public Boolean movePlayer(Character.Movement dir) { if (!map.getHero().isDead()) { if (map.getHero().returnMove(dir) != Character.Movement.None) { map.updateCharaterPosition(map.getHero(), dir); moveEnemies(); damage_taken = enemyAttacks(); //Enemies now attack after the player attacks return(true); } else { return(false); } } else { return(false); } }
public override Movement returnMove(Character.Movement move) { int[] possibleMoves = { 0, 1, 2, 3 }; Boolean moveFound = false; Character.Movement Direction = Character.Movement.noMovement; while (!moveFound) { Direction = (Character.Movement)possibleMoves[rndNum.Next(0, possibleMoves.Length)]; if (this.characterVision[(int)Direction] is EmptyTile) { moveFound = true; } else if (possibleMoves.Length != 1) { int[] newPossibleMoves = new int[possibleMoves.Length - 1]; int Counter = 0; for (int i = 0; i < possibleMoves.Length; ++i) { if (possibleMoves[i] != (int)Direction) { newPossibleMoves[Counter] = possibleMoves[i]; ++Counter; } } possibleMoves = newPossibleMoves; } else { Direction = Character.Movement.noMovement; moveFound = true; } } return(Direction); }
public String attackEnemy(Character h, Character.Movement dir, Tile t) { Tile target = new EmptyTile(0, 0); // Set as an empty tile for placeholding switch (dir) { case Character.Movement.Up: target = map.getMap()[h.getY() - 1, h.getX()]; break; case Character.Movement.Down: target = map.getMap()[h.getY() + 1, h.getX()]; break; case Character.Movement.Left: target = map.getMap()[h.getY(), h.getX() - 1]; break; case Character.Movement.Right: target = map.getMap()[h.getY(), h.getX() + 1]; break; default: target = t; break; } //Goblins only harm heroes //Mages harm the hero, goblins and other mages if ((h is Hero && target is Enemy && !h.isDead()) || (h is Goblin && target is Hero) || (h is Mage && target is Character)) { h.attack((Character)target); Character c_target = (Character)target; if (c_target.isDead()) { map.removeFromMap(c_target); } if (h is Hero) { //moveEnemies(); //Enemies no longer move after being attacked damage_taken = enemyAttacks(); //Enemies now attack after the player attacks if (!c_target.isDead()) { return("1" + c_target.ToString()); //Returning 1 infront of string indicates success } else { return("1The enemy is dead"); } } else if (c_target is Hero) { return("hero" + h.getDamage()); } else if (!c_target.isDead()) { return("enemy"); } else { return(""); } } else { return("0"); //Returning 0 infront of string indicates failure } }
public String attackEnemy(Character h, Character.Movement dir, int range, Tile t) { Tile target = new EmptyTile(0, 0); // Set as an empty tile for placeholding if (h is Hero && h.getWeapon() != null) { if ((range + 1) > h.getWeapon().getRange()) { return("0"); } } else if (h is Hero && h.getWeapon() == null) { if (range != 0) { return("0"); } } try { switch (dir) { case Character.Movement.Up: target = map.getMap()[h.getY() - 1 - range, h.getX()]; break; case Character.Movement.Down: target = map.getMap()[h.getY() + 1 + range, h.getX()]; break; case Character.Movement.Left: target = map.getMap()[h.getY(), h.getX() - 1 - range]; break; case Character.Movement.Right: target = map.getMap()[h.getY(), h.getX() + 1 + range]; break; default: target = t; break; } } catch (Exception e) { return("0"); } //Goblins only harm heroes //Mages harm the hero, goblins and other mages if ((h is Hero && target is Enemy && !h.isDead()) || (h is Goblin && target is Hero) || (h is Leader && target is Hero) || (h is Mage && target is Character)) { h.attack((Character)target); Character c_target = (Character)target; string loot = ""; if (c_target.isDead()) { loot = h.loot(c_target, h is Mage); map.removeFromMap(c_target); } if (h is Hero) { //moveEnemies(); //Enemies no longer move after being attacked damage_taken = enemyAttacks(); //Enemies now attack after the player attacks if (!c_target.isDead()) { return("1" + c_target.ToString()); //Returning 1 infront of string indicates success } else { return("1The enemy is dead" + loot); } } else if (c_target is Hero) { return("hero" + h.getDamage()); } else if (!c_target.isDead()) { return("enemy"); } else { return(""); } } else { return("0"); //Returning 0 infront of string indicates failure } }
public bool MovePlayer(Character.Movement direction) { bool move = false; return(move); }
public bool MovePlayer(Character.Movement direction) { return(true); }
public string HeroAttacks(Character h, Character.Movement dir, Tile t) { Tile target = new EmptyTile(0, 0); switch (dir) { case Character.Movement.Up: target = map.getMap()[h.getY() - 1, h.getX()]; break; case Character.Movement.Down: target = map.getMap()[h.getY() + 1, h.getX()]; break; case Character.Movement.Left: target = map.getMap()[h.getY(), h.getX() - 1]; break; case Character.Movement.Right: target = map.getMap()[h.getY(), h.getX() + 1]; break; default: target = t; break; } if ((h is Hero && target is Enemy && !h.IsDead()) || (h is Goblin && target is Hero) || (h is Mages && target is Character)) { h.Attack((Character)target); Character c_target = (Character)target; if (c_target.IsDead()) { map.removeTile(c_target); } if (h is Hero) { enemyAttacks(); if (!c_target.IsDead()) { return("1" + c_target.ToString()); } else { return("1The enemy is dead"); } } else { return(""); } } else { return("0"); } }
private void GamePlay_KeyDown(object sender, KeyEventArgs e) { actionstatusLabel.Text = ""; if (e.KeyCode == Keys.W) { actionStatus("move up", ge.movePlayer(Character.Movement.Up), ""); } else if (e.KeyCode == Keys.S) { actionStatus("move down", ge.movePlayer(Character.Movement.Down), ""); } else if (e.KeyCode == Keys.A) { if (direction == Character.Movement.None) { actionStatus("move left", ge.movePlayer(Character.Movement.Left), ""); } else { String response = ge.attackEnemy(ge.GetMap().getHero(), direction, 1, null); Boolean success = false; if (response[0] == '1') { success = true; } actionStatus("attack " + dir_text, success, response.Substring(1)); action_complete = true; direction = Character.Movement.None; } } else if (e.KeyCode == Keys.D) { if (direction == Character.Movement.None) { actionStatus("move right", ge.movePlayer(Character.Movement.Right), ""); } else { String response = ge.attackEnemy(ge.GetMap().getHero(), direction, 2, null); Boolean success = false; if (response[0] == '1') { success = true; } actionStatus("attack " + dir_text, success, response.Substring(1)); action_complete = true; direction = Character.Movement.None; } } else if (e.KeyCode == Keys.Space) { actionStatus("no move", ge.remainStill(), ""); } else if (e.KeyCode == Keys.Up) { this.action_complete = false; this.dir_text = "up"; this.direction = Character.Movement.Up; /* * String response = ge.attackEnemy(ge.GetMap().getHero(), Character.Movement.Up,null); * Boolean success = false; * if (response[0] == '1') * { * success = true; * } * actionStatus("attack up",success,response.Substring(1)); */ } else if (e.KeyCode == Keys.Down) { this.action_complete = false; this.dir_text = "down"; this.direction = Character.Movement.Down; /* * String response = ge.attackEnemy(ge.GetMap().getHero(), Character.Movement.Down,null); * Boolean success = false; * if (response[0] == '1') * { * success = true; * } * actionStatus("attack down", success, response.Substring(1)); */ } else if (e.KeyCode == Keys.Left) { this.action_complete = false; this.dir_text = "left"; this.direction = Character.Movement.Left; /* * String response = ge.attackEnemy(ge.GetMap().getHero(), Character.Movement.Left,null); * Boolean success = false; * if (response[0] == '1') * { * success = true; * } * actionStatus("attack left", success, response.Substring(1)); */ } else if (e.KeyCode == Keys.Right) { this.action_complete = false; this.dir_text = "right"; this.direction = Character.Movement.Right; /* * String response = ge.attackEnemy(ge.GetMap().getHero(),Character.Movement.Right,null); * Boolean success = false; * if (response[0] == '1') * { * success = true; * } * actionStatus("attack right", success, response.Substring(1)); */ } else if (e.KeyCode == Keys.L) { if (ge.GetMap().getHero().isDead()) { if (si != null) { si.Dispose(); } caller.resetAfterDeath(); this.Dispose(); } } else if (e.KeyCode == Keys.Escape) // save and exit { ge.saveGame(); caller.Show(); this.Dispose(); } else if (e.KeyCode == Keys.Enter) // save only { if (ge.saveGame()) { actionstatusLabel.ForeColor = Color.Orange; actionstatusLabel.Text = "Save successful!"; } else { actionstatusLabel.ForeColor = Color.Red; actionstatusLabel.Text = "Unable to save."; } } else if (e.KeyCode == Keys.P) { if (si == null) { si = new ShopInterface(ge.getShop()); si.setCaller(this); si.Show(); } } }
public void updateCharaterPosition(Tile character, Character.Movement direction) { Character c = (Character)map[character.getY(), character.getX()]; EmptyTile emp; Tile at_position = null; switch (direction) { case Character.Movement.Up: at_position = this.getItemAtPosition(character.getY() - 1, character.getX()); if (c is Hero && at_position != null) { c.pickUp((Item)at_position); } emp = (EmptyTile)map[character.getY() - 1, character.getX()]; map[character.getY() - 1, character.getX()] = c; map[character.getY(), character.getX()] = emp; c.move(Character.Movement.Up); emp.setY(emp.getY() + 1); break; case Character.Movement.Down: at_position = this.getItemAtPosition(character.getY() + 1, character.getX()); if (c is Hero && at_position != null) { c.pickUp((Item)at_position); } emp = (EmptyTile)map[character.getY() + 1, character.getX()]; map[character.getY() + 1, character.getX()] = c; map[character.getY(), character.getX()] = emp; c.move(Character.Movement.Down); emp.setY(emp.getY() - 1); break; case Character.Movement.Left: at_position = this.getItemAtPosition(character.getY(), character.getX() - 1); if (c is Hero && at_position != null) { c.pickUp((Item)at_position); } emp = (EmptyTile)map[character.getY(), character.getX() - 1]; map[character.getY(), character.getX() - 1] = c; map[character.getY(), character.getX()] = emp; c.move(Character.Movement.Left); emp.setX(emp.getX() + 1); break; case Character.Movement.Right: at_position = this.getItemAtPosition(character.getY(), character.getX() + 1); if (c is Hero && at_position != null) { c.pickUp((Item)at_position); } emp = (EmptyTile)map[character.getY(), character.getX() + 1]; map[character.getY(), character.getX() + 1] = c; map[character.getY(), character.getX()] = emp; c.move(Character.Movement.Right); emp.setX(emp.getX() - 1); break; } this.updateVision(); }