mirror of
https://github.com/cyberarm/i-mic-rts.git
synced 2025-12-15 07:42:34 +00:00
50 lines
1.3 KiB
Ruby
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
|