Update of /cvsroot/wpdev/xmlscripts/scripts/skills
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30554/skills
Modified Files:
carpentry.py
Log Message:
carpentry exceptional chances
fixed bug #0000322
Index: carpentry.py
===================================================================
RCS file: /cvsroot/wpdev/xmlscripts/scripts/skills/carpentry.py,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** carpentry.py 9 Jul 2004 10:30:26 -0000 1.18
--- carpentry.py 20 Sep 2004 18:11:32 -0000 1.19
***************
*** 58,61 ****
--- 58,62 ----
CraftItemAction.__init__(self, parent, title, itemid, definition)
self.markable = 1 # All carpentry items are not markable
+ self.stackable = 0
#
***************
*** 69,77 ****
minskill = self.skills[CARPENTRY][0]
maxskill = self.skills[CARPENTRY][1]
if self.skills.has_key(TINKERING):
minskill -= self.skills[TINKERING][0]
maxskill -= self.skills[TINKERING][1]
! chance = ( (player.skill[CARPENTRY] - minskill) / (maxskill - minskill) ) / 5.0
return chance
--- 70,82 ----
minskill = self.skills[CARPENTRY][0]
maxskill = self.skills[CARPENTRY][1]
+
if self.skills.has_key(TINKERING):
minskill -= self.skills[TINKERING][0]
maxskill -= self.skills[TINKERING][1]
! if minskill == maxskill or maxskill == 0:
! maxskill += 1
!
! chance = ( (player.skill[CARPENTRY]) / (maxskill) ) / 5.0
return chance
***************
*** 81,84 ****
--- 86,107 ----
#
def applyproperties(self, player, arguments, item, exceptional):
+ # Stackable items consume all resources
+ if self.stackable:
+ backpack = player.getbackpack()
+ count = -1
+ for (materials, amount, name) in self.materials:
+ items = backpack.countitems(materials)
+ if count == -1:
+ count = items / amount
+ else:
+ count = min(count, items / amount)
+ for (materials, amount, name) in self.materials:
+ backpack.removeitems( materials, count )
+ if count != -1:
+ item.amount += count
+ else:
+ item.amount = 1 + count
+ item.update()
+
# All carpentry items crafted out of ingots keep a resname
if self.submaterial1 > 0:
***************
*** 239,242 ****
--- 262,270 ----
action.materials.append([ids, amount, materialname])
+ # Consume all available materials scaled by the
+ # amount of each submaterial
+ elif subchild.name == 'stackable':
+ action.stackable = 1
+
# Skill requirement
elif subchild.name in skillnamesids:
|