From: <jde...@us...> - 2006-12-26 07:55:06
|
Revision: 1812 http://svn.sourceforge.net/pcgen/?rev=1812&view=rev Author: jdempsey Date: 2006-12-25 23:55:07 -0800 (Mon, 25 Dec 2006) Log Message: ----------- Fix bug #1619872 - resized weapon damage Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/Equipment.java Trunk/pcgen/code/src/test/pcgen/AbstractCharacterTestCase.java Trunk/pcgen/code/src/test/pcgen/core/EquipmentTest.java Trunk/pcgen/code/src/test/pcgen/core/GlobalsTest.java Trunk/pcgen/xdocs/changes.xml Modified: Trunk/pcgen/code/src/java/pcgen/core/Equipment.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Equipment.java 2006-12-26 04:17:27 UTC (rev 1811) +++ Trunk/pcgen/code/src/java/pcgen/core/Equipment.java 2006-12-26 07:55:07 UTC (rev 1812) @@ -3995,10 +3995,10 @@ setCost(eq.getCostAdjustedForSize(aPC, newSize).toString()); setWeight(eq.getWeightAdjustedForSize(aPC, newSize).toString()); adjustACForSize(aPC, eq, newSize); - if ( theWeaponStats != null ) + if ( eq.theWeaponStats != null ) { - setDamage(theWeaponStats.getDamageAdjustedForSize(newSize)); - setAltDamage(theWeaponStats.getAltDamageAdjustedForSize(newSize)); + setDamage(eq.theWeaponStats.getDamageAdjustedForSize(newSize)); + setAltDamage(eq.theWeaponStats.getAltDamageAdjustedForSize(newSize)); } // // Adjust the capacity of the container (if it is one) Modified: Trunk/pcgen/code/src/test/pcgen/AbstractCharacterTestCase.java =================================================================== --- Trunk/pcgen/code/src/test/pcgen/AbstractCharacterTestCase.java 2006-12-26 04:17:27 UTC (rev 1811) +++ Trunk/pcgen/code/src/test/pcgen/AbstractCharacterTestCase.java 2006-12-26 07:55:07 UTC (rev 1812) @@ -14,7 +14,7 @@ import pcgen.core.PCStat; import pcgen.core.PlayerCharacter; import pcgen.core.SettingsHandler; -import pcgen.core.SizeAdjustment; +import pcgen.util.TestHelper; /** * This is an abstract TestClass designed to be able to create a PlayerCharacter @@ -77,59 +77,8 @@ cha.setAbb("CHA"); gamemode.addToStatList(cha); - SizeAdjustment aSize = new SizeAdjustment(); - aSize.setName("Fine"); - aSize.setAbbreviation("F"); - aSize.setIsDefaultSize(false); - gamemode.addToSizeAdjustmentList(aSize); + TestHelper.makeSizeAdjustments(); - aSize = new SizeAdjustment(); - aSize.setName("Diminutive"); - aSize.setAbbreviation("D"); - aSize.setIsDefaultSize(false); - gamemode.addToSizeAdjustmentList(aSize); - - aSize = new SizeAdjustment(); - aSize.setName("Tiny"); - aSize.setAbbreviation("T"); - aSize.setIsDefaultSize(false); - gamemode.addToSizeAdjustmentList(aSize); - - aSize = new SizeAdjustment(); - aSize.setName("Small"); - aSize.setAbbreviation("S"); - aSize.setIsDefaultSize(false); - gamemode.addToSizeAdjustmentList(aSize); - - final SizeAdjustment sizeM = new SizeAdjustment(); - sizeM.setName("Medium"); - sizeM.setAbbreviation("M"); - sizeM.setIsDefaultSize(true); - gamemode.addToSizeAdjustmentList(sizeM); - final SizeAdjustment sizeL = new SizeAdjustment(); - sizeL.setName("Large"); - sizeL.setAbbreviation("L"); - sizeL.setIsDefaultSize(false); - gamemode.addToSizeAdjustmentList(sizeL); - - aSize = new SizeAdjustment(); - aSize.setName("Huge"); - aSize.setAbbreviation("H"); - aSize.setIsDefaultSize(false); - gamemode.addToSizeAdjustmentList(aSize); - - aSize = new SizeAdjustment(); - aSize.setName("Gargantuan"); - aSize.setAbbreviation("G"); - aSize.setIsDefaultSize(false); - gamemode.addToSizeAdjustmentList(aSize); - - aSize = new SizeAdjustment(); - aSize.setName("Colossal"); - aSize.setAbbreviation("C"); - aSize.setIsDefaultSize(false); - gamemode.addToSizeAdjustmentList(aSize); - gamemode.addToAlignmentList(createAlignment("Lawful Good", "LG")); gamemode.addToAlignmentList(createAlignment("Lawful Neutral", "LN")); gamemode.addToAlignmentList(createAlignment("Lawful Evil", "LE")); Modified: Trunk/pcgen/code/src/test/pcgen/core/EquipmentTest.java =================================================================== --- Trunk/pcgen/code/src/test/pcgen/core/EquipmentTest.java 2006-12-26 04:17:27 UTC (rev 1811) +++ Trunk/pcgen/code/src/test/pcgen/core/EquipmentTest.java 2006-12-26 07:55:07 UTC (rev 1812) @@ -29,6 +29,7 @@ import junit.framework.Test; import junit.framework.TestSuite; import junit.swingui.TestRunner; +import pcgen.AbstractCharacterTestCase; import pcgen.PCGenTestCase; import pcgen.core.Equipment; import pcgen.core.Constants; @@ -39,11 +40,10 @@ * Equipment Test */ @SuppressWarnings("nls") -public class EquipmentTest extends PCGenTestCase { +public class EquipmentTest extends AbstractCharacterTestCase { private Equipment eq = null; private final String OriginalKey = "OrigKey"; - private boolean firstTime = true; /** * Main @@ -93,11 +93,6 @@ { super.setUp(); - if (firstTime) { - TestHelper.makeSizeAdjustments(); - firstTime = false; - } - this.eq = new Equipment(); this.eq.setName("Dummy"); this.eq.setSize("M", true); @@ -285,5 +280,36 @@ // Now check that new name is generated Correctly is(this.eq.createNameForAutoResize("c"), strEq("Pointy Stick (+1/Speed) (Colossal)")); } - + + public void testResizeItem() + { + // Make it a weapon + eq.setDamage("1d6"); + eq.setTypeInfo("WEAPON"); + + // Create a base item + Equipment custEq = (Equipment) eq.clone(); + custEq.setKeyName("Custom"); + custEq.setBaseItem(eq.getKeyName()); + EquipmentList.addEquipment(custEq); + EquipmentList.addEquipment(eq); + + GameMode gameMode = SettingsHandler.getGame(); + is(gameMode.getSizeAdjustmentListSize(), gt(0), "size list initialised"); + gameMode.getDamageUpMap().put("1d6", "1d8,2d6,3d6,4d6,6d6,8d6,12d6"); + gameMode.getDamageDownMap().put("1d6", "1d4,1d3,1d2,1"); + + is(custEq.getSize(), eq("M"), "starting size"); + is(custEq.getDamage(getCharacter()), eq("1d6"), "starting size"); + + // Drop the size + custEq.resizeItem(getCharacter(), "S"); + is(custEq.getSize(), eq("S"), "reduce size size"); + is(custEq.getDamage(getCharacter()), eq("1d4"), "reduce size damage"); + + // Increase the size + custEq.resizeItem(getCharacter(), "L"); + is(custEq.getSize(), eq("L"), "reduce size size"); + is(custEq.getDamage(getCharacter()), eq("1d8"), "reduce size damage"); + } } Modified: Trunk/pcgen/code/src/test/pcgen/core/GlobalsTest.java =================================================================== --- Trunk/pcgen/code/src/test/pcgen/core/GlobalsTest.java 2006-12-26 04:17:27 UTC (rev 1811) +++ Trunk/pcgen/code/src/test/pcgen/core/GlobalsTest.java 2006-12-26 07:55:07 UTC (rev 1812) @@ -1,6 +1,7 @@ package pcgen.core; import pcgen.PCGenTestCase; +import pcgen.util.TestHelper; import java.util.Collections; import java.util.Iterator; @@ -41,6 +42,8 @@ protected void setUp() throws Exception { + super.setUp(); + TestHelper.makeSizeAdjustments(); Globals.clearCampaignsForRefresh(); } @@ -358,4 +361,14 @@ is(ab.getDisplayName(), strEq("Ability002"), "second Ability from list is correct 01"); } + + public void testAdjustDamage() + { + GameMode gameMode = SettingsHandler.getGame(); + is(gameMode.getSizeAdjustmentListSize(), gt(0), "size list initialised"); + gameMode.getDamageUpMap().put("1d6", "1d8,2d6,3d6,4d6,6d6,8d6,12d6"); + gameMode.getDamageDownMap().put("1d6", "1d4,1d3,1d2,1"); + is(Globals.adjustDamage("1d6", "Medium", "Small"), strEq("1d4"), + "reduction of damage due to smaller size"); + } } Modified: Trunk/pcgen/xdocs/changes.xml =================================================================== --- Trunk/pcgen/xdocs/changes.xml 2006-12-26 04:17:27 UTC (rev 1811) +++ Trunk/pcgen/xdocs/changes.xml 2006-12-26 07:55:07 UTC (rev 1812) @@ -7,6 +7,7 @@ <body> <release version="5.11.6" date="In SVN" description="Alpha release"> <action dev="jdempsey" type="fix" issue="1621485">Spells lost from known spells list when removed from prepared spell list.</action> + <action dev="jdempsey" type="fix" issue="1619872">Weapon damage not changing when weapons resized.</action> </release> <release version="5.11.5" date="2006-12-24" description="Alpha release"> <action dev="jdempsey" type="fix" issue="1613069">Correct processing of various spell sort orders</action> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |