R3EXS 1.1.0 → 1.1.1

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/lib/R3EXS/RGSS3.rb CHANGED
@@ -3,6 +3,26 @@
3
3
  # RPG Maker VX Ace Color 类
4
4
  class Color
5
5
 
6
+ # red 通道的值
7
+ #
8
+ # @return [Integer]
9
+ attr_reader :red
10
+
11
+ # green 通道的值
12
+ #
13
+ # @return [Integer]
14
+ attr_reader :green
15
+
16
+ # blue 通道的值
17
+ #
18
+ # @return [Integer]
19
+ attr_reader :blue
20
+
21
+ # alpha 通道的值
22
+ #
23
+ # @return [Integer]
24
+ attr_reader :alpha
25
+
6
26
  # 初始化时接受以下几种参数情况:
7
27
  # - 无参数时,默认 (0, 0, 0, 0)
8
28
  # - 3 个参数时,默认为 (red, green, blue, 255)
@@ -13,6 +33,7 @@ class Color
13
33
  # - green: 绿色通道的值 (0-255)
14
34
  # - blue: 蓝色通道的值 (0-255)
15
35
  # - alpha: 可选,透明度通道的值 (0-255),默认为 255
36
+ #
16
37
  # @return [Color]
17
38
  def initialize(*args)
18
39
  case args.length
@@ -37,6 +58,7 @@ class Color
37
58
  # - green: 绿色通道的值 (0-255)
38
59
  # - blue: 蓝色通道的值 (0-255)
39
60
  # - alpha: 可选,透明度通道的值 (0-255),默认为 255
61
+ #
40
62
  # @return [void]
41
63
  def set(*args)
42
64
  case args.length
@@ -68,6 +90,7 @@ class Color
68
90
  # 序列化 Color 对象
69
91
  #
70
92
  # @param level [Integer] 序列化的级别
93
+ #
71
94
  # @return [String]
72
95
  def _dump(level)
73
96
  [@red, @green, @blue, @alpha].pack('D4')
@@ -76,6 +99,7 @@ class Color
76
99
  # 反序列化 Color 对象
77
100
  #
78
101
  # @param obj [String] 序列化后的字符串
102
+ #
79
103
  # @return [Color]
80
104
  def Color._load(obj)
81
105
  new(*obj.unpack('D4'))
@@ -84,6 +108,7 @@ class Color
84
108
  # 设置 red 通道的值,限制在 0 到 255 之间
85
109
  #
86
110
  # @param value [Float] 新的 red 通道值
111
+ #
87
112
  # @return [void]
88
113
  def red=(value)
89
114
  @red = [[value, 0.0].max, 255.0].min.to_i
@@ -92,6 +117,7 @@ class Color
92
117
  # 设置 green 通道的值,限制在 0 到 255 之间
93
118
  #
94
119
  # @param value [Float] 新的 green 通道值
120
+ #
95
121
  # @return [void]
96
122
  def green=(value)
97
123
  @green = [[value, 0.0].max, 255.0].min.to_i
@@ -100,6 +126,7 @@ class Color
100
126
  # 设置 blue 通道的值,限制在 0 到 255 之间
101
127
  #
102
128
  # @param value [Float] 新的 blue 通道值
129
+ #
103
130
  # @return [void]
104
131
  def blue=(value)
105
132
  @blue = [[value, 0.0].max, 255.0].min.to_i
@@ -108,10 +135,15 @@ class Color
108
135
  # 设置 alpha 通道的值,限制在 0 到 255 之间
109
136
  #
110
137
  # @param value [Float] 新的 alpha 通道值
138
+ #
111
139
  # @return [void]
112
140
  def alpha=(value)
113
141
  @alpha = [[value, 0.0].max, 255.0].min
114
142
  end
143
+ end
144
+
145
+ # RPG Maker VX Ace Tone 类
146
+ class Tone
115
147
 
116
148
  # red 通道的值
117
149
  #
@@ -128,14 +160,10 @@ class Color
128
160
  # @return [Integer]
129
161
  attr_reader :blue
130
162
 
131
- # alpha 通道的值
163
+ # gray 通道的值
132
164
  #
133
165
  # @return [Integer]
134
- attr_reader :alpha
135
- end
136
-
137
- # RPG Maker VX Ace Tone 类
138
- class Tone
166
+ attr_reader :gray
139
167
 
140
168
  # 初始化时接受以下几种参数情况:
141
169
  # - 无参数时,默认 (0, 0, 0, 0)
@@ -147,6 +175,7 @@ class Tone
147
175
  # - green: 绿色通道的值 (-255-255)
148
176
  # - blue: 蓝色通道的值 (-255-255)
149
177
  # - gray: 可选,灰度通道的值 (0-255),默认为 0
178
+ #
150
179
  # @return [Tone]
151
180
  def initialize(*args)
152
181
  case args.length
@@ -171,6 +200,7 @@ class Tone
171
200
  # - green: 绿色通道的值 (-255-255)
172
201
  # - blue: 蓝色通道的值 (-255-255)
173
202
  # - gray: 可选,透明度通道的值 (0-255),默认为 0
203
+ #
174
204
  # @return [void]
175
205
  def set(*args)
176
206
  case args.length
@@ -201,6 +231,7 @@ class Tone
201
231
  # 序列化 Tone 对象
202
232
  #
203
233
  # @param level [Integer] 序列化的级别
234
+ #
204
235
  # @return [String]
205
236
  def _dump(level)
206
237
  [@red, @green, @blue, @gray].pack('D4')
@@ -209,6 +240,7 @@ class Tone
209
240
  # 反序列化 Tone 对象
210
241
  #
211
242
  # @param obj [String] 序列化后的字符串
243
+ #
212
244
  # @return [Tone]
213
245
  def Tone._load(obj)
214
246
  new(*obj.unpack('D4'))
@@ -217,6 +249,7 @@ class Tone
217
249
  # 设置 red 通道的值,限制在 -255 到 255 之间
218
250
  #
219
251
  # @param value [Float] 新的 red 通道值
252
+ #
220
253
  # @return [void]
221
254
  def red=(value)
222
255
  @red = [[value, -255.0].max, 255.0].min.to_i
@@ -225,6 +258,7 @@ class Tone
225
258
  # 设置 green 通道的值,限制在 -255 到 255 之间
226
259
  #
227
260
  # @param value [Float] 新的 green 通道值
261
+ #
228
262
  # @return [void]
229
263
  def green=(value)
230
264
  @green = [[value, -255.0].max, 255.0].min.to_i
@@ -233,6 +267,7 @@ class Tone
233
267
  # 设置 blue 通道的值,限制在 -255 到 255 之间
234
268
  #
235
269
  # @param value [Float] 新的 blue 通道值
270
+ #
236
271
  # @return [void]
237
272
  def blue=(value)
238
273
  @blue = [[value, -255.0].max, 255.0].min.to_i
@@ -241,39 +276,44 @@ class Tone
241
276
  # 设置 alpha 通道的值,限制在 0 到 255 之间
242
277
  #
243
278
  # @param value [Float] 新的 alpha 通道值
279
+ #
244
280
  # @return [void]
245
281
  def gray=(value)
246
282
  @gray = [[value, 0.0].max, 255.0].min.to_i
247
283
  end
284
+ end
248
285
 
249
- # red 通道的值
286
+ # RPG Maker VX Ace Table 类
287
+ #
288
+ # Table 是一个多维数组,每个元素都是带符号的两字节整数(int16_t), 也就是 -32,768~32,767 之间的整数
289
+ #
290
+ # Ruby Array 类在处理大量信息时效率很差,因此使用了此类。
291
+ class Table
292
+
293
+ # 数据数组
250
294
  #
251
- # @return [Integer]
252
- attr_reader :red
295
+ # @return [Array<Integer>]
296
+ attr_accessor :data
253
297
 
254
- # green 通道的值
298
+ # 维度
255
299
  #
256
300
  # @return [Integer]
257
- attr_reader :green
301
+ attr_accessor :dim
258
302
 
259
- # blue 通道的值
303
+ # 第一维的长度
260
304
  #
261
305
  # @return [Integer]
262
- attr_reader :blue
306
+ attr_accessor :xsize
263
307
 
264
- # gray 通道的值
308
+ # 第二维的长度
265
309
  #
266
310
  # @return [Integer]
267
- attr_reader :gray
268
-
269
- end
311
+ attr_accessor :ysize
270
312
 
271
- # RPG Maker VX Ace Table 类
272
- #
273
- # Table 是一个多维数组,每个元素都是带符号的两字节整数(int16_t), 也就是 -32,768~32,767 之间的整数
274
- #
275
- # Ruby Array 类在处理大量信息时效率很差,因此使用了此类。
276
- class Table
313
+ # 第三维的长度
314
+ #
315
+ # @return [Integer]
316
+ attr_accessor :zsize
277
317
 
278
318
  # 初始化 Table 对象,指定多维数组各维的长度。生成的数组可以是 1~3 维,甚至是没有元素的数组。
279
319
  #
@@ -286,6 +326,7 @@ class Table
286
326
  # @param xsize [Integer] 第一维的长度(必需)
287
327
  # @param ysize [Integer, nil] 第二维的长度(可选,默认值为 nil)
288
328
  # @param zsize [Integer, nil] 第三维的长度(可选,默认值为 nil)
329
+ #
289
330
  # @return [Table]
290
331
  def initialize(xsize, ysize = nil, zsize = nil)
291
332
  init_attr(xsize, ysize, zsize)
@@ -296,6 +337,7 @@ class Table
296
337
  # @param xsize [Integer] 第一维的长度
297
338
  # @param ysize [Integer, nil] 第二维的长度(如果为 nil,则默认为 1)
298
339
  # @param zsize [Integer, nil] 第三维的长度(如果为 nil,则默认为 1)
340
+ #
299
341
  # @return [void]
300
342
  def init_attr(xsize, ysize, zsize)
301
343
  @dim = 1 + (ysize.nil? ? 0 : 1) + (zsize.nil? ? 0 : 1)
@@ -310,6 +352,7 @@ class Table
310
352
  # @param x [Integer] 第一维的长度(必需)
311
353
  # @param y [Integer] 第二维的长度(可选,默认值为 0)
312
354
  # @param z [Integer] 第三维的长度(可选,默认值为 0)
355
+ #
313
356
  # @return [Integer]
314
357
  def [](x, y = 0, z = 0)
315
358
  @data[x + y * @xsize + z * @xsize * @ysize]
@@ -322,6 +365,7 @@ class Table
322
365
  # - y: 第二维的长度(可选,默认值为 nil)
323
366
  # - z: 第三维的长度(可选,默认值为 nil)
324
367
  # - v: 新的元素值
368
+ #
325
369
  # @return [void]
326
370
  def []=(*args)
327
371
  v = args.pop
@@ -336,6 +380,7 @@ class Table
336
380
  # @param xsize [Integer] 第一维的长度(必需)
337
381
  # @param ysize [Integer, nil] 第二维的长度(可选,默认值为 nil)
338
382
  # @param zsize [Integer, nil] 第三维的长度(可选,默认值为 nil)
383
+ #
339
384
  # @return [void]
340
385
  def resize(xsize, ysize = nil, zsize = nil)
341
386
  old_data = @data.dup
@@ -353,6 +398,7 @@ class Table
353
398
  # 序列化 Table 对象
354
399
  #
355
400
  # @param level [Integer] 序列化的级别
401
+ #
356
402
  # @return [String]
357
403
  def _dump(level)
358
404
  s = [@dim, @xsize, @ysize, @zsize, @xsize * @ysize * @zsize].pack('LLLLL')
@@ -365,6 +411,7 @@ class Table
365
411
  # 反序列化 Table 对象
366
412
  #
367
413
  # @param obj [String] 序列化后的字符串
414
+ #
368
415
  # @return [Table]
369
416
  def Table._load(obj)
370
417
  # 从序列化字符串中解包维度信息
@@ -375,31 +422,6 @@ class Table
375
422
  # 现在 @data 已经从序列化字符串中完整提取
376
423
  table
377
424
  end
378
-
379
- # 数据数组
380
- #
381
- # @return [Array<Integer>]
382
- attr_accessor :data
383
-
384
- # 维度
385
- #
386
- # @return [Integer]
387
- attr_accessor :dim
388
-
389
- # 第一维的长度
390
- #
391
- # @return [Integer]
392
- attr_accessor :xsize
393
-
394
- # 第二维的长度
395
- #
396
- # @return [Integer]
397
- attr_accessor :ysize
398
-
399
- # 第三维的长度
400
- #
401
- # @return [Integer]
402
- attr_accessor :zsize
403
425
  end
404
426
 
405
427
  # RPG Maker VX Ace 的RPG 模块
@@ -692,7 +714,7 @@ module RPG
692
714
  acc_a = @exp_params[2].to_f
693
715
  acc_b = @exp_params[3].to_f
694
716
  return (basis * ((lv - 1) ** (0.9 + acc_a / 250)) * lv * (lv + 1) /
695
- (6 + lv ** 2 / 50 / acc_b) + (lv - 1) * extra).round.to_i
717
+ (6 + lv ** 2 / 50 / acc_b) + (lv - 1) * extra).round.to_i
696
718
  end
697
719
 
698
720
  attr_accessor :exp_params