From: <lyn...@us...> - 2008-09-14 20:19:55
|
Revision: 5299 http://gemrb.svn.sourceforge.net/gemrb/?rev=5299&view=rev Author: lynxlupodian Date: 2008-09-14 20:20:03 +0000 (Sun, 14 Sep 2008) Log Message: ----------- iwd2: (un)blur the cg feats descriptions depending on the number of feats left and also disable the plus buttons when there are no feats left Modified Paths: -------------- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py Modified: gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py =================================================================== --- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-09-14 19:38:50 UTC (rev 5298) +++ gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-09-14 20:20:03 UTC (rev 5299) @@ -54,6 +54,11 @@ # GemRB.SetButtonFlags(FeatWindow, Button1, IE_GUI_BUTTON_NO_IMAGE,OP_NAND) # GemRB.SetButtonFlags(FeatWindow, Button2, IE_GUI_BUTTON_NO_IMAGE,OP_NAND) + if PointsLeft == 0: + GemRB.SetButtonState(FeatWindow, Button1, IE_GUI_BUTTON_DISABLED) + GemRB.SetLabelTextColor(FeatWindow, Label, 150, 150, 150) + else: + GemRB.SetLabelTextColor(FeatWindow, Label, 255, 255, 255) return def ScrollBarPress(): @@ -118,10 +123,6 @@ GemRB.UnloadTable(TmpTable) ### - ### Human bonus feat hack, no longer needed - #if Level < 1 and RaceName == 'HUMAN': # Human sub-races do not receive free feat - # PointsLeft += 1 - GemRB.SetToken("number",str(PointsLeft) ) GemRB.LoadWindowPack("GUICG", 800, 600) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lyn...@us...> - 2008-09-14 21:04:34
|
Revision: 5300 http://gemrb.svn.sourceforge.net/gemrb/?rev=5300&view=rev Author: lynxlupodian Date: 2008-09-14 21:04:45 +0000 (Sun, 14 Sep 2008) Log Message: ----------- iwd2: mostly proper (more proper than before) feat +/- button handing Modified Paths: -------------- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py Modified: gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py =================================================================== --- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-09-14 20:20:03 UTC (rev 5299) +++ gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-09-14 21:04:45 UTC (rev 5300) @@ -39,23 +39,27 @@ GemRB.SetText(FeatWindow, Label, FeatName) FeatName=GemRB.GetTableRowName(FeatTable, Pos) #row name - - Button1 = GemRB.GetControl(FeatWindow, i*2+14) - Button2 = GemRB.GetControl(FeatWindow, i*2+15) - Ok = 1 - if Ok == 0: - GemRB.SetButtonState(FeatWindow, Button1, IE_GUI_BUTTON_DISABLED) - GemRB.SetButtonState(FeatWindow, Button2, IE_GUI_BUTTON_DISABLED) -# GemRB.SetButtonFlags(FeatWindow, Button1, IE_GUI_BUTTON_NO_IMAGE,OP_OR) -# GemRB.SetButtonFlags(FeatWindow, Button2, IE_GUI_BUTTON_NO_IMAGE,OP_OR) + FeatValue = GemRB.GetVar("Feat "+str(Pos)) + + ButtonPlus = GemRB.GetControl(FeatWindow, i*2+14) + ButtonMinus = GemRB.GetControl(FeatWindow, i*2+15) + if FeatValue == 0: + GemRB.SetButtonState(FeatWindow, ButtonMinus, IE_GUI_BUTTON_DISABLED) + # TODO: check if feat is usable + if True: + GemRB.SetButtonState(FeatWindow, ButtonPlus, IE_GUI_BUTTON_ENABLED) + else: + GemRB.SetButtonState(FeatWindow, ButtonPlus, IE_GUI_BUTTON_DISABLED) else: - GemRB.SetButtonState(FeatWindow, Button1, IE_GUI_BUTTON_ENABLED) - GemRB.SetButtonState(FeatWindow, Button2, IE_GUI_BUTTON_ENABLED) -# GemRB.SetButtonFlags(FeatWindow, Button1, IE_GUI_BUTTON_NO_IMAGE,OP_NAND) -# GemRB.SetButtonFlags(FeatWindow, Button2, IE_GUI_BUTTON_NO_IMAGE,OP_NAND) + # TODO: check for maximum if there are more feat levels + if True: + GemRB.SetButtonState(FeatWindow, ButtonPlus, IE_GUI_BUTTON_ENABLED) + else: + GemRB.SetButtonState(FeatWindow, ButtonPlus, IE_GUI_BUTTON_DISABLED) + GemRB.SetButtonState(FeatWindow, ButtonMinus, IE_GUI_BUTTON_ENABLED) if PointsLeft == 0: - GemRB.SetButtonState(FeatWindow, Button1, IE_GUI_BUTTON_DISABLED) + GemRB.SetButtonState(FeatWindow, ButtonPlus, IE_GUI_BUTTON_DISABLED) GemRB.SetLabelTextColor(FeatWindow, Label, 150, 150, 150) else: GemRB.SetLabelTextColor(FeatWindow, Label, 255, 255, 255) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lyn...@us...> - 2008-09-18 10:48:47
|
Revision: 5332 http://gemrb.svn.sourceforge.net/gemrb/?rev=5332&view=rev Author: lynxlupodian Date: 2008-09-18 10:48:58 +0000 (Thu, 18 Sep 2008) Log Message: ----------- iwd2::cg: improve the feats selection by checking if feats are usable or not; the function is done, but currently a dummy since Game::GetPC returns null and subsequently GemRB.CheckFeatCondition fails Modified Paths: -------------- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py Modified: gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py =================================================================== --- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-09-18 10:30:18 UTC (rev 5331) +++ gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-09-18 10:48:58 UTC (rev 5332) @@ -5,6 +5,7 @@ TextAreaControl = 0 DoneButton = 0 FeatTable = 0 +FeatReqTable = 0 TopIndex = 0 Level = 0 ClassColumn = 0 @@ -12,6 +13,22 @@ RaceColumn = 0 PointsLeft = 0 +def IsFeatUsable(feat): + global FeatReqTable + return True + + a_stat = GemRB.GetTableValue(FeatReqTable, feat, "A_STAT", 0) + b_stat = GemRB.GetTableValue(FeatReqTable, feat, "B_STAT", 0) + c_stat = GemRB.GetTableValue(FeatReqTable, feat, "C_STAT", 0) + d_stat = GemRB.GetTableValue(FeatReqTable, feat, "D_STAT", 0) + a_value = GemRB.GetTableValue(FeatReqTable, feat, "A_VALUE") + b_value = GemRB.GetTableValue(FeatReqTable, feat, "B_VALUE") + c_value = GemRB.GetTableValue(FeatReqTable, feat, "C_VALUE") + d_value = GemRB.GetTableValue(FeatReqTable, feat, "D_VALUE") + slot = GemRB.GetVar("Slot") + + return GemRB.CheckFeatCondition(slot, a_stat, a_value, b_stat, b_value, c_stat, c_value, d_stat, d_value) + def GetBaseValue(feat): Val = GemRB.GetTableValue(FeatTable, feat, ClassColumn) Val += GemRB.GetTableValue(FeatTable, feat, RaceColumn) @@ -45,8 +62,8 @@ ButtonMinus = GemRB.GetControl(FeatWindow, i*2+15) if FeatValue == 0: GemRB.SetButtonState(FeatWindow, ButtonMinus, IE_GUI_BUTTON_DISABLED) - # TODO: check if feat is usable - if True: + # check if feat is usable - can be taken + if IsFeatUsable(FeatName): GemRB.SetButtonState(FeatWindow, ButtonPlus, IE_GUI_BUTTON_ENABLED) else: GemRB.SetButtonState(FeatWindow, ButtonPlus, IE_GUI_BUTTON_DISABLED) @@ -74,7 +91,7 @@ def OnLoad(): global FeatWindow, TextAreaControl, DoneButton, TopIndex - global FeatTable + global FeatTable, FeatReqTable global KitName, Level, PointsLeft global ClassColumn, KitColumn, RaceColumn @@ -97,6 +114,7 @@ FeatTable = GemRB.LoadTable("feats") RowCount = GemRB.GetTableRowCount(FeatTable) + FeatReqTable = GemRB.LoadTable("featreq") for i in range(RowCount): GemRB.SetVar("Feat "+str(i),0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lyn...@us...> - 2008-09-18 13:46:52
|
Revision: 5340 http://gemrb.svn.sourceforge.net/gemrb/?rev=5340&view=rev Author: lynxlupodian Date: 2008-09-18 20:47:03 +0000 (Thu, 18 Sep 2008) Log Message: ----------- iwd2: feats cg: enabled the CheckFeatCondition check, added a default scrollbar, added coloring of unusable feats Modified Paths: -------------- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py Modified: gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py =================================================================== --- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-09-18 20:45:20 UTC (rev 5339) +++ gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-09-18 20:47:03 UTC (rev 5340) @@ -15,7 +15,6 @@ def IsFeatUsable(feat): global FeatReqTable - return True a_stat = GemRB.GetTableValue(FeatReqTable, feat, "A_STAT", 0) b_stat = GemRB.GetTableValue(FeatReqTable, feat, "B_STAT", 0) @@ -65,8 +64,10 @@ # check if feat is usable - can be taken if IsFeatUsable(FeatName): GemRB.SetButtonState(FeatWindow, ButtonPlus, IE_GUI_BUTTON_ENABLED) + GemRB.SetLabelTextColor(FeatWindow, Label, 255, 255, 255) else: GemRB.SetButtonState(FeatWindow, ButtonPlus, IE_GUI_BUTTON_DISABLED) + GemRB.SetLabelTextColor(FeatWindow, Label, 150, 150, 150) else: # TODO: check for maximum if there are more feat levels if True: @@ -78,8 +79,7 @@ if PointsLeft == 0: GemRB.SetButtonState(FeatWindow, ButtonPlus, IE_GUI_BUTTON_DISABLED) GemRB.SetLabelTextColor(FeatWindow, Label, 150, 150, 150) - else: - GemRB.SetLabelTextColor(FeatWindow, Label, 255, 255, 255) + return def ScrollBarPress(): @@ -181,6 +181,7 @@ TopIndex = 0 GemRB.SetVar("TopIndex",0) GemRB.SetVarAssoc(FeatWindow, ScrollBarControl, "TopIndex",RowCount-10) + GemRB.SetDefaultScrollBar (FeatWindow, ScrollBarControl) GemRB.SetEvent(FeatWindow,DoneButton,IE_GUI_BUTTON_ON_PRESS,"NextPress") GemRB.SetEvent(FeatWindow,BackButton,IE_GUI_BUTTON_ON_PRESS,"BackPress") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lyn...@us...> - 2008-09-23 20:18:58
|
Revision: 5348 http://gemrb.svn.sourceforge.net/gemrb/?rev=5348&view=rev Author: lynxlupodian Date: 2008-09-23 20:18:28 +0000 (Tue, 23 Sep 2008) Log Message: ----------- iwd2::cg: made the feats window almost perfect graphically; now also the slots are shown and filled (on demand, preloading class/race feats isn't implemented) Modified Paths: -------------- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py Modified: gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py =================================================================== --- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-09-23 18:48:45 UTC (rev 5347) +++ gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-09-23 20:18:28 UTC (rev 5348) @@ -43,7 +43,7 @@ return Val def RedrawFeats(): - global TopIndex, PointsLeft + global TopIndex, PointsLeft, FeatWindow, FeatReqTable SumLabel = GemRB.GetControl(FeatWindow, 0x1000000c) if PointsLeft == 0: @@ -90,6 +90,30 @@ GemRB.SetButtonState(FeatWindow, ButtonPlus, IE_GUI_BUTTON_DISABLED) GemRB.SetLabelTextColor(FeatWindow, Label, 150, 150, 150) + levels = GemRB.GetTableValue(FeatReqTable, FeatName, "MAX_LEVEL") + FeatValueCounter = FeatValue + # count backwards, since the controls follow each other in rtl order, + # while we need to change the bams in ltr order + for j in range(4, -1, -1): + Star = GemRB.GetControl(FeatWindow, i*5+j+36) + if 5 - j - 1 < levels: + # the star should be there, but which one? + if FeatValueCounter > 0: + # the full one - the character has already taken a level of this feat + GemRB.SetButtonState(FeatWindow, Star, IE_GUI_BUTTON_LOCKED) + GemRB.SetButtonBAM(FeatWindow, Star, "GUIPFC", 0, 0, -1) + GemRB.SetButtonFlags(FeatWindow, Star, IE_GUI_BUTTON_PICTURE, OP_OR) + FeatValueCounter = FeatValueCounter - 1 + else: + # the empty one - the character hasn't taken any levels of this feat yet + GemRB.SetButtonState(FeatWindow, Star, IE_GUI_BUTTON_LOCKED) + GemRB.SetButtonBAM(FeatWindow, Star, "GUIPFC", 0, 1, -1) + GemRB.SetButtonFlags(FeatWindow, Star, IE_GUI_BUTTON_PICTURE, OP_OR) + else: + # no star, no bad bam crap + GemRB.SetButtonState(FeatWindow, Star, IE_GUI_BUTTON_DISABLED) + GemRB.SetButtonFlags(FeatWindow, Star, IE_GUI_BUTTON_NO_IMAGE, OP_OR) + GemRB.SetButtonFlags(FeatWindow, Star, IE_GUI_BUTTON_PICTURE, OP_NAND) return def ScrollBarPress(): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ave...@us...> - 2008-10-13 17:37:44
|
Revision: 5430 http://gemrb.svn.sourceforge.net/gemrb/?rev=5430&view=rev Author: avenger_teambg Date: 2008-10-13 17:37:27 +0000 (Mon, 13 Oct 2008) Log Message: ----------- changed feats.py to read in the operators from featreq.2da Modified Paths: -------------- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py Modified: gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py =================================================================== --- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-10-13 17:36:05 UTC (rev 5429) +++ gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-10-13 17:37:27 UTC (rev 5430) @@ -32,6 +32,10 @@ b_value = GemRB.GetTableValue(FeatReqTable, feat, "B_VALUE") c_value = GemRB.GetTableValue(FeatReqTable, feat, "C_VALUE") d_value = GemRB.GetTableValue(FeatReqTable, feat, "D_VALUE") + a_value = GemRB.GetTableValue(FeatReqTable, feat, "A_OP") + b_value = GemRB.GetTableValue(FeatReqTable, feat, "B_OP") + c_value = GemRB.GetTableValue(FeatReqTable, feat, "C_OP") + d_value = GemRB.GetTableValue(FeatReqTable, feat, "D_OP") slot = GemRB.GetVar("Slot") return GemRB.CheckFeatCondition(slot, a_stat, a_value, b_stat, b_value, c_stat, c_value, d_stat, d_value) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ave...@us...> - 2008-10-13 17:44:06
|
Revision: 5432 http://gemrb.svn.sourceforge.net/gemrb/?rev=5432&view=rev Author: avenger_teambg Date: 2008-10-13 17:43:54 +0000 (Mon, 13 Oct 2008) Log Message: ----------- some explanation for the new feat requirement formulas Modified Paths: -------------- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py Modified: gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py =================================================================== --- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-10-13 17:38:12 UTC (rev 5431) +++ gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-10-13 17:43:54 UTC (rev 5432) @@ -21,6 +21,16 @@ # FIXME: CheckFeatCondition doesn't check for higher level prerequisites # (eg. cleave2 needs +4 BAB and weapon specialisation needs 4 fighter levels) + +# NOTE: cleave formula is now: +# HITBONUS>=4 OR FEAT_CLEAVE<1 +# +# specialisation formulas: +# FIGHTERLEVEL>=4 OR FEAT_*<2 +# The default operator was set to 4 (greater or equal), so the majority of the formulas +# don't need any more change +# Avenger + def IsFeatUsable(feat): global FeatReqTable This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lyn...@us...> - 2008-10-13 19:07:57
|
Revision: 5433 http://gemrb.svn.sourceforge.net/gemrb/?rev=5433&view=rev Author: lynxlupodian Date: 2008-10-13 19:07:52 +0000 (Mon, 13 Oct 2008) Log Message: ----------- iwd2: don't override the feat values with operators Modified Paths: -------------- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py Modified: gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py =================================================================== --- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-10-13 17:43:54 UTC (rev 5432) +++ gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-10-13 19:07:52 UTC (rev 5433) @@ -42,10 +42,10 @@ b_value = GemRB.GetTableValue(FeatReqTable, feat, "B_VALUE") c_value = GemRB.GetTableValue(FeatReqTable, feat, "C_VALUE") d_value = GemRB.GetTableValue(FeatReqTable, feat, "D_VALUE") - a_value = GemRB.GetTableValue(FeatReqTable, feat, "A_OP") - b_value = GemRB.GetTableValue(FeatReqTable, feat, "B_OP") - c_value = GemRB.GetTableValue(FeatReqTable, feat, "C_OP") - d_value = GemRB.GetTableValue(FeatReqTable, feat, "D_OP") + a_op = GemRB.GetTableValue(FeatReqTable, feat, "A_OP") + b_op = GemRB.GetTableValue(FeatReqTable, feat, "B_OP") + c_op = GemRB.GetTableValue(FeatReqTable, feat, "C_OP") + d_op = GemRB.GetTableValue(FeatReqTable, feat, "D_OP") slot = GemRB.GetVar("Slot") return GemRB.CheckFeatCondition(slot, a_stat, a_value, b_stat, b_value, c_stat, c_value, d_stat, d_value) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lyn...@us...> - 2008-10-13 21:02:04
|
Revision: 5437 http://gemrb.svn.sourceforge.net/gemrb/?rev=5437&view=rev Author: lynxlupodian Date: 2008-10-13 21:01:54 +0000 (Mon, 13 Oct 2008) Log Message: ----------- iwd2::feats: pass the operator to the core Modified Paths: -------------- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py Modified: gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py =================================================================== --- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-10-13 20:58:41 UTC (rev 5436) +++ gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-10-13 21:01:54 UTC (rev 5437) @@ -48,7 +48,7 @@ d_op = GemRB.GetTableValue(FeatReqTable, feat, "D_OP") slot = GemRB.GetVar("Slot") - return GemRB.CheckFeatCondition(slot, a_stat, a_value, b_stat, b_value, c_stat, c_value, d_stat, d_value) + return GemRB.CheckFeatCondition(slot, a_stat, a_value, b_stat, b_value, c_stat, c_value, d_stat, d_value, a_op, b_op, c_op, d_op) # checks if a feat was granted due to class/kit/race and returns the number # of granted levels. The bonuses aren't cumulative. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lyn...@us...> - 2008-10-14 18:00:16
|
Revision: 5440 http://gemrb.svn.sourceforge.net/gemrb/?rev=5440&view=rev Author: lynxlupodian Date: 2008-10-14 17:59:47 +0000 (Tue, 14 Oct 2008) Log Message: ----------- iwd2: don't leave out Aegis of Rime Modified Paths: -------------- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py Modified: gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py =================================================================== --- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-10-13 21:38:55 UTC (rev 5439) +++ gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-10-14 17:59:47 UTC (rev 5440) @@ -47,7 +47,7 @@ c_op = GemRB.GetTableValue(FeatReqTable, feat, "C_OP") d_op = GemRB.GetTableValue(FeatReqTable, feat, "D_OP") slot = GemRB.GetVar("Slot") - + print "AAAAAAAA", a_stat, a_value, b_stat, b_value, c_stat, c_value, d_stat, d_value, a_op, b_op, c_op, d_op return GemRB.CheckFeatCondition(slot, a_stat, a_value, b_stat, b_value, c_stat, c_value, d_stat, d_value, a_op, b_op, c_op, d_op) # checks if a feat was granted due to class/kit/race and returns the number @@ -88,7 +88,7 @@ GemRB.SetText(FeatWindow, SumLabel, str(PointsLeft) ) for i in range(0,10): - Pos=TopIndex+i+1 + Pos=TopIndex+i FeatName = GemRB.GetTableValue(FeatTable, Pos, 1) Label = GemRB.GetControl(FeatWindow, 0x10000001+i) GemRB.SetText(FeatWindow, Label, FeatName) @@ -261,14 +261,14 @@ def JustPress(): - Pos = GemRB.GetVar("Feat")+TopIndex+1 + Pos = GemRB.GetVar("Feat")+TopIndex GemRB.SetText(FeatWindow, TextAreaControl, GemRB.GetTableValue(FeatTable,Pos,2) ) return def RightPress(): global PointsLeft - Pos = GemRB.GetVar("Feat")+TopIndex+1 + Pos = GemRB.GetVar("Feat")+TopIndex GemRB.SetText(FeatWindow, TextAreaControl, GemRB.GetTableValue(FeatTable,Pos,2) ) ActPoint = GemRB.GetVar("Feat "+str(Pos) ) @@ -282,7 +282,7 @@ def LeftPress(): global PointsLeft - Pos = GemRB.GetVar("Feat")+TopIndex+1 + Pos = GemRB.GetVar("Feat")+TopIndex GemRB.SetText(FeatWindow, TextAreaControl, GemRB.GetTableValue(FeatTable,Pos,2) ) if PointsLeft < 1: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lyn...@us...> - 2008-11-30 19:46:25
|
Revision: 5488 http://gemrb.svn.sourceforge.net/gemrb/?rev=5488&view=rev Author: lynxlupodian Date: 2008-11-30 19:46:19 +0000 (Sun, 30 Nov 2008) Log Message: ----------- iwd2: don't allow decreasing the feat level beyond the granted one eg., fighters can't gain feat points by disabling heavy armor anymore Modified Paths: -------------- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py Modified: gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py =================================================================== --- gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-11-30 19:18:06 UTC (rev 5487) +++ gemrb/trunk/gemrb/GUIScripts/iwd2/Feats.py 2008-11-30 19:46:19 UTC (rev 5488) @@ -121,7 +121,11 @@ else: GemRB.SetButtonState(FeatWindow, ButtonPlus, IE_GUI_BUTTON_DISABLED) GemRB.SetLabelTextColor(FeatWindow, Label, 150, 150, 150) - GemRB.SetButtonState(FeatWindow, ButtonMinus, IE_GUI_BUTTON_ENABLED) + BaseValue = GemRB.GetVar("BaseFeatValue " + str(Pos)) + if FeatValue > BaseValue: + GemRB.SetButtonState(FeatWindow, ButtonMinus, IE_GUI_BUTTON_ENABLED) + else: + GemRB.SetButtonState(FeatWindow, ButtonMinus, IE_GUI_BUTTON_DISABLED) if PointsLeft == 0: GemRB.SetButtonState(FeatWindow, ButtonPlus, IE_GUI_BUTTON_DISABLED) @@ -192,6 +196,7 @@ for i in range(RowCount): GemRB.SetVar("Feat "+str(i), GetBaseValue(i)) + GemRB.SetVar("BaseFeatValue " + str(i), GetBaseValue(i)) FeatLevelTable = GemRB.LoadTable("featlvl") FeatClassTable = GemRB.LoadTable("featclas") @@ -277,7 +282,8 @@ GemRB.SetText(FeatWindow, TextAreaControl, GemRB.GetTableValue(FeatTable,Pos,2) ) ActPoint = GemRB.GetVar("Feat "+str(Pos) ) - if ActPoint <= 0: + BaseValue = GemRB.GetVar("BaseFeatValue " + str(Pos)) + if ActPoint <= 0 or ActPoint <= BaseValue: return GemRB.SetVar("Feat "+str(Pos),ActPoint-1) PointsLeft = PointsLeft + 1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |