source: 2010/23/hniemi/ShootEmUp/ShootEmUp/Weapons.cs @ 922

Revision 922, 5.5 KB checked in by hniemi, 10 years ago (diff)

Photoniase ja loppupomo lisätty.
Ampuminen ja törmäyksentunnistus kaataa, palataan asiaan ruokailun jälkeen.

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    struct LisaData
12    {
13        public int Damage;
14        public string Tyyppi;
15        public bool Rajahtaa;
16    }
17
18    /// <summary>
19    /// Sädease
20    /// </summary>
21    class Beam : Weapon
22    {
23        private Image ammus;
24        public int Damage { get; set; }
25        public int Level { get; private set; }
26        public CollisionHandler BeamCollision { get; set; }
27
28
29        public Beam(double width, double height)
30            : base(width, height)
31        {
32            Level = 1;
33            Color = Color.Blue;
34            Damage = 20;
35            this.AddedToGame += LisaaAani;
36            this.TimeBetweenUse = (new TimeSpan(0, 0, 0, 0, 5));
37
38        }
39
40        private void LisaaAani()
41        {
42            //AttackSound = Game.LoadSoundEffect("pum");
43            ammus = Game.LoadImage("sade");
44        }
45
46
47
48        protected override void OnUse()
49        {
50            OnShoot();
51        }
52
53        protected override PhysicsObject OnShoot()
54        {
55
56            PhysicsObject projectile = new PhysicsObject(Level * 35, Level * 5);
57            LisaData ammus;
58            ammus.Damage = 3;
59            ammus.Rajahtaa = false;
60            ammus.Tyyppi = "oma";
61            projectile.Image = this.ammus;
62            projectile.Tag = ammus;
63            projectile.Position = this.Position;
64            projectile.Color = this.Color;
65            projectile.IgnoresExplosions = true;
66            projectile.IgnoresCollisionResponse = true;
67            SetCollisionHandler(projectile, BeamCollision);
68            ShootProjectile(projectile, 3000);
69
70            return projectile;
71        }
72    }
73
74    /// <summary>
75    /// Ohjus-ase
76    /// Räjähtää
77    /// </summary>
78    class Missile : Weapon
79    {
80        private Image ammus;
81        public int Level { get; private set; }
82        public CollisionHandler MissileCollision { get; set; }
83        public int Damage { get; set; }
84
85        public Missile(double width, double height)
86            : base(width, height)
87        {
88            Level = 1;
89            Damage = 20;
90            this.TimeBetweenUse = (new TimeSpan(0,0,0,0,300));
91            Color = Color.Blue;
92            this.AddedToGame += LisaaAani;         
93        }
94
95        /// <summary>
96        /// Lisää äänen
97        /// </summary>
98        private void LisaaAani()
99        {
100            //AttackSound = Game.LoadSoundEffect("pum");
101            ammus = Game.LoadImage("ohjus");
102        }
103
104        protected override void OnUse()
105        {
106            OnShoot();
107        }
108
109        protected override PhysicsObject OnShoot()
110        {
111           
112            if (!this.IsDestroyed())
113            {
114                //Game.MessageDisplay.Add("Debug");
115                PhysicsObject projectile = new PhysicsObject(Level * 30, Level * 15);
116                projectile.Shape = Shapes.Triangle;
117                projectile.Position = this.Position;
118                projectile.Color = this.Color;
119                projectile.Image = this.ammus;
120                SetCollisionHandler(projectile, MissileCollision);
121                ShootProjectile(projectile, 1000);
122                projectile.IgnoresExplosions = true;
123                projectile.IgnoresCollisionResponse = true;
124                LisaData ammus;
125                ammus.Damage = 20;
126                ammus.Rajahtaa = true;
127                ammus.Tyyppi = "oma";
128                projectile.Tag = ammus;
129                return projectile;
130            }
131            return null;
132        }
133    }
134
135    class Photon : Weapon
136    {
137        private Image ammus;
138        public int Level { get; private set; }
139        public CollisionHandler PhotonCollision { get; set; }
140        public int Damage { get; set; }
141
142        public Photon(double width, double height): base(width, height)
143        {
144            Level = 1;
145            Damage = 20;
146            this.TimeBetweenUse = (new TimeSpan(0,0,0,0,150));
147            Color = Color.Blue;
148            this.AddedToGame += LisaaAani;
149
150            //Tagi
151            LisaData ase;
152            ase.Damage = 20;
153            ase.Rajahtaa = true;
154            ase.Tyyppi = "oma";
155            Tag = ammus;
156        }
157
158        /// <summary>
159        /// Lisää äänen
160        /// </summary>
161        private void LisaaAani()
162        {
163            //AttackSound = Game.LoadSoundEffect("pum");
164            ammus = Game.LoadImage("photon");
165        }
166
167        protected override void OnUse()
168        {
169            OnShoot();
170        }
171
172        protected override PhysicsObject OnShoot()
173        {
174
175            if (!this.IsDestroyed())
176            {
177                //Game.MessageDisplay.Add("Debug");
178                PhysicsObject projectile = new PhysicsObject(Level * 15, Level * 15);
179                projectile.Shape = Shapes.Circle;
180                projectile.Position = this.Position;
181                projectile.Color = this.Color;
182                projectile.Image = this.ammus;
183                SetCollisionHandler(projectile, PhotonCollision);
184                ShootProjectile(projectile, 2000);
185                projectile.IgnoresExplosions = true;
186                projectile.IgnoresCollisionResponse = true;
187                projectile.Tag = this.Tag;
188                return projectile;
189            }
190            return null;
191        }
192    }
193}
Note: See TracBrowser for help on using the repository browser.