comparison orpg/dieroller/rollers/std.py @ 195:b633f4c64aae alpha

Traipse Alpha 'OpenRPG' {100219-00} Traipse is a distribution of OpenRPG that is designed to be easy to setup and go. Traipse also makes it easy for developers to work on code without fear of sacrifice. 'Ornery-Orc' continues the trend of 'Grumpy' and adds fixes to the code. 'Ornery-Orc's main goal is to offer more advanced features and enhance the productivity of the user. Update Summary (Patch-2) New Features: New Namespace method with two new syntaxes Fixes: Fix to Server GUI startup errors Fix to Server GUI Rooms tab updating Fix to Chat and Settings if non existant die roller is picked Fix to Dieroller and .open() used with .vs(). Successes are correctly calculated Fix to Alias Lib's Export to Tree, Open, Save features Fix to alias node, now works properly Fix to Splitter node, minor GUI cleanup
author sirebral
date Sat, 24 Apr 2010 08:37:20 -0500
parents 5c9a118476b2
children 24769389a7ba
comparison
equal deleted inserted replaced
182:4b2884f29a72 195:b633f4c64aae
1 from orpg.dieroller.base import die_base, die_rollers 1 from orpg.dieroller.base import die_base, die_rollers
2 2
3 class std(die_base): 3 class std(die_base):
4 name = "std" 4 name = "std"
5 5
6 def __init__(self,source=[]): 6 def __init__(self, source=[]):
7 die_base.__init__(self,source) 7 die_base.__init__(self, source)
8 8
9 # Examples of adding member functions through inheritance. 9 # Examples of adding member functions through inheritance.
10 10
11 def ascending(self): 11 def ascending(self):
12 result = self[:] 12 result = self[:]
17 result = self[:] 17 result = self[:]
18 result.sort() 18 result.sort()
19 result.reverse() 19 result.reverse()
20 return result 20 return result
21 21
22 def takeHighest(self,num_dice): 22 def takeHighest(self, num_dice):
23 return self.descending()[:num_dice] 23 return self.descending()[:num_dice]
24 24
25 def takeLowest(self,num_dice): 25 def takeLowest(self,num_dice):
26 return self.ascending()[:num_dice] 26 return self.ascending()[:num_dice]
27 27
28 def extra(self,num): 28 def extra(self, num):
29 for i in range(len(self.data)): 29 for i in range(len(self.data)):
30 if self.data[i].lastroll() >= num: 30 if self.data[i].lastroll() >= num:
31 self.data[i].extraroll() 31 self.data[i].extraroll()
32 return self 32 return self
33 33
34 def open(self,num): 34 def open(self, num):
35 if num <= 1: 35 if num <= 1: self
36 self
37 done = 1 36 done = 1
38 for i in range(len(self.data)): 37 for i in range(len(self.data)):
39 if self.data[i].lastroll() >= num: 38 if self.data[i].lastroll() >= num:
40 self.data[i].extraroll() 39 self.data[i].extraroll()
41 done = 0 40 done = 0
42 if done: 41 if done: return self
43 return self 42 else: return self.open(num)
44 else:
45 return self.open(num)
46 43
47 def minroll(self,min): 44 def minroll(self,min):
48 for i in range(len(self.data)): 45 for i in range(len(self.data)):
49 if self.data[i].lastroll() < min: 46 if self.data[i].lastroll() < min:
50 self.data[i].roll(min) 47 self.data[i].roll(min)
51 return self 48 return self
52 49
53 def each(self,mod): 50 def each(self, mod):
54 mod = int(mod) 51 mod = int(mod)
55 for i in range(len(self.data)): 52 for i in range(len(self.data)):
56 self.data[i].modify(mod) 53 self.data[i].modify(mod)
57 return self 54 return self
58
59 55
60 def vs(self, target): 56 def vs(self, target):
61 for dn in self.data: 57 for dn in self.data:
62 dn.target = target 58 dn.target = target
63 return self 59 return self
70 def sum(self): 66 def sum(self):
71 retValue = 0 67 retValue = 0
72 for dn in self.data: 68 for dn in self.data:
73 setValue = reduce( lambda x, y : int(x)+int(y), dn.history ) 69 setValue = reduce( lambda x, y : int(x)+int(y), dn.history )
74 if dn.target: 70 if dn.target:
75 if setValue >= dn.target: 71 for dv in dn.history:
76 retValue += 1 72 if int(dv) >= dn.target: retValue += 1
77
78 else: 73 else:
79 retValue += setValue 74 retValue += setValue
80
81 return retValue 75 return retValue
82 76
83 die_rollers.register(std) 77 die_rollers.register(std)