-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathWeapon.cs
133 lines (112 loc) · 2.68 KB
/
Weapon.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
/*******************************************************************************
*
* 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 Weapon : Equipment
{
#region Member Declarations
private WeaponType _type;
private int _power;
private bool _disabling;
#endregion
#region Methods
public Weapon(WeaponType type, int power, bool disabling, int price, TechLevel minTechLevel, int chance):
base(EquipmentType.Weapon, price, minTechLevel, chance)
{
_type = type;
_power = power;
_disabling = disabling;
}
public Weapon(Hashtable hash): base(hash)
{
_type = (WeaponType)GetValueFromHash(hash, "_type");
_power = (int)GetValueFromHash(hash, "_power");
_disabling = (bool)GetValueFromHash(hash, "_disabling", false);
}
public override Equipment Clone()
{
return new Weapon(_type, _power, _disabling, _price, _minTech, _chance);
}
public override Hashtable Serialize()
{
Hashtable hash = base.Serialize();
hash.Add("_type", (int)_type);
hash.Add("_power", _power);
hash.Add("_disabling", _disabling);
return hash;
}
public override bool TypeEquals(object type)
{
bool equal = false;
try
{
if (Type == (WeaponType)type)
equal = true;
}
catch (Exception) {}
return equal;
}
#endregion
#region Properties
public bool Disabling
{
get
{
return _disabling;
}
}
public override string Name
{
get
{
return Strings.WeaponNames[(int)_type];
}
}
public int Power
{
get
{
return _power;
}
}
public override object SubType
{
get
{
return Type;
}
}
public WeaponType Type
{
get
{
return _type;
}
}
#endregion
}
}