mirror of
https://github.com/cyberarm/i-mic-rts.git
synced 2025-12-13 06:52:33 +00:00
Don't issue commands for moving and de/selecting entities, now able to 'pick' single entity if clicked on
This commit is contained in:
@@ -46,10 +46,12 @@ class IMICRTS
|
|||||||
@selection_start = @player.camera.transform(@game.window.mouse)
|
@selection_start = @player.camera.transform(@game.window.mouse)
|
||||||
end
|
end
|
||||||
when Gosu::MS_RIGHT
|
when Gosu::MS_RIGHT
|
||||||
@director.schedule_order(Order::MOVE, @player.id, @player.camera.transform(@game.window.mouse))
|
if @selected_entities.size > 0
|
||||||
|
@director.schedule_order(Order::MOVE, @player.id, @player.camera.transform(@game.window.mouse))
|
||||||
|
|
||||||
@game.overlays << Game::Overlay.new(Gosu::Image.new("#{IMICRTS::ASSETS_PATH}/cursors/move.png"), @player.camera.transform(@game.window.mouse), 0, 255)
|
@game.overlays << Game::Overlay.new(Gosu::Image.new("#{IMICRTS::ASSETS_PATH}/cursors/move.png"), @player.camera.transform(@game.window.mouse), 0, 255)
|
||||||
@game.overlays.last.position.z = ZOrder::OVERLAY
|
@game.overlays.last.position.z = ZOrder::OVERLAY
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -62,7 +64,24 @@ class IMICRTS
|
|||||||
|
|
||||||
diff = (@player.selected_entities - @selected_entities)
|
diff = (@player.selected_entities - @selected_entities)
|
||||||
|
|
||||||
@director.schedule_order(Order::DESELECTED_UNITS, @player.id, diff)
|
@director.schedule_order(Order::DESELECTED_UNITS, @player.id, diff) if diff.size > 0
|
||||||
|
if @selected_entities.size > 0
|
||||||
|
@director.schedule_order(Order::SELECTED_UNITS, @player.id, @selected_entities)
|
||||||
|
else
|
||||||
|
pick_entity
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def pick_entity
|
||||||
|
transform = @player.camera.transform(@game.window.mouse)
|
||||||
|
|
||||||
|
found = @player.entities.find do |ent|
|
||||||
|
transform.distance(ent.position) <= ent.radius
|
||||||
|
end
|
||||||
|
|
||||||
|
if found
|
||||||
|
@selected_entities = [found]
|
||||||
@director.schedule_order(Order::SELECTED_UNITS, @player.id, @selected_entities)
|
@director.schedule_order(Order::SELECTED_UNITS, @player.id, @selected_entities)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user