keep_calm_and_balance 0.4 → 0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 72de35bfb0bdfdc35b79adc3dd6e3bd40e4bff42210bf8e6556dc2eade4ddc99
4
- data.tar.gz: 01e0cb0378d78ed993fb0b309bbd6ff9bf12fe2a41cc5151979f0e6479ab496d
3
+ metadata.gz: 79aefc453af779f6913fc634fb8add221b7f8e6916ffff25e046f2a261e8adb6
4
+ data.tar.gz: bd89774663d3904121c659105c9fc1f1d69cc5d5106e88c5bf6d2d1b7345c347
5
5
  SHA512:
6
- metadata.gz: b50ac0264d12a23d0baefd75008484a2b5b71e8a5f0c329ee2c772e9d2d96e7a7a9002b4ee53799d4a93b777ff412f11aa4e84a1f289d2f0a3e8e2e02fecb809
7
- data.tar.gz: b6a9327ef6efc84174a744a8c07b740ed5314938bfbc8efd7d9b3c7454e3690be1e28a0c5f32056e00bc018a85eef3ac0437d55ba6a1cb04248e6d4d049d0ec5
6
+ metadata.gz: 1266025fa7fa0062e03d7d924f3886b1e6284793c423c57225c386a36ce69e431b6022c0353fe438b1543b3e9afbc2a24335b04c6469966e53db12e059c6f46a
7
+ data.tar.gz: 1588ced9a4984d74182d2cd8143a6522007c8d76df59e2815595e49c048a26e069451f685df65a48c623d4053b210fada5a33212f248f9efb20c92b4c44fa334
data/lib/CHANGELOG.md CHANGED
@@ -9,6 +9,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
9
9
  ### Removed
10
10
 
11
11
 
12
+ ## [v5](../../tags/v5) – 2021-10-25
13
+ ### Added
14
+ - paddle effect
15
+
16
+ ### Changed
17
+ - first effect is wind one
18
+ - paddle effect both for length and thickness
19
+
20
+
12
21
  ## [v4](../../tags/v4) – 2021-10-24
13
22
  ### Added
14
23
  - effect dealer
@@ -2,8 +2,8 @@ require 'rake'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'keep_calm_and_balance'
5
- spec.version = '0.4'
6
- spec.date = '2021-10-24'
5
+ spec.version = '0.5'
6
+ spec.date = '2021-10-25'
7
7
  spec.license = 'CC-BY-SA-3.0'
8
8
 
9
9
  spec.summary = "An action balancing game"
@@ -5,6 +5,6 @@ require_relative './lib/user_interface/game_window'
5
5
 
6
6
  PROMPT = '> '
7
7
 
8
- version = '0.4'
8
+ version = '0.5'
9
9
  $window = GameWindow.new(version)
10
10
  $window.show
@@ -1,3 +1,4 @@
1
+ require_relative './paddle_effect'
1
2
  require_relative './wind_effect'
2
3
 
3
4
  FIRST_EFFECT_TIME = 2 # seconds til the first effect
@@ -12,7 +13,7 @@ class EffectDealer
12
13
  @seasaw = seasaw
13
14
  @barrel = barrel
14
15
 
15
- @known = [WindEffect] # TODO not used
16
+ @other_known = [PaddleEffect] # added to available later
16
17
  reset!
17
18
  end
18
19
 
@@ -31,6 +32,11 @@ class EffectDealer
31
32
  if time_for_next?
32
33
  @latest = @available.sample.new(@infopane, @seasaw, @barrel) # pick random one
33
34
  @active.push(@latest)
35
+
36
+ if !@latest_at # the first effect just got picked
37
+ @available += @other_known
38
+ end
39
+
34
40
  @latest_at = @infopane.time
35
41
  end
36
42
  end
@@ -0,0 +1,47 @@
1
+ PADDLE_LIMITED = 60
2
+ PADDLE_CHANGE = 0.003 # percentage
3
+
4
+ LONG = 'long' # longer seasaw
5
+ SHORT = 'short' # longer seasaw
6
+ THICK = 'thick' # thicker seasaw
7
+ THIN = 'small' # thiner seasaw
8
+
9
+ class PaddleEffect
10
+ attr_reader :name
11
+
12
+ def initialize(infopane, seasaw, barrel)
13
+ @infopane = infopane
14
+ @seasaw = seasaw # not utilized
15
+ @barrel = barrel
16
+
17
+ @type = [LONG, SHORT, THICK, THIN].sample
18
+ @name = "#{@type} paddle"
19
+
20
+ @times_applied = 0
21
+ end
22
+
23
+ def update
24
+ if @times_applied < PADDLE_LIMITED
25
+ @direction = {
26
+ LONG => 1,
27
+ SHORT => -1,
28
+ THICK => 1,
29
+ THIN => -1
30
+ }[@type]
31
+ coeficient = 1 + @direction * PADDLE_CHANGE # add or sub the change
32
+
33
+ case @type
34
+ when LONG, SHORT then
35
+ @seasaw.scale_x *= coeficient
36
+ when THICK, THIN then
37
+ @seasaw.scale_y *= coeficient
38
+ end
39
+
40
+ @times_applied += 1
41
+ end
42
+ end
43
+
44
+ def draw
45
+ # TODO nothing?
46
+ end
47
+ end
@@ -1,7 +1,8 @@
1
1
  ANGLE_CHANGE = 0.3
2
2
 
3
3
  class Seesaw
4
- attr_reader :x, :y, :angle, :scale_x, :scale_y
4
+ attr_reader :x, :y, :angle
5
+ attr_accessor :scale_x, :scale_y
5
6
 
6
7
  def initialize()
7
8
  dir_path = File.dirname(__FILE__)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: keep_calm_and_balance
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: '0.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Detros
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-24 00:00:00.000000000 Z
11
+ date: 2021-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gosu
@@ -51,6 +51,7 @@ files:
51
51
  - lib/keep_calm_and_balance.gemspec
52
52
  - lib/keep_calm_and_balance.rb
53
53
  - lib/lib/effects/effect_dealer.rb
54
+ - lib/lib/effects/paddle_effect.rb
54
55
  - lib/lib/effects/wind_effect.rb
55
56
  - lib/lib/items/barrel.rb
56
57
  - lib/lib/items/seesaw.rb