Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Streamlining & Combat #3

Merged
merged 2 commits into from
Jan 8, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 1 addition & 2 deletions js/achievements.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ completedAchievements = [];
//have player wearing all iron armor
function achievement_iron_armor() {
if (document.getElementById("helmetSelect").value == "Iron Helmet" && document.getElementById("chestSelect").value == "Iron Chestplate" && document.getElementById("legsSelect").value == "Iron Leggings" && document.getElementById("bootsSelect").value == "Iron Boots") {
var achievementMessage = "You have completed the Iron Armor achievement!";
addMessage(achievementMessage);
addMessage("You have completed the Iron Armor achievement!");
gold += 250;
document.getElementById("gold").innerHTML = gold;
// clearInterval(achievementMaster); //doesnt work
Expand Down
204 changes: 51 additions & 153 deletions js/activities.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,7 @@ setInterval(function () {
level++;
xp = 0;
document.getElementById("progress").width = 0;
var levelUpMessage = "You leveled up! You are now level " + level + "! " + " [ " + level * 100 + " gold awarded ]";
addMessage(levelUpMessage);

addMessage("You leveled up! You are now level " + level + "! " + " [ " + level * 100 + " gold awarded ]");
}
}, 100);

Expand All @@ -43,30 +41,25 @@ function tree() {
// if successful, add wood to inventory.

if (axeHealth <= 0) {
var brokeAxeMessage = "Your axe broke!";
addMessage(brokeAxeMessage);
addMessage(Your axe broke!");
axeHealth = 20;
const index = inventory.indexOf('Axe');
if (index > -1) {
inventory.splice(index, 1);
}
}
else {
} else {
if (fullInventory == false) {
// alert("You cut down a tree!");
inventory.push("Wood");
axeHealth -= 1;
// woodObtained++;
xp += 10;
}
else {
} else {
addMessage("Your inventory is full. You can't carry any more items.");
}
}
}
else {
var needAxeMessage = "You need an axe to cut down trees!";
addMessage(needAxeMessage);
} else {
addMessage("You need an axe to cut down trees!");
}
}

Expand All @@ -76,8 +69,7 @@ function goFishing() {
// 20% chance the fishing pole breaks and you get no fish
// if successful, add fish to inventory.
if (fishingPoleHealth <= 0) {
var fishingMessage = "Your fishing pole broke!";
addMessage(fishingMessage);
addMessage("Your fishing pole broke!");
fishingPoleHealth = 10;
const index = inventory.indexOf('Fishing Pole');
if (index > -1) {
Expand All @@ -93,10 +85,8 @@ function goFishing() {
fishObtained++;
}
}
}
else {
var fishingMessage = "You need a fishing pole to fish!";
addMessage(fishingMessage);
} else {
addMessage("You need a fishing pole to fish!");
}
}

Expand All @@ -107,9 +97,8 @@ function goHunting() {
// if successful, add fish to inventory.
if (huntingRifleHealth <= 0) {
// alert("Your hunting rifle broke!");
var huntingMessage = "Your hunting rifle broke!";
huntingRifleHealth = 50;
addMessage(huntingMessage);
addMessage("Your hunting rifle broke!");
const index = inventory.indexOf('Hunting Rifle');
if (index > -1) {
inventory.splice(index, 1);
Expand All @@ -133,8 +122,7 @@ function goHunting() {
// alert("You need a hunting rifle to hunt!");
// add message to messages div
// messages.push("You need a hunting rifle to hunt!");
var huntingMessage = "You need a hunting rifle to hunt!";
addMessage(huntingMessage);
addMessage("You need a hunting rifle to hunt!");
}
}

Expand All @@ -147,14 +135,12 @@ function goMining() {
// if successful, add ore to inventory.
if (pickaxeHealth <= 0) {
// alert("Your pickaxe broke!");
var pickaxeMessage = "Your pickaxe broke!";
addMessage(pickaxeMessage);
addMessage("Your pickaxe broke!");
const index = inventory.indexOf('Pickaxe');
if (index > -1) {
inventory.splice(index, 1);
}
}
else {
} else {
if (fullInventory == false) {
// alert("You mined some ore!");
let oreDictionary = {
Expand All @@ -170,78 +156,40 @@ function goMining() {
};
let oreRandomizer = Math.floor(Math.random() * 10);
console.log(oreRandomizer);

switch (oreRandomizer) {
case 0:
inventory.push(oreDictionary[0]);
var IronMessage = "You mined some " + oreDictionary[0] + "!";
addMessage(IronMessage);
xp += 110;
break;
case 1:
inventory.push(oreDictionary[1]);
var CopperMessage = "You mined some " + oreDictionary[1] + "!";
addMessage(CopperMessage);
xp += 112;
break;
case 2:
inventory.push(oreDictionary[2]);
var TinMessage = "You mined some " + oreDictionary[2] + "!";
addMessage(TinMessage);
xp += 113;
break;
case 3:
inventory.push("Silver");
var SilverMessage = "You mined some " + oreDictionary[3] + "!";
addMessage(SilverMessage);
xp += 119;
break;
case 4:
inventory.push("Gold");
var GoldMessage = "You mined some " + oreDictionary[4] + "!";
addMessage(GoldMessage);
xp += 125;
break;
case 5:
inventory.push("Emerald");
var EmeraldMessage = "You mined some " + oreDictionary[5] + "!";
addMessage(EmeraldMessage);
xp += 130;
break;
case 6:
inventory.push("Ruby");
var RubyMessage = "You mined some " + oreDictionary[6] + "!";
addMessage(RubyMessage);
xp += 150;
break;
case 7:
inventory.push("Diamond");
var DiamondMessage = "You mined some " + oreDictionary[7] + "!";
addMessage(DiamondMessage);
xp += 200;
break;
default:
inventory.push("Stone");
stoneObtained++;
xp++;
break;
}


let xpTable = {
"Stone": 1,
"Iron": 110,
"Copper":112,
"Tin":113,
"Silver": 119,
"Gold": 125,
"Emerald": 130,
"Ruby": 150,
"Diamond": 200
};
if (xpTable[oreDictionary[oreRandomizer]] > 1) {
addMessage("You mined some " + oreDictionary[oreRandomizer] + "!");
} else {
stoneObtained++;
}
inventory.push(oreDictionary[oreRandomizer]);
xp += xpTable[oreDictionary[oreRandomizer]];

pickaxeHealth -= 1;
}
else {
} else {
addMessage("Your inventory is full. You can't carry any more items.");
}
}
}
else {
var miningMessage = "You need a pickaxe to mine!";
addMessage(miningMessage);
} else {
addMessage("You need a pickaxe to mine!");
}
}


//TODO: fix this!
// Use enemy data in enemies.js to fetch!
// Bonus points to not do it here, but in each function
var enemyHealth = 1;
var enemyAttack = 5;
var enemyDefense = 1;
Expand All @@ -256,51 +204,14 @@ var defaultPlayerAttack = 2;
var defaultPlayerDefense = 2;
var defaultPlayerSpeed = 5;

let isAttacking = false;
var fled = false;

function doCombat(enemy) {
console.log("Enemy: " + enemy);
switch (enemy) {
case "goblin":
enemyHealth = goblin.health;
enemyAttack = goblin.attack;
enemyDefense = goblin.defense;
enemyName = "Goblin";
enemySpeed = goblin.speed;
setGUI(enemyHealth, enemyAttack, enemyDefense, enemyName, enemySpeed);
break;
case "troll":
enemyHealth = troll.health;
enemyAttack = troll.attack;
enemyDefense = troll.defense;
enemyName = "Troll";
enemySpeed = troll.speed;
setGUI(enemyHealth, enemyAttack, enemyDefense, enemyName, enemySpeed);
break;
case "skeleton":
var enemyHealth = skeleton.health;
var enemyAttack = skeleton.attack;
var enemyDefense = skeleton.defense;
var enemyName = skeleton.name;
var enemySpeed = skeleton.speed;
setGUI(enemyHealth, enemyAttack, enemyDefense, enemyName, enemySpeed);
break;
case "knight":
var enemyHealth = knight.health;
var enemyAttack = knight.attack;
var enemyDefense = knight.defense;
var enemyName = knight.name;
var enemySpeed = knight.speed;
setGUI(enemyHealth, enemyAttack, enemyDefense, enemyName, enemySpeed);
break;
case "king":
var enemyHealth = king.health;
var enemyAttack = king.attack;
var enemyDefense = king.defense;
var enemyName = king.name;
var enemySpeed = king.speed;
setGUI(enemyHealth, enemyAttack, enemyDefense, enemyName, enemySpeed);
break;
}
if (!enemy_dictionary[enemy]) {return}
var data = enemy_dictionary[enemy]
setGUI(data.health, data.attack, data.defense, data.name, data.speed)
}

function setGUI(health, attack, defense, name, speed) {
Expand All @@ -317,9 +228,6 @@ function setGUI(health, attack, defense, name, speed) {
document.getElementById("specialButton").style.visibility = "visible";
}

let isAttacking = false;
var fled = false;

function checkAttackStatus() {
if (isAttacking == true) {
console.log("You are attacking!");
Expand All @@ -340,26 +248,24 @@ function doAttack() {
checkAttackStatus();
var refresh = setInterval(function () {
if (newEnemyHealth > 0 && fled == false) {
newEnemyHealth = newEnemyHealth - (playerAttack - enemyDefense);
newEnemyHealth = newEnemyHealth - Math.max(0,playerAttack - enemyDefense);
console.log("new enemy health:" + newEnemyHealth);
document.getElementById("healthValue").innerHTML = newEnemyHealth;
// console.log("You attacked the enemy for " + (playerAttack - enemyDefense) + " damage!");
document.getElementById("healthValue").innerHTML = Math.max(0,newEnemyHealth);
// console.log("You attacked the enemy for " + Math.max(0,playerAttack - enemyDefense) + " damage!");
}
if (newEnemyHealth <= 0 && fled == false) {
clearInterval(refresh);
// alert("You win!");
var winMessage = "You defeated the " + enemyName + " and earned " + enemyGold + " gold" + " and " + enemyExperience + " XP!";
//increment XP by enemyExperience
xp += enemyExperience;
gold += enemyGold;
document.getElementById("gold").innerHTML = gold;
addMessage(winMessage);
addMessage("You defeated the " + enemyName + " and earned " + enemyGold + " gold" + " and " + enemyExperience + " XP!";);

var droppedRandomLoot = Math.floor(Math.random() * 100);
if (droppedRandomLoot < 25) {
randomLootDrop();
var lootMessage = "The " + enemyName + " dropped " + finalItem.name + "!";
addMessage(lootMessage)
addMessage("The " + enemyName + " dropped " + finalItem.name + "!";)
}
document.getElementById("fightButton").style.display = "block";
document.getElementById("opponentSelector").style.display = "block";
Expand Down Expand Up @@ -401,19 +307,12 @@ function doFlee() {
}

function doEnemyAttack() {
if (playerDefense > enemyAttack) {
//do no damage
console.log(enemyName + " did no damage!");
var newPlayerHealth = playerHealth;
}
else {
var newPlayerHealth = playerHealth - (enemyAttack - playerDefense);
document.getElementById("playerHealthValue").innerHTML = newPlayerHealth + '/100';
}
var newPlayerHealth = playerHealth - Math.max(0, enemyAttack - playerDefense);
document.getElementById("playerHealthValue").innerHTML = Math.max(0,newPlayerHealth) + '/100';

if (newPlayerHealth <= 0) {
// alert("You lose!");
//player health set to 0
document.getElementById("playerHealthValue").innerHTML = 0;
document.getElementById("messages").innerHTML = "You lose!";
document.getElementById("fightButton").style.display = "block";
document.getElementById("opponentSelector").style.display = "block";
Expand All @@ -424,7 +323,6 @@ function doEnemyAttack() {
}
else {
playerHealth = newPlayerHealth;
document.getElementById("playerHealthValue").innerHTML = playerHealth + '/100';
document.getElementById("healthValue").innerHTML = enemyHealth;
}
}
Expand Down