mirror of
https://github.com/cyberarm/i-mic-rts.git
synced 2025-12-16 00:02:33 +00:00
Building units now uses orders 😃
This commit is contained in:
@@ -6,7 +6,7 @@ tiles = [
|
||||
[false, :path, :path, :path, false],
|
||||
]
|
||||
|
||||
IMICRTS::Entity.define_entity(:barracks, :building, 400, "Builds and soldiers", tiles) do |entity|
|
||||
IMICRTS::Entity.define_entity(:barracks, :building, 400, 40, "Builds and soldiers", tiles) do |entity|
|
||||
entity.has(:building)
|
||||
entity.has(:waypoint)
|
||||
entity.has(:spawner)
|
||||
|
||||
@@ -6,13 +6,13 @@ tiles = [
|
||||
[false, :path, :path, :path, false],
|
||||
]
|
||||
|
||||
IMICRTS::Entity.define_entity(:construction_yard, :building, 2_000, "Provides radar and builds construction workers", tiles) do |entity|
|
||||
IMICRTS::Entity.define_entity(:construction_yard, :building, 2_000, 310, "Provides radar and builds construction workers", tiles) do |entity|
|
||||
entity.has(:building)
|
||||
entity.has(:waypoint)
|
||||
entity.has(:spawner)
|
||||
entity.has(:build_queue)
|
||||
entity.has(:sidebar_actions)
|
||||
entity.component(:sidebar_actions).add(:add_to_build_queue, {entity: :construction_worker})
|
||||
entity.component(:sidebar_actions).add(:add_to_build_queue, { entity: :construction_worker })
|
||||
|
||||
entity.radius = 40
|
||||
entity.max_health = 100.0
|
||||
|
||||
@@ -6,13 +6,13 @@ tiles = [
|
||||
[false, false, false, false, false],
|
||||
]
|
||||
|
||||
IMICRTS::Entity.define_entity(:helipad, :building, 1_000, "Builds and rearms helicopters", tiles) do |entity|
|
||||
IMICRTS::Entity.define_entity(:helipad, :building, 1_000, 100, "Builds and rearms helicopters", tiles) do |entity|
|
||||
entity.has(:building)
|
||||
entity.has(:waypoint)
|
||||
entity.has(:spawner)
|
||||
entity.has(:build_queue)
|
||||
entity.has(:sidebar_actions)
|
||||
entity.component(:sidebar_actions).add(:add_to_build_queue, {entity: :helicopter})
|
||||
entity.component(:sidebar_actions).add(:add_to_build_queue, { entity: :helicopter })
|
||||
|
||||
entity.radius = 26
|
||||
entity.max_health = 100.0
|
||||
|
||||
@@ -6,7 +6,7 @@ tiles = [
|
||||
[false, false, :path, false, false],
|
||||
]
|
||||
|
||||
IMICRTS::Entity.define_entity(:power_plant, :building, 800, "Generates power", tiles) do |entity|
|
||||
IMICRTS::Entity.define_entity(:power_plant, :building, 800, 45, "Generates power", tiles) do |entity|
|
||||
entity.has(:building)
|
||||
|
||||
entity.radius = 24
|
||||
|
||||
@@ -6,7 +6,7 @@ tiles = [
|
||||
[false, false, :path, :path, false],
|
||||
]
|
||||
|
||||
IMICRTS::Entity.define_entity(:refinery, :building, 1_400, "Generates credits", tiles) do |entity|
|
||||
IMICRTS::Entity.define_entity(:refinery, :building, 1_400, 200, "Generates credits", tiles) do |entity|
|
||||
entity.has(:building)
|
||||
|
||||
entity.radius = 44
|
||||
|
||||
@@ -6,15 +6,15 @@ tiles = [
|
||||
[false, :path, :path, :path, false],
|
||||
]
|
||||
|
||||
IMICRTS::Entity.define_entity(:war_factory, :building, 2_000, "Builds units", tiles) do |entity|
|
||||
IMICRTS::Entity.define_entity(:war_factory, :building, 2_000, 310, "Builds units", tiles) do |entity|
|
||||
entity.has(:building)
|
||||
entity.has(:waypoint)
|
||||
entity.has(:spawner)
|
||||
entity.has(:build_queue)
|
||||
entity.has(:sidebar_actions)
|
||||
entity.component(:sidebar_actions).add(:add_to_build_queue, {entity: :jeep})
|
||||
entity.component(:sidebar_actions).add(:add_to_build_queue, {entity: :tank})
|
||||
entity.component(:sidebar_actions).add(:add_to_build_queue, {entity: :harvester})
|
||||
entity.component(:sidebar_actions).add(:add_to_build_queue, { entity: :jeep })
|
||||
entity.component(:sidebar_actions).add(:add_to_build_queue, { entity: :tank })
|
||||
entity.component(:sidebar_actions).add(:add_to_build_queue, { entity: :harvester })
|
||||
|
||||
entity.radius = 48
|
||||
entity.max_health = 100.0
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
IMICRTS::Entity.define_entity(:construction_worker, :unit, 1000, "Constructs buildings") do |entity|
|
||||
IMICRTS::Entity.define_entity(:construction_worker, :unit, 1000, 75, "Constructs buildings") do |entity|
|
||||
entity.has(:movement)
|
||||
entity.has(:build_queue)
|
||||
entity.has(:sidebar_actions)
|
||||
[:power_plant, :refinery, :barracks, :war_factory, :helipad, :construction_yard].each do |ent|
|
||||
entity.component(:sidebar_actions).add(:set_tool, {tool: :place_entity, entity: ent, construction_worker: entity})
|
||||
entity.component(:sidebar_actions).add(:set_tool, { tool: :place_entity, entity: ent, construction_worker: entity })
|
||||
end
|
||||
|
||||
entity.radius = 14
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
IMICRTS::Entity.define_entity(:harvester, :unit, 1400, "Harvests ore") do |entity, director|
|
||||
IMICRTS::Entity.define_entity(:harvester, :unit, 1400, 140, "Harvests ore") do |entity, director|
|
||||
entity.has(:movement)
|
||||
|
||||
entity.radius = 10
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
IMICRTS::Entity.define_entity(:helicopter, :unit, 400, "Attacks ground targets") do |entity|
|
||||
IMICRTS::Entity.define_entity(:helicopter, :unit, 400, 40, "Attacks ground targets") do |entity|
|
||||
entity.has(:movement)
|
||||
|
||||
entity.speed = 2.5
|
||||
entity.radius = 14
|
||||
entity.movement = :air
|
||||
entity.max_health = 100.0
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
IMICRTS::Entity.define_entity(:jeep, :unit, 400, "Attacks ground targets") do |entity|
|
||||
IMICRTS::Entity.define_entity(:jeep, :unit, 400, 40, "Attacks ground targets") do |entity|
|
||||
entity.has(:movement)
|
||||
entity.has(:turret)
|
||||
|
||||
entity.speed = 1.5
|
||||
entity.radius = 14
|
||||
entity.movement = :ground
|
||||
entity.max_health = 100.0
|
||||
@@ -14,4 +15,8 @@ IMICRTS::Entity.define_entity(:jeep, :unit, 400, "Attacks ground targets") do |e
|
||||
|
||||
entity.on_tick do
|
||||
end
|
||||
|
||||
entity.component(:movement).define_singleton_method(:rotate_towards) do |target|
|
||||
entity.angle = Gosu.angle(target.x, target.y, entity.position.x, entity.position.y)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
IMICRTS::Entity.define_entity(:tank, :unit, 800, "Attacks ground targets") do |entity|
|
||||
IMICRTS::Entity.define_entity(:tank, :unit, 800, 80, "Attacks ground targets") do |entity|
|
||||
entity.has(:movement)
|
||||
entity.has(:turret)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user