diff options
| author | arngo <[email protected]> | 2022-01-25 21:47:19 -0500 |
|---|---|---|
| committer | arngo <[email protected]> | 2022-01-25 21:47:19 -0500 |
| commit | 90d016e012cb45e814d0a09ae59efa0d06a90308 (patch) | |
| tree | 8eb7b1b368901204556357608eca27109a045f29 /src/levels.rb | |
| parent | 7471a6344ccde5abc404c4960584064c029b292b (diff) | |
| download | orc-arena-of-time-90d016e012cb45e814d0a09ae59efa0d06a90308.tar.gz orc-arena-of-time-90d016e012cb45e814d0a09ae59efa0d06a90308.zip | |
implement damage hitboxes
Diffstat (limited to 'src/levels.rb')
| -rw-r--r-- | src/levels.rb | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/levels.rb b/src/levels.rb index a6667cb..b655ed9 100644 --- a/src/levels.rb +++ b/src/levels.rb @@ -24,9 +24,14 @@ level0 = { [250,250, 250,150], [350,200, 050,350], [070,470, 200,200], - [350,200, 050,350], - [470,470, 200,020] + [470,470, 200,020], + ], + damage_areas: [ + [10, 0,0, 100,100], ], + damage_walls: [ + [10, 350,200, 050,350], + ] } Levels.push(level0) @@ -42,7 +47,29 @@ FECS::Sys.new('ConstructLevel') do offset_y: 0 ) end + level[:damage_areas].each do |dmg| + FECS::Cmp::DamageHitbox.new( + rec: Rl::Rectangle.new(*dmg[1..]), + damage: dmg[0], + ) + end + level[:damage_walls].each do |dmg| + FECS::Cmp::DamageHitbox.new( + rec: Rl::Rectangle.new(dmg[1]-1, dmg[2]-1, dmg[3]+2, dmg[4]+2), + damage: dmg[0], + ) + FECS::Cmp::Hitbox.new( + rec: Rl::Rectangle.new(*dmg[1..]), + ) + end + + player_pos = @player.component[FECS::Cmp::Position] + player_vel = @player.component[FECS::Cmp::Velocity] + player_pos.x = level[:player_spawn].x + player_pos.y = level[:player_spawn].y + player_vel.x = 0 + player_vel.y = 0 # use current_level component to know which level from levels array to load # create entities e.g. walls # set properties for scissor box |
