diff --git a/lib/entities/buildings/power_plant.rb b/lib/entities/buildings/power_plant.rb index 40153da..aebcddc 100644 --- a/lib/entities/buildings/power_plant.rb +++ b/lib/entities/buildings/power_plant.rb @@ -1,15 +1,32 @@ IMICRTS::Entity.define_entity(:power_plant, :building, 800, "Generates power") do |entity| - entity.radius = 14 + entity.radius = 24 entity.max_health = 100.0 - entity.body_image = "vehicles/power_plant/images/power_plant.png" - entity.shell_image = "vehicles/power_plant/images/power_plant.png" + entity.body_image = "buildings/power_plant/power_plant.png" + entity.shell_image = "buildings/power_plant/power_plant_shell.png" + entity.overlay_image = "buildings/power_plant/power_plant_overlay.png" + + position = entity.position.clone + position.z = IMICRTS::ZOrder::OVERLAY + emitters = [] + + p1 = position.clone + p1.y -= 14 + p2 = p1.clone + p2.y += 40 + + emitters.push(p1, p2) + + + emitters.each do |pos| + entity.particle_emitters << IMICRTS::SmokeEmitter.new(position: pos) + end entity.on_tick do - entity.produce_power + # entity.produce_power end - define_singleton_method(:produce_power) do - @player.power += 10 - end + # define_singleton_method(:produce_power) do + # @player.power += 10 + # end end diff --git a/lib/entities/buildings/refinery.rb b/lib/entities/buildings/refinery.rb new file mode 100644 index 0000000..d95dc65 --- /dev/null +++ b/lib/entities/buildings/refinery.rb @@ -0,0 +1,20 @@ +IMICRTS::Entity.define_entity(:refinery, :building, 1_400, "Generates credits") do |entity| + entity.radius = 44 + entity.max_health = 100.0 + + entity.body_image = "buildings/refinery/refinery.png" + entity.shell_image = "buildings/refinery/refinery_shell.png" + entity.overlay_image = "buildings/refinery/refinery_overlay.png" + + position = entity.position.clone + position.z = IMICRTS::ZOrder::OVERLAY + + p1 = position.clone + p1.x += 2 + p1.y += 12 + + entity.particle_emitters << IMICRTS::SmokeEmitter.new(position: p1) + + entity.on_tick do + end +end diff --git a/lib/entities/buildings/war_factory.rb b/lib/entities/buildings/war_factory.rb new file mode 100644 index 0000000..f59d6ef --- /dev/null +++ b/lib/entities/buildings/war_factory.rb @@ -0,0 +1,22 @@ +IMICRTS::Entity.define_entity(:war_factory, :building, 2_000, "Generates credits") do |entity| + entity.radius = 48 + entity.max_health = 100.0 + + entity.shell_image = "buildings/war_factory/war_factory_shell.png" + entity.overlay_image = "buildings/war_factory/war_factory_overlay.png" + + position = entity.position.clone + position.z = IMICRTS::ZOrder::OVERLAY + + p1 = position.clone + p1.x += 32 + p1.y -= 9 + p2 = p1.clone + p2.y += 31 + + entity.particle_emitters << IMICRTS::SmokeEmitter.new(position: p1) + entity.particle_emitters << IMICRTS::SmokeEmitter.new(position: p2) + + entity.on_tick do + end +end diff --git a/lib/states/game.rb b/lib/states/game.rb index b432538..685ef02 100644 --- a/lib/states/game.rb +++ b/lib/states/game.rb @@ -83,6 +83,30 @@ class IMICRTS position: CyberarmEngine::Vector.new(spawnpoint.x - 64, spawnpoint.y + 64, ZOrder::GROUND_VEHICLE), angle: 0 ) + @player.entities << Entity.new( + name: :power_plant, + director: @director, + player: @player, + id: @player.next_entity_id, + position: CyberarmEngine::Vector.new(spawnpoint.x + 64, spawnpoint.y + 64, ZOrder::BUILDING), + angle: 0 + ) + @player.entities << Entity.new( + name: :refinery, + director: @director, + player: @player, + id: @player.next_entity_id, + position: CyberarmEngine::Vector.new(spawnpoint.x + 130, spawnpoint.y + 64, ZOrder::BUILDING), + angle: 0 + ) + @player.entities << Entity.new( + name: :war_factory, + director: @director, + player: @player, + id: @player.next_entity_id, + position: CyberarmEngine::Vector.new(spawnpoint.x + 130, spawnpoint.y - 64, ZOrder::BUILDING), + angle: 0 + ) end def draw