source: 2010/23/hniemi/ShootEmUp/ShootEmUp/Alus.cs @ 823

Revision 823, 2.0 KB checked in by hniemi, 10 years ago (diff)

Ohjus lisätty aseeksi. Törmäyksentunnistus pitää korjata
Sädepyssy otettu hetkeksi pois käytöstä.

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6using Jypeli.ScreenObjects;
7using Jypeli.Assets;
8
9namespace ShootEmUp
10{
11    class Alus : PhysicsObject
12    {
13        private IntMeter hp;
14        private Weapon kaytossaOlevaAse;
15
16        /// <summary>
17        /// Jos osumapiste-arvo on negatiivinen, tuhoaa aluksen.
18        /// </summary>
19        public int Hp
20        {
21            get{return hp.Value;}
22            set
23            {
24                hp.Value = value;
25                if (hp < 1) this.Destroy();
26            }
27        }
28
29        /// <summary>
30        /// Palauttaa viitteen hp-laskuriin
31        /// </summary>
32        public IntMeter HpMeter {get { return hp; }}
33
34        /// <summary>
35        /// Luo aluksen
36        /// </summary>
37        /// <param name="width">Leveys</param>
38        /// <param name="height">Korkeus</param>
39        /// <param name="hp">Osumapisteet</param>
40        public Alus(double width, double height, int hp)
41            : base(width,height)
42        {
43            this.Shape = Shapes.Rectangle;
44            this.CanRotate = false;
45            this.IgnoresCollisionResponse = true;
46            this.hp = new IntMeter(hp);
47        }
48
49        /// <summary>
50        /// Ottaa osumaa. Jos hp:t on loppu, tuhoaa aluksen
51        /// </summary>
52        /// <param name="damage"></param>
53        public void TakeHit(int damage)
54        {
55            Hp -= damage;
56            if (Hp <= 0) this.Destroy();
57        }
58
59        public void SetWeapon(Weapon ase) 
60        {
61            if (kaytossaOlevaAse != null) kaytossaOlevaAse.Destroy();
62            this.Add(ase);
63            kaytossaOlevaAse = ase;
64        }
65
66        /// <summary>
67        /// Ampuu käytössä olevalla aseella
68        /// </summary>
69        public void Shoot()
70        {
71            if (kaytossaOlevaAse != null)
72            {
73                kaytossaOlevaAse.Shoot().Angle = this.Angle;
74            }
75        }
76
77    }
78}
Note: See TracBrowser for help on using the repository browser.