private void AnimationEvent(object sender, object e) { if (IsAnotherPage) { return; } PosY = Canvas.GetTop(Person1); //Armazena a posição Y do personagem em uma variavel PosX = Canvas.GetLeft(Person1); //Armazena a posição X do personagem em uma variavel if (ControllerGame.IsMovimentAllowed(Player, Person1, LockedChests, Enemies, Collision, Keys)) { if (YSpeed < 0 && PosY > 115 * HeightRatio) //Movimento, checagem e animação para cima { ControllerGame.MovePlayer(Person1, 0, YSpeed); ControllerGame.PaintAnimation(Person1, Player, Right, Left, Up, Down); } if (YSpeed > 0 && PosY < 455 * HeightRatio) //Movimento, checagem e animação para baixo { ControllerGame.MovePlayer(Person1, 0, YSpeed); ControllerGame.PaintAnimation(Person1, Player, Right, Left, Up, Down); } if (XSpeed < 0 && PosX > 60 * WidthRatio) //Movimento, checagem e animação para esquerda { ControllerGame.MovePlayer(Person1, XSpeed, 0); ControllerGame.PaintAnimation(Person1, Player, Right, Left, Up, Down); } if (XSpeed > 0 && PosX < 690 * WidthRatio) //Movimento, checagem e animação para direita { ControllerGame.MovePlayer(Person1, XSpeed, 0); ControllerGame.PaintAnimation(Person1, Player, Right, Left, Up, Down); } } //Checa se o player está na frente do bau, para poder lootear else if (ControllerGame.CheckListCollision(Player, Person1, LockedChests)) { foreach (Image Hit in LockedChests) { if (ControllerGame.Collision(Person1, Hit) == "Bottom") { if (!ChestControl.isOpen) { ControllerGame.LootVault(Player, ChestControl, qt_lifePot, qt_manaPot, ListInvetoryImage); open_chest.Source = new BitmapImage(new Uri(@"ms-appx:///Assets/open_chest3.png")); } } } } if (ControllerGame.CheckCollision(Player, Person1, Enemies.Find(x => x.Name == "OpenedChest")) && !Mimic.IsDead()) { if (MobAndChar.Count >= 2) { MobAndChar.RemoveAt(MobAndChar.Count - 1); } StoreChars(Mimic as Mob); IsAnotherPage = true; this.Frame.Navigate(typeof(BattleScreen), MobAndChar); } if (ControllerGame.CheckCollision(Player, Person1, Enemies.Find(x => x.Name == "Salamander")) && !Salamander_.IsDead()) { if (MobAndChar.Count >= 2) { MobAndChar.RemoveAt(MobAndChar.Count - 1); } StoreChars(Salamander_ as Mob); IsAnotherPage = true; this.Frame.Navigate(typeof(BattleScreen), MobAndChar); } //Checar se o personagem encontra o Pabblo if (ControllerGame.CheckCollision(Player, Person1, Enemies.Find(x => x.Name == "FirstRat")) && !Mouse.IsDead()) { if (MobAndChar.Count >= 2) { MobAndChar.RemoveAt(MobAndChar.Count - 1); } StoreChars(Mouse as Mob); IsAnotherPage = true; this.Frame.Navigate(typeof(BattleScreen), MobAndChar); } if (ControllerGame.CheckCollision(Player, Person1, Enemies.Find(x => x.Name == "SecondRat")) && !SecondMouse.IsDead()) { if (MobAndChar.Count >= 2) { MobAndChar.RemoveAt(MobAndChar.Count - 1); } StoreChars(SecondMouse as Mob); IsAnotherPage = true; this.Frame.Navigate(typeof(BattleScreen), MobAndChar); } else if (ControllerGame.CheckCollision(Player, Person1, Collision.Find(x => x.Name == "MapExit"))) { this.Frame.Navigate(typeof(Map), Player); } else if ((ControllerGame.CheckCollision(Player, Person1, Collision.Find(x => x.Name == "MapExit1")) || ControllerGame.CheckCollision(Player, Person1, Collision.Find(x => x.Name == "MapExit2"))) && Mouse.IsDead() && SecondMouse.IsDead() && Salamander_.IsDead()) { if (MobAndChar.Count >= 2) { MobAndChar.RemoveAt(MobAndChar.Count - 1); } StoreChars(PablloVittar as Mob); IsAnotherPage = true; this.Frame.Navigate(typeof(BattleScreen), MobAndChar); } }
//Método que trata toda a animação, movimento e colisão do jogo private void AnimationEvent(object sender, object e) { if (IsAnotherPage) { return; } PosY = Canvas.GetTop(Person1); //Armazena a posição Y do personagem em uma variavel PosX = Canvas.GetLeft(Person1); //Armazena a posição X do personagem em uma variavel if (ControllerGame.IsMovimentAllowed(Player, Person1, LockedChests, Enemies, Collision, DroppedKeys)) { if (YSpeed < 0 && PosY > 115 * HeightRatio) //Movimento, checagem e animação para cima { ControllerGame.MovePlayer(Person1, 0, YSpeed); ControllerGame.PaintAnimation(Person1, Player, Right, Left, Up, Down); } if (YSpeed > 0 && PosY < 455 * HeightRatio) //Movimento, checagem e animação para baixo { ControllerGame.MovePlayer(Person1, 0, YSpeed); ControllerGame.PaintAnimation(Person1, Player, Right, Left, Up, Down); } if (XSpeed < 0 && PosX > 60 * WidthRatio) //Movimento, checagem e animação para esquerda { ControllerGame.MovePlayer(Person1, XSpeed, 0); ControllerGame.PaintAnimation(Person1, Player, Right, Left, Up, Down); } if (XSpeed > 0 && PosX < 690 * WidthRatio) //Movimento, checagem e animação para direita { ControllerGame.MovePlayer(Person1, XSpeed, 0); ControllerGame.PaintAnimation(Person1, Player, Right, Left, Up, Down); } } //Checa se o player está na frente do bau, para poder lootear else if (ControllerGame.CheckListCollision(Player, Person1, LockedChests)) { foreach (Image Hit in LockedChests) { if (ControllerGame.Collision(Person1, Hit) == "Bottom") { if (!ChestControl.isOpen) { ControllerGame.LootVault(Player, ChestControl, qt_lifePot, qt_manaPot, ListInvetoryImage); open_chest.Source = new BitmapImage(new Uri(@"ms-appx:///Assets/open_chest3.png")); } } } } else if (ControllerGame.CheckListCollision(Player, Person1, DroppedKeys)) { foreach (Image Hit in DroppedKeys) { _Canvas.Children.Remove(FirstMapKey); //Key _Key = new Key(); //Player.inventory.Add_Item(_Key, Player); } DroppedKeys.Clear(); } //Checar se o personagem encontra o Ninja if (ControllerGame.CheckCollision(Player, Person1, Enemies.Find(x => x.Name == "NinjaIMG")) && !Ninja.IsDead()) { if (MobAndChar.Count >= 2) { MobAndChar.RemoveAt(MobAndChar.Count - 1); } StoreChars(Ninja as Mob); IsAnotherPage = true; this.Frame.Navigate(typeof(BattleScreen), MobAndChar); } //Checar se o personagem encontra o Pabblo if (ControllerGame.CheckCollision(Player, Person1, Enemies.Find(x => x.Name == "PabbloVitarIMG")) && !Ninja2.IsDead()) { if (MobAndChar.Count >= 2) { MobAndChar.RemoveAt(MobAndChar.Count - 1); } StoreChars(Ninja2 as Mob); IsAnotherPage = true; this.Frame.Navigate(typeof(BattleScreen), MobAndChar); } else if (ControllerGame.CheckCollision(Player, Person1, Collision.Find(x => x.Name == "MapExit"))) { if (/*Ninja.IsDead() && PablloVittar.IsDead())*/ true) { IsAnotherPage = true; this.Frame.Navigate(typeof(Map2), Player); } } }