Προσθήκη Επιπέδων
Ένα επίπεδο είναι ακόμα ένα αντικείμενο JavaScript:
const Level1 = {
// Level definition.
};
Ας αρχίσουμε γράφοντας μία περιγραφή και μία συμβουλή για το επίπεδό μας:
const Level1 = {
description:
"You've entered the ancient castle of Eastwatch to escape from a blizzard. But it's deadly cold inside too.",
tip:
"Call `warrior.walk()` to walk forward in the Player's `playTurn` method.",
};
Επίσης πρέπει να καθοριστούν δύο αριθμοί: ο επιπλέον χρόνος και η υψηλότερη βαθμολογία. Ο επιπλέον χρόνος κερδίζεται από τον παίκτη ανάλογα με το πόσο γρήγορα ολοκληρώνει το επίπεδο (ο χρόνος μειώνεται λίγο λίγο μέχρι να μηδενίσει). Η υψηλότερη βαθμολογία χρησιμοποιείται για να υπολογιστεί ο βαθμός επιπέδου (μόνο στο epic mode). Κάθε βαθμολογία ίση ή μεγαλύτερη από την υψηλότερη, θα λάβει ένα S. Ας προσθέσουμε αυτούς τους αριθμούς:
const Level1 = {
description:
"You've entered the ancient castle of Eastwatch to escape from a blizzard. But it's deadly cold inside too.",
tip:
"Call `warrior.walk()` to walk forward in the Player's `playTurn` method.",
timeBonus: 15,
aceScore: 10,
};
Αυτοί οι δυο αριθμοί θα πρέπει να προσαρμοστούν με ακρίβεια όταν θα παίξετε δοκιμάζοντας τον πύργο. Για αυτόν τον οδηγό, το έχουμε ήδη κάνει.
Το επόμενο βήμα είναι να καθορίσεις τον όροφο του επιπέδου, αρχίζοντας από τις διαστάσεις του:
const Level1 = {
description:
"You've entered the ancient castle of Eastwatch to escape from a blizzard. But it's deadly cold inside too.",
tip:
"Call `warrior.walk()` to walk forward in the Player's `playTurn` method.",
timeBonus: 15,
aceScore: 10,
floor: {
size: {
width: 8,
height: 1,
},
},
};
Έπειτα, πρέπει να τοποθετηθούν τα σκαλιά ώστε να περάσει στο επόμενο επίπεδο ο Πολεμιστής:
const Level1 = {
description:
"You've entered the ancient castle of Eastwatch to escape from a blizzard. But it's deadly cold inside too.",
tip:
"Call `warrior.walk()` to walk forward in the Player's `playTurn` method.",
timeBonus: 15,
aceScore: 10,
floor: {
size: {
width: 8,
height: 1,
},
stairs: {
x: 7,
y: 0,
},
},
};
Μιας και μιλάμε για τον πολεμιστή, ας καθορίσουμε τον Πολεμιστή για αυτό το επίπεδο:
const Level1 = {
description:
"You've entered the ancient castle of Eastwatch to escape from a blizzard. But it's deadly cold inside too.",
tip:
"Call `warrior.walk()` to walk forward in the Player's `playTurn` method.",
timeBonus: 15,
aceScore: 10,
floor: {
size: {
width: 8,
height: 1,
},
stairs: {
x: 7,
y: 0,
},
warrior: {
character: '@',
maxHealth: 20,
position: {
x: 0,
y: 0,
facing: 'east',
},
},
},
};
Με αυτό, το επίπεδο ολοκληρώνεται. Αλλά πριν συνεχίσουμε, ας καθορίσουμε άλλο ένα επίπεδο:
const Level2 = {
description:
'The cold became more intense. In the distance, you see a pair of deep and blue eyes, a blue that burns like ice.',
tip:
"Use `warrior.feel().isEmpty()` to see if there's anything in front of you, and `warrior.attack()` to fight it. Remember, you can only do one action per turn.",
clue:
'Add an if/else condition using `warrior.feel().isEmpty()` to decide whether to attack or walk.',
timeBonus: 20,
aceScore: 26,
floor: {
size: {
width: 8,
height: 1,
},
stairs: {
x: 7,
y: 0,
},
warrior: {
character: '@',
maxHealth: 20,
position: {
x: 0,
y: 0,
facing: 'east',
},
},
},
};
Ενώ το παιχνίδι αρχίζει να δυσκολεύει για τον παίκτη, αυτή τη στιγμή προσθέτουμε ένα στοιχείο. Τα στοιχεία είναι προαιρετικά και εμφανίζονται μόνο μετά από αίτημα.
Τώρα πρέπει να προσθέσουμε αυτά τα δύο επίπεδα στον πύργο. Τα επίπεδα προστίθενται στον πίνακα levels
του πύργου:
module.exports = {
name: 'Game of Thrones',
description:
'There is only one war that matters: the Great War. And it is here.',
levels: [Level1, Level2],
};
Τέλεια! Αλλά όπως θα πρόσεξες, δίνουμε εντολή στον παίκτη να καλέσει warrior.attack()
, warrior.feel()
, και warrior.walk()
αλλά δεν έχουμε διδάξει τον Πολεμιστή πώς να κάνει κάτι από αυτά. Πάμε να το κάνουμε στη συνέχεια!