source: 2014/30/MitjaK/Attack to Agora/Attack to Agora/Attack to Agora/Attack to Agora/Elava.cs @ 6406

Revision 6406, 1.6 KB checked in by mikrkana, 4 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6
7/// <summary>
8/// PlatformCharacter, jolla on elämälaskuri.
9/// </summary>
10public class Elava : PhysicsObject
11{
12    public DoubleMeter Elamat { get; private set; }
13
14    public event Action Kuoli;
15
16    public Elava(double width, double height, double elamat)
17        : base(width, height)
18    {
19        Elamat = new DoubleMeter(elamat, 0, elamat);
20        Elamat.LowerLimit += delegate
21        {
22            if (Kuoli != null) Kuoli();
23        };
24
25        KineticFriction = 0.0;
26        Restitution = 0.0;
27        CanRotate = false;
28
29        // This avoids high speeds, particularly when falling. This then avoids
30        // going through objects.
31        LinearDamping = 0.96;
32
33
34    }
35
36    public Elava(Image kuva, double elamat)
37        : this(kuva.Width, kuva.Height, elamat)
38    {
39        this.Image = kuva;
40    }
41
42    /// <summary>
43    /// Vähennetään elämiä. Vain vähentämiseen (ts. maara > 0)
44    /// </summary>
45    /// <param name="maara"></param>
46    public void Damagea(double maara)
47    {
48        if (maara < 0) return;
49
50        this.Elamat.Value -= maara;
51    }
52
53    /// <summary>
54    /// Palautetaan elämiä. Vain palauttamiseen (ts. maara > 0)
55    /// </summary>
56    /// <param name="maara"></param>
57    public void Paranna(double maara)
58    {
59        if (maara < 0) return;
60
61        this.Elamat.Value += maara;
62    }
63
64    /// <summary>
65    /// Täyttää pelaajan elämät.
66    /// </summary>
67    public void ElamatTayteen()
68    {
69        this.Elamat.Value = this.Elamat.MaxValue;
70    }
71}
Note: See TracBrowser for help on using the repository browser.