19928/jj_vitp/Interface/commands/move_command.e
Jocelyn Fiat 6dde6425c2 init
2024-06-17 09:09:33 +02:00

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