Files
i-mic-rts/lib/entities/structures/refinery.rb

50 lines
1.3 KiB
Ruby

tiles = [
[false, false, false, false, false],
[false, true, true, false, false],
[false, true, true, true, false],
[false, true, true, true, false],
[false, false, :path, :path, false],
]
IMICRTS::Entity.define_entity(:refinery, :structure, 1_400, 200, "Generates credits", tiles) do |entity|
unless entity.proto_entity
entity.has(:structure)
end
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, emitting: false)
entity.on_tick do
if entity.component(:structure).data.state == :idle
entity.particle_emitters.each do |emitter|
emitter.emitting = true
end
end
end
entity.on_order do |type, order|
case type
when IMICRTS::Order::CONSTRUCTION_COMPLETE
pos = entity.position.clone
pos.x += 32
pos.y += 64
entity.director.spawn_entity(player_id: entity.player.id, name: :harvester, position: pos)
end
end
end