1 /*
2 IMPORTANT !!!
3
4 DO NOT EDIT THIS FILE. IT IS GENERATED FROM APPROPRIATE XML FILE
5 BY THE MessagesGenerator.xslt.
6 MODIFY THAT FILE INSTEAD OF THIS ONE.
7
8 */
9 package cz.cuni.amis.pogamut.defcon.communication.messages.infos;
10
11 import cz.cuni.amis.pogamut.base.communication.messages.*;
12 import cz.cuni.amis.pogamut.base.communication.worldview.*;
13 import cz.cuni.amis.pogamut.base.communication.worldview.object.*;
14 import cz.cuni.amis.pogamut.defcon.base3d.worldview.object.DefConLocation;
15 import cz.cuni.amis.pogamut.defcon.communication.messages.*;
16 import cz.cuni.amis.pogamut.defcon.communication.messages.commands.*;
17 import cz.cuni.amis.pogamut.defcon.communication.messages.infos.*;
18 import cz.cuni.amis.pogamut.defcon.consts.*;
19 import cz.cuni.amis.pogamut.defcon.consts.state.*;
20 import cz.cuni.amis.utils.exception.*;
21
22 import java.util.*;
23
24 import javabot.*;
25
26
27 /**
28 * Airbase from the world.
29 */
30 public class AirBase extends DefConUnitObject<AirBaseState> {
31 /**
32 * Number of nukes on airbase.
33 */
34 @Updatable
35 private int nukeSupply = 0;
36
37 /**
38 * Number of fighters on airbase.
39 */
40 @Updatable
41 private int fighterSupply = 0;
42
43 /**
44 * Number of bombers on airbase.
45 */
46 @Updatable
47 private int bomberSupply = 0;
48
49 /**
50 Creates new instance of object AirBase with specific id.
51
52 Airbase from the world.
53
54 @param id Game id of this object.
55 @param teamId Id of this object's team.
56 @param location Location of this object.
57 @param visible Visibility of this object.
58 @param state DefCon state of this unit.
59 @param stateCount Number of activations of current state on this unit.
60 @param target Current target of this unit.
61
62 @param
63 nukeSupply
64 Number of nukes on airbase.
65
66 @param
67 fighterSupply
68 Number of fighters on airbase.
69
70 @param
71 bomberSupply
72 Number of bombers on airbase.
73
74 @param time Time of last update of this object (time of first spotting in this case).
75 */
76 public AirBase(int id, int teamId, DefConLocation location, boolean visible,
77 AirBaseState state, int stateCount, int target, int nukeSupply, int fighterSupply,
78 int bomberSupply, double time) {
79 super(id, UnitType.AIR_BASE, teamId, location, visible, state, stateCount, target, time);
80
81 this.nukeSupply = nukeSupply;
82
83 this.fighterSupply = fighterSupply;
84
85 this.bomberSupply = bomberSupply;
86 }
87
88 /**
89 * Cloning constructor...
90 * @param original
91 */
92 public AirBase(AirBase original) {
93 super(original);
94
95 this.nukeSupply = original.nukeSupply;
96
97 this.fighterSupply = original.fighterSupply;
98
99 this.bomberSupply = original.bomberSupply;
100 }
101
102 /**
103 * Number of nukes on airbase.
104 *
105 * @return int
106 */
107 public int getNukeSupply() {
108 return this.nukeSupply;
109 }
110
111 /**
112 * Number of fighters on airbase.
113 *
114 * @return int
115 */
116 public int getFighterSupply() {
117 return this.fighterSupply;
118 }
119
120 /**
121 * Number of bombers on airbase.
122 *
123 * @return int
124 */
125 public int getBomberSupply() {
126 return this.bomberSupply;
127 }
128
129 /**
130 * Returns human readable serialization of the message.
131 *
132 * @return human readable string
133 */
134 @Override
135 public String toString() {
136 return "AirBase[" + getStringizedFields() + "; NukeSupply = " + this.nukeSupply +
137 "; FighterSupply = " + this.fighterSupply + "; BomberSupply = " + this.bomberSupply + "]";
138 }
139
140 /**
141 * Returns message in html format.
142 *
143 * @return html message
144 */
145 public String toHtmlString() {
146 return "<p><b>AirBase:</b></p>" + "<p><i>NukeSupply:</i> " + this.nukeSupply + "</p>" +
147 "<p><i>FighterSupply:</i> " + this.fighterSupply + "</p>" + "<p><i>BomberSupply:</i> " +
148 this.bomberSupply + "</p>";
149 }
150 }