From: Katie <ky...@us...> - 2007-11-05 23:08:05
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/server/entity/creature In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv20112/src/games/stendhal/server/entity/creature Modified Files: Pet.java Cat.java BabyDragon.java Log Message: apply patch Fix for [ 1820978 ] cats do not heal (0.63) provided by martinf, with extra fixes to make sure all variables set in the child classes are used properly. also made different pets eat different food, from a list, and changed number at which pet first appears hungry (was too low) Index: Cat.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/server/entity/creature/Cat.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Cat.java 1 Nov 2007 23:32:55 -0000 1.11 --- Cat.java 5 Nov 2007 23:07:56 -0000 1.12 *************** *** 15,18 **** --- 15,20 ---- import games.stendhal.server.entity.player.Player; + import java.util.Arrays; + import java.util.List; import org.apache.log4j.Logger; *************** *** 37,44 **** private static final Logger logger = Logger.getLogger(Cat.class); ! static { ! HP = 200; ! incHP = 6; ATK = 10; --- 39,49 ---- private static final Logger logger = Logger.getLogger(Cat.class); ! private void setUp() { ! foodName = Arrays.asList( "chicken", "trout", "cod", "mackerel", "char", "perch", "roach", "surgeonfish", "clownfish"); ! ! HP = 200; ! ! incHP = 4; // each chicken or fish would give +5 HP ATK = 10; *************** *** 46,50 **** DEF = 30; ! XP = 0; } --- 51,64 ---- DEF = 30; ! XP = 100; ! ! baseSpeed = 0.9; ! ! setATK(ATK); ! setDEF(DEF); ! setXP(XP); ! setBaseHP(HP); ! setHP(HP); ! } *************** *** 73,81 **** */ public Cat(Player owner) { super(owner); setRPClass("cat"); put("type", "cat"); - - baseSpeed = 0.9; update(); } --- 87,95 ---- */ public Cat(Player owner) { + // call set up before parent constructor is called as it needs those values super(owner); + setUp(); setRPClass("cat"); put("type", "cat"); update(); } *************** *** 89,98 **** */ public Cat(RPObject object, Player owner) { super(object, owner); ! setRPClass("cat"); put("type", "cat"); - - baseSpeed = 0.9; update(); } --- 103,111 ---- */ public Cat(RPObject object, Player owner) { + // call set up before parent constructor is called as it needs those values super(object, owner); ! setUp(); setRPClass("cat"); put("type", "cat"); update(); } Index: BabyDragon.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/server/entity/creature/BabyDragon.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** BabyDragon.java 1 Nov 2007 23:32:55 -0000 1.2 --- BabyDragon.java 5 Nov 2007 23:07:57 -0000 1.3 *************** *** 15,18 **** --- 15,20 ---- import games.stendhal.server.entity.player.Player; + import java.util.Arrays; + import java.util.List; import org.apache.log4j.Logger; *************** *** 23,29 **** /** * A baby dragon is a domestic animal that can be owned by a player. ! * It eats chicken from the ground. * They move much faster than sheep ! * Ideally baby dragon attack animals for you */ /** --- 25,31 ---- /** * A baby dragon is a domestic animal that can be owned by a player. ! * It eats ham or pizza from the ground. * They move much faster than sheep ! * Baby dragons attack animals which attack them */ /** *************** *** 37,44 **** private static final Logger logger = Logger.getLogger(BabyDragon.class); ! static { HP = 500; ! incHP = 10; ATK = 15; --- 39,50 ---- private static final Logger logger = Logger.getLogger(BabyDragon.class); ! ! private void setUp() { ! ! foodName = Arrays.asList( "ham", "pizza", "meat" ); ! HP = 500; ! incHP = 6; ATK = 15; *************** *** 47,50 **** --- 53,65 ---- XP = 100; + + baseSpeed = 0.9; + + setATK(ATK); + setDEF(DEF); + setXP(XP); + setBaseHP(HP); + setHP(HP); + } *************** *** 74,81 **** public BabyDragon(Player owner) { super(owner); setRPClass("baby_dragon"); put("type", "baby_dragon"); - baseSpeed = 0.9; update(); } --- 89,96 ---- public BabyDragon(Player owner) { super(owner); + setUp(); setRPClass("baby_dragon"); put("type", "baby_dragon"); update(); } *************** *** 90,98 **** public BabyDragon(RPObject object, Player owner) { super(object, owner); ! setRPClass("baby_dragon"); put("type", "baby_dragon"); - baseSpeed = 0.9; update(); } --- 105,112 ---- public BabyDragon(RPObject object, Player owner) { super(object, owner); ! setUp(); setRPClass("baby_dragon"); put("type", "baby_dragon"); update(); } Index: Pet.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/server/entity/creature/Pet.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** Pet.java 1 Nov 2007 23:32:55 -0000 1.20 --- Pet.java 5 Nov 2007 23:07:55 -0000 1.21 *************** *** 19,23 **** import java.util.Set; ! import org.apache.log4j.Logger; --- 19,24 ---- import java.util.Set; ! import java.util.Arrays; ! import java.util.List; import org.apache.log4j.Logger; *************** *** 47,51 **** * The amount of hunger that indicates hungry. */ ! protected static final int HUNGER_HUNGRY = 100; /** --- 48,52 ---- * The amount of hunger that indicates hungry. */ ! protected static final int HUNGER_HUNGRY = 300; /** *************** *** 59,71 **** public final int MAX_WEIGHT = 100; ! protected static int HP = 100; ! protected static int incHP = 2; ! protected static int ATK = 10; ! protected static int DEF = 20; ! protected static int XP; protected int hunger; --- 60,74 ---- public final int MAX_WEIGHT = 100; ! protected List<String> foodName = Arrays.asList("chicken"); ! protected int HP = 100; ! protected int incHP = 2; ! protected int ATK = 10; ! protected int DEF = 20; ! ! protected int XP; protected int hunger; *************** *** 99,103 **** super(owner); baseSpeed = 0.5; - setATK(ATK); setDEF(DEF); --- 102,105 ---- *************** *** 187,194 **** boolean canEat(Item i) { ! return "chicken".equals(i.getItemSubclass()); } ! private void eat(Item food) { if (weight < MAX_WEIGHT) { --- 189,196 ---- boolean canEat(Item i) { ! return foodName.contains(i.getName()); } ! private void eat(Item food) { if (weight < MAX_WEIGHT) { *************** *** 198,202 **** hunger = 0; if (getHP() < getBaseHP()) { ! healSelf(incHP, 100); } } --- 200,204 ---- hunger = 0; if (getHP() < getBaseHP()) { ! heal(incHP); // directly increase the cat's health points } } |