100 lines
3.5 KiB
TypeScript
100 lines
3.5 KiB
TypeScript
import { BaseGameType, CardName, ICard, PlayingCard, RankSet, Suit } from 'typedeck';
|
|
|
|
enum SemeNapoletano {
|
|
Bastoni, // Suit.Clubs
|
|
Spade, // Suit.Spades
|
|
Coppe, // Suit.Diamonds
|
|
Denari // Suit.Hearts
|
|
};
|
|
|
|
export class CartaNapoletana extends PlayingCard {
|
|
public toString(): string {
|
|
return `${CardName[this.cardName]} of ${SemeNapoletano[this.suit]}`;
|
|
}
|
|
}
|
|
|
|
class NapoliGameType extends BaseGameType {
|
|
public cardsAllowed: ICard[] = [
|
|
new CartaNapoletana(CardName.Ace, Suit.Clubs),
|
|
new CartaNapoletana(CardName.Two, Suit.Clubs),
|
|
new CartaNapoletana(CardName.Three, Suit.Clubs),
|
|
new CartaNapoletana(CardName.Four, Suit.Clubs),
|
|
new CartaNapoletana(CardName.Five, Suit.Clubs),
|
|
new CartaNapoletana(CardName.Six, Suit.Clubs),
|
|
new CartaNapoletana(CardName.Seven, Suit.Clubs),
|
|
new CartaNapoletana(CardName.Eight, Suit.Clubs),
|
|
new CartaNapoletana(CardName.Nine, Suit.Clubs),
|
|
new CartaNapoletana(CardName.Ten, Suit.Clubs),
|
|
|
|
new CartaNapoletana(CardName.Ace, Suit.Diamonds),
|
|
new CartaNapoletana(CardName.Two, Suit.Diamonds),
|
|
new CartaNapoletana(CardName.Three, Suit.Diamonds),
|
|
new CartaNapoletana(CardName.Four, Suit.Diamonds),
|
|
new CartaNapoletana(CardName.Five, Suit.Diamonds),
|
|
new CartaNapoletana(CardName.Six, Suit.Diamonds),
|
|
new CartaNapoletana(CardName.Seven, Suit.Diamonds),
|
|
new CartaNapoletana(CardName.Eight, Suit.Diamonds),
|
|
new CartaNapoletana(CardName.Nine, Suit.Diamonds),
|
|
new CartaNapoletana(CardName.Ten, Suit.Diamonds),
|
|
|
|
new CartaNapoletana(CardName.Ace, Suit.Spades),
|
|
new CartaNapoletana(CardName.Two, Suit.Spades),
|
|
new CartaNapoletana(CardName.Three, Suit.Spades),
|
|
new CartaNapoletana(CardName.Four, Suit.Spades),
|
|
new CartaNapoletana(CardName.Five, Suit.Spades),
|
|
new CartaNapoletana(CardName.Six, Suit.Spades),
|
|
new CartaNapoletana(CardName.Seven, Suit.Spades),
|
|
new CartaNapoletana(CardName.Eight, Suit.Spades),
|
|
new CartaNapoletana(CardName.Nine, Suit.Spades),
|
|
new CartaNapoletana(CardName.Ten, Suit.Spades),
|
|
|
|
new CartaNapoletana(CardName.Ace, Suit.Hearts),
|
|
new CartaNapoletana(CardName.Two, Suit.Hearts),
|
|
new CartaNapoletana(CardName.Three, Suit.Hearts),
|
|
new CartaNapoletana(CardName.Four, Suit.Hearts),
|
|
new CartaNapoletana(CardName.Five, Suit.Hearts),
|
|
new CartaNapoletana(CardName.Six, Suit.Hearts),
|
|
new CartaNapoletana(CardName.Seven, Suit.Hearts),
|
|
new CartaNapoletana(CardName.Eight, Suit.Hearts),
|
|
new CartaNapoletana(CardName.Nine, Suit.Hearts),
|
|
new CartaNapoletana(CardName.Ten, Suit.Hearts)
|
|
];
|
|
}
|
|
|
|
class BancoRankSet extends RankSet {
|
|
public rankSet: CardName[] = [
|
|
CardName.Ace,
|
|
CardName.Two,
|
|
CardName.Three,
|
|
CardName.Four,
|
|
CardName.Five,
|
|
CardName.Six,
|
|
CardName.Seven,
|
|
CardName.Eight,
|
|
CardName.Nine,
|
|
CardName.Ten
|
|
];
|
|
}
|
|
|
|
export class BancoGameType extends NapoliGameType {
|
|
public rankSet = new BancoRankSet();
|
|
}
|
|
|
|
class SettemmezzoRankSet extends RankSet {
|
|
public rankSet: CardName[] = [
|
|
CardName.Eight,
|
|
CardName.Nine,
|
|
CardName.Ten,
|
|
CardName.Ace,
|
|
CardName.Two,
|
|
CardName.Three,
|
|
CardName.Four,
|
|
CardName.Five,
|
|
CardName.Six,
|
|
CardName.Seven
|
|
];
|
|
}
|
|
|
|
export class SettemmezzoGameType extends NapoliGameType {
|
|
public rankSet = new SettemmezzoRankSet();
|
|
} |