source: 2014/26/OttoW/Sticman The Last Stand/Sticman The Last Stand/Sticman The Last Stand/Vihollinen.cs @ 5158

Revision 5158, 1.8 KB checked in by lajomart, 8 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6using Jypeli.Assets;
7
8public class Vihollinen : PhysicsObject
9{
10    private LaserGun tulipallo { get; set; }
11    public IntMeter Elamat { get; set; }
12
13    public Vihollinen(double width, double height, int elamat)
14        :base(width, height)
15    {
16
17        FollowerBrain seuraajanAivot = new FollowerBrain(Sticman_The_Last_Stand.Peli.Pelaajat[0].Tag.ToString());
18
19        seuraajanAivot.Speed = 100;
20        this.Brain = seuraajanAivot;
21        IgnoresGravity = true;
22        CanRotate = false;
23
24        this.tulipallo = new LaserGun(10, 5);
25        this.tulipallo.InfiniteAmmo = true;
26        this.tulipallo.CanHitOwner = false;
27        this.Add(tulipallo);
28
29        this.Elamat = new IntMeter(elamat, 0, elamat);
30        this.Elamat.LowerLimit += Destroy;
31
32        Timer ajastin = new Timer();
33        ajastin.Interval = 2;
34        ajastin.Timeout += Ammu;
35        ajastin.Start();
36    }
37    public void Ammu()
38    {
39        Vector suunta = (Sticman_The_Last_Stand.Peli.Pelaajat[0].Position - this.Position).Normalize();
40
41        this.tulipallo.Angle = suunta.Angle;
42        PhysicsObject laser = this.tulipallo.Shoot();
43
44        if (laser == null) return;
45
46        laser.MaximumLifetime = TimeSpan.FromSeconds(0.5);
47
48        Sticman_The_Last_Stand.Peli.AddCollisionHandler<PhysicsObject, PhysicsObject>(laser, delegate(PhysicsObject a, PhysicsObject kohde) { VihuAmmusOsui(a, kohde, 10); });
49    }
50    private void VihuAmmusOsui(PhysicsObject laser, PhysicsObject kohde, int damage)
51    {
52        laser.Destroy();
53        if (kohde.Tag.Equals("coop") || kohde.Tag.Equals("yksinpeli"))
54        {
55            Pelaaja p = kohde as Pelaaja;
56            p.Elamat.Value -= damage;
57        }
58        return;
59    }
60}
Note: See TracBrowser for help on using the repository browser.