rgss_db 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +5 -0
- data/COPYING.md +674 -0
- data/README.md +347 -0
- data/bin/rgss-db +4 -0
- data/bin/rgssdb +4 -0
- data/lib/rgss_db/app.rb +928 -0
- data/lib/rgss_db/controller/data_manager.rb +557 -0
- data/lib/rgss_db/model/data_file.rb +516 -0
- data/lib/rgss_db/model/data_file_factory.rb +94 -0
- data/lib/rgss_db/model/debug.rb +199 -0
- data/lib/rgss_db/model/errors.rb +17 -0
- data/lib/rgss_db/model/mixins/jsonable.rb +35 -0
- data/lib/rgss_db/model/mixins/jsonable_constructor.rb +40 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rgss/color.rb +72 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rgss/rect.rb +70 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rgss/table.rb +99 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rgss/tone.rb +72 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rgss.rb +11 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/actor.rb +44 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/animation.rb +31 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/animation_frame.rb +20 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/animation_timing.rb +23 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/area.rb +26 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/armor.rb +31 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/audio_file.rb +23 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/base_item.rb +25 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/bgm.rb +36 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/bgs.rb +36 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/class.rb +31 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/class_learning.rb +20 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/common_event.rb +25 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/enemy.rb +44 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/enemy_action.rb +29 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/enemy_drop_item.rb +23 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/event.rb +36 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/event_command.rb +19 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/event_page.rb +32 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/event_page_condition.rb +34 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/event_page_graphic.rb +25 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/item.rb +27 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/map.rb +47 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/map_info.rb +26 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/me.rb +27 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/move_command.rb +18 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/move_route.rb +20 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/se.rb +21 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/skill.rb +22 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/state.rb +47 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/system.rb +43 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/system_terms.rb +53 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/system_test_battler.rb +25 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/system_vehicle.rb +24 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/troop.rb +24 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/troop_member.rb +23 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/troop_page.rb +21 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/troop_page_condition.rb +33 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/usable_item.rb +87 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg/weapon.rb +31 -0
- data/lib/rgss_db/model/rpg_maker_data/vx/rpg.rb +59 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rgss/color.rb +72 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rgss/rect.rb +70 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rgss/table.rb +99 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rgss/tone.rb +72 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rgss.rb +11 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/actor.rb +27 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/animation.rb +31 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/animation_frame.rb +23 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/animation_timing.rb +26 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/armor.rb +20 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/audio_file.rb +23 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/base_item.rb +31 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/base_item_feature.rb +29 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/bgm.rb +43 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/bgs.rb +43 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/class.rb +37 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/class_learning.rb +24 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/common_event.rb +33 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/enemy.rb +27 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/enemy_action.rb +26 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/enemy_drop_item.rb +24 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/equip_item.rb +19 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/event.rb +36 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/event_command.rb +19 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/event_page.rb +35 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/event_page_condition.rb +40 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/event_page_graphic.rb +31 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/item.rb +25 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/map.rb +58 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/map_encounter.rb +23 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/map_info.rb +26 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/me.rb +27 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/move_command.rb +17 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/move_route.rb +19 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/se.rb +21 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/skill.rb +25 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/state.rb +34 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/system.rb +62 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/system_terms.rb +25 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/system_test_battler.rb +24 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/system_vehicle.rb +27 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/tileset.rb +26 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/troop.rb +24 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/troop_member.rb +25 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/troop_page.rb +24 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/troop_page_condition.rb +39 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/usable_item.rb +84 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/usable_item_damage.rb +56 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/usable_item_effect.rb +25 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/weapon.rb +25 -0
- data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg.rb +66 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rgss/color.rb +72 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rgss/rect.rb +70 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rgss/table.rb +99 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rgss/tone.rb +72 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rgss.rb +11 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/actor.rb +44 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/animation.rb +28 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/animation_frame.rb +20 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/animation_timing.rb +24 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/armor.rb +37 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/audio_file.rb +23 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/class.rb +28 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/class_learning.rb +20 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/common_event.rb +25 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/enemy.rb +47 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/enemy_action.rb +28 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/event.rb +36 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/event_command.rb +19 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/event_page.rb +32 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/event_page_condition.rb +30 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/event_page_graphic.rb +27 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/item.rb +48 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/map.rb +39 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/map_info.rb +26 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/move_command.rb +18 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/move_route.rb +19 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/skill.rb +47 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/state.rb +51 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/system.rb +56 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/system_test_battler.rb +25 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/system_words.rb +39 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/tileset.rb +39 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/troop.rb +24 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/troop_member.rb +23 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/troop_page.rb +21 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/troop_page_condition.rb +32 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg/weapon.rb +38 -0
- data/lib/rgss_db/model/rpg_maker_data/xp/rpg.rb +52 -0
- data/lib/rgss_db/model/strings.rb +607 -0
- data/lib/rgss_db/model/utilities.rb +90 -0
- data/lib/rgss_db/version.rb +7 -0
- data/lib/rgss_db/view/app_cli.rb +449 -0
- data/lib/rgss_db.rb +41 -0
- data/sig/rgss_db.rbs +5221 -0
- metadata +496 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RPG
|
4
|
+
#
|
5
|
+
# The data class for enemy troops.
|
6
|
+
#
|
7
|
+
class Troop
|
8
|
+
#
|
9
|
+
# The data class for battle events (pages).
|
10
|
+
#
|
11
|
+
class Page
|
12
|
+
#
|
13
|
+
# The data class of battle event [Conditions].
|
14
|
+
#
|
15
|
+
class Condition
|
16
|
+
include RgssDb::Jsonable
|
17
|
+
extend RgssDb::JsonableConstructor
|
18
|
+
|
19
|
+
def initialize
|
20
|
+
@turn_ending = false
|
21
|
+
@turn_valid = false
|
22
|
+
@enemy_valid = false
|
23
|
+
@actor_valid = false
|
24
|
+
@switch_valid = false
|
25
|
+
@turn_a = 0
|
26
|
+
@turn_b = 0
|
27
|
+
@enemy_index = 0
|
28
|
+
@enemy_hp = 50
|
29
|
+
@actor_id = 1
|
30
|
+
@actor_hp = 50
|
31
|
+
@switch_id = 1
|
32
|
+
end
|
33
|
+
|
34
|
+
attr_accessor :turn_ending, :turn_valid, :enemy_valid, :actor_valid, :switch_valid,
|
35
|
+
:turn_a, :turn_b, :enemy_index, :enemy_hp, :actor_id, :actor_hp, :switch_id
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RPG
|
4
|
+
#
|
5
|
+
# The Superclass of Skill and Item.
|
6
|
+
#
|
7
|
+
class UsableItem < BaseItem
|
8
|
+
include RgssDb::Jsonable
|
9
|
+
extend RgssDb::JsonableConstructor
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
super
|
13
|
+
@scope = 0
|
14
|
+
@occasion = 0
|
15
|
+
@speed = 0
|
16
|
+
@success_rate = 100
|
17
|
+
@repeats = 1
|
18
|
+
@tp_gain = 0
|
19
|
+
@hit_type = 0
|
20
|
+
@animation_id = 0
|
21
|
+
@damage = RPG::UsableItem::Damage.new
|
22
|
+
@effects = []
|
23
|
+
end
|
24
|
+
|
25
|
+
def for_opponent?
|
26
|
+
[1, 2, 3, 4, 5, 6].include?(@scope)
|
27
|
+
end
|
28
|
+
|
29
|
+
def for_friend?
|
30
|
+
[7, 8, 9, 10, 11].include?(@scope)
|
31
|
+
end
|
32
|
+
|
33
|
+
def for_dead_friend?
|
34
|
+
[9, 10].include?(@scope)
|
35
|
+
end
|
36
|
+
|
37
|
+
def for_user?
|
38
|
+
@scope == 11
|
39
|
+
end
|
40
|
+
|
41
|
+
def for_one?
|
42
|
+
[1, 3, 7, 9, 11].include?(@scope)
|
43
|
+
end
|
44
|
+
|
45
|
+
def for_random?
|
46
|
+
[3, 4, 5, 6].include?(@scope)
|
47
|
+
end
|
48
|
+
|
49
|
+
def number_of_targets
|
50
|
+
for_random? ? @scope - 2 : 0
|
51
|
+
end
|
52
|
+
|
53
|
+
def for_all?
|
54
|
+
[2, 8, 10].include?(@scope)
|
55
|
+
end
|
56
|
+
|
57
|
+
def need_selection?
|
58
|
+
[1, 7, 9].include?(@scope)
|
59
|
+
end
|
60
|
+
|
61
|
+
def battle_ok?
|
62
|
+
[0, 1].include?(@occasion)
|
63
|
+
end
|
64
|
+
|
65
|
+
def menu_ok?
|
66
|
+
[0, 2].include?(@occasion)
|
67
|
+
end
|
68
|
+
|
69
|
+
def certain?
|
70
|
+
@hit_type == 0
|
71
|
+
end
|
72
|
+
|
73
|
+
def physical?
|
74
|
+
@hit_type == 1
|
75
|
+
end
|
76
|
+
|
77
|
+
def magical?
|
78
|
+
@hit_type == 2
|
79
|
+
end
|
80
|
+
|
81
|
+
attr_accessor :scope, :occasion, :speed, :animation_id, :success_rate,
|
82
|
+
:repeats, :tp_gain, :hit_type, :damage, :effects
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RPG
|
4
|
+
#
|
5
|
+
# The Superclass of Skill and Item.
|
6
|
+
#
|
7
|
+
class UsableItem < BaseItem
|
8
|
+
#
|
9
|
+
# The data inner class for damage.
|
10
|
+
#
|
11
|
+
class Damage
|
12
|
+
include RgssDb::Jsonable
|
13
|
+
extend RgssDb::JsonableConstructor
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
@type = 0
|
17
|
+
@element_id = 0
|
18
|
+
@formula = "0"
|
19
|
+
@variance = 20
|
20
|
+
@critical = false
|
21
|
+
end
|
22
|
+
|
23
|
+
def none?
|
24
|
+
@type == 0
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_hp?
|
28
|
+
[1, 3, 5].include?(@type)
|
29
|
+
end
|
30
|
+
|
31
|
+
def to_mp?
|
32
|
+
[2, 4, 6].include?(@type)
|
33
|
+
end
|
34
|
+
|
35
|
+
def recover?
|
36
|
+
[3, 4].include?(@type)
|
37
|
+
end
|
38
|
+
|
39
|
+
def drain?
|
40
|
+
[5, 6].include?(@type)
|
41
|
+
end
|
42
|
+
|
43
|
+
def sign
|
44
|
+
recover? ? -1 : 1
|
45
|
+
end
|
46
|
+
|
47
|
+
def eval(a, b, v)
|
48
|
+
[Kernel.eval(@formula), 0].max * sign
|
49
|
+
rescue StandardError
|
50
|
+
0
|
51
|
+
end
|
52
|
+
|
53
|
+
attr_accessor :type, :element_id, :formula, :variance, :critical
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RPG
|
4
|
+
#
|
5
|
+
# The Superclass of Skill and Item.
|
6
|
+
#
|
7
|
+
class UsableItem < BaseItem
|
8
|
+
#
|
9
|
+
# The data inner class for use effects.
|
10
|
+
#
|
11
|
+
class Effect
|
12
|
+
include RgssDb::Jsonable
|
13
|
+
extend RgssDb::JsonableConstructor
|
14
|
+
|
15
|
+
def initialize(code = 0, data_id = 0, value1 = 0, value2 = 0)
|
16
|
+
@code = code
|
17
|
+
@data_id = data_id
|
18
|
+
@value1 = value1
|
19
|
+
@value2 = value2
|
20
|
+
end
|
21
|
+
|
22
|
+
attr_accessor :code, :data_id, :value1, :value2
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RPG
|
4
|
+
#
|
5
|
+
# The data class for weapons.
|
6
|
+
#
|
7
|
+
class Weapon < EquipItem
|
8
|
+
include RgssDb::Jsonable
|
9
|
+
extend RgssDb::JsonableConstructor
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
super
|
13
|
+
@wtype_id = 0
|
14
|
+
@animation_id = 0
|
15
|
+
@features.push(RPG::BaseItem::Feature.new(31, 1, 0))
|
16
|
+
@features.push(RPG::BaseItem::Feature.new(22, 0, 0))
|
17
|
+
end
|
18
|
+
|
19
|
+
def performance
|
20
|
+
params[2] + params[4] + params.inject(0) { |r, v| r += v }
|
21
|
+
end
|
22
|
+
|
23
|
+
attr_accessor :wtype_id, :animation_id
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Application mixins
|
4
|
+
require_relative "../../mixins/jsonable"
|
5
|
+
require_relative "../../mixins/jsonable_constructor"
|
6
|
+
|
7
|
+
# RPGVXAce Data Structures (RPGVXAce.chm::/rgss/g_rpg_data.html)
|
8
|
+
require_relative "./rpg/map"
|
9
|
+
require_relative "./rpg/map_encounter"
|
10
|
+
require_relative "./rpg/map_info"
|
11
|
+
|
12
|
+
require_relative "./rpg/event"
|
13
|
+
require_relative "./rpg/event_page"
|
14
|
+
require_relative "./rpg/event_page_condition"
|
15
|
+
require_relative "./rpg/event_page_graphic"
|
16
|
+
|
17
|
+
require_relative "./rpg/event_command"
|
18
|
+
|
19
|
+
require_relative "./rpg/move_route"
|
20
|
+
require_relative "./rpg/move_command"
|
21
|
+
|
22
|
+
require_relative "./rpg/base_item"
|
23
|
+
require_relative "./rpg/actor"
|
24
|
+
require_relative "./rpg/class"
|
25
|
+
require_relative "./rpg/usable_item"
|
26
|
+
require_relative "./rpg/skill"
|
27
|
+
require_relative "./rpg/item"
|
28
|
+
require_relative "./rpg/equip_item"
|
29
|
+
require_relative "./rpg/weapon"
|
30
|
+
require_relative "./rpg/armor"
|
31
|
+
require_relative "./rpg/enemy"
|
32
|
+
require_relative "./rpg/state"
|
33
|
+
|
34
|
+
require_relative "./rpg/base_item_feature"
|
35
|
+
|
36
|
+
require_relative "./rpg/usable_item_damage"
|
37
|
+
require_relative "./rpg/usable_item_effect"
|
38
|
+
|
39
|
+
require_relative "./rpg/class_learning"
|
40
|
+
|
41
|
+
require_relative "./rpg/enemy_drop_item"
|
42
|
+
require_relative "./rpg/enemy_action"
|
43
|
+
|
44
|
+
require_relative "./rpg/troop"
|
45
|
+
require_relative "./rpg/troop_member"
|
46
|
+
require_relative "./rpg/troop_page"
|
47
|
+
require_relative "./rpg/troop_page_condition"
|
48
|
+
|
49
|
+
require_relative "./rpg/animation"
|
50
|
+
require_relative "./rpg/animation_frame"
|
51
|
+
require_relative "./rpg/animation_timing"
|
52
|
+
|
53
|
+
require_relative "./rpg/tileset"
|
54
|
+
|
55
|
+
require_relative "./rpg/common_event"
|
56
|
+
|
57
|
+
require_relative "./rpg/system"
|
58
|
+
require_relative "./rpg/system_vehicle"
|
59
|
+
require_relative "./rpg/system_terms"
|
60
|
+
require_relative "./rpg/system_test_battler"
|
61
|
+
|
62
|
+
require_relative "./rpg/audio_file"
|
63
|
+
require_relative "./rpg/bgm"
|
64
|
+
require_relative "./rpg/bgs"
|
65
|
+
require_relative "./rpg/me"
|
66
|
+
require_relative "./rpg/se"
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
#
|
4
|
+
# The RGBA color class.
|
5
|
+
#
|
6
|
+
# Each component is handled with a floating-point value (Float).
|
7
|
+
#
|
8
|
+
class Color
|
9
|
+
include RgssDb::Jsonable
|
10
|
+
extend RgssDb::JsonableConstructor
|
11
|
+
|
12
|
+
#
|
13
|
+
# Creates a Color object. If alpha is omitted, it is assumed to be 255.
|
14
|
+
#
|
15
|
+
# The default values when no arguments are specified are (0, 0, 0, 0).
|
16
|
+
#
|
17
|
+
# @param red [Integer]
|
18
|
+
# @param green [Integer]
|
19
|
+
# @param blue [Integer]
|
20
|
+
# @param alpha [Integer]
|
21
|
+
#
|
22
|
+
def initialize(red = 0, green = 0, blue = 0, alpha = 0)
|
23
|
+
@red = red
|
24
|
+
@green = green
|
25
|
+
@blue = blue
|
26
|
+
@alpha = [red, green, blue].sum.positive? && alpha.zero? ? 255 : alpha
|
27
|
+
end
|
28
|
+
|
29
|
+
#
|
30
|
+
# Dumps this instance into a binary string
|
31
|
+
#
|
32
|
+
# Note: needed for Marshal module support
|
33
|
+
#
|
34
|
+
# @return [String]
|
35
|
+
#
|
36
|
+
def _dump(*)
|
37
|
+
# double, double, double, double (double-precision)
|
38
|
+
[@red, @green, @blue, @alpha].pack("dddd")
|
39
|
+
end
|
40
|
+
|
41
|
+
#
|
42
|
+
# Creates a new instance using the given binary data
|
43
|
+
#
|
44
|
+
# Note: needed for Marshal module support
|
45
|
+
#
|
46
|
+
# @param serialized_string [String]
|
47
|
+
#
|
48
|
+
# @return [Color]
|
49
|
+
#
|
50
|
+
def self._load(serialized_string)
|
51
|
+
Color.new_serialized(serialized_string)
|
52
|
+
end
|
53
|
+
|
54
|
+
#
|
55
|
+
# Creates a new instance from a serialized string
|
56
|
+
#
|
57
|
+
# Note: needed for Marshal module support
|
58
|
+
#
|
59
|
+
# @param serialized_string [String]
|
60
|
+
#
|
61
|
+
# @return [Color]
|
62
|
+
#
|
63
|
+
def self.new_serialized(serialized_string)
|
64
|
+
# double, double, double, double (double-precision)
|
65
|
+
red, green, blue, alpha = serialized_string.unpack("dddd")
|
66
|
+
|
67
|
+
# Creates the instance
|
68
|
+
Color.new(red, green, blue, alpha)
|
69
|
+
end
|
70
|
+
|
71
|
+
attr_accessor :red, :green, :blue, :alpha
|
72
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
#
|
4
|
+
# The rectangle class.
|
5
|
+
#
|
6
|
+
class Rect
|
7
|
+
include RgssDb::Jsonable
|
8
|
+
extend RgssDb::JsonableConstructor
|
9
|
+
|
10
|
+
#
|
11
|
+
# Creates a new Rect object.
|
12
|
+
#
|
13
|
+
# The default values when no arguments are specified are (0, 0, 0, 0).
|
14
|
+
#
|
15
|
+
# @param x [Integer]
|
16
|
+
# @param y [Integer]
|
17
|
+
# @param width [Integer]
|
18
|
+
# @param height [Integer]
|
19
|
+
#
|
20
|
+
def initialize(x = 0, y = 0, width = 0, height = 0)
|
21
|
+
@x = x
|
22
|
+
@y = y
|
23
|
+
@width = width
|
24
|
+
@height = height
|
25
|
+
end
|
26
|
+
|
27
|
+
#
|
28
|
+
# Dumps this instance into a binary string
|
29
|
+
#
|
30
|
+
# Note: needed for Marshal module support
|
31
|
+
#
|
32
|
+
# @return [String]
|
33
|
+
#
|
34
|
+
def _dump(*)
|
35
|
+
# int32_t, int32_t, int32_t, int32_t
|
36
|
+
[@x, @y, @width, @height].pack("llll")
|
37
|
+
end
|
38
|
+
|
39
|
+
#
|
40
|
+
# Creates a new instance using the given binary data
|
41
|
+
#
|
42
|
+
# Note: needed for Marshal module support
|
43
|
+
#
|
44
|
+
# @param serialized_string [String]
|
45
|
+
#
|
46
|
+
# @return [Rect]
|
47
|
+
#
|
48
|
+
def self._load(serialized_string)
|
49
|
+
Rect.new_serialized(serialized_string)
|
50
|
+
end
|
51
|
+
|
52
|
+
#
|
53
|
+
# Creates a new instance from a serialized string
|
54
|
+
#
|
55
|
+
# Note: needed for Marshal module support
|
56
|
+
#
|
57
|
+
# @param serialized_string [String]
|
58
|
+
#
|
59
|
+
# @return [Rect]
|
60
|
+
#
|
61
|
+
def self.new_serialized(serialized_string)
|
62
|
+
# int32_t, int32_t, int32_t, int32_t
|
63
|
+
x, y, width, height = serialized_string.unpack("llll")
|
64
|
+
|
65
|
+
# Creates the instance
|
66
|
+
Rect.new(x, y, width, height)
|
67
|
+
end
|
68
|
+
|
69
|
+
attr_accessor :x, :y, :width, :height
|
70
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
#
|
4
|
+
# The multidimensional array class.
|
5
|
+
#
|
6
|
+
# Each element is an integer of 2 signed bytes ranging from -32,768 to 32,767.
|
7
|
+
#
|
8
|
+
class Table
|
9
|
+
include RgssDb::Jsonable
|
10
|
+
extend RgssDb::JsonableConstructor
|
11
|
+
|
12
|
+
#
|
13
|
+
# Creates a Table object.
|
14
|
+
#
|
15
|
+
# Specifies the size of each dimension in the multidimensional array. 1-, 2-, and 3-dimensional arrays are possible.
|
16
|
+
#
|
17
|
+
# Arrays with no parameters are also permitted.
|
18
|
+
#
|
19
|
+
# @param xsize [Integer]
|
20
|
+
# @param ysize [Integer]
|
21
|
+
# @param zsize [Integer]
|
22
|
+
#
|
23
|
+
def initialize(xsize, ysize = 0, zsize = 0)
|
24
|
+
# RMXP needs dimensions
|
25
|
+
@dim = 1
|
26
|
+
@dim = 2 if ysize.positive?
|
27
|
+
@dim = 3 if zsize.positive?
|
28
|
+
@x = xsize
|
29
|
+
@y = ysize
|
30
|
+
@z = zsize
|
31
|
+
@data = []
|
32
|
+
end
|
33
|
+
|
34
|
+
#
|
35
|
+
# Dumps this instance into a binary string
|
36
|
+
#
|
37
|
+
# Note: needed for Marshal module support
|
38
|
+
#
|
39
|
+
# @return [String]
|
40
|
+
#
|
41
|
+
def _dump(*)
|
42
|
+
# int32_t, int32_t, int32_t, int32_t, int32_t, int16_t *
|
43
|
+
[@dim, @x, @y, @z, @x * @y * @z, *@data].pack("llllls*")
|
44
|
+
end
|
45
|
+
|
46
|
+
#
|
47
|
+
# Creates a new instance using the given binary data
|
48
|
+
#
|
49
|
+
# Note: needed for Marshal module support
|
50
|
+
#
|
51
|
+
# @param serialized_string [String]
|
52
|
+
#
|
53
|
+
# @return [Table]
|
54
|
+
#
|
55
|
+
def self._load(serialized_string)
|
56
|
+
Table.new_serialized(serialized_string)
|
57
|
+
end
|
58
|
+
|
59
|
+
#
|
60
|
+
# Creates a new instance from a serialized string
|
61
|
+
#
|
62
|
+
# Note: needed for Marshal module support
|
63
|
+
#
|
64
|
+
# @param serialized_string [String]
|
65
|
+
#
|
66
|
+
# @return [Table]
|
67
|
+
#
|
68
|
+
def self.new_serialized(serialized_string)
|
69
|
+
# int32_t, int32_t, int32_t, int32_t, int32_t, int16_t *
|
70
|
+
dim, x, y, z, size, *data = serialized_string.unpack("llllls*")
|
71
|
+
|
72
|
+
# Checks if written size value matches the actual size of the table
|
73
|
+
raise "Table: bad file format (size mismatch)" unless size == (x * y * z)
|
74
|
+
# Double check no data was lost
|
75
|
+
raise "Table: bad file format (data length mismatch)" unless size == data.length
|
76
|
+
|
77
|
+
# Creates the instance
|
78
|
+
table = Table.new(0, 0, 0)
|
79
|
+
table.dim = dim
|
80
|
+
table.x = x
|
81
|
+
table.y = y
|
82
|
+
table.z = z
|
83
|
+
table.data = data
|
84
|
+
table
|
85
|
+
end
|
86
|
+
|
87
|
+
#
|
88
|
+
# Returns a table instance for JSON deserialization
|
89
|
+
#
|
90
|
+
# @param args [Array]
|
91
|
+
#
|
92
|
+
# @return [Table]
|
93
|
+
#
|
94
|
+
def self.json_new(*args)
|
95
|
+
Table.new(0, 0, 0)
|
96
|
+
end
|
97
|
+
|
98
|
+
attr_accessor :dim, :x, :y, :z, :data
|
99
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
#
|
4
|
+
# The color tone class.
|
5
|
+
#
|
6
|
+
# Each component is handled with a floating-point value (Float).
|
7
|
+
#
|
8
|
+
class Tone
|
9
|
+
include RgssDb::Jsonable
|
10
|
+
extend RgssDb::JsonableConstructor
|
11
|
+
|
12
|
+
#
|
13
|
+
# Creates a Tone object. If gray is omitted, it is assumed to be 0.
|
14
|
+
#
|
15
|
+
# The default values when no arguments are specified are (0, 0, 0, 0).
|
16
|
+
#
|
17
|
+
# @param red [Integer]
|
18
|
+
# @param green [Integer]
|
19
|
+
# @param blue [Integer]
|
20
|
+
# @param gray [Integer]
|
21
|
+
#
|
22
|
+
def initialize(red = 0, green = 0, blue = 0, gray = 0)
|
23
|
+
@red = red
|
24
|
+
@green = green
|
25
|
+
@blue = blue
|
26
|
+
@gray = gray
|
27
|
+
end
|
28
|
+
|
29
|
+
#
|
30
|
+
# Dumps this instance into a binary string
|
31
|
+
#
|
32
|
+
# Note: needed for Marshal module support
|
33
|
+
#
|
34
|
+
# @return [String]
|
35
|
+
#
|
36
|
+
def _dump(*)
|
37
|
+
# double, double, double, double (double-precision)
|
38
|
+
[@red, @green, @blue, @gray].pack("dddd")
|
39
|
+
end
|
40
|
+
|
41
|
+
#
|
42
|
+
# Creates a new instance using the given binary data
|
43
|
+
#
|
44
|
+
# Note: needed for Marshal module support
|
45
|
+
#
|
46
|
+
# @param serialized_string [String]
|
47
|
+
#
|
48
|
+
# @return [Tone]
|
49
|
+
#
|
50
|
+
def self._load(serialized_string)
|
51
|
+
Tone.new_serialized(serialized_string)
|
52
|
+
end
|
53
|
+
|
54
|
+
#
|
55
|
+
# Creates a new instance from a serialized string
|
56
|
+
#
|
57
|
+
# Note: needed for Marshal module support
|
58
|
+
#
|
59
|
+
# @param serialized_string [String]
|
60
|
+
#
|
61
|
+
# @return [Tone]
|
62
|
+
#
|
63
|
+
def self.new_serialized(serialized_string)
|
64
|
+
# double, double, double, double (double-precision)
|
65
|
+
red, green, blue, gray = serialized_string.unpack("dddd")
|
66
|
+
|
67
|
+
# Creates the instance
|
68
|
+
Tone.new(red, green, blue, gray)
|
69
|
+
end
|
70
|
+
|
71
|
+
attr_accessor :red, :green, :blue, :gray
|
72
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Application mixins
|
4
|
+
require_relative "../../mixins/jsonable"
|
5
|
+
require_relative "../../mixins/jsonable_constructor"
|
6
|
+
|
7
|
+
# RGSS Impl.
|
8
|
+
require_relative "./rgss/color"
|
9
|
+
require_relative "./rgss/rect"
|
10
|
+
require_relative "./rgss/table"
|
11
|
+
require_relative "./rgss/tone"
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RPG
|
4
|
+
#
|
5
|
+
# Data class for actors.
|
6
|
+
#
|
7
|
+
class Actor
|
8
|
+
include RgssDb::Jsonable
|
9
|
+
extend RgssDb::JsonableConstructor
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
@id = 0
|
13
|
+
@name = ""
|
14
|
+
@class_id = 1
|
15
|
+
@initial_level = 1
|
16
|
+
@final_level = 99
|
17
|
+
@exp_basis = 30
|
18
|
+
@exp_inflation = 30
|
19
|
+
@character_name = ""
|
20
|
+
@character_hue = 0
|
21
|
+
@battler_name = ""
|
22
|
+
@battler_hue = 0
|
23
|
+
@parameters = Table.new(6, 100)
|
24
|
+
@weapon_id = 0
|
25
|
+
@armor1_id = 0
|
26
|
+
@armor2_id = 0
|
27
|
+
@armor3_id = 0
|
28
|
+
@armor4_id = 0
|
29
|
+
@weapon_fix = false
|
30
|
+
@armor1_fix = false
|
31
|
+
@armor2_fix = false
|
32
|
+
@armor3_fix = false
|
33
|
+
@armor4_fix = false
|
34
|
+
end
|
35
|
+
|
36
|
+
def to_s
|
37
|
+
@name.to_s
|
38
|
+
end
|
39
|
+
|
40
|
+
attr_accessor :id, :name, :class_id, :initial_level, :final_level, :exp_basis, :exp_inflation, :character_name,
|
41
|
+
:character_hue, :battler_name, :battler_hue, :parameters, :weapon_id, :armor1_id, :armor2_id,
|
42
|
+
:armor3_id, :armor4_id, :weapon_fix, :armor1_fix, :armor2_fix, :armor3_fix, :armor4_fix
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RPG
|
4
|
+
#
|
5
|
+
# Data class for animation.
|
6
|
+
#
|
7
|
+
class Animation
|
8
|
+
include RgssDb::Jsonable
|
9
|
+
extend RgssDb::JsonableConstructor
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
@id = 0
|
13
|
+
@name = ""
|
14
|
+
@animation_name = ""
|
15
|
+
@animation_hue = 0
|
16
|
+
@position = 1
|
17
|
+
@frame_max = 1
|
18
|
+
@frames = [RPG::Animation::Frame.new]
|
19
|
+
@timings = []
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_s
|
23
|
+
@name.to_s
|
24
|
+
end
|
25
|
+
|
26
|
+
attr_accessor :id, :name, :animation_name, :animation_hue, :position, :frame_max, :frames, :timings
|
27
|
+
end
|
28
|
+
end
|