-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathShield.cs
140 lines (118 loc) · 2.71 KB
/
Shield.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*******************************************************************************
*
* Space Trader for Windows 2.01
*
* Copyright (C) 2008 Jay French, All Rights Reserved
*
* Additional coding by David Pierron
* Original coding by Pieter Spronck, Sam Anderson, Samuel Goldstein, Matt Lee
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option) any
* later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* If you'd like a copy of the GNU General Public License, go to
* http://www.gnu.org/copyleft/gpl.html.
*
* You can contact the author at [email protected]
*
******************************************************************************/
using System;
using System.Collections;
namespace Fryz.Apps.SpaceTrader
{
public class Shield : Equipment
{
#region Member Declarations
private ShieldType _type;
private int _power;
private int _charge;
#endregion
#region Methods
public Shield(ShieldType type, int power, int price, TechLevel minTechLevel, int chance):
base(EquipmentType.Shield, price, minTechLevel, chance)
{
_type = type;
_power = power;
_charge = _power;
}
public Shield(Hashtable hash): base(hash)
{
_type = (ShieldType)GetValueFromHash(hash, "_type");
_power = (int)GetValueFromHash(hash, "_power");
_charge = (int)GetValueFromHash(hash, "_charge");
}
public override Equipment Clone()
{
Shield shield = new Shield(_type, _power, _price, _minTech, _chance);
shield.Charge = Charge;
return shield;
}
public override Hashtable Serialize()
{
Hashtable hash = base.Serialize();
hash.Add("_type", (int)_type);
hash.Add("_power", _power);
hash.Add("_charge", _charge);
return hash;
}
public override bool TypeEquals(object type)
{
bool equal = false;
try
{
if (Type == (ShieldType)type)
equal = true;
}
catch (Exception) {}
return equal;
}
#endregion
#region Properties
public int Charge
{
get
{
return _charge;
}
set
{
_charge = value;
}
}
public override string Name
{
get
{
return Strings.ShieldNames[(int)_type];
}
}
public int Power
{
get
{
return _power;
}
}
public ShieldType Type
{
get
{
return _type;
}
}
public override object SubType
{
get
{
return Type;
}
}
#endregion
}
}