source: 2014/30/MiskaK/The Reclaim/The Reclaim/The Reclaim/The Reclaim/Ase.cs @ 5602

Revision 5602, 4.1 KB checked in by anlakane, 5 years ago (diff)

Lisätty mm. ampuminen ja vihollisten tekoälyä.

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6using Jypeli.Assets;
7
8public class Ase : AssaultRifle
9{
10    public enum WeaponType
11    {
12        Melee,
13        CloseRange,
14        MediumRange,
15        LongRange
16    }
17
18    /// <summary>
19    /// Aseen tuhovoima seiniä vastaan.
20    /// </summary>
21    public double DamageTuhoutuviaVastaan { get; set; }
22
23    /// <summary>
24    /// Aseen tuhovoima eläviä kohteita vastaan.
25    /// </summary>
26    public double DamageElaviaVastaan { get; set; }
27
28    /// <summary>
29    /// Kauanko aseen latauksessa kestää.
30    /// </summary>
31    public double LataukseenKuluvaAika { get; set; }
32
33    /// <summary>
34    /// Aseen näytöllä näkyvä nimi.
35    /// </summary>
36    public string AseenNimi { get; set; }
37
38    /// <summary>
39    /// Paljonko aseen luodit hajoavat ammuttaessa eri suuntiin.
40    /// X- ja Y-komponentit mielellään samat, jotta luotisuihku olisi tasainen.
41    /// </summary>
42    public Vector AseenHajoama { get; set; }
43
44    /// <summary>
45    ///
46    /// </summary>
47    public WeaponType AseenTyyppi { get; set; }
48
49    private double aseenLapaisy;
50    public bool LapaiseekoMateriaaleja { get; private set; }
51
52    /// <summary>
53    /// Paljonko ase läpäisee materiaaleja.
54    /// </summary>
55    public double AseenLapaisy
56    {
57        get { return aseenLapaisy; }
58        set
59        {
60            if (value > 0)
61            {
62                aseenLapaisy = value;
63                LapaiseekoMateriaaleja = true;
64            }
65            else LapaiseekoMateriaaleja = false;
66        }
67    }
68
69    public bool OnkoMeleeAse = false;
70    public bool TuleekoHylsya = true;
71    public bool NakyykoAmmus = true;
72    public bool TuleekoOsumastaEfektiä = true;
73    public bool KuulukoOsumastaAanta = true;
74    public bool HaviaakoAmmusOsumasta = true;
75
76    public Image hylsynKuva = The_Reclaim.LoadImage("rynkynhylsy");
77    public Image luodinKuva = The_Reclaim.LoadImage("isoluoti");
78
79    /// <summary>
80    /// Käytetäänkö valojuovia. Muista myös TracerBrightness.
81    /// </summary>
82    public bool UsesTracers { get; set; }
83
84    /// <summary>
85    /// Mahdollisen valojuovan kirkkaus. 1.0 on oletus, suurempi kirkastaa ja pienempi himmentää.
86    /// </summary>
87    public double TracerBrightness { get; set; }
88
89    /// <summary>
90    /// Määrittelee ajan, jonka valojuova pysyy kentällä.
91    /// </summary>
92    public double TracerLength { get; set; }
93
94    /// <summary>
95    /// Ylikirjoittaa oletusvalojuovavärin tämän aseen kohdalla. Jos null, ei tehdä mitään.
96    /// </summary>
97    public Color OverrideTracerColor { get; set; }
98
99    /// <summary>
100    /// Hakeutuuko ammus kohteeseensa.
101    /// </summary>
102    public bool IsHoming { get; set; }
103
104    /// <summary>
105    /// Sytyttävätkö ammukset asioita palamaan.
106    /// </summary>
107    public bool IsIncendiary { get; set; }
108
109    /// <summary>
110    /// Sytyttämistodennäköisyys väliltä 0-100.
111    /// </summary>
112    public int IgnitionChance { get; set; }
113
114    /// <summary>
115    /// Suurin mahdollinen määrä ammuksia mukana kerralla aseeseen.
116    /// </summary>
117    public IntMeter MaxAmmo { get; set; }
118
119    /// <summary>
120    /// Montako ammusta aseesta lähtee yhdellä ampumiskerralla.
121    /// </summary>
122    public int BulletsPerShot { get; set; }
123
124    /// <summary>
125    /// Burstin minimipituus.
126    /// </summary>
127    public int MinBurstLength { get; set; }
128
129    /// <summary>
130    /// Burstin maksimipituus.
131    /// </summary>
132    public int MaxBurstLength { get; set; }
133
134    /// <summary>
135    /// Tauko burstien välillä.
136    /// </summary>
137    public double CooldownBetweenBursts { get; set; }
138
139    public Ase(double width, double height)
140        :base(width, height)
141    {
142        this.IsVisible = false;
143        this.TracerBrightness = 1.0;
144        this.TracerLength = 0.1;
145        this.OverrideTracerColor = Color.Green;
146        this.BulletsPerShot = 1;
147        this.MaxAmmo = new IntMeter(this.Ammo.Value, 0, this.Ammo.Value);
148    }
149}
Note: See TracBrowser for help on using the repository browser.