96 lines
1.5 KiB
Plaintext
96 lines
1.5 KiB
Plaintext
note
|
|
description: "[
|
|
Command for changing the `home_base' of units.
|
|
]"
|
|
author: "Jimmy J. Johnson"
|
|
|
|
class
|
|
REBASE_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
|
|
-- -- Just pick a port
|
|
-- port := Attu
|
|
-- old_port := Attu
|
|
-- end
|
|
|
|
make (a_unit: like unit; a_port: like port)
|
|
-- Initialize a command that can change the `home_port of `a_unit'
|
|
-- to `a_port'
|
|
require
|
|
unit_exists: a_unit /= Void
|
|
port_exists: a_port /= Void
|
|
do
|
|
default_create
|
|
unit := a_unit
|
|
port := a_port
|
|
old_port := a_port
|
|
affected_objects.extend (unit)
|
|
end
|
|
|
|
feature -- Access
|
|
|
|
text: STRING
|
|
-- Description of the command
|
|
do
|
|
Result := "COMMAND: Rebase -- "+ unit.name + " from " + old_port.name + " to " + port.name
|
|
end
|
|
|
|
unit: ATTACK_UNIT
|
|
-- The unit to be moved
|
|
|
|
port: PORT
|
|
-- The port to which `unit' is to be rebased
|
|
|
|
old_port: PORT
|
|
-- The port from which `unit' was rebased
|
|
|
|
feature -- Basic operations
|
|
|
|
execute
|
|
-- Perform the action
|
|
do
|
|
Precursor {VITP_COMMAND}
|
|
old_port := unit.home_port
|
|
unit.set_home_port (port)
|
|
end
|
|
|
|
undo
|
|
-- Reverse the effects of executing the command
|
|
do
|
|
Precursor {VITP_COMMAND}
|
|
unit.set_home_port (old_port)
|
|
end
|
|
|
|
|
|
end
|