gosu_extensions 0.3.5 → 0.3.6
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.
- data/VERSION +1 -1
- data/lib/core/initializer_hooks.rb +10 -2
- data/lib/traits/damaging.rb +3 -5
- data/lib/traits/hitpoints.rb +10 -6
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.6
|
@@ -7,10 +7,18 @@ module InitializerHooks
|
|
7
7
|
mattr_accessor :hooks # { class => [blocks] }
|
8
8
|
self.hooks = {}
|
9
9
|
|
10
|
-
#
|
10
|
+
# Runs the hooks for this instance for
|
11
|
+
# each class and superclass up to Sprite.
|
11
12
|
#
|
12
13
|
def after_initialize
|
13
|
-
|
14
|
+
self.class.ancestors.each do |klass|
|
15
|
+
run_hooks_for klass
|
16
|
+
break if klass == Sprite
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def run_hooks_for klass
|
21
|
+
hooks = InitializerHooks.hooks[klass]
|
14
22
|
hooks && hooks.each do |hook|
|
15
23
|
self.instance_eval &hook
|
16
24
|
end
|
data/lib/traits/damaging.rb
CHANGED
@@ -46,18 +46,16 @@ module Damaging extend Trait
|
|
46
46
|
klass.extend ClassMethods
|
47
47
|
end
|
48
48
|
|
49
|
-
def initialize
|
49
|
+
def initialize *args
|
50
50
|
raise DamageMissingError.new unless respond_to?(:damage)
|
51
|
-
super
|
51
|
+
super *args
|
52
52
|
end
|
53
53
|
|
54
54
|
module ClassMethods
|
55
|
-
|
56
55
|
def damage damage = nil, &block
|
57
|
-
block
|
56
|
+
block ||= lambda { damage }
|
58
57
|
define_method :damage, &block
|
59
58
|
end
|
60
|
-
|
61
59
|
end
|
62
60
|
|
63
61
|
end
|
data/lib/traits/hitpoints.rb
CHANGED
@@ -6,14 +6,16 @@ module Hitpoints extend Trait
|
|
6
6
|
#
|
7
7
|
manual <<-MANUAL
|
8
8
|
Defines:
|
9
|
-
hitpoints <some
|
10
|
-
|
9
|
+
hitpoints <some number>
|
10
|
+
hitpoints { <some dynamically generated number> }
|
11
|
+
|
11
12
|
Example:
|
12
13
|
hitpoints 10_000
|
14
|
+
hitpoints { rand(100) + 50 }
|
13
15
|
|
14
16
|
Call hit!(damage = 1) to remove hitpoints. This will call
|
15
17
|
* callback hit if hitpoints are still higher than 0.
|
16
|
-
* kill!, and if not available, destroy! if hitpoints are lower than 0.
|
18
|
+
* kill!, and if not available, destroy! if hitpoints are equal or lower than 0.
|
17
19
|
MANUAL
|
18
20
|
|
19
21
|
def self.included target_class
|
@@ -24,13 +26,15 @@ module Hitpoints extend Trait
|
|
24
26
|
|
25
27
|
# Define the amount of hitpoints of the thing.
|
26
28
|
#
|
27
|
-
def hitpoints amount
|
29
|
+
def hitpoints amount = nil, &block
|
28
30
|
include InstanceMethods
|
29
31
|
class_inheritable_accessor :prototype_hitpoints
|
30
32
|
self.prototype_hitpoints = amount
|
31
33
|
|
32
|
-
|
33
|
-
|
34
|
+
InitializerHooks.register self do
|
35
|
+
self.hitpoints = amount || block.call
|
36
|
+
end
|
37
|
+
|
34
38
|
end
|
35
39
|
|
36
40
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 6
|
9
|
+
version: 0.3.6
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Florian Hanke
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-05-11 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|