-
Notifications
You must be signed in to change notification settings - Fork 0
/
Funcional
50 lines (42 loc) · 1.82 KB
/
Funcional
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
El juego permite tomar un lenguaje que describa cartas (y/o nuevas reglas, esto quizás no),
agregarlas a tu mazo, y luego jugar con ellas contra un adversario o una PC.
Reglas:
-Cada jugador comienza el juego con W Vida, X Mana, Y Poder, Z Cartas.
-Cada jugador gana _ Cartas, _ Poder, _ Mana al comienzo de su turno
-El jugador puede jugar tantas cartas como quiera, siempre que pueda pagar
su costo en Mana
-El tablero consiste en ([Criatura],[Criatura]) con tamaños iguales
Lenguaje de Cartas:
Si comienza con mayúscula o número, es una palabra clave.
si es una palabra en minúscula, se ignora.
Cada carta contiene:
- Nombre
- Costo (Int) (Calculado en base a las habilidades? De ser así, no se parsearía)
- Tipo. Si es Criatura o Hechizo
-Si es Criatura, tendrá Vida (Int), Ataque (Int) y [Habilidad]
-Cada Habilidad tiene Costo (Int) y [Accion]
-Acciones:
Copia <Vida/Ataque> <PossibleTargetCreature>
Copia <Vida/Mana/> <PossibleTargetCreature>
Destruye <[PossibleTargetCreature]>
Quita <Int> <Vida/Ataque> <[PossibleTarget]>
Agrega <Int> <Vida/Ataque> <[PossibleTarget]>
-PossibleTargetCreature :: (Quantity Int, Criatura -> Bool) | (All, Criatura -> Bool) te diría a qué criaturas puede afectar del tablero
Formato: <Nro de Cartas afectadas (Int) o Todas >
<
Ejemplos: - 1 Criatura Con Vida > 5 ---> possibleTarget = (1, \creature -> creature.life > 5)
- 2 Criaturas De Adversario -> possibleTarget1 = \creature -> isOwnedBy state.getOpponent creature
possibleTarget1 = \creature -> isOwnedBy state.getOpponent creature
- Todas las Criaturas en el tablero
-Si es Hechizo, tendrá [Accion]
del tablero o Jugadores
-
Ejemplos de cartas:
1.
Nombre: Minotauro
Tipo: Criatura
Vida: 11
Ataque: 1
Habilidades:
- (Costo 0): Copia Ataque
- (Costo 20): Destruye Todas