Klasa Zwierzę, reprezentująca zwierzę bojowe
예제 #1
0
        /// <summary>
        /// Funkcja ataku magicznego, jest prawie analogiczna do funkcji
        /// Gryzienia, ale ma o wiele większą moc
        /// </summary>
        /// <param name="z">Cel ataku</param>
        public void AtakujMagicznie(Zwierzę z)
        {
            if (this.Mana > 0)
            {
                // tworzenie generatora liczb losowych
                Random r = new Random();

                // losuje liczbę z zakresu od 0 do maksymalnego ataku obecnego obiektu
                var moc = r.Next(this.Damage * 100);
                this.Mana = this.Mana - 1;

                // zwierzęciu przekazanemu jako parametr odejmuje od punktów HP tyle, ile wyniosła moc ataku
                z.HP = z.HP - moc;
            }
        }
        /// <summary>
        /// Funkcja ataku magicznego, jest prawie analogiczna do funkcji
        /// Gryzienia, ale ma o wiele większą moc
        /// </summary>
        /// <param name="z">Cel ataku magicznego</param>
        /// <exception cref="NoManaException">Rzucane jeśli nie ma many</exception>
        public void AtakujMagicznie(Zwierzę z)
        {
            if (this.Mana > 0)
            {
                // tworzenie generatora liczb losowych
                Random r = new Random();

                // losuje liczbę z zakresu od 0 do maksymalnego ataku obecnego obiektu
                var moc = r.Next(this.Damage * 100);
                this.Mana = this.Mana - 1;

                // zwierzęciu przekazanemu jako parametr odejmuje od punktów HP tyle, ile wyniosła moc ataku
                z.HP = z.HP - moc;
            }
            else
                // w sytuacji, gdy próbuje się wywołać tę metodę, ale mana wynosi
                // 0, rzucany jest wyjątek NoManaException
                throw new NoManaException();
        }
예제 #3
0
 /// <summary>
 /// Ta funkcja atakuje inne zwierzę - podawane jest jako parametr wykonania tej funkcji.
 /// </summary>
 /// <param name="z">Zwierzę do zaatakowania</param>
 public virtual void Gryź(Zwierzę z)
 {
     Random r = new Random();
     if (r.Next(5) >= z.Agility)
     {
         var moc = r.Next(this.Damage);
         z.HP = z.HP - moc;
     }
 }
예제 #4
0
        /// <summary>
        /// Ta funkcja atakuje inne zwierzę - podawane jest jako parametr wykonania tej funkcji.
        /// </summary>
        /// <param name="z">Zwierzę do zaatakowania</param>
        public virtual void Gryź(Zwierzę z)
        {
            // tworzenie generatora liczb losowych
            Random r = new Random();

            // losuje liczbę z zakresu od 0 do maksymalnego ataku obecnego obiektu
            var moc = r.Next(this.Damage);

            // gryzienie powodzi się tylko w sytuacji, kiedy uda nam się wylosować liczbę
            // powyżej wartości zwinności celu
            if (r.NextDouble() * 10 > z.Agility)
                z.HP = z.HP - moc;
        }
예제 #5
0
        /// <summary>
        /// Własna implementacja dla ataku - atakują przeciwnika wszystkie chomiki
        /// </summary>
        /// <param name="z">Przeciwnik do zaatakowania</param>
        public override void Gryź(Zwierzę z)
        {
            Random r = new Random();

            foreach (var c in chomiki)
            {
                if (r.Next(5) >= z.Agility)
                {
                    var moc = r.Next(c.Damage);
                    z.HP = z.HP - moc;
                }
            }
        }