Example #1
0
        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();
            }
        }
Example #2
0
        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]);
        }
        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);
        }
        // passivní útok nepřítele
        private void fightTimer_Tick(object sender, EventArgs e)
        {
            int dmg = 1;

            if (p.shieldActive)
            {
                dmg = Convert.ToInt32(enemy.closeDmg() * (100 - p.Shield.armor) / 100);
            }
            else
            {
                dmg = enemy.closeDmg();
            }
            interact.fadeInOut(plTakenDmg);
            hp.Value -= dmg;
            p.HP     -= dmg;
            interact.Hit(dmg, playerControl);
            if (p.HP <= 0)
            {
                interact.FightEnded();
            }
        }