Potions Update
This commit is contained in:
parent
ac02eeb2a7
commit
f34ebde15b
8 changed files with 62 additions and 16 deletions
|
@ -1,6 +1,12 @@
|
||||||
|
@echo off
|
||||||
|
echo Building 3DSX/ELF/SMDH...
|
||||||
make
|
make
|
||||||
|
echo Creating banner...
|
||||||
bannertool.exe makebanner -i icons-banners/banner.png -a icons-banners/audio.wav -o icons-banners/banner.bnr
|
bannertool.exe makebanner -i icons-banners/banner.png -a icons-banners/audio.wav -o icons-banners/banner.bnr
|
||||||
|
echo Creating icon...
|
||||||
bannertool.exe makesmdh -s "Minicraft3DS" -l "3DS Homebrew port of Notch's ludum dare game 'Minicraft', updated." -p "Davideesk/Andre111/ElijahZAwesome" -i icons-banners/icon.png -o icons-banners/icon.icn
|
bannertool.exe makesmdh -s "Minicraft3DS" -l "3DS Homebrew port of Notch's ludum dare game 'Minicraft', updated." -p "Davideesk/Andre111/ElijahZAwesome" -i icons-banners/icon.png -o icons-banners/icon.icn
|
||||||
|
echo Creating CIA...
|
||||||
makerom -f cia -o result/Minicraft3DS.cia -DAPP_ENCRYPTED=false -rsf icons-banners/Minicraft3DS.rsf -target t -exefslogo -elf result/Minicraft3DS.elf -icon icons-banners/icon.icn -banner icons-banners/banner.bnr
|
makerom -f cia -o result/Minicraft3DS.cia -DAPP_ENCRYPTED=false -rsf icons-banners/Minicraft3DS.rsf -target t -exefslogo -elf result/Minicraft3DS.elf -icon icons-banners/icon.icn -banner icons-banners/banner.bnr
|
||||||
|
echo Creating 3DS/CCI...
|
||||||
makerom -f cci -o result/Minicraft3DS.3ds -DAPP_ENCRYPTED=true -rsf icons-banners/Minicraft3DS.rsf -target t -exefslogo -elf result/Minicraft3DS.elf -icon icons-banners/icon.icn -banner icons-banners/banner.bnr
|
makerom -f cci -o result/Minicraft3DS.3ds -DAPP_ENCRYPTED=true -rsf icons-banners/Minicraft3DS.rsf -target t -exefslogo -elf result/Minicraft3DS.elf -icon icons-banners/icon.icn -banner icons-banners/banner.bnr
|
||||||
pause
|
pause
|
BIN
data/icons2.png
BIN
data/icons2.png
Binary file not shown.
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
|
@ -104,7 +104,7 @@ void initRecipes(){
|
||||||
workbenchRecipes.recipes[20] = defineRecipe(ITEM_WALL_WOOD,1,1,ITEM_WOOD,4);
|
workbenchRecipes.recipes[20] = defineRecipe(ITEM_WALL_WOOD,1,1,ITEM_WOOD,4);
|
||||||
workbenchRecipes.recipes[21] = defineRecipe(ITEM_WALL_STONE,1,1,ITEM_STONE,4);
|
workbenchRecipes.recipes[21] = defineRecipe(ITEM_WALL_STONE,1,1,ITEM_STONE,4);
|
||||||
|
|
||||||
anvilRecipes.size = 17;
|
anvilRecipes.size = 18;
|
||||||
anvilRecipes.recipes = (Recipe*)malloc(sizeof(Recipe) * (anvilRecipes.size));
|
anvilRecipes.recipes = (Recipe*)malloc(sizeof(Recipe) * (anvilRecipes.size));
|
||||||
anvilRecipes.recipes[0] = defineRecipe(TOOL_SWORD,2,2,ITEM_WOOD,5,ITEM_IRONINGOT,5);
|
anvilRecipes.recipes[0] = defineRecipe(TOOL_SWORD,2,2,ITEM_WOOD,5,ITEM_IRONINGOT,5);
|
||||||
anvilRecipes.recipes[1] = defineRecipe(TOOL_AXE,2,2,ITEM_WOOD,5,ITEM_IRONINGOT,5);
|
anvilRecipes.recipes[1] = defineRecipe(TOOL_AXE,2,2,ITEM_WOOD,5,ITEM_IRONINGOT,5);
|
||||||
|
@ -123,6 +123,7 @@ void initRecipes(){
|
||||||
anvilRecipes.recipes[14] = defineRecipe(ITEM_WALL_IRON,1,1,ITEM_IRONINGOT,2);
|
anvilRecipes.recipes[14] = defineRecipe(ITEM_WALL_IRON,1,1,ITEM_IRONINGOT,2);
|
||||||
anvilRecipes.recipes[15] = defineRecipe(ITEM_WALL_GOLD,1,1,ITEM_GOLDINGOT,2);
|
anvilRecipes.recipes[15] = defineRecipe(ITEM_WALL_GOLD,1,1,ITEM_GOLDINGOT,2);
|
||||||
anvilRecipes.recipes[16] = defineRecipe(ITEM_COIN,3,1,ITEM_IRONINGOT,1);
|
anvilRecipes.recipes[16] = defineRecipe(ITEM_COIN,3,1,ITEM_IRONINGOT,1);
|
||||||
|
anvilRecipes.recipes[17] = defineRecipe(ITEM_POTION_MAKER,1,3,ITEM_IRONINGOT,5,ITEM_GOLDINGOT,25,ITEM_GEM,5);
|
||||||
|
|
||||||
furnaceRecipes.size = 3;
|
furnaceRecipes.size = 3;
|
||||||
furnaceRecipes.recipes = (Recipe*)malloc(sizeof(Recipe) * (furnaceRecipes.size));
|
furnaceRecipes.recipes = (Recipe*)malloc(sizeof(Recipe) * (furnaceRecipes.size));
|
||||||
|
@ -151,6 +152,10 @@ void initRecipes(){
|
||||||
enchanterRecipes.recipes[6] = defineRecipe(ITEM_WALL_GEM,1,1,ITEM_GEM,10);
|
enchanterRecipes.recipes[6] = defineRecipe(ITEM_WALL_GEM,1,1,ITEM_GEM,10);
|
||||||
enchanterRecipes.recipes[7] = defineRecipe(ITEM_GOLD_APPLE,1,2,ITEM_APPLE,1,ITEM_GOLDINGOT,15);
|
enchanterRecipes.recipes[7] = defineRecipe(ITEM_GOLD_APPLE,1,2,ITEM_APPLE,1,ITEM_GOLDINGOT,15);
|
||||||
|
|
||||||
|
potionMakerRecipes.size = 1;
|
||||||
|
potionMakerRecipes.recipes = (Recipe*)malloc(sizeof(Recipe) * (potionMakerRecipes.size));
|
||||||
|
potionMakerRecipes.recipes[0] = defineRecipe(ITEM_STRENGTH_POTION,1,3,ITEM_GOLD_APPLE,1,ITEM_GLASS,10,ITEM_IRONINGOT,10);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Free up allocated memory */
|
/* Free up allocated memory */
|
||||||
|
@ -161,4 +166,5 @@ void freeRecipes(){
|
||||||
free(anvilRecipes.recipes);
|
free(anvilRecipes.recipes);
|
||||||
free(loomRecipes.recipes);
|
free(loomRecipes.recipes);
|
||||||
free(enchanterRecipes.recipes);
|
free(enchanterRecipes.recipes);
|
||||||
|
free(potionMakerRecipes.recipes);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@ RecipeManager ovenRecipes;
|
||||||
RecipeManager anvilRecipes;
|
RecipeManager anvilRecipes;
|
||||||
RecipeManager loomRecipes;
|
RecipeManager loomRecipes;
|
||||||
RecipeManager enchanterRecipes;
|
RecipeManager enchanterRecipes;
|
||||||
|
RecipeManager potionMakerRecipes;
|
||||||
|
|
||||||
Recipe defineRecipe(int item, int amountOrLevel, int numArgs, ...);
|
Recipe defineRecipe(int item, int amountOrLevel, int numArgs, ...);
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#include "Globals.h"
|
#include "Globals.h"
|
||||||
#include "Menu.h"
|
#include "Menu.h"
|
||||||
|
|
||||||
char versionText[34] = "Version 1.3.0";
|
char versionText[34] = "Version 1.3.2";
|
||||||
char fpsstr[34];
|
char fpsstr[34];
|
||||||
u8 currentMenu = 0;
|
u8 currentMenu = 0;
|
||||||
bool UnderStrengthEffect = false;
|
bool UnderStrengthEffect = false;
|
||||||
|
@ -220,6 +220,12 @@ void tickTouchQuickSelect() {
|
||||||
|
|
||||||
void hurtEntity(Entity* e, int damage, int dir, u32 hurtColor){
|
void hurtEntity(Entity* e, int damage, int dir, u32 hurtColor){
|
||||||
if (shouldRenderDebug && e->type==ENTITY_PLAYER) return;
|
if (shouldRenderDebug && e->type==ENTITY_PLAYER) return;
|
||||||
|
if(UnderStrengthEffect && player.p.strengthTimer <2000) {
|
||||||
|
damage = damage + 5;
|
||||||
|
} else if (player.p.strengthTimer >= 2000) {
|
||||||
|
UnderStrengthEffect = false;
|
||||||
|
player.p.strengthTimer = 0;
|
||||||
|
}
|
||||||
if (e->hurtTime > 0) return;
|
if (e->hurtTime > 0) return;
|
||||||
int xd = player.x - e->x;
|
int xd = player.x - e->x;
|
||||||
int yd = player.y - e->y;
|
int yd = player.y - e->y;
|
||||||
|
@ -708,7 +714,7 @@ s8 itemTileInteract(int tile, Item* item, int x, int y, int px, int py, int dir)
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
case ITEM_STRENGTH_POTION:
|
case ITEM_STRENGTH_POTION:
|
||||||
if(player.p.health < 20 && playerUseEnergy(2)){
|
if(player.p.health < 20 && playerUseEnergy(2) && player.p.strengthTimer == 0){
|
||||||
strengthPotionEffect();
|
strengthPotionEffect();
|
||||||
--item->countLevel;
|
--item->countLevel;
|
||||||
}
|
}
|
||||||
|
@ -1670,14 +1676,19 @@ void initPlayer(){
|
||||||
|
|
||||||
addItemToInventory(newItem(ITEM_WORKBENCH,0), player.p.inv);
|
addItemToInventory(newItem(ITEM_WORKBENCH,0), player.p.inv);
|
||||||
addItemToInventory(newItem(ITEM_POWGLOVE,0), player.p.inv);
|
addItemToInventory(newItem(ITEM_POWGLOVE,0), player.p.inv);
|
||||||
addItemToInventory(newItem(ITEM_STRENGTH_POTION,1), player.p.inv);
|
|
||||||
if (shouldRenderDebug == true) {
|
if (shouldRenderDebug == true) {
|
||||||
|
addItemToInventory(newItem(ITEM_GLASS,10), player.p.inv);
|
||||||
|
addItemToInventory(newItem(ITEM_GOLD_APPLE,1), player.p.inv);
|
||||||
|
addItemToInventory(newItem(ITEM_POTION_MAKER,0), player.p.inv);
|
||||||
|
addItemToInventory(newItem(ITEM_STRENGTH_POTION,1), player.p.inv);
|
||||||
addItemToInventory(newItem(TOOL_SHOVEL,4), player.p.inv);
|
addItemToInventory(newItem(TOOL_SHOVEL,4), player.p.inv);
|
||||||
addItemToInventory(newItem(TOOL_HOE,4), player.p.inv);
|
addItemToInventory(newItem(TOOL_HOE,4), player.p.inv);
|
||||||
addItemToInventory(newItem(TOOL_SWORD,4), player.p.inv);
|
addItemToInventory(newItem(TOOL_SWORD,4), player.p.inv);
|
||||||
addItemToInventory(newItem(TOOL_PICKAXE,4), player.p.inv);
|
addItemToInventory(newItem(TOOL_PICKAXE,4), player.p.inv);
|
||||||
addItemToInventory(newItem(TOOL_AXE,4), player.p.inv);
|
addItemToInventory(newItem(TOOL_AXE,4), player.p.inv);
|
||||||
|
|
||||||
|
addItemToInventory(newItem(ITEM_GEM, 60), player.p.inv);
|
||||||
|
addItemToInventory(newItem(ITEM_IRONINGOT, 60), player.p.inv);
|
||||||
addItemToInventory(newItem(ITEM_GOLDINGOT, 60), player.p.inv);
|
addItemToInventory(newItem(ITEM_GOLDINGOT, 60), player.p.inv);
|
||||||
addItemToInventory(newItem(ITEM_APPLE, 1), player.p.inv);
|
addItemToInventory(newItem(ITEM_APPLE, 1), player.p.inv);
|
||||||
|
|
||||||
|
@ -1692,9 +1703,9 @@ void initPlayer(){
|
||||||
|
|
||||||
void playerHurtTile(int tile, int xt, int yt, int damage, int dir){
|
void playerHurtTile(int tile, int xt, int yt, int damage, int dir){
|
||||||
if(shouldRenderDebug) damage = 99;
|
if(shouldRenderDebug) damage = 99;
|
||||||
if(UnderStrengthEffect && player.p.strengthTimer <1000) {
|
if(UnderStrengthEffect && player.p.strengthTimer <2000) {
|
||||||
damage = damage + 7;
|
damage = damage + 8;
|
||||||
} else if (player.p.strengthTimer >= 1000) {
|
} else if (player.p.strengthTimer >= 2000) {
|
||||||
UnderStrengthEffect = false;
|
UnderStrengthEffect = false;
|
||||||
player.p.strengthTimer = 0;
|
player.p.strengthTimer = 0;
|
||||||
}
|
}
|
||||||
|
@ -2073,21 +2084,21 @@ bool useEntity(Entity* e) {
|
||||||
return true;
|
return true;
|
||||||
case ITEM_FURNACE:
|
case ITEM_FURNACE:
|
||||||
currentRecipes = &furnaceRecipes;
|
currentRecipes = &furnaceRecipes;
|
||||||
currentCraftTitle = "Crafting";
|
currentCraftTitle = "Smelting";
|
||||||
currentMenu = MENU_CRAFTING;
|
currentMenu = MENU_CRAFTING;
|
||||||
checkCanCraftRecipes(currentRecipes, player.p.inv);
|
checkCanCraftRecipes(currentRecipes, player.p.inv);
|
||||||
sortRecipes(currentRecipes);
|
sortRecipes(currentRecipes);
|
||||||
return true;
|
return true;
|
||||||
case ITEM_OVEN:
|
case ITEM_OVEN:
|
||||||
currentRecipes = &ovenRecipes;
|
currentRecipes = &ovenRecipes;
|
||||||
currentCraftTitle = "Crafting";
|
currentCraftTitle = "Cooking";
|
||||||
currentMenu = MENU_CRAFTING;
|
currentMenu = MENU_CRAFTING;
|
||||||
checkCanCraftRecipes(currentRecipes, player.p.inv);
|
checkCanCraftRecipes(currentRecipes, player.p.inv);
|
||||||
sortRecipes(currentRecipes);
|
sortRecipes(currentRecipes);
|
||||||
return true;
|
return true;
|
||||||
case ITEM_ANVIL:
|
case ITEM_ANVIL:
|
||||||
currentRecipes = &anvilRecipes;
|
currentRecipes = &anvilRecipes;
|
||||||
currentCraftTitle = "Crafting";
|
currentCraftTitle = "Forging";
|
||||||
currentMenu = MENU_CRAFTING;
|
currentMenu = MENU_CRAFTING;
|
||||||
checkCanCraftRecipes(currentRecipes, player.p.inv);
|
checkCanCraftRecipes(currentRecipes, player.p.inv);
|
||||||
sortRecipes(currentRecipes);
|
sortRecipes(currentRecipes);
|
||||||
|
@ -2101,14 +2112,21 @@ bool useEntity(Entity* e) {
|
||||||
return true;
|
return true;
|
||||||
case ITEM_LOOM:
|
case ITEM_LOOM:
|
||||||
currentRecipes = &loomRecipes;
|
currentRecipes = &loomRecipes;
|
||||||
currentCraftTitle = "Crafting";
|
currentCraftTitle = "Sewing";
|
||||||
currentMenu = MENU_CRAFTING;
|
currentMenu = MENU_CRAFTING;
|
||||||
checkCanCraftRecipes(currentRecipes, player.p.inv);
|
checkCanCraftRecipes(currentRecipes, player.p.inv);
|
||||||
sortRecipes(currentRecipes);
|
sortRecipes(currentRecipes);
|
||||||
return true;
|
return true;
|
||||||
case ITEM_ENCHANTER:
|
case ITEM_ENCHANTER:
|
||||||
currentRecipes = &enchanterRecipes;
|
currentRecipes = &enchanterRecipes;
|
||||||
currentCraftTitle = "Crafting";
|
currentCraftTitle = "Enchanting";
|
||||||
|
currentMenu = MENU_CRAFTING;
|
||||||
|
checkCanCraftRecipes(currentRecipes, player.p.inv);
|
||||||
|
sortRecipes(currentRecipes);
|
||||||
|
return true;
|
||||||
|
case ITEM_POTION_MAKER:
|
||||||
|
currentRecipes = &potionMakerRecipes;
|
||||||
|
currentCraftTitle = "Brewing";
|
||||||
currentMenu = MENU_CRAFTING;
|
currentMenu = MENU_CRAFTING;
|
||||||
checkCanCraftRecipes(currentRecipes, player.p.inv);
|
checkCanCraftRecipes(currentRecipes, player.p.inv);
|
||||||
sortRecipes(currentRecipes);
|
sortRecipes(currentRecipes);
|
||||||
|
@ -2216,7 +2234,13 @@ void tickPlayer(){
|
||||||
|
|
||||||
if(isSwimming()) ++player.p.swimTimer;
|
if(isSwimming()) ++player.p.swimTimer;
|
||||||
if(UnderStrengthEffect) ++player.p.strengthTimer;
|
if(UnderStrengthEffect) ++player.p.strengthTimer;
|
||||||
if(player.p.attackTimer > 0) --player.p.attackTimer;
|
if(player.p.strengthTimer >= 2000) {
|
||||||
|
player.p.strengthTimer = 0;
|
||||||
|
UnderStrengthEffect = false;
|
||||||
|
}
|
||||||
|
if(player.p.attackTimer > 0) {
|
||||||
|
--player.p.attackTimer;
|
||||||
|
}
|
||||||
|
|
||||||
//TODO - maybe move to own function
|
//TODO - maybe move to own function
|
||||||
//Update Minimap
|
//Update Minimap
|
||||||
|
|
|
@ -135,6 +135,7 @@ char* getItemName(int itemID, int countLevel){
|
||||||
case ITEM_OVEN: return "Oven";
|
case ITEM_OVEN: return "Oven";
|
||||||
case ITEM_FURNACE: return "Furnace";
|
case ITEM_FURNACE: return "Furnace";
|
||||||
case ITEM_WORKBENCH: return "Workbench";
|
case ITEM_WORKBENCH: return "Workbench";
|
||||||
|
case ITEM_POTION_MAKER: return "Potion Maker";
|
||||||
case ITEM_LANTERN: return "Lantern";
|
case ITEM_LANTERN: return "Lantern";
|
||||||
case ITEM_POWGLOVE: return "Power Glove";
|
case ITEM_POWGLOVE: return "Power Glove";
|
||||||
case ITEM_FLOWER: sprintf(currentName,"%d Flower", countLevel); return currentName;
|
case ITEM_FLOWER: sprintf(currentName,"%d Flower", countLevel); return currentName;
|
||||||
|
@ -247,6 +248,7 @@ char* getBasicItemName(int itemID, int countLevel){
|
||||||
case ITEM_OVEN: return "Oven";
|
case ITEM_OVEN: return "Oven";
|
||||||
case ITEM_FURNACE: return "Furnace";
|
case ITEM_FURNACE: return "Furnace";
|
||||||
case ITEM_WORKBENCH: return "Workbench";
|
case ITEM_WORKBENCH: return "Workbench";
|
||||||
|
case ITEM_POTION_MAKER: return "Potion Maker";
|
||||||
case ITEM_LANTERN: return "Lantern";
|
case ITEM_LANTERN: return "Lantern";
|
||||||
case ITEM_POWGLOVE: return "Power Glove";
|
case ITEM_POWGLOVE: return "Power Glove";
|
||||||
case ITEM_FLOWER: return "Flower";
|
case ITEM_FLOWER: return "Flower";
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
|
|
||||||
#define ITEM_LOOM 34
|
#define ITEM_LOOM 34
|
||||||
#define ITEM_ENCHANTER 35
|
#define ITEM_ENCHANTER 35
|
||||||
|
#define ITEM_POTION_MAKER 36
|
||||||
|
|
||||||
#define ITEM_WALL_WOOD 51
|
#define ITEM_WALL_WOOD 51
|
||||||
#define ITEM_WALL_STONE 52
|
#define ITEM_WALL_STONE 52
|
||||||
|
@ -71,12 +72,12 @@
|
||||||
#define ITEM_BOOKSHELVES 73
|
#define ITEM_BOOKSHELVES 73
|
||||||
#define ITEM_MAGIC_DUST 74
|
#define ITEM_MAGIC_DUST 74
|
||||||
#define ITEM_COIN 75
|
#define ITEM_COIN 75
|
||||||
|
#define ITEM_GOLD_APPLE 76
|
||||||
|
#define ITEM_STRENGTH_POTION 77
|
||||||
|
|
||||||
#define TOOL_BUCKET 101
|
#define TOOL_BUCKET 101
|
||||||
#define TOOL_BOW 102
|
#define TOOL_BOW 102
|
||||||
#define TOOL_MAGIC_COMPASS 103
|
#define TOOL_MAGIC_COMPASS 103
|
||||||
#define ITEM_GOLD_APPLE 104
|
|
||||||
#define ITEM_STRENGTH_POTION 105
|
|
||||||
|
|
||||||
typedef struct Inventory Inventory;
|
typedef struct Inventory Inventory;
|
||||||
|
|
||||||
|
|
|
@ -1092,6 +1092,9 @@ void renderFurniture(int itemID, int x, int y) {
|
||||||
case ITEM_ENCHANTER:
|
case ITEM_ENCHANTER:
|
||||||
render16(x, y, 240, 128, 0);
|
render16(x, y, 240, 128, 0);
|
||||||
break;
|
break;
|
||||||
|
case ITEM_POTION_MAKER:
|
||||||
|
render16(x, y, 240, 96, 0);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1491,7 +1494,7 @@ void renderItemIcon(int itemID, int countLevel, int x, int y) {
|
||||||
render(x, y, 177, 160, 0);
|
render(x, y, 177, 160, 0);
|
||||||
break;
|
break;
|
||||||
case ITEM_STRENGTH_POTION:
|
case ITEM_STRENGTH_POTION:
|
||||||
render(x, y, 177, 160, 0);
|
render(x, y, 184, 160, 0);
|
||||||
break;
|
break;
|
||||||
case ITEM_SLIME:
|
case ITEM_SLIME:
|
||||||
renderb(x, y, 88, 152, 0, 0xFF4DC04D);
|
renderb(x, y, 88, 152, 0, 0xFF4DC04D);
|
||||||
|
@ -1523,6 +1526,9 @@ void renderItemIcon(int itemID, int countLevel, int x, int y) {
|
||||||
case ITEM_ENCHANTER:
|
case ITEM_ENCHANTER:
|
||||||
render(x, y, 144, 160, 0);
|
render(x, y, 144, 160, 0);
|
||||||
break;
|
break;
|
||||||
|
case ITEM_POTION_MAKER:
|
||||||
|
render(x, y, 216, 152, 0);
|
||||||
|
break;
|
||||||
case ITEM_WALL_WOOD:
|
case ITEM_WALL_WOOD:
|
||||||
renderb(x, y, 224, 144, 0, woodColor);
|
renderb(x, y, 224, 144, 0, woodColor);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Reference in a new issue