95 lines
1.6 KiB
Plaintext
95 lines
1.6 KiB
Plaintext
note
|
|
description: "[
|
|
Command used to move widgets in VITP
|
|
]"
|
|
author: "Jimmy J. Johnson"
|
|
|
|
class
|
|
MOVE_COMMAND
|
|
|
|
inherit
|
|
|
|
VITP_COMMAND
|
|
redefine
|
|
-- default_create,
|
|
text,
|
|
execute,
|
|
undo
|
|
end
|
|
|
|
-- LOCATION_CONSTANTS
|
|
-- undefine
|
|
-- default_create
|
|
-- end
|
|
|
|
-- ATTACK_UNIT_CONSTANTS
|
|
-- undefine
|
|
-- default_create
|
|
-- end
|
|
|
|
create
|
|
-- default_create,
|
|
make
|
|
|
|
feature {NONE} -- Initialization
|
|
|
|
-- default_create
|
|
-- -- Create an instance
|
|
-- do
|
|
-- Precursor {VITP_COMMAND}
|
|
-- unit := Default_ship
|
|
-- location := Still_in_box
|
|
-- old_location := Still_in_box
|
|
-- end
|
|
|
|
make (a_unit: like unit; a_location: like location)
|
|
-- Initialize a command that can move `a_unit' to `a_to_location'
|
|
require
|
|
unit_exists: a_unit /= Void
|
|
location_exists: a_location /= Void
|
|
do
|
|
default_create
|
|
unit := a_unit
|
|
location := a_location
|
|
old_location := a_unit.game.still_in_box
|
|
affected_objects.extend (unit)
|
|
end
|
|
|
|
feature -- Access
|
|
|
|
text: STRING
|
|
-- Description of the command
|
|
do
|
|
Result := "COMMAND: Move -- "+ unit.name + " from " + old_location.name + " to " + location.name
|
|
end
|
|
|
|
unit: ATTACK_UNIT
|
|
-- The unit to be moved
|
|
|
|
location: LOCATION
|
|
-- The location to which `unit' is to be moved
|
|
|
|
old_location: LOCATION
|
|
-- The location from which `unit' was moved
|
|
|
|
feature -- Basic operations
|
|
|
|
execute
|
|
-- Perform the action
|
|
do
|
|
Precursor {VITP_COMMAND}
|
|
old_location := unit.location
|
|
unit.set_location (location)
|
|
end
|
|
|
|
undo
|
|
-- Reverse the effects of executing the command
|
|
do
|
|
Precursor {VITP_COMMAND}
|
|
unit.set_location (old_location)
|
|
end
|
|
|
|
feature -- Status report
|
|
|
|
end
|