# Class OpenSpaceCard

java.lang.Object
it.polimi.ingsw.is25am31.model.cards.Card
it.polimi.ingsw.is25am31.model.cards.OpenSpaceCard

All Implemented Interfaces:
  `Serializable`

public class OpenSpaceCard extends Card
Represents an "Open Space" card in the game. This card type involves moving forward a player's rocket based on their engine power.

See Also:
  - Serialized Form

- ## Field Summary

  ### Fields inherited from class it.polimi.ingsw.is25am31.model.cards.Card

  `id, level, name, testFlight`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `OpenSpaceCard(int id, int level, String name, boolean testFlight)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `applyEffect(Player player, Context context)`
  receives player with relative engine power p, player's rocket advances p squares
  `String[]`
  `getAsciiArt()`
  Generates an ASCII art representation of the card containing details such as the card name, level, optional status, and its effects.
  `EffectType`
  `getType()`
  `void`
  `setCardContext(Player player, Context context)`
  things that the player may/must do before applying the effect

  ### Methods inherited from class it.polimi.ingsw.is25am31.model.cards.Card

  `getCrewMembers, getId, getIterations, isTestFlight`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### OpenSpaceCard

    public OpenSpaceCard(int id, int level, String name, boolean testFlight)

- ## Method Details

  - ### getType

    public EffectType getType()
    Specified by:
      `getType` in class `Card`
    Returns:
      card type

  - ### setCardContext

    public void setCardContext(Player player, Context context)
    things that the player may/must do before applying the effect
    Overrides:
      `setCardContext` in class `Card`
    Parameters:
      `player` - setting their context
      `context` - map of parameters passed by the player, useful to set the context of the card. In this case it's the coordinates of the engine to activate and battery to remove

  - ### applyEffect

    public boolean applyEffect(Player player, Context context)
    receives player with relative engine power p, player's rocket advances p squares
    Specified by:
      `applyEffect` in class `Card`
    Parameters:
      `player` - on whom the effect is applied
      `context` - map of parameters passed by the player, used to apply the effect
    Returns:
      `true` if effect has been completely resolved for passed player, `false` otherwise

  - ### getAsciiArt

    public String[] getAsciiArt()
    Generates an ASCII art representation of the card containing details such as the card name, level, optional status, and its effects. This representation serves as a textual description of the card, formatted line by line for display.
    Specified by:
      `getAsciiArt` in class `Card`
    Returns:
      an array of strings containing the ASCII art representation of the card