Comments added

This commit is contained in:
nicoagostini committed 2025-09-21 18:58:18 -07:00
1 parent 18ec34592d
commit 2fbee1b1b1
6 files changed
+126 -93

No files matched your search

+17 -8
View File
@@ -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;}
} }
+15 -5
View File
@@ -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) {
+6 -1
View File
@@ -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 {
+3 -2
View File
@@ -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
+3 -2
View File
@@ -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
+82 -75
View File
@@ -17,103 +17,110 @@ 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;
final Creature creatureOrc; final Creature creatureOrc;
final Date dragonBirthDate; final Date dragonBirthDate;
final Date elfBirthDate; final Date elfBirthDate;
final Date orcBirthDate; final Date orcBirthDate;
dragonBirthDate = new Date(2012, 9, 17); dragonBirthDate = new Date(2012, 9, 17);
elfBirthDate = new Date(1900, 11, 5); elfBirthDate = new Date(1900, 11, 5);
orcBirthDate = new Date(500, 5, 3); orcBirthDate = new Date(500, 5, 3);
creatureDragon = new Dragon("Sparky", dragonBirthDate, 5, 60); creatureDragon = new Dragon("Sparky", dragonBirthDate, 5, 60);
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) {
dragon.printDetails(); System.out.println("creatureDragon is a Dragon.");
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.");
System.out.println("creatureDragon type: " + creatureDragon.getClass().getSimpleName());
try { if (creatureElf instanceof Elf) {
System.out.println("- Dragon breathed fire on the Elf"); System.out.println("creatureElf is an Elf.");
dragon.breatheFire(elf);
dragon.printDetails(); }
elf.printDetails(); System.out.println("creatureElf type: " + creatureElf.getClass().getSimpleName());
orc.printDetails();
} catch (LowFirePowerException e) { if (creatureOrc instanceof Orc) {
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());
}
try { System.out.println("creatureOrc is an Orc.");
}
System.out.println("- Elf cast a spell on the Dragon"); System.out.println("creatureOrc type: " + creatureOrc.getClass().getSimpleName());
elf.castSpell(dragon);
dragon.printDetails(); creatureDragon.printDetails();
elf.printDetails(); creatureElf.printDetails();
orc.printDetails(); creatureOrc.printDetails();
} catch (LowManaException e) { final Dragon dragon = (Dragon) creatureDragon;
System.out.println("Attack Not allowed: the elf didn't have enough mana to cast the spell."); final Elf elf = (Elf) creatureElf;
} catch (Exception e) { final Orc orc = (Orc) creatureOrc;
System.out.println("Unexpected problem during attack: " + e.getMessage());
}
try { try {
System.out.println("- Orc went berserk on the Elf"); System.out.println("- Dragon breathed fire on the Elf");
orc.berserk(elf);
dragon.printDetails(); dragon.breatheFire(elf);
elf.printDetails();
orc.printDetails();
} catch (LowRageException e) {
System.out.println("Attack Not allowed: the orc didn't have enough rage to go berserk");
} 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("Final Stats:");
dragon.printDetails(); dragon.printDetails();
elf.printDetails(); elf.printDetails();
orc.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());
}
try {
System.out.println("- Elf cast a spell on the Dragon");
elf.castSpell(dragon);
dragon.printDetails();
elf.printDetails();
orc.printDetails();
} catch (LowManaException e) {
System.out.println("Attack Not allowed: the elf didn't have enough mana to cast the spell.");
} catch (Exception e) {
System.out.println("Unexpected problem during attack: " + e.getMessage());
}
try {
System.out.println("- Orc went berserk on the Elf");
orc.berserk(elf);
dragon.printDetails();
elf.printDetails();
orc.printDetails();
} catch (LowRageException e) {
System.out.println("Attack Not allowed: the orc didn't have enough rage to go berserk");
} catch (Exception e) {
System.out.println("Unexpected problem during attack: " + e.getMessage());
}
System.out.println("Final Stats:");
dragon.printDetails();
elf.printDetails();
orc.printDetails();
} }
} }