forked from bryan-jones/game
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgame.js
95 lines (77 loc) · 2.45 KB
/
game.js
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
$( document ).ready(function() {
// Initialize UI.
initUI();
// Create the player.
var player = new LightMage('Bryan');
player.setImage('./classes/character/player.jpg');
$('#user-name').text(player.getName());
// Create a club and equip it on the player.
var club = new Club();
player.equipWeapon(club);
// Create some cloth armor and equip it.
var cloth = new Cloth();
player.equipArmor(cloth);
// Render the player.
player.render();
updateStats(player);
enemies = [];
// Create an enemy.
var rat = new Rat('Rat');
enemies.push(rat);
// Create an enemy.
var bat = new Bat('Bat');
enemies.push(bat);
// Create an enemy.
var ogre = new Ogre('Ogre');
enemies.push(ogre);
// Create an enemy.
var dwarf = new Dwarf('Dwarf');
enemies.push(dwarf);
// Create an enemy.
var zombie = new Zombie('Zombie');
enemies.push(zombie);
$('#button').click(function() {
var end = 0;
var enemyIndex = Math.floor(Math.random() * enemies.length);
var enemy = enemies[enemyIndex];
enemy.render();
var container = document.getElementById('text');
container.innerHTML = '';
while (end == 0) {
end = player.attack(enemy);
if (end == 0) {
end = enemy.attack(player);
}
}
// Reset the enemy HP for testing.
if (player.getHp() > 0) {
player.setExp(player.getExp() + enemy.getExp());
} else {
player.setExp(0);
}
updateStats(player);
enemy.setHp(enemy.getMaxHp());
player.setHp(player.getMaxHp());
});
});
/**
* Build the basic UI.
*/
function initUI() {
// Create a button that says "Fight".
document.body.innerHTML += '<div id="left"></div>';
document.body.innerHTML += '<div id="right"></div>';
document.body.innerHTML += '<div id="button">Fight</div>';
document.body.innerHTML += '<div id="text"></div>';
}
function updateStats(player) {
player.levelUp();
player.render();
$('#user-level').text(player.getLevel());
$('#user-health').text(player.getHp() + ' / ' + player.getMaxHp());
$('#user-mana').text(player.getMana() + ' / ' + player.getMaxMana());
$('#user-experience').text('Exp: ' + player.getExp() + ' / ' + player.getMaxExp());
$('#health-bar').css('width', player.getHpPercent() + '%');
$('#mana-bar').css('width', player.getManaPercent() + '%');
$('#experience-bar').css('width', player.getExpPercent() + '%');
}