public void close() //útok na blízko { if (interact.overlap(c.wpRect, c.enRect)) { // zde se bude využívat třídy int dmg = pl.Strenght + pl.Weapon.strenght; c.en_hp.Value -= dmg; c.enemy.HP -= dmg; interact.Hit(dmg, c.enemyControl); if (c.enemy.HP <= 0) { c.p.LVL++; c.p.won = true; interact.FightEnded(); } interact.fadeInOut(c.enTakenDmg); } //může zničit projektil nepřítele if (interact.overlap(c.wpRect, c.enPrRect)) { EnemyAttack ea = new EnemyAttack(new Zombie()); ea.endpProjectileMovement(); } }
private void projectileMovementFc(object sender, EventArgs e) // funkce posouvající projektil a detekojícístřet { //MessageBoxResult result = MessageBox.Show(loop.ToString()); plPrRect = interact.ConvertToRect(plProjectiles[i]); var enPrRect = c.enPrRect; var enRect = c.enRect; if (!firedFromRight) { Canvas.SetLeft(plProjectiles[i], firingL + 50 + loop * 8); } else { Canvas.SetLeft(plProjectiles[i], firingL - loop * 8); } //pokud dosáhl konce canvasu if (Convert.ToInt32(Math.Floor(c.fight_canvas.ActualWidth)) < (plPrRect.Left + 20) || (plPrRect.Left + 50 < 0)) { endpProjectileMovement(); } //pokud trefil nepřítele if (interact.overlap(plPrRect, enRect)) { int dmg = c.p.Strenght + c.p.RangedWeapon.strenght; c.en_hp.Value -= dmg; // projectile damage c.enemy.HP -= dmg; interact.Hit(dmg, c.enemyControl); endpProjectileMovement(); interact.fadeInOut(c.enTakenDmg); if (c.enemy.HP <= 0) { c.p.LVL++; c.p.won = true; interact.FightEnded(); } } //pokud se setkal s projektilem nepřítele = může zničit projektil nepřítele if (c.fight_canvas.Children.Contains(c.enemyProjectile)) { if (interact.overlap(plPrRect, enPrRect)) { endpProjectileMovement(); EnemyAttack ea = new EnemyAttack(new Zombie()); ea.endpProjectileMovement(); } } loop++; // na začátku aby nemělo 0 hodnotu - v plPrRect = interact.ConvertToRect(plProjectiles[i]); }
// spuštění automatiického útoku public void autoAttack() { if (interact.overlap(plRect, enRect)) { fightTimer.Start(); } else { fightTimer.Stop(); } }
public void projectileMovementFc() // posouvá střelu { loop++; // na začátku aby nemělo 0 hodnotu - všechny loopy if (!firedFromRight) { Canvas.SetLeft(enemyProjectile, enFiringL + 50 + loop * 9); } else { Canvas.SetLeft(enemyProjectile, enFiringL - loop * 9); } if (Convert.ToInt32(Math.Floor(fight_canvas.ActualWidth)) < (Convert.ToInt32(Canvas.GetLeft(enemyProjectile)) + 20) || (Convert.ToInt32(Canvas.GetLeft(enemyProjectile)) + 50 < 0)) { endpProjectileMovement(); } if (interact.overlap(c.enPrRect, c.plRect)) { int dmg = 1; if (c.p.shieldActive) { dmg = Convert.ToInt32(c.enemy.rangedDmg() * (100 - c.p.Shield.armor) / 100); } else { dmg = c.enemy.rangedDmg(); } c.hp.Value -= dmg; // projectile damage c.p.HP -= dmg; interact.Hit(dmg, c.playerControl); endpProjectileMovement(); interact.fadeInOut(c.plTakenDmg); if (c.p.HP <= 0) { interact.FightEnded(); } } c.enPrRect = interact.ConvertToRect(enemyProjectile); }