Merge pull request #116 from rubenpirreram/Javadoc-fixed

Javadoc fixed
This commit is contained in:
rubenpirreram
2026-05-20 19:23:46 +02:00
committed by GitHub
26 changed files with 361 additions and 267 deletions
@@ -8,28 +8,34 @@ import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
/**
* From the moment you buy this building, every time you complete a set of 6 different characters, you gain 5 food.
* Note: sets of characters already present before purchasing the building do not count.
* Building effect that grants 5 food for each new complete set of
* 6 different character types obtained after purchasing this building.
*
* <p>Character sets already completed before the building is purchased
* are stored during initialization and do not provide food.
*/
public class Building0 extends BuildingCard {
/**
* The purchased attribute is used to indicate whether the card has already been initialized.
* Indicates whether the building effect has already been initialized
* after purchase.
*/
boolean purchased ;
/**
* The numSet attribute indicates how many complete sets the player has.
* Number of complete character sets already counted by this building effect.
*/
private int numSet;
/**
* Constructor of the building.
* Creates a building with the specified image identifier, era, price
* and prestige value.
*
* @param idImage the image identifier of the building.
* @param era the game era of the building.
* @param price the price in food of the building.
* @param prestigeValue the number of Prestige Points gained from this building at the end of the game.
* @param prestigeValue the number of Prestige Points granted by this building
* at the end of the game.
*/
public Building0(String idImage,int era,int price,int prestigeValue) {
super(idImage,era,price,prestigeValue);
@@ -40,10 +46,12 @@ public class Building0 extends BuildingCard {
}
/**
* Constructor of the building
* @param era The game era of the building.
* @param price The price (in food) of the building.
* @param prestigeValue The number of Prestige Points gained from this building at the end of the game.
* Creates a building with the specified era, price and prestige value.
*
* @param era the game era of the building.
* @param price the price in food of the building.
* @param prestigeValue the number of Prestige Points granted by this building
* at the end of the game.
*/
public Building0(int era,int price,int prestigeValue) {
super(era,price,prestigeValue);
@@ -54,9 +62,12 @@ public class Building0 extends BuildingCard {
}
/**
* Method used to purchase the building. It also handles its initialization.
* @param player The player who buys the building.
* @return The outcome of the operation.
* Attempts to purchase the building and initializes its effect if the
* purchase succeeds.
*
* @param player the player who attempts to buy the building.
* @return {@code true} if the building is successfully purchased and initialized,
* {@code false} otherwise.
*/
@Override
public boolean buy(Player player)
@@ -68,9 +79,12 @@ public class Building0 extends BuildingCard {
}
/**
* Initializes the building by counting the number of complete sets at the moment of purchase.
* The building can only be initialized once.
* @param player The player who owns the building, whose cards are counted to determine the number of sets.
* Initializes the building effect by storing the number of complete
* character sets already owned by the player at the moment of purchase.
*
* <p>The initialization is performed only once.
*
* @param player the player who owns the building.
*/
public void initialize(Player player)
{
@@ -88,8 +102,13 @@ public class Building0 extends BuildingCard {
}
/**
* Method to clone the building: it creates an exact copy.
* @return The new copy of the building
* Creates a new building instance with the same configuration values
* as this card.
*
* <p>The runtime state of the effect, such as initialization status and
* counted character sets, is not copied.
*
* @return a new building card with the same base properties.
*/
@Override
public BuildingCard clone() {
@@ -97,10 +116,13 @@ public class Building0 extends BuildingCard {
}
/**
* Calculates the current number of card sets and subtracts the previous value (i.e., the number of newly obtained sets).
* The player gains an amount of food equal to 5 times this result.
* @param player The player who owns the building.
* @throws IllegalArgumentException thrown if the specified player does not own this card.
* Applies the building effect to the specified player.
*
* <p>The method counts the complete character sets currently owned by the player
* and grants 5 food for each set completed since the last stored value.
*
* @param player the player who owns the building.
* @throws IllegalArgumentException if the specified player does not own this card.
*/
@Override
public void applyEffect(Player player) throws IllegalArgumentException {
@@ -120,4 +142,4 @@ public class Building0 extends BuildingCard {
numSet=min_temp;
};
}
}
@@ -5,27 +5,31 @@ import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
/**
* During the Sustenance Event, you have a discount of 1 food token on the total you
* would have to pay, for each of the indicated characters in your tribe.
* Building effect that grants a discount of 1 food during the Sustenance Event
* for each character of the indicated type present in the player's tribe.
*/
public class Building1 extends BuildingCard {
/**
* The icon attribute indicates the character type involved in the building effect.
* Character type involved in the building effect.
*/
private CharacterType icon ;
/**
* @return The character type associated with this building effect.
* Returns the character type associated with this building effect.
*
* @return the character type associated with this building effect.
*/
public CharacterType getIcon() {return icon;}
/**
* Constructor of the building.
* @param era The game era of the building.
* @param price The price (in food) of the building.
* @param prestigeValue The number of Prestige Points gained from this building at the end of the game.
* @param icon The character type used by the building effect.
* Creates a building with the specified era, price, prestige value
* and character type involved in its effect.
*
* @param era the game era of the building.
* @param price the price in food of the building.
* @param prestigeValue the number of Prestige Points gained from this building at the end of the game.
* @param icon the character type used by the building effect.
*/
public Building1(int era, int price,int prestigeValue, CharacterType icon) {
super(era,price,prestigeValue);
@@ -35,7 +39,8 @@ public class Building1 extends BuildingCard {
}
/**
* Constructor of the building.
* Creates a building with the specified image identifier, era, price,
* prestige value and character type involved in its effect.
*
* @param idIMG the image identifier of the building.
* @param era the game era of the building.
@@ -51,8 +56,10 @@ public class Building1 extends BuildingCard {
}
/**
* Method to clone the building: it creates an exact copy.
* @return The new copy of the building.
* Creates a new building instance with the same configuration values
* as this card.
*
* @return a new building card with the same base properties and icon.
*/
@Override
public BuildingCard clone() {
@@ -60,17 +67,13 @@ public class Building1 extends BuildingCard {
}
/**
* Prints a string representation of this {@code Building1}. This specific variation is used in the {@code Game}'s
* toString to print a more detailed version.
* <p>includes:
* <li>{@link #icon Icon}
* </p>
* @return {@code String} - a string representation of this {@code Building1}.
* @see it.polimi.ingsw.gc14.Model.Game Game
* @see it.polimi.ingsw.gc14.Model.GamePackage.Board Board
* Returns a string representation of this building, including the character
* type associated with its effect.
*
* @return a string representation of this building.
*/
@Override
public String toString() {
return super.toString() + " Icon: " + this.icon.toString().charAt(0);
}
}
}
@@ -8,9 +8,10 @@ import it.polimi.ingsw.gc14.Model.Player;
import java.util.HashMap;
/**
* Represents the building card number 10.
* At the end of the game, the player gains 6 Prestige Points
* for each complete set of character types in their tribe.
*
* <p>This class defines the specific behavior and effects of building card 10.
* <p>A complete set contains one character card of each {@link CharacterType}.
*/
public class Building10 extends BuildingCard {
@@ -53,8 +54,9 @@ public class Building10 extends BuildingCard {
/**
* Applies the effect of this building card to the specified player.
* The effect grants 6 prestige points for each complete set of character cards.
* owned by the player, where a complete set contains one card of each.
*
* <p>The effect grants 6 Prestige Points for each complete set of character
* cards owned by the player, where a complete set contains one card of each
* {@link CharacterType}.
*
* @param player the player to whom the effect is applied.
@@ -6,9 +6,11 @@ import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
import it.polimi.ingsw.gc14.Model.Player;
/**
* Represents the building card number 11.
* At the end of the game, the player gains Prestige Points based on the number
* of cards of the indicated character type in their tribe.
*
* <p>This class defines the specific behavior and effects of building card 11.
* <p>The gained amount is equal to the number of matching character cards
* multiplied by the building's prestige multiplier.
*/
public class Building11 extends BuildingCard {
@@ -85,8 +87,8 @@ public class Building11 extends BuildingCard {
* The effect grants prestige points equal to the number of cards of the
* associated CharacterType owned by the player, multiplied by the prestige multiplier.
*
* @param player the player to whom the effect is applied-
* @throws IllegalArgumentException if the player does not own this building card-
* @param player the player to whom the effect is applied.
* @throws IllegalArgumentException if the player does not own this building card.
*/
@Override
public void applyEffect(Player player) throws IllegalArgumentException {
@@ -96,15 +98,10 @@ public class Building11 extends BuildingCard {
}
/**
* Prints a string representation of this {@code Building1}. This specific variation is used in the {@code Game}'s
* toString to print a more detailed version.
* <p>includes:
* <li>{@link #icon Icon}
* <li>{@link #PrestigeMul Prestige Multiplier}
* </p>
* @return {@code String} - a string representation of this {@code Building1}.
* @see it.polimi.ingsw.gc14.Model.Game Game
* @see it.polimi.ingsw.gc14.Model.GamePackage.Board Board
* Returns a string representation of this {@code Building11}, including the
* character type associated with its effect and its prestige multiplier.
*
* @return a string representation of this {@code Building11}.
*/
@Override
public String toString() {
@@ -5,9 +5,8 @@ import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
import it.polimi.ingsw.gc14.Model.Player;
/**
* Represents the building card number 13.
*
* <p>This class defines the specific behavior and effects of building card 13.
* At the end of the game, this building grants 25 Prestige Points
* to the player who owns it.
*/
public class Building13 extends BuildingCard{
@@ -49,7 +48,8 @@ public class Building13 extends BuildingCard{
}
/**
* Applies the effect of this building card to the specified player.
* Applies the effect of this building card to the specified player,
* granting 25 Prestige Points.
*
* @param player the player to whom the effect is applied.
* @throws IllegalArgumentException if the player does not own this building card.
@@ -8,23 +8,28 @@ import it.polimi.ingsw.gc14.Model.Player;
import java.util.HashMap;
/**
* From the moment you purchase this building, every time you obtain a pair of identical inventors, you gain 3 food.
* This effect doesn't apply to already owned pairs at the time of purchase.
* Building effect that grants 3 food for each new pair of identical inventors
* obtained after purchasing this building.
*
* <p>Pairs of identical inventors already owned at the moment of purchase
* are stored during initialization and do not provide food.
*/
public class Building4 extends BuildingCard {
/**
* The purchased attribute is used to indicate whether the card has already been initialized.
* Indicates whether the building effect has already been initialized
* after purchase.
*/
boolean purchased ;
/**
* The numPair attribute indicates how many pairs of inventors the player has.
* Number of inventor pairs already counted by this building effect.
*/
int numPair;
/**
* Constructor of the building
* Creates a building with the specified era, price and prestige value.
*
* @param era The game era of the building.
* @param price The price (in food) of the building.
* @param prestigeValue The number of Prestige Points gained from this building at the end of the game.
@@ -36,7 +41,8 @@ public class Building4 extends BuildingCard {
}
/**
* Constructor of the building.
* Creates a building with the specified image identifier, era, price
* and prestige value.
*
* @param idIMG the image identifier of the building.
* @param era the game era of the building.
@@ -50,9 +56,12 @@ public class Building4 extends BuildingCard {
}
/**
* Initializes the building by counting the number of pairs of inventors at the moment of purchase.
* The building can only be initialized once.
* @param player the player who owns the building, whose inventors are counted to determine the number of pairs.
* Initializes the building effect by storing the number of pairs of identical
* inventors already owned by the player at the moment of purchase.
*
* <p>The initialization is performed only once.
*
* @param player the player who owns the building.
*/
public void initialize(Player player)
{
@@ -79,9 +88,12 @@ public class Building4 extends BuildingCard {
}
/**
* Method used to purchase the building. It also handles its initialization.
* Attempts to purchase the building and initializes its effect if the
* purchase succeeds.
*
* @param player The player who buys the building.
* @return The outcome of the operation.
* @return {@code true} if the building is successfully purchased and initialized,
* {@code false} otherwise.
*/
@Override
public boolean buy(Player player)
@@ -93,8 +105,13 @@ public class Building4 extends BuildingCard {
}
/**
* Method to clone the building: it creates an exact copy.
* @return The new copy of the building.
* Creates a new building instance with the same configuration values
* as this card.
*
* <p>The runtime state of the effect, such as initialization status and
* counted inventor pairs, is not copied.
*
* @return a new building card with the same base properties.
*/
@Override
public BuildingCard clone() {
@@ -102,8 +119,11 @@ public class Building4 extends BuildingCard {
}
/**
* Calculates the current number of pairs and subtracts the previous value (i.e., the number of newly obtained pairs).
* The player gains an amount of food equal to 3 times this result.
* Applies the building effect to the specified player.
*
* <p>The method counts the current number of pairs of identical inventors
* and grants 3 food for each pair obtained since the last stored value.
*
* @param player The player who owns the building.
* @throws IllegalArgumentException Thrown if the specified player does not own this card.
*/
@@ -132,4 +152,4 @@ public class Building4 extends BuildingCard {
player.addFood(3*(temp-numPair));
numPair = temp;
};
}
}
@@ -47,7 +47,11 @@ public class Building8 extends BuildingCard {
}
/**
* For each builder in the player's hand, the player gains double the Prestige Point indicated on the builder card.
* Applies the building effect by granting additional Prestige Points equal to
* the Prestige Value of each Builder card owned by the player.
*
* <p>This effectively doubles the contribution of Builder cards to the final score.
*
* @param player The player who owns the building.
* @throws IllegalArgumentException Thrown if the specified player does not own this building.
*/
@@ -60,4 +64,4 @@ public class Building8 extends BuildingCard {
}
}
}
}
@@ -16,7 +16,7 @@ import java.io.Serializable;
*/
public class BuildingCard extends PlayableCard implements Cloneable , BuildingEffect, Serializable {
/**
/**
* The price of this building card.
*/
private int price;
@@ -102,8 +102,10 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf
}
/**
* Creates a building card with the specified era, price, and prestige value.
* Creates a building card with the specified image identifier, era, price,
* and prestige value.
*
* @param idIMG the image identifier of the building card.
* @param era the era of the building card.
* @param price the price of the building card.
* @param prestigeValue the prestige value of the building card.
@@ -160,7 +162,7 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf
this.effectType=EffectType.ON_EVENT;
break;
case 12:
this.effectType=EffectType.ON_ROUND_END;
this.effectType=EffectType.ON_ROUND_END;
break;
default:
throw new IllegalArgumentException();
@@ -227,10 +229,12 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf
/**
* Attempts to buy this building card for the specified player.
* The purchase succeeds only if the card has not already been bought
* and the player can pay its price in Food.
* If the purchase succeeds, the card is added to the player's building cards
* and marked as bought.
*
* <p>The effective cost is reduced by the total reduction value provided
* by the player's Builder cards, without dropping below zero. The purchase
* succeeds only if the card has not already been bought and the player can
* pay the resulting amount of Food. If successful, the card is added to
* the player's building cards and marked as bought.
*
* @param player the player attempting to buy the building card.
* @return {@code true} if the building card is successfully bought,
@@ -253,9 +257,12 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf
}
/**
* Applies the effect of this building card to the specified player.
* Default implementation of the building effect.
*
* @param player the player to whom the effect is applied.
* <p>This method does not perform any operation and can be overridden
* by specific building cards that define an active effect.
*
* @param player the player to whom the effect may be applied.
*/
@Override
public void applyEffect(Player player){};
@@ -269,4 +276,4 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf
public String toString() {
return "⎕:" + " ID:" + String.valueOf(getEffectId())+ " $:"+String.valueOf(getPrice())+" PV:"+String.valueOf(getPrestigeValue());
}
}
}
@@ -5,7 +5,8 @@ import it.polimi.ingsw.gc14.Model.Player;
/**
* Abstract base class for all character cards.
* A Character is a {@link TribeCard} that is not an event card and is associated.
*
* <p>A Character is a {@link TribeCard} that is not an event card and is associated
* with a specific {@link CharacterType}.
*/
public abstract class Character extends TribeCard implements Cloneable {
@@ -77,8 +78,6 @@ public abstract class Character extends TribeCard implements Cloneable {
/**
* Returns the string representation of this character card.
* The returned string includes the string representation of the superclass
* and the string representation of the character type.
*
* @return the string representation of this character card.
*/
@@ -89,8 +88,8 @@ public abstract class Character extends TribeCard implements Cloneable {
/**
* Prints a string representation of this {@code Character}. This specific variation is used in the {@code Game}'s
* toString to print a more detailed version.
* Returns a string representation of this {@code Character}. This specific variation is used in the {@code Game}'s
* toString to provide a more detailed version.
* <p>Includes:
* <li>{@link it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType Type}
* </p>
@@ -118,4 +117,4 @@ public abstract class Character extends TribeCard implements Cloneable {
* @param player the player who receives the character card.
*/
public abstract void insert(Player player);
}
}
@@ -74,7 +74,8 @@ public class Artist extends Character {
}
/**
* Inserts this Artist card into the specified player's Artist collection.
* Inserts this Artist card into the specified player's Artist collection
* and applies any building effects triggered by character set completion.
*
* @param player the player who receives the card.
*/
@@ -84,5 +85,4 @@ public class Artist extends Character {
player.buildingCards.stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player));
}
}
}
@@ -143,13 +143,10 @@ public class Builder extends Character {
}
/**
* Prints a string representation of this {@code TribeCard}. This specific variation is used in the {@code Game}'s
* toString to print a more detailed version.
* <p>Includes:
* <li>{@link #reductionValue Reduction Value}
* <li>{@link #prestigeValue Prestige Value}
* </p>
* @return {@code String} - a string representation of this {@code TribeCard}.
* Returns a detailed string representation of this {@code Builder} card,
* including its reduction value and prestige value.
*
* @return a detailed string representation of this {@code Builder} card.
* @see it.polimi.ingsw.gc14.Model.Cards.TribeCard TribeCard
* @see it.polimi.ingsw.gc14.Model.Game Game
* @see it.polimi.ingsw.gc14.Model.GamePackage.Board Board
@@ -172,7 +169,8 @@ public class Builder extends Character {
}
/**
* Inserts this Builder card into the specified player's Builder collection.
* Inserts this Builder card into the specified player's Builder collection
* and applies any building effects triggered by character set completion.
*
* @param player the player who receives the card.
*/
@@ -15,7 +15,7 @@ public class Gatherer extends Character {
/**
* Creates a Gatherer character card with the specified era.
*
* @param Era Gatherers era.
* @param Era the era of the Gatherer card.
*/
public Gatherer(int Era) {
super(Era, CharacterType.GATHERER);
@@ -32,7 +32,7 @@ public class Gatherer extends Character {
}
/**
* Creates a Gatherer character card with the specified era.
* Creates a Gatherer character card with the specified image id and era.
*
* @param idIMG the image identifier of the Gatherer card.
* @param Era the era of the Gatherer card.
@@ -74,7 +74,8 @@ public class Gatherer extends Character {
}
/**
* Inserts this Gatherer card into the specified player's Gatherer collection.
* Inserts this Gatherer card into the specified player's Gatherer collection
* and applies any building effects triggered by character set completion.
*
* @param player the player who receives the card.
*/
@@ -82,4 +83,4 @@ public class Gatherer extends Character {
player.gatherers.add(this);
player.buildingCards.stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player));
}
}
}
@@ -93,11 +93,14 @@ public class Hunter extends Character {
}
/**
* Prints a string representation of this {@code TribeCard}. This specific variation is used in the {@code Game}'s
* toString to print a more detailed version.
* Returns a detailed string representation of this {@code TribeCard}.
* This specific variation is used in the {@code Game}'s
* toString to provide a more detailed version.
*
* <p>Potentially includes:
* <li>{@link #icon Icon}
* </p>
*
* @return {@code String} - a string representation of this {@code TribeCard}.
* @see it.polimi.ingsw.gc14.Model.Cards.TribeCard TribeCard
* @see it.polimi.ingsw.gc14.Model.Game Game
@@ -125,6 +128,10 @@ public class Hunter extends Character {
/**
* Inserts this Hunter card into the specified player's Hunter collection.
*
* <p>If this card has the Hunter icon, the player gains 1 food for each
* Hunter currently in their tribe. The method also applies any building
* effects triggered by character set completion.
*
* @param player the player who receives the card.
*/
@Override
@@ -136,4 +143,4 @@ public class Hunter extends Character {
player.buildingCards.stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player));
}
}
}
@@ -97,11 +97,14 @@ public class Inventor extends Character {
}
/**
* Prints a string representation of this {@code TribeCard}. This specific variation is used in the {@code Game}'s
* toString to print a more detailed version.
* Returns a detailed string representation of this {@code TribeCard}.
* This specific variation is used in the {@code Game}'s toString
* to provide a more detailed version.
*
* <p>Includes:
* <li>{@link #icon Icons's ID}
* </p>
*
* @return {@code String} - a string representation of this {@code TribeCard}.
* @see it.polimi.ingsw.gc14.Model.Cards.TribeCard TribeCard
* @see it.polimi.ingsw.gc14.Model.Game Game
@@ -125,6 +128,9 @@ public class Inventor extends Character {
/**
* Inserts this Inventor card into the specified player's Inventor collection.
*
* <p>The method also applies the building effects related to inventor pairs
* and any building effects triggered by character set completion.
*
* @param player the player who receives the card.
*/
@Override
@@ -133,4 +139,4 @@ public class Inventor extends Character {
player.buildingCards.stream().filter(b -> b.getEffectId() == 4).forEach(b4 -> b4.applyEffect(player));
player.buildingCards.stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player));
}
}
}
@@ -26,7 +26,7 @@ public class Shaman extends Character {
* @return the icon value of this Shaman card.
*/
public int getIcon() {
return icon;
return icon;
}
/**
@@ -90,8 +90,8 @@ public class Shaman extends Character {
}
/**
* Prints a string representation of this {@code TribeCard}. This specific variation is used in the {@code Game}'s
* toString to print a more detailed version.
* Returns a string representation of this {@code TribeCard}. This specific variation is used in the {@code Game}'s
* toString to provide a more detailed version.
* <p>Includes:
* <li>{@link #icon Number of stars}
* </p>
@@ -116,7 +116,8 @@ public class Shaman extends Character {
}
/**
* Inserts this Shaman card into the specified player's Shaman collection.
* Inserts this Shaman card into the specified player's Shaman collection
* and applies any building effects triggered by character set completion.
*
* @param player the player who receives the card.
*/
@@ -126,4 +127,4 @@ public class Shaman extends Character {
player.shamans.add(this);
player.buildingCards.stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player));
}
}
}
@@ -8,7 +8,7 @@ import java.lang.reflect.Array;
/**
* Abstract base class for all event cards.
* An EventCard is a {@link TribeCard} marked as an event card and associated.
* An EventCard is a {@link TribeCard} marked as an event card and associated
* with a specific {@link EventType}.
*/
public abstract class EventCard extends TribeCard {
@@ -100,6 +100,4 @@ public abstract class EventCard extends TribeCard {
public abstract void activateEvent (ArrayList <Player> playerList);
// End Functions
}
}