Comments added
This commit is contained in:
1 parent
18ec34592d
commit
2fbee1b1b1
6 files changed
+79
-46
No files matched your search
@@ -2,9 +2,9 @@ package ca.bcit.comp2522.lab02;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Creature contains simple information regarding
|
* Creature contains simple information regarding
|
||||||
* a creature such as its health and name.
|
* a creature such as its health, name and date of birth.
|
||||||
*
|
*
|
||||||
* @author Braeden Sowinski
|
* @author Braeden Sowinski, Nicolas Agostini, Trishaan Shetty
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
*/
|
*/
|
||||||
public class Creature {
|
public class Creature {
|
||||||
@@ -17,8 +17,8 @@ public class Creature {
|
|||||||
|
|
||||||
private int health;
|
private int health;
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* validateName ensures input name is not empty.
|
* validateName ensures input name is not null or empty.
|
||||||
*
|
*
|
||||||
* @param name input
|
* @param name input
|
||||||
* @throws IllegalArgumentException
|
* @throws IllegalArgumentException
|
||||||
@@ -26,12 +26,12 @@ public class Creature {
|
|||||||
private static void validateName(final String name)
|
private static void validateName(final String name)
|
||||||
throws IllegalArgumentException
|
throws IllegalArgumentException
|
||||||
{
|
{
|
||||||
if (name.isEmpty()) {
|
if (name == null || name.isEmpty()) {
|
||||||
throw new IllegalArgumentException("Name cannot be null or empty");
|
throw new IllegalArgumentException("Name cannot be null or empty");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* validateHealth ensures input health is within valid range
|
* validateHealth ensures input health is within valid range
|
||||||
* of MAX_HEALTH and MIN_HEALTH
|
* of MAX_HEALTH and MIN_HEALTH
|
||||||
*
|
*
|
||||||
@@ -46,7 +46,7 @@ public class Creature {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* validateDateOfBirth ensures the date of birth
|
* validateDateOfBirth ensures the date of birth
|
||||||
* is not in the future.
|
* is not in the future.
|
||||||
*
|
*
|
||||||
@@ -100,6 +100,7 @@ public class Creature {
|
|||||||
*
|
*
|
||||||
* @param damage to be dealt
|
* @param damage to be dealt
|
||||||
* @throws DamageException if damage is negative
|
* @throws DamageException if damage is negative
|
||||||
|
* @throws RuntimeException if the creature is not alive
|
||||||
*/
|
*/
|
||||||
public void takeDamage(final int damage)
|
public void takeDamage(final int damage)
|
||||||
throws DamageException, RuntimeException
|
throws DamageException, RuntimeException
|
||||||
@@ -187,8 +188,16 @@ public class Creature {
|
|||||||
public void printDetails() {
|
public void printDetails() {
|
||||||
System.out.println(getDetails());
|
System.out.println(getDetails());
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Prints the details of the creature.
|
||||||
|
* @return health value of the creature
|
||||||
|
*/
|
||||||
public int getHealth() { return this.health;}
|
public int getHealth() { return this.health;}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the date of birth of the creature.
|
||||||
|
* @return Date of Birth of the creature.
|
||||||
|
*/
|
||||||
public Date getDateOfBirth() { return this.dateOfBirth;}
|
public Date getDateOfBirth() { return this.dateOfBirth;}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -144,8 +144,9 @@ public final class Date {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
validateYear checks input year is in valid range
|
validateYear checks input year is in valid range
|
||||||
|
@param year to be validated
|
||||||
*/
|
*/
|
||||||
private static void validateYear(final int year)
|
private static void validateYear(final int year)
|
||||||
throws IllegalArgumentException
|
throws IllegalArgumentException
|
||||||
@@ -156,8 +157,9 @@ public final class Date {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
validateMonth checks input month is in valid range
|
validateMonth checks input month is in valid range
|
||||||
|
@param month to be validated
|
||||||
*/
|
*/
|
||||||
private static void validateMonth(final int month)
|
private static void validateMonth(final int month)
|
||||||
throws IllegalArgumentException
|
throws IllegalArgumentException
|
||||||
@@ -168,9 +170,12 @@ public final class Date {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
validateDay ensures the day given is less than the max day
|
* validateDay ensures the day given is less than the max day
|
||||||
calculated by daysInMonth and greater than the MIN_DAY
|
* calculated by daysInMonth and greater than the MIN_DAY
|
||||||
|
* @param day
|
||||||
|
* @param month
|
||||||
|
* @param year
|
||||||
*/
|
*/
|
||||||
private static void validateDay(
|
private static void validateDay(
|
||||||
final int day,
|
final int day,
|
||||||
@@ -385,6 +390,11 @@ public final class Date {
|
|||||||
return day;
|
return day;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* isInFuture validates if the Date instance is from a date greater than
|
||||||
|
* MAX_YEAR, which corresponds to the current year
|
||||||
|
* @return if the date is in the future
|
||||||
|
*/
|
||||||
public boolean isInFuture() {
|
public boolean isInFuture() {
|
||||||
|
|
||||||
if (this.year > MAX_YEAR) {
|
if (this.year > MAX_YEAR) {
|
||||||
|
|||||||
@@ -43,9 +43,12 @@ public class Dragon extends Creature {
|
|||||||
final Date dateOfBirth,
|
final Date dateOfBirth,
|
||||||
final int health,
|
final int health,
|
||||||
final int firePower
|
final int firePower
|
||||||
) {
|
)
|
||||||
|
{
|
||||||
super(name, dateOfBirth, health);
|
super(name, dateOfBirth, health);
|
||||||
|
|
||||||
|
validateFirePower(firePower);
|
||||||
|
|
||||||
this.firePower = firePower;
|
this.firePower = firePower;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,12 +73,14 @@ public class Dragon extends Creature {
|
|||||||
return builder.toString();
|
return builder.toString();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* breathFire onto Creatures to deal damage
|
* breathFire onto Creatures to deal damage
|
||||||
* and reduces current firePower value
|
* and reduces current firePower value
|
||||||
*
|
*
|
||||||
* @param target Creature to deal damage to
|
* @param target Creature to deal damage to
|
||||||
* @throws LowFirePowerException if not enough firePower
|
* @throws LowFirePowerException if not enough firePower
|
||||||
|
* @throws RuntimeException if the dragon is not alive to accomplish the action
|
||||||
*/
|
*/
|
||||||
public void breatheFire(final Creature target)
|
public void breatheFire(final Creature target)
|
||||||
throws LowFirePowerException, RuntimeException {
|
throws LowFirePowerException, RuntimeException {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package ca.bcit.comp2522.lab02;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Elf extends Creature and
|
* Elf extends Creature and
|
||||||
* holds a mana value? Never heard of that
|
* holds a mana value
|
||||||
*
|
*
|
||||||
* @author Braeden Sowinski
|
* @author Braeden Sowinski
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
@@ -15,7 +15,7 @@ public class Elf extends Creature {
|
|||||||
|
|
||||||
private int mana;
|
private int mana;
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* validateManaValue ensures a given value is within
|
* validateManaValue ensures a given value is within
|
||||||
* the correct mana range
|
* the correct mana range
|
||||||
*
|
*
|
||||||
@@ -76,6 +76,7 @@ public class Elf extends Creature {
|
|||||||
*
|
*
|
||||||
* @param target Creature to deal damage to
|
* @param target Creature to deal damage to
|
||||||
* @throws LowManaException if mana value is too low
|
* @throws LowManaException if mana value is too low
|
||||||
|
* @throws RuntimeException if the Elf is not alive to accomplish the action
|
||||||
*/
|
*/
|
||||||
public void castSpell(final Creature target)
|
public void castSpell(final Creature target)
|
||||||
throws LowManaException, RuntimeException
|
throws LowManaException, RuntimeException
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ public class Orc extends Creature {
|
|||||||
|
|
||||||
private int rage;
|
private int rage;
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* validateRageValue ensures a given value is within
|
* validateRageValue ensures a given value is within
|
||||||
* the correct rage range
|
* the correct rage range
|
||||||
*
|
*
|
||||||
@@ -73,12 +73,13 @@ public class Orc extends Creature {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* bezerk goes the orc when he is really mad.
|
* berserk goes the orc when he is really mad.
|
||||||
* dealing damage to target Creatures with the
|
* dealing damage to target Creatures with the
|
||||||
* potential for double damage.
|
* potential for double damage.
|
||||||
*
|
*
|
||||||
* @param target Creature to deal damage to
|
* @param target Creature to deal damage to
|
||||||
* @throws LowRageException if rage value is too low
|
* @throws LowRageException if rage value is too low
|
||||||
|
* @throws RuntimeException if the Orc is not alive to accomplish the action
|
||||||
*/
|
*/
|
||||||
public void berserk(final Creature target)
|
public void berserk(final Creature target)
|
||||||
throws LowRageException, RuntimeException
|
throws LowRageException, RuntimeException
|
||||||
|
|||||||
@@ -17,10 +17,8 @@ public class CreatureTest {
|
|||||||
* Main entry point for the test program.
|
* Main entry point for the test program.
|
||||||
*
|
*
|
||||||
* @param args command-line arguments (not used)
|
* @param args command-line arguments (not used)
|
||||||
* @throws LowFirePowerException if a dragon attempts to breathe fire with insufficient fire power
|
|
||||||
* @throws LowManaException if an elf attempts to cast a spell with insufficient mana
|
|
||||||
*/
|
*/
|
||||||
public static void main(String[] args) throws LowFirePowerException, LowManaException, LowRageException {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
final Creature creatureDragon;
|
final Creature creatureDragon;
|
||||||
final Creature creatureElf;
|
final Creature creatureElf;
|
||||||
@@ -38,32 +36,51 @@ public class CreatureTest {
|
|||||||
creatureElf = new Elf("Ben", elfBirthDate, 10, 15);
|
creatureElf = new Elf("Ben", elfBirthDate, 10, 15);
|
||||||
creatureOrc = new Orc("Shobob", orcBirthDate, 12, 3);
|
creatureOrc = new Orc("Shobob", orcBirthDate, 12, 3);
|
||||||
|
|
||||||
final Dragon dragon = (Dragon)creatureDragon;
|
|
||||||
final Elf elf = (Elf)creatureElf;
|
|
||||||
final Orc orc = (Orc)creatureOrc;
|
|
||||||
|
|
||||||
|
if (creatureDragon instanceof Dragon) {
|
||||||
|
|
||||||
|
System.out.println("creatureDragon is a Dragon.");
|
||||||
|
}
|
||||||
|
|
||||||
dragon.printDetails();
|
System.out.println("creatureDragon type: " + creatureDragon.getClass().getSimpleName());
|
||||||
if (dragon instanceof Creature) System.out.println("This creature is a Dragon.");
|
|
||||||
elf.printDetails();
|
|
||||||
if (elf instanceof Creature) System.out.println("This creature is an Elf.");
|
|
||||||
orc.printDetails();
|
|
||||||
if (orc instanceof Creature) System.out.println("This creature is an Orc.");
|
|
||||||
|
|
||||||
|
if (creatureElf instanceof Elf) {
|
||||||
|
|
||||||
|
System.out.println("creatureElf is an Elf.");
|
||||||
|
|
||||||
|
}
|
||||||
|
System.out.println("creatureElf type: " + creatureElf.getClass().getSimpleName());
|
||||||
|
|
||||||
|
if (creatureOrc instanceof Orc) {
|
||||||
|
|
||||||
|
System.out.println("creatureOrc is an Orc.");
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("creatureOrc type: " + creatureOrc.getClass().getSimpleName());
|
||||||
|
|
||||||
|
creatureDragon.printDetails();
|
||||||
|
creatureElf.printDetails();
|
||||||
|
creatureOrc.printDetails();
|
||||||
|
|
||||||
|
final Dragon dragon = (Dragon) creatureDragon;
|
||||||
|
final Elf elf = (Elf) creatureElf;
|
||||||
|
final Orc orc = (Orc) creatureOrc;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
System.out.println("- Dragon breathed fire on the Elf");
|
System.out.println("- Dragon breathed fire on the Elf");
|
||||||
dragon.breatheFire(elf);
|
|
||||||
|
|
||||||
|
dragon.breatheFire(elf);
|
||||||
dragon.printDetails();
|
dragon.printDetails();
|
||||||
elf.printDetails();
|
elf.printDetails();
|
||||||
orc.printDetails();
|
orc.printDetails();
|
||||||
|
|
||||||
} catch (LowFirePowerException e) {
|
} catch (LowFirePowerException e) {
|
||||||
|
|
||||||
System.out.println("Attack Not allowed: the dragon's fire power was too low to breathe fire.");
|
System.out.println("Attack Not allowed: the dragon's fire power was too low to breathe fire.");
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
||||||
System.out.println("Unexpected problem during attack: " + e.getMessage());
|
System.out.println("Unexpected problem during attack: " + e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,14 +88,16 @@ public class CreatureTest {
|
|||||||
|
|
||||||
System.out.println("- Elf cast a spell on the Dragon");
|
System.out.println("- Elf cast a spell on the Dragon");
|
||||||
elf.castSpell(dragon);
|
elf.castSpell(dragon);
|
||||||
|
|
||||||
dragon.printDetails();
|
dragon.printDetails();
|
||||||
elf.printDetails();
|
elf.printDetails();
|
||||||
orc.printDetails();
|
orc.printDetails();
|
||||||
|
|
||||||
} catch (LowManaException e) {
|
} catch (LowManaException e) {
|
||||||
|
|
||||||
System.out.println("Attack Not allowed: the elf didn't have enough mana to cast the spell.");
|
System.out.println("Attack Not allowed: the elf didn't have enough mana to cast the spell.");
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
||||||
System.out.println("Unexpected problem during attack: " + e.getMessage());
|
System.out.println("Unexpected problem during attack: " + e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,28 +105,16 @@ public class CreatureTest {
|
|||||||
|
|
||||||
System.out.println("- Orc went berserk on the Elf");
|
System.out.println("- Orc went berserk on the Elf");
|
||||||
orc.berserk(elf);
|
orc.berserk(elf);
|
||||||
|
|
||||||
dragon.printDetails();
|
dragon.printDetails();
|
||||||
elf.printDetails();
|
elf.printDetails();
|
||||||
orc.printDetails();
|
orc.printDetails();
|
||||||
|
|
||||||
} catch (LowRageException e) {
|
} catch (LowRageException e) {
|
||||||
|
|
||||||
System.out.println("Attack Not allowed: the orc didn't have enough rage to go berserk");
|
System.out.println("Attack Not allowed: the orc didn't have enough rage to go berserk");
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println("Unexpected problem during attack: " + e.getMessage());
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
|
|
||||||
System.out.println("- Dragon breathed fire on the Elf");
|
|
||||||
dragon.breatheFire(elf);
|
|
||||||
|
|
||||||
dragon.printDetails();
|
|
||||||
elf.printDetails();
|
|
||||||
orc.printDetails();
|
|
||||||
|
|
||||||
} catch (LowFirePowerException e) {
|
|
||||||
System.out.println("Attack Not allowed: the dragon's fire power was too low to breathe fire.");
|
|
||||||
} catch (Exception e) {
|
|
||||||
System.out.println("Unexpected problem during attack: " + e.getMessage());
|
System.out.println("Unexpected problem during attack: " + e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user