212
|
1 HOW TO CREATE A NEW DIE ROLLER
|
|
2
|
|
3 So you want a make a new roller or add a new option? here's a short guide.
|
|
4
|
|
5
|
|
6 Step 1: Create a new die roller sub class.
|
|
7
|
|
8 You need to derive a new die roller class from an existing die roller class.
|
|
9 Most likely, this will be the std die roller class.
|
|
10
|
|
11 The basics would look like this:
|
|
12
|
|
13 class new_roller(std):
|
|
14 def __init__(self,source=[]):
|
|
15 std.__init__(self,source)
|
|
16 .....
|
|
17
|
|
18 ....
|
|
19
|
|
20 Step 2: Implement new methods and/or override existing ones.
|
|
21
|
|
22 Now, you just need to implement any new die options and override any
|
|
23 existing ones that you want to act differently. The most common options
|
|
24 to override are the sum and __str__ functions. Sum is used to determine
|
|
25 the result of the rolls and __str__ is used to display the results in
|
|
26 a user friendly string.
|
|
27
|
|
28 For example:
|
|
29
|
|
30 class new_roller(std):
|
|
31 def __init__(self,source=[]):
|
|
32 std.__init__(self,source)
|
|
33 .....
|
|
34
|
|
35 def myoption(self,param):
|
|
36 ....
|
|
37
|
|
38 def sum(self):
|
|
39 ....
|
|
40
|
|
41 def __str__(self):
|
|
42 ....
|
|
43
|
|
44 REMEMBER!
|
|
45 Always return an instance of your die roller for each option expect str and sum.
|
|
46
|
|
47
|
|
48 Step 3:
|
|
49
|
|
50 Modify Utils.py
|
|
51
|
|
52 You need to make some minor modifications to utils.py to facilitate
|
|
53 your new roller. You need to a) add an import call for your roller,
|
|
54 and b) add your roller to the list of available rollers.
|
|
55
|
|
56 For example:
|
|
57
|
|
58 from die import *
|
|
59 # add addtional rollers here
|
|
60 from myroller import *
|
|
61 ....
|
|
62
|
|
63 rollers = ['std','wod','d20','myroller']
|
|
64
|
|
65 Step 4: You're done!
|
|
66
|
|
67 Test it and make sure it works. When you think its done, send it to
|
|
68 the openrpg developers and they might include it in future releases.
|
|
69
|
|
70 -Chris Davis
|
|
71
|
|
72
|