empi 0.16.6 → 0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/army.rb +4 -0
- data/lib/cursor.rb +5 -1
- data/lib/docu/info.txt +79 -9
- data/lib/empi.rb +9 -6
- data/lib/map.rb +17 -30
- data/lib/save/m02.esf +3 -1
- data/lib/tile.rb +33 -0
- data/lib/town.rb +4 -0
- data/lib/unit.rb +71 -28
- metadata +4 -3
data/lib/army.rb
CHANGED
data/lib/cursor.rb
CHANGED
@@ -85,12 +85,16 @@ class Cursor
|
|
85
85
|
@freeroam = !@freeroam
|
86
86
|
end
|
87
87
|
|
88
|
-
# Find some info about
|
88
|
+
# Find some info about units on the current tile
|
89
89
|
def info
|
90
90
|
uu = @map.get_unit(@x, @y)
|
91
91
|
if uu
|
92
92
|
@infopane.text = uu.info
|
93
93
|
puts uu.info
|
94
|
+
|
95
|
+
if uu.is_transporting?
|
96
|
+
uu.cargo.each { |uu| puts '- cargo: ' + uu.info }
|
97
|
+
end
|
94
98
|
else
|
95
99
|
@infopane.text = ''
|
96
100
|
puts 'nothing here'
|
data/lib/docu/info.txt
CHANGED
@@ -5,6 +5,67 @@
|
|
5
5
|
Empi: Ruby Edition
|
6
6
|
====================
|
7
7
|
|
8
|
+
v17 dev
|
9
|
+
=========
|
10
|
+
- selected map: m02
|
11
|
+
- terrain stuff separated to Tile class
|
12
|
+
! units are still stored via Map class instead of Tile one
|
13
|
+
! units are still accessed via Window class instead of Cursor one
|
14
|
+
- removed debug printout from Unit class
|
15
|
+
- moving transports don't leave their cargo behind
|
16
|
+
- capturing done only by armies
|
17
|
+
fixed: all units can capture towns (armies visiting towns are left allowed for now)
|
18
|
+
- only towns can be captured, other units do battle
|
19
|
+
fixed: battling units capture instead of damaging
|
20
|
+
! capturing town with units leaves those enemy units inside
|
21
|
+
! damaged units are destroyed
|
22
|
+
- printouts tweaked
|
23
|
+
fixed: transported units show only info of their transport instead when selected
|
24
|
+
! transported units show in infopane info of their transport instead when selected
|
25
|
+
! destroyed transport ships don't give points for their lost cargo
|
26
|
+
|
27
|
+
file changes
|
28
|
+
--------------
|
29
|
+
empi.rb
|
30
|
+
cursor prints out info() even for not moved units
|
31
|
+
(say, when friend unit without avaiable cargo capacity was on the destination tile)
|
32
|
+
added PROMPT to responding printouts
|
33
|
+
|
34
|
+
cursor.rb
|
35
|
+
info() shows info of transported units too
|
36
|
+
|
37
|
+
map.rb
|
38
|
+
TILE constants moved to tile.rb
|
39
|
+
initialize() sets tile and leaves processing of loaded symbol to it
|
40
|
+
tile() returns object of tile instead directly its terrain type
|
41
|
+
+all_tiles - Return all tiles
|
42
|
+
draw_tiles
|
43
|
+
|
44
|
+
unit.rb
|
45
|
+
removed debug printout used for checking of units leaving towns
|
46
|
+
added PROMPT to responding printouts
|
47
|
+
check_movement() makes sure cargo is moved too
|
48
|
+
check_movement() checks if moved unit has enough move points
|
49
|
+
check_movement() print outs are more detailed
|
50
|
+
tile_check() doesn't check terrain type for transported units
|
51
|
+
info() print outs also max cargo capacity
|
52
|
+
fixed comparing of functions in set_function()
|
53
|
+
+can_capture?
|
54
|
+
+can_be_captured?
|
55
|
+
can_move() renamed to can_move?()
|
56
|
+
reset_moves() renamed to reset_moves!()
|
57
|
+
|
58
|
+
army.rb
|
59
|
+
can capture
|
60
|
+
|
61
|
+
town.rb
|
62
|
+
can be captured
|
63
|
+
|
64
|
+
save/m02.esf
|
65
|
+
+two ships, one for each faction
|
66
|
+
|
67
|
+
tile.rb
|
68
|
+
|
8
69
|
|
9
70
|
v16 dev
|
10
71
|
=========
|
@@ -12,24 +73,25 @@ v16 dev
|
|
12
73
|
- neutral units can't have functions
|
13
74
|
- links to media and save files use full path
|
14
75
|
- towns build armies
|
76
|
+
fixed: no building of units
|
15
77
|
! hardcoded unit type to be built
|
16
78
|
- units can transport other units
|
17
79
|
- newly built units are stored in town instead of map
|
18
80
|
fixes: new units are saved in map instead of the towns that built them
|
19
81
|
! transported units are not drawn
|
20
|
-
! transported units show info of their transport instead when selected
|
82
|
+
! transported units show only info of their transport instead when selected
|
21
83
|
! all units can capture and visit towns
|
22
84
|
|
23
85
|
file changes
|
24
86
|
--------------
|
25
|
-
map
|
87
|
+
map.rb
|
26
88
|
initialize() uses full paths to files
|
27
89
|
all_units renamed to all_map_units() - Return only units directly on map
|
28
90
|
+all_transported_units() - Return only units transported by other units
|
29
91
|
+all_units() - Return both map units and transported units
|
30
92
|
draw_units() draws only map units
|
31
93
|
|
32
|
-
unit
|
94
|
+
unit.rb
|
33
95
|
+@cargo, @cargo_max
|
34
96
|
+can_transport?() - Unit is able to both transport other units and currently has some space left
|
35
97
|
set_function() checks for @faction == 0
|
@@ -37,25 +99,26 @@ unit
|
|
37
99
|
+check_movement() - Processes move of unit and takes care of its (un)loading or attack
|
38
100
|
capture() makes newly captured towns start building
|
39
101
|
|
40
|
-
town
|
102
|
+
town.rb
|
41
103
|
initialize() uses full path to file
|
42
104
|
+parts_built
|
43
105
|
+@cargo_max set to 10
|
44
106
|
|
45
|
-
army
|
107
|
+
army.rb
|
46
108
|
initialize() uses full path to file
|
47
109
|
|
48
|
-
ship
|
110
|
+
ship.rb
|
49
111
|
initialize() uses full path to file
|
50
112
|
+@cargo_max set to 3
|
51
113
|
|
52
|
-
unitFunction
|
114
|
+
unitFunction.rb
|
53
115
|
+FUNCBUILD case in func!()
|
54
116
|
FUNCSENTRY case in func!() sets "ret" even when unit keeps sentrying
|
55
117
|
|
56
118
|
|
57
119
|
v15 dev
|
58
120
|
=========
|
121
|
+
- selected map: m03
|
59
122
|
- units referenced only from map
|
60
123
|
fixed: no destruction of units
|
61
124
|
- loading of units from file
|
@@ -127,6 +190,7 @@ old wishlist
|
|
127
190
|
!x no destruction of units
|
128
191
|
!x no building of units
|
129
192
|
! no victory conditions
|
193
|
+
!x battling units capture instead of damaging
|
130
194
|
! attacker always wins
|
131
195
|
! player playing both factions at once
|
132
196
|
!x hardcoded starting scenario
|
@@ -143,7 +207,13 @@ new problems
|
|
143
207
|
! hardcoded map size
|
144
208
|
! hardcoded unit type to be built
|
145
209
|
! transported units are not drawn
|
146
|
-
! transported units show info of their transport instead when selected
|
147
|
-
! all units can capture and visit towns
|
210
|
+
!x transported units show only info of their transport instead when selected
|
211
|
+
!x all units can capture and visit towns
|
212
|
+
! units are still stored via Map class instead of Tile one
|
213
|
+
! units are still accessed via Window class instead of Cursor one
|
214
|
+
! damaged units are destroyed
|
215
|
+
! transported units show in infopane info of their transport instead when selected
|
216
|
+
! capturing town with units leaves those enemy units inside
|
148
217
|
|
149
218
|
(! thing to fix, !x fixed thing)
|
219
|
+
|
data/lib/empi.rb
CHANGED
@@ -5,6 +5,7 @@ require_relative './army'
|
|
5
5
|
require_relative './cursor'
|
6
6
|
require_relative './infopane'
|
7
7
|
require_relative './map'
|
8
|
+
require_relative './tile'
|
8
9
|
require_relative './ship'
|
9
10
|
require_relative './town'
|
10
11
|
|
@@ -27,13 +28,15 @@ FUNCNONE = 'none'
|
|
27
28
|
FUNCSENTRY = 'sentry'
|
28
29
|
FUNCBUILD = 'build'
|
29
30
|
|
31
|
+
PROMPT = '> '
|
32
|
+
|
30
33
|
# Main class
|
31
34
|
class GameWindow < Gosu::Window
|
32
35
|
def initialize(width = (MAPX + 1) * TILESIZE, \
|
33
36
|
height = (MAPY + 2) * TILESIZE, \
|
34
37
|
fullscreen = false)
|
35
38
|
super
|
36
|
-
self.caption = 'Empi: Ruby Edition 0.
|
39
|
+
self.caption = 'Empi: Ruby Edition 0.17 dev'
|
37
40
|
|
38
41
|
@infopane = Infopane.new
|
39
42
|
@map = Map.new(@infopane)
|
@@ -62,23 +65,23 @@ class GameWindow < Gosu::Window
|
|
62
65
|
def update
|
63
66
|
if @button == -1 then return end
|
64
67
|
|
65
|
-
movable_units = @map.all_units.select { |uu| uu.can_move && uu.function == FUNCNONE}
|
68
|
+
movable_units = @map.all_units.select { |uu| uu.can_move? && uu.function == FUNCNONE}
|
66
69
|
# If there are any movable units without functions select one of them with the cursor
|
67
70
|
if @cursor.freeroam == false && movable_units.size > 0
|
68
71
|
unit_to_move = movable_units[0]
|
69
72
|
unit_to_move.update(@button)
|
70
73
|
|
71
74
|
# Can it still move?
|
72
|
-
if unit_to_move.can_move && unit_to_move.function == FUNCNONE
|
75
|
+
if unit_to_move.can_move? && unit_to_move.function == FUNCNONE
|
73
76
|
# Move the cursor to it unless it is already there
|
74
77
|
if (@cursor.x != unit_to_move.x \
|
75
78
|
|| @cursor.y != unit_to_move.y)
|
76
79
|
@cursor.warp(unit_to_move.x, unit_to_move.y)
|
77
|
-
@cursor.info
|
78
80
|
end
|
81
|
+
@cursor.info
|
79
82
|
else
|
80
83
|
# Was that the last currently avaiable non-function move?
|
81
|
-
movable_units = @map.all_units.select { |uu| uu.can_move && uu.function == FUNCNONE}
|
84
|
+
movable_units = @map.all_units.select { |uu| uu.can_move? && uu.function == FUNCNONE}
|
82
85
|
if movable_units.size == 0
|
83
86
|
puts 'all movable units without functions moved'
|
84
87
|
@cursor.switch_freeroam
|
@@ -125,7 +128,7 @@ class GameWindow < Gosu::Window
|
|
125
128
|
functionable_units = @map.all_units.select { |uu| uu.function != FUNCNONE}
|
126
129
|
functionable_units.each { |uu| uu.function! }
|
127
130
|
|
128
|
-
@map.all_units.each { |uu| uu.reset_moves}
|
131
|
+
@map.all_units.each { |uu| uu.reset_moves!}
|
129
132
|
@infopane.next_turn
|
130
133
|
end
|
131
134
|
|
data/lib/map.rb
CHANGED
@@ -1,8 +1,3 @@
|
|
1
|
-
TILE_SEA = 0
|
2
|
-
TILE_GROUND = 1
|
3
|
-
|
4
|
-
SYMBOL_SEA = '.'
|
5
|
-
SYMBOL_GROUND = '#'
|
6
1
|
SYMBOL_TOWN = 'T'
|
7
2
|
SYMBOL_ARMY = 'A'
|
8
3
|
SYMBOL_SHIP = 'S'
|
@@ -15,9 +10,7 @@ class Map
|
|
15
10
|
dir_path = File.dirname(__FILE__)
|
16
11
|
|
17
12
|
@infopane = infopane
|
18
|
-
|
19
|
-
@ground_image = Gosu::Image.new(dir_path + '/media/ground.png')
|
20
|
-
load_map(dir_path + '/save/m03.esf')
|
13
|
+
load_map(dir_path + '/save/m02.esf')
|
21
14
|
end
|
22
15
|
|
23
16
|
# Load map from file
|
@@ -33,14 +26,7 @@ class Map
|
|
33
26
|
@units[rr] = []
|
34
27
|
map_row = input.gets
|
35
28
|
0.upto(@mapx - 1) { |cc|
|
36
|
-
|
37
|
-
when SYMBOL_SEA then
|
38
|
-
@tiles[rr][cc] = TILE_SEA
|
39
|
-
when SYMBOL_GROUND then
|
40
|
-
@tiles[rr][cc] = TILE_GROUND
|
41
|
-
else
|
42
|
-
abort("map.load_map(): Unknown terrain symbol (#{map_row[cc]})")
|
43
|
-
end
|
29
|
+
@tiles[rr][cc] = Tile.new(cc, rr, map_row[cc], @infopane)
|
44
30
|
}
|
45
31
|
}
|
46
32
|
|
@@ -104,19 +90,7 @@ class Map
|
|
104
90
|
|
105
91
|
# Draw all tiles
|
106
92
|
def draw_tiles
|
107
|
-
# TODO combine with draw_units()
|
108
|
-
|
109
|
-
0.upto(MAPX) { |rr|
|
110
|
-
0.upto(MAPX) { |cc|
|
111
|
-
if @tiles[rr][cc] == TILE_SEA
|
112
|
-
# TODO tiles (z1) and units (z2) together
|
113
|
-
im = @sea_image
|
114
|
-
else
|
115
|
-
im = @ground_image
|
116
|
-
end
|
117
|
-
im.draw(cc * TILESIZE, (rr + 1) * TILESIZE, ZTILE)
|
118
|
-
}
|
119
|
-
}
|
93
|
+
all_tiles.each { |tt| tt.draw} # TODO combine with draw_units() ?
|
120
94
|
end
|
121
95
|
|
122
96
|
# Draw all map units
|
@@ -124,11 +98,24 @@ class Map
|
|
124
98
|
all_map_units.each { |uu| uu.draw} # TODO do not draw transported units? only draw them on selection (with their tile)?
|
125
99
|
end
|
126
100
|
|
127
|
-
# Getter for tile
|
101
|
+
# Getter for tile in given coordinates
|
128
102
|
def tile(cc, rr)
|
129
103
|
@tiles[rr][cc]
|
130
104
|
end
|
131
105
|
|
106
|
+
# Return all tiles
|
107
|
+
def all_tiles
|
108
|
+
ret = []
|
109
|
+
ii = 0
|
110
|
+
0.upto(MAPX) { |rr|
|
111
|
+
0.upto(MAPX) { |cc|
|
112
|
+
ret[ii] = @tiles[rr][cc]
|
113
|
+
ii += 1
|
114
|
+
}
|
115
|
+
}
|
116
|
+
ret
|
117
|
+
end
|
118
|
+
|
132
119
|
# Getter for unit in given coordinates
|
133
120
|
def get_unit(cc, rr)
|
134
121
|
@units[rr][cc]
|
data/lib/save/m02.esf
CHANGED
data/lib/tile.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
TILE_SEA = 0
|
2
|
+
TILE_GROUND = 1
|
3
|
+
|
4
|
+
SYMBOL_SEA = '.'
|
5
|
+
SYMBOL_GROUND = '#'
|
6
|
+
|
7
|
+
class Tile
|
8
|
+
attr_accessor :terrain, :infopane
|
9
|
+
|
10
|
+
# Fill tile map and prepare
|
11
|
+
def initialize(x, y, loaded_symbol, infopane)
|
12
|
+
dir_path = File.dirname(__FILE__)
|
13
|
+
|
14
|
+
@x = x
|
15
|
+
@y = y
|
16
|
+
@infopane = infopane
|
17
|
+
|
18
|
+
case(loaded_symbol)
|
19
|
+
when SYMBOL_SEA then
|
20
|
+
@terrain = TILE_SEA
|
21
|
+
@image = Gosu::Image.new(dir_path + '/media/sea.png')
|
22
|
+
when SYMBOL_GROUND then
|
23
|
+
@terrain = TILE_GROUND
|
24
|
+
@image = Gosu::Image.new(dir_path + '/media/ground.png')
|
25
|
+
else
|
26
|
+
abort("tile.initialize(): Unknown terrain symbol (#{loaded_symbol})")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def draw
|
31
|
+
@image.draw(@x * TILESIZE, (@y + 1) * TILESIZE, ZTILE)
|
32
|
+
end
|
33
|
+
end
|
data/lib/town.rb
CHANGED
data/lib/unit.rb
CHANGED
@@ -102,45 +102,71 @@ class Unit
|
|
102
102
|
# Processes move of unit and takes care of its (un)loading or attack
|
103
103
|
def check_movement(old_x, old_y)
|
104
104
|
if @x != old_x || @y != old_y
|
105
|
+
if @moves_left <= 0
|
106
|
+
abort("unit.check_movement(): Moving unit does not have enough move points (#{@moves_left} moves)")
|
107
|
+
end
|
108
|
+
|
105
109
|
oldcoords_unit = @map.get_unit(old_x, old_y)
|
106
110
|
newcoords_unit = @map.get_unit(@x, @y)
|
107
111
|
|
108
112
|
# If there is nobody or is there friendly unit with some cargo space
|
109
113
|
if !newcoords_unit || \
|
110
|
-
(newcoords_unit.faction == @faction &&
|
114
|
+
(newcoords_unit.faction == @faction && \
|
115
|
+
newcoords_unit.can_transport? && \
|
116
|
+
!newcoords_unit.is_full?)
|
111
117
|
|
112
118
|
# Leave old coordinates
|
113
119
|
if oldcoords_unit == self
|
114
120
|
@map.set_unit(old_x, old_y, nil)
|
115
121
|
else # if you have been transported
|
116
|
-
puts "oldcoords_unit.cargo = \"#{oldcoords_unit.cargo}\""
|
117
122
|
oldcoords_unit.cargo.delete(self)
|
118
|
-
puts "oldcoords_unit.cargo = \"#{oldcoords_unit.cargo}\""
|
119
123
|
end
|
120
124
|
|
121
125
|
# Get to new coordinates
|
122
126
|
if newcoords_unit == nil
|
123
127
|
@map.set_unit(@x, @y, self)
|
124
|
-
|
128
|
+
@cargo.each { |uu|
|
129
|
+
uu.x = @x
|
130
|
+
uu.y = @y
|
131
|
+
}
|
132
|
+
|
133
|
+
else # if you are going to be transported
|
125
134
|
newcoords_unit.cargo.insert(-1, self) # -1 = to the end
|
135
|
+
puts PROMPT + to_s + ' got loaded into '+ newcoords_unit.to_s
|
126
136
|
end
|
127
137
|
|
128
|
-
else # if there already is somebody
|
138
|
+
else # if there already is somebody that can't transport you (enemy or full friend)
|
129
139
|
# Stay on your original tile
|
130
140
|
@x = old_x
|
131
141
|
@y = old_y
|
132
142
|
|
133
|
-
#
|
134
|
-
if newcoords_unit.faction
|
135
|
-
|
136
|
-
|
143
|
+
# If it was a friend unit
|
144
|
+
if newcoords_unit.faction == @faction
|
145
|
+
if !newcoords_unit.can_transport?
|
146
|
+
puts PROMPT + newcoords_unit.to_s + ' can\'t transport other units'
|
147
|
+
else # newcoords_unit.can_full?; has to be full then
|
148
|
+
puts PROMPT + newcoords_unit.to_s + ' is already full'
|
149
|
+
end
|
150
|
+
else
|
151
|
+
# Can it be captured?
|
152
|
+
if newcoords_unit.can_be_captured?
|
153
|
+
if can_capture? # then capture it if you can
|
154
|
+
puts PROMPT + to_s + ' is capturing ' + newcoords_unit.to_s
|
155
|
+
newcoords_unit.capture(@faction)
|
156
|
+
else
|
157
|
+
puts PROMPT + to_s + ' can\'t capture other units'
|
158
|
+
end
|
159
|
+
else # then battle it
|
160
|
+
puts PROMPT + to_s + ' is battling ' + newcoords_unit.to_s
|
161
|
+
newcoords_unit.destroy # TODO randomized combat
|
162
|
+
end
|
137
163
|
end
|
138
164
|
end
|
139
165
|
@moves_left -= 1
|
140
166
|
|
141
|
-
# Check if
|
142
|
-
|
143
|
-
puts to_s + " found itself in a bad place"
|
167
|
+
# Check if you are on an invalid type of terrain (unless transported)
|
168
|
+
unless tile_check == true
|
169
|
+
puts PROMPT + to_s + " found itself in a bad place"
|
144
170
|
destroy
|
145
171
|
end
|
146
172
|
end
|
@@ -152,7 +178,7 @@ puts "oldcoords_unit.cargo = \"#{oldcoords_unit.cargo}\""
|
|
152
178
|
scale_x = 1, scale_y = 1, color = COLOUR[@faction])
|
153
179
|
end
|
154
180
|
|
155
|
-
def can_move
|
181
|
+
def can_move?
|
156
182
|
(can_fly? || can_sail? || can_ride?) && @moves_left > 0
|
157
183
|
end
|
158
184
|
|
@@ -172,21 +198,39 @@ puts "oldcoords_unit.cargo = \"#{oldcoords_unit.cargo}\""
|
|
172
198
|
false
|
173
199
|
end
|
174
200
|
|
175
|
-
# Unit is able to both transport other units and currently has some space left
|
176
201
|
def can_transport?
|
177
|
-
@cargo_max > 0
|
202
|
+
@cargo_max > 0
|
203
|
+
end
|
204
|
+
|
205
|
+
def is_full?
|
206
|
+
@cargo.size >= @cargo_max # just == should be enough
|
178
207
|
end
|
179
208
|
|
180
209
|
def is_transporting?
|
181
210
|
@cargo.size > 0
|
182
211
|
end
|
183
212
|
|
213
|
+
def is_transported?
|
214
|
+
@map.get_unit(@x, @y) != self
|
215
|
+
end
|
216
|
+
|
217
|
+
def can_capture?
|
218
|
+
false
|
219
|
+
end
|
220
|
+
|
221
|
+
def can_be_captured?
|
222
|
+
false
|
223
|
+
end
|
224
|
+
|
225
|
+
# Checks if unit is on the right type of terrain (not for transported units)
|
184
226
|
def tile_check
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
227
|
+
unless is_transported?
|
228
|
+
case @map.tile(@x, @y).terrain
|
229
|
+
when TILE_SEA
|
230
|
+
return can_fly? || can_sail?
|
231
|
+
when TILE_GROUND
|
232
|
+
return can_fly? || can_ride?
|
233
|
+
end
|
190
234
|
end
|
191
235
|
true
|
192
236
|
end
|
@@ -198,19 +242,18 @@ puts "oldcoords_unit.cargo = \"#{oldcoords_unit.cargo}\""
|
|
198
242
|
def set_function(func)
|
199
243
|
unless @faction == 0 # neutral faction doesn't need functions
|
200
244
|
if (func == FUNCBUILD && !can_build?)
|
201
|
-
puts to_s + ": this unit can't build other units"
|
245
|
+
puts PROMPT + to_s + ": this unit can't build other units"
|
202
246
|
end
|
203
247
|
|
204
|
-
if @function == func
|
205
|
-
puts to_s + ": function already set to #{@function.func}"
|
248
|
+
if @function.func == func
|
249
|
+
puts PROMPT + to_s + ": function has already been set to #{@function.func}"
|
206
250
|
else
|
207
251
|
@function.func = func
|
208
|
-
puts to_s + ": function set to #{@function.func}"
|
252
|
+
puts PROMPT + to_s + ": function set to #{@function.func}"
|
209
253
|
end
|
210
254
|
end
|
211
255
|
end
|
212
256
|
|
213
|
-
|
214
257
|
def function!
|
215
258
|
ret = @function.func!(@x, @y, @map, @infopane)
|
216
259
|
puts to_s + ret
|
@@ -225,20 +268,20 @@ puts "oldcoords_unit.cargo = \"#{oldcoords_unit.cargo}\""
|
|
225
268
|
def info
|
226
269
|
ret = to_s + ": armor #{@armor_left}/#{@armor_max}"
|
227
270
|
|
228
|
-
if can_move
|
271
|
+
if can_move?
|
229
272
|
ret = ret + ", moves #{@moves_left}/#{@moves_max}"
|
230
273
|
end
|
231
274
|
|
232
275
|
ret = ret + ", func #{@function.func}"
|
233
276
|
|
234
277
|
if @cargo.size > 0
|
235
|
-
ret = ret + ", transports #{@cargo.size} units"
|
278
|
+
ret = ret + ", transports #{@cargo.size}/#{@cargo_max} units"
|
236
279
|
end
|
237
280
|
|
238
281
|
ret
|
239
282
|
end
|
240
283
|
|
241
|
-
def reset_moves
|
284
|
+
def reset_moves!
|
242
285
|
@moves_left = @moves_max
|
243
286
|
end
|
244
287
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: empi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.17'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-04-
|
12
|
+
date: 2016-04-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: gosu
|
@@ -63,6 +63,7 @@ files:
|
|
63
63
|
- lib/save/m01.esf
|
64
64
|
- lib/save/m03.esf
|
65
65
|
- lib/ship.rb
|
66
|
+
- lib/tile.rb
|
66
67
|
- lib/unit.rb
|
67
68
|
- lib/unitFunction.rb
|
68
69
|
- lib/town.rb
|
@@ -71,7 +72,7 @@ files:
|
|
71
72
|
- lib/cursor.rb
|
72
73
|
- lib/infopane.rb
|
73
74
|
- lib/empi.rb
|
74
|
-
homepage: http://www.bay12forums.com/smf/index.php?topic=157538
|
75
|
+
homepage: http://www.bay12forums.com/smf/index.php?topic=157538
|
75
76
|
licenses:
|
76
77
|
- CC-BY-SA 3.0
|
77
78
|
post_install_message:
|