6 Dec 2015

I'M BACK... with some changes and additions!

There was no posts for a long time. Luckily, I didn't waste all that time!


First of all, I've managed to write code that could 'render' bigger rooms. Unfortunately, I had to abandon this idea, because it affected too many macros. I guess I'll stick with corridor based game.

It is possible to create items now. The idea is quite simple: combine two object in order to get another one.



  • No. 1 & 2- contain items from the selected character's inventory,
  • No. 3- type icon and available amount of items chosen in the 1st step,
  • No. 4- similar to no. 3, but shows info about  objects from 2nd step,
  • No. 5- info about final item that can be created.
I need to add some place where more information about items will be visible.


The next thing is modding / healing screen! Some options will be available only for Medic and Engineer class or characters with high Medicine or Engineering skill.


Lots of buttons here! I know that the layout is terrible right now. I will probably have to change it, but the amount of clickable objects will stay the same.
  • No. 1a, 1b, 1c- buttons that allow character change (all next steps concern only selected character),
  • No. 2- body part selection,
  • No. 3- information about modifications, health of selected part,
  • No. 4- modifications the character carry in the inventory,
  • No. 5- info about selected mod,
  • No. 6- buttons? Yep, these are buttons for sure!
GF: 'Why would you amputate something?'
Me: 'Let's say that you forgot to heal you hand and its health reached 0. You're not able to restore HP of anything that's below 1 health point. You can get rid of a 'dead' part and add e.g. a mechanical one.'

That's how this works! Of course, it is impossible to amputate head or torso, but you will be able to upgrade them with mods increasing accuracy and/or health etc.
What's more only Medic (or Medical-trained character) is able to heal wounded parts (non mechanical) and only Engineer (or character with high enough Engineering skill) can repair damaged modifications.


I've also been slowly adding items to the game and thinking about some kind of plot. Let's hope that I'll be able to come up with something not too illogical!



PS: Here's a simple code that updates Crafting userform after selecting the first item. Just in case someone was curious :P



'it1_r & it_id1 are public variables

Private Sub it1_AfterUpdate()

Dim char As String
Dim list_index As Integer
Dim ws As Worksheet
Dim ws_char As Worksheet

Set ws = Sheets("Corr")
char = ws.Range("B2")
list_index = it1.ListIndex

Select Case char
Case "P1"
Set ws_char = Sheets("char1")
Case "P2"
Set ws_char = Sheets("char2")
Case "P3"
Set ws_char = Sheets("char3")
End Select

ws_char.Select

Select Case list_index
Case 0
amt0.Caption = Range("C27")
it_id1 = Range("K27")
it1_r = Range("B27").Row
Set slot0.Picture = LoadPicture(ThisWorkbook.Path & "\items\" & it_id1 & ".jpg")
Case 1
amt0.Caption = Range("C28")
it_id1 = Range("K28")
it1_r = Range("B28").Row
Set slot0.Picture = LoadPicture(ThisWorkbook.Path & "\items\" & it_id1 & ".jpg")
Case 2
amt0.Caption = Range("C29")
it_id1 = Range("K29")
it1_r = Range("B29").Row
Set slot0.Picture = LoadPicture(ThisWorkbook.Path & "\items\" & it_id1 & ".jpg")
Case 3
amt0.Caption = Range("C30")
it_id1 = Range("K30")
it1_r = Range("B30").Row
Set slot0.Picture = LoadPicture(ThisWorkbook.Path & "\items\" & it_id1 & ".jpg")
Case 4
amt0.Caption = Range("C31")
it_id1 = Range("K31")
it1_r = Range("B31").Row
Set slot0.Picture = LoadPicture(ThisWorkbook.Path & "\items\" & it_id1 & ".jpg")
Case 5
amt0.Caption = Range("C32")
it_id1 = Range("K32")
it1_r = Range("B32").Row
Set slot0.Picture = LoadPicture(ThisWorkbook.Path & "\items\" & it_id1 & ".jpg")
Case 6
amt0.Caption = Range("C33")
it_id1 = Range("K33")
it1_r = Range("B33").Row
Set slot0.Picture = LoadPicture(ThisWorkbook.Path & "\items\" & it_id1 & ".jpg")
Case 7
amt0.Caption = Range("C34")
it_id1 = Range("K34")
it1_r = Range("B34").Row
Set slot0.Picture = LoadPicture(ThisWorkbook.Path & "\items\" & it_id1 & ".jpg")
Case 8
amt0.Caption = Range("C35")
it_id1 = Range("K35")
it1_r = Range("B35").Row
Set slot0.Picture = LoadPicture(ThisWorkbook.Path & "\items\" & it_id1 & ".jpg")
Case 9
amt0.Caption = Range("C36")
it_id1 = Range("K36")
it1_r = Range("B36").Row
Set slot0.Picture = LoadPicture(ThisWorkbook.Path & "\items\" & it_id1 & ".jpg")
End Select

it1it2 = it1_id & it2_id

Select Case it1it2 ' Just random numbers here! I need to update items list first.

Case "300"

Case "001001"

Case "054295"

End Select

End Sub


7 Oct 2015

Try hard and fail even harder!

There was no new posts for a long time. I decided to upload a few screenshots of my attempt of making larger rooms.


Looks fine so far!


The idea was quite simple: make visibility range wider. Let me explain (or embroil) it with a picture:

I just wanted my excel game to be able to 'render' AFTER rooms.


Unfortunately...

Well, that's only one shape... I can fix it!

...something...

Just a few more things. Maybe there is still hope!

...went...

Oh, I give up! I need a break!

...terribly wrong!


I know, I know. I messed VBA code up. I'm going to try to correct the errors and make it work. It will take probably a lot of time, but I don't care!

I! WANT! BIGGER! ROOMS! GODDAMMIT!


Luckily, one new part of code works well: turn system
It allows every character to make one move forward per turn. It will be possible to turn around as much as you want, as long as you stay in the same place. After player's turn, enemies will move and attack (if it is possible).


What's next (except for new 'view distance')?
I'd like to make two categories of enemies: melee fighters and ones that attack from distance. It will require a new 'addition' to the movement macro.
I also think that it would be nice to show some of my code on here. Not everything, 24k lines of code is a little bit too much, but at least some parts.

2 Sept 2015

Enemies 12/31 - Spider


Name: Spider
Type: Animal
Health Points: 110
Damage (min - max): 10- 30
Speed: 1,3
Items: cannot and use carry anything


Drawn by Retta (for more go HERE)

29 Aug 2015

Enemies 11/31 - Crawler

I'm back with enemies from Cell Dungeons!


Name: Crawler
Type: Humanoid
Health Points: 180
Damage (min - max): 5- 25
Speed: 0,75
Items: can carry Weapons, Armors, Helmets, Shields, but cannot use them


Drawn by Retta (for more go HERE)

Basic screens + progress info

As I promised: below you can find ideas of a few userforms that will be in the game.



CHARACTER CUSTOMIZATION



At this moment there are 5 classes: Berserker, Sharpshooter, Medic, Engineer and Thief. Each class has different amount of health points and is able to carry different number of items (depends on weight and number of items).

Progress:
All buttons are working and skills are stored on different sheets (one sheet per character). Skills have descriptions that, after clicking on the skill, appear in the box above DONE buton.

What's left:
I need to come up with some descriptions of classes. Additionally, I will have to prepare a lot of images of characters.



SKILLS



It is almost the same as the previous userform. It only has some additions like damage and defence indicators. There is also a small info about level and a little line showing leveling progres.

Good news: everything is working here... except for images :(



PICKING UP ITEMS FROM THE GROUD



Player will be able to choose items that he/she wants to have in the inventory. Squares on the left side will contain small images indicating type of item. Next shapes will show names and weight of items. The last, big box will provide information about items (picking up weapon that isn't as good as the one that you already have would be stupid, right?).

Everything's done here, but (again) images are missing. I think that labels might be useful.



EQUIPMENT



Quite simple equipment screen. I don't think I can say someting more about it, apart from the fact that this was probably the most annoying thing to code in VBA! It took me a few hours to make it work properly. There are around 10 000 lines of code and... it works flawlessly and fast! HELL YEAH!



BONUS!!!

Do you want to know how the map looks like now? Here it is! [It will not be visible in the final version.]


Unfortunately, I have no idea how to make some rooms or places different than corridors. I've tried to create something more complicated, but my code doesn't want to cooperate.
I will think about this 'issue' later. Now, it is time to add enemies and let them roam through the corridors!

16 Aug 2015

Something new! Back to the... past?

Since Cells Dungeon works almost 100% fine, I've decided to create a completely new game.

What's gonna be new? First of all, first person perspective! How? Like the old Might & Magic games.


Thank Google Images for the picture!


And yes, there will be more than one character to control. Exactly, three characters. 

What has been done so far?
Well, not a lot. I've spent like 10h coding and adjusting everything, so don't expect miracles. Anyway, '3D' corridors generation is already working. Also movement, collision detection (with walls only at the moment) and character selection are ready.


Early access available soon on Steam! ;D

I'm trying to create a nice character creator, inventory and skills windows. In the next post I will provide an some screenshots of these things.



10 Aug 2015

Really small update

I totally forgot about one important thing: level up indicator! Now, when you level up, a notification will pop up. Just a detail, but quite useful in my opinion.

Additionally, some information regarding enchanting were changed. Not a lot of changes... like 5 minutes of coding.

Updated version will remain with 1.1 number.

7 Aug 2015

Enemies 10/31 - Rebel


Name: Rebel
Type: Humanoid
Health Points: 90
Damage (min - max): 10- 25
Speed: 1
Items: can carry and use Weapons, Armors, Helmets, Shields


Drawn by Retta (for more go HERE)

26 Jul 2015

General info / VBA Coding - Debugging

Just a quick information: I've found two bugs in two the VBA code. Macros have been updated and everything seems to be fine now!

24 Jun 2015

Enemies 9/31 - Zombie


Name: Zombie
Type: Humanoid
Health Points: 40
Damage (min - max): 5- 25
Speed: 0,6
Items: can carry Weapons, Armors, Helmets, Shields, but cannot use them


UPDATE: 
Part related to items that enemies may have (or not) has been updated also in previous posts concerning Enemies.


Drawn by Retta (for more go HERE)

29 May 2015

General info / VBA Coding - Stairs + floors = larger map to explore!

Just finished writing and some code allowing player to go up and down the stairs! What does it mean? More exploring! Even more randomized dungeon!


Now, more precise description of this not-so-little addition. There are going to spawn two more types of symbols in the dungeon: ▲ (stairs leading up) and ▼ (down).
Once player goes up or down, there is only one way back to the main floor of the dungeon. There is no variable that checks on which floor player is (I mean the number of floors above/below the main floor). Let me describe it with a picture (:


Why does it work like that? Because every floor is a separate room with different coordinates. Additionally, my code does not count how many cells player has traveled in each direction.

The only bug I've found so far is related to the conditional formatting. Luckily, that's not a serious problem!

25 May 2015

General info / Functions / VBA Coding - Attacks almost enhanced

Some changes are coming! Maybe not they're not significant, but... hey, updates are always good, right?


Do you remember the idea of adding various attacks for each enemy (I wrote about it HERE)? Well, I'm testing it and... it looks even more stupid then I expected!



Bad news:
Many attacks are the same for many enemies at the moment. In the future, I will try to add something new for each hostile unit.

Good news:
Every kind of attack has a different damage multiplier, because... amount of damage dealt by enemies wasn't random enough! :D



By the way:
Not humanoid creatures will no longer be able to use/wear items. Why? Have you ever seen a dragon wearing an armor or with a sword in its claw? Me neither ;)
I will update info on the blog a little bit later.

12 May 2015

Enemies 8/31 - Imp



Name: Imp
Type: Demon
Health Points: 50
Damage (min - max): 11- 25
Speed: 1
Items: can carry and use Weapons, Armors, Helmets, Shields


Drawn by Retta (for more go HERE)

11 May 2015

Enemies 7/31 - Dwarf



Name: Dwarf
Type: Humanoid
Health Points: 30
Damage (min - max): 9- 21
Speed: 0,8
Items: can carry and use Weapons, Armors, Helmets, Shields


Drawn by Retta (for more go HERE)

1 May 2015

General Info - Cells Dungeon first release [with download link]

Cells Dungeon download is available at last!


Playable version is available HERE (ZIP with .xlsm file and folder with .jpg images). 
Remember to place all ZIP contents in the same folder!

All you need is MS Office 2010 or newer with Visual Basic for Applications. It also requires macros to be enabled while opening the file (macro settings can be found in Trust Center Settings- see below). In order to make Cells work properly you can also open the file, enable macros, save and close the file and reopen it again.



References used in the project:




HOW TO PLAY
That's easy! 
Use arrow keys to move your character (I think that I forgot to mention before that player character is marked as '8'). Mouse or touch-pad is required in order to use buttons.


ADDITIONAL INFO
In case of any errors, please send me an email with a short description of the error (screenshot would be useful too)!

Theoretically, Cells should also work with MS Excel 2007, but I can't guarantee that all macros are compatible with it.

Have fun... or at least a try to have fun!

27 Apr 2015

General info - Additions to the battle system?

Wouldn't it be nice if enemies had various attacks? I mean that e.g. wolf would bite or scratch the player.


I came up with this idea around one or two months ago: I thought that I would like to see warlock attack with fireballs, meteor storms etc. Each attack would deal different amount of damage of course.
Cool, yeah? 
Yeah, but... I need to think about this 'upgrade' because of few things:
  • it would require a new formula related to damage dealt to the player
  • damage should be different if enemy has a weapon
  • info shown in the battle log would have to be changed (depending on equipped (or not) weapon)
Luckily, it seems quite easy to do!

23 Apr 2015

Enemies 6/31 - Troll



Name: Troll
Type: Humanoid
Health Points: 35
Damage (min - max): 10- 21
Speed: 1
Items: can carry Weapons, Armors, Helmets, Shields, but cannot use them


Drawn by Retta (for more go HERE)

12 Apr 2015

Enemies 5/31 - Wolf


Name: Wolf
Type: Animal
Health Points: 18
Damage (min - max): 4- 17
Speed: 1,2
Items: cannot and use carry anything


Drawn by Retta (for more go HERE)

10 Apr 2015

Enemies 4/31 - Gnome


Name: Gnome
Type: Humanoid
Health Points: 23
Damage (min - max): 6- 16
Speed: 0,7
Items: can carry and use Weapons, Armors, Helmets, Shields


Drawn by Retta (for more go HERE)

8 Apr 2015

General info / Functions / VBA Coding - Upgrades added!

Cells Dungeon received an item upgrade addition! YAY... or not?

I've decided to add the Upgrade tab to Character / Inventory userform.
First of all, there are 5 categories of upgradable items: Weapons, Armors, Helmets, Shields and Enchantments. The last one contains Enchanting stones (yeah, that the name I decided to use).

IMPORTANT: Unequip items before upgrading them!



Another combobox shows all items related to only one type. To be precise: 'all items' = 'everything that player has' ;)



Enchanting stones will not work the same as I mentioned HERE
"=IFERROR(CHOOSE(C3,1.1,1.3,1.5,1.7,1.9,2.1,2.3,2.5,2.7,3),1)" - such function calculates Atk/Def depending on the item's upgrade level.




'Attack/Defence now' and 'Attack/Defence after' are going to be renamed with something... better. However, these two fields work fine!



Result of upgrade process is visible in inventory- userform has to be closed and reopened (I need to repair this small issue; EDIT: it is no longer needed to reload the userform!). Maximum of item is set to 10 now. I think that it is enough as weapon with level 10 has 3x more Atk than a default one.



There is also a limitation of creating stones with level higher than Lv.3 (again, mentioned HERE).

Enemies 3/31 - Dog

Here, kitty, kityy... oh wiat!



Name: Dog
Type: Animal
Health Points: 15
Damage (min - max): 1- 13
Speed: 1,1
Items: cannot carry and use anything


Drawn by Retta (for more go HERE)

6 Apr 2015

Enemies 2/31 - Pixy

It is Pixy's time!


Name: Pixy
Type: Humanoid
Health Points: 40
Damage (min - max): 3- 10
Speed: 1,2
Items: can carry and use Weapons, Armors, Helmets, Shields


Drawn by Retta (for more go HERE)

5 Apr 2015

Enemies 1/31 - Rat

In 'Enemies' series I'd like to show all the hostile creatures and share some basic information about them.




Let's start with the weakest one: Rat.

Name: Rat
Type: Animal
Health Points: 10
Damage (min - max): 1- 5
Speed: 0,8
Items: cannot and use carry anything


Drawn by Retta (for more go HERE)

4 Apr 2015

General info - Upgrades?

I have an idea: feature which adds to the Cells Dungeon a possibility of upgrading all wearable items!


I'm thinking about adding stones / scrolls / potions that would be used to upgrade items (everything except from consumables). I haven't decided which one of these three names I would use, so let's call them 'IUs' (Item Upgrades) for now. There would be at lease 3 kinds of IUs:
  • IU lvl1- damage / defence +10%
  • IU lvl2- damage / defence +30%
  • IU lvl3- damage / defence +50%
There would also be a possibility of combining two IUs in order to create another one with higher level. It would work only when one IU is lvl1.
Here's an example:

  • IU lvl1 + IU lvl1 => IU lvl2
  • IU lvl1 + IU lvl2 => IU lvl3
  • IU lvl2 + IU lvl3 => ERROR!

Of course that's just an idea and I'm not at my PC now, so I'm not able to code or test anything : (
However, any thoughts about this addition are welcome!

1 Apr 2015

General info / Functions / VBA - Some debugging, improvements etc.

Just a little update about little bugs I got rid of. And a little addition of gameplay info. [long digression inc.]




So, let's start with information first!
Cells Dungeon has some functions and vba code that creates items with randomly generated names and statistics. I wanted this 'system' to produce stupid names- I can't forget Space Hack where enemies had probably the worst names I've ever seen- e.g. 'Bezlitosny Opiekacz' which literally means 'Merciless Toaster'. I decieded to make my idea real and... items have dumb names!

Yeah, pure stupidity!
Names and stats of itmes are based on 4 different variables (shown below). Such combination allows Excel to provide player with a large amount of weapons, armors, helmets etc. Because of number of different items' types, I had to use Vlookup instead of Choose function. Luckily, it doesn't slow down the game!

Another worksheet contains data related to the player's inventory. That's the place where all cells with text and values are being mixed. There is also a magical column L (in case of weapons)! It was added today and it repairs names that were just... without any sense. Well, my for someone 'Sword of Sad' is a good name for a weapon ;>



There were also small errors with code: health potions couldn't be found in the inventory and I forgot to set calculations to automatic after disabling them ;D. Also fixed awful trade's userform.

That's everything for now! Hope you didn't die from boredom!

WARNING: Playable version is coming soon!

19 Mar 2015

Functions / VBA Coding - Extended viewing distance

Yesterday I decided to change the pathfinding code. It works a little bit slower, but... it's better!


I think that I will be able to make it works faster. Anyway, that's not what I wanted to write about in this post!
I probably had too much time today and spent few hours writing new formulas and translating them to VBA. The result is longer viewing range: +1 cells row in each direction. I needed to upgrade it in order to make enemies visible from at least a little bit longer distances.


Range before update

Range after update

17 Mar 2015

VBA Coding - Pathfinding

I had some time and decided to create a small addition to my Excel game, Cells Dungeon.


 'Cells' had a little bit crappy code implemented: enemies were walking in random directions and weren't chasing the player. That wasn't even close to a good solution, so I had to create something better.
It is still in a test phase and will probably require some performance fixes, but... I will have time to do it somewhere in the future!

Here's a small preview of how it works now:


General info - Cells Dungeon - Game in Excel?!

What the hell is Cells Dungeon?!


Once upon a time, there was a guy who had to work with excel and he really liked it. He liked it so much that he decided to use some of his imagination and some VBA knowledge to create something different.
The guy always wanted to create pc games. Unfortunately, he didn't know where to start. Then he was forced to learn some basics of VBA and... that's how everything started! 
Hours of thinking, coding, debugging, frustration and swearing and... BOOM! First playable version of rouglike game made in MS Excel was ready!

Features:
  • randomly generated levels (20k cells large; code needs little improvement)
  • lots of randomly generated weapons, helmets, armors, shields
  • SKILLS, SKILLPOINTS and LEVELS (yay!)
  • possibility of getting drunk and addicted to alkohol
  • possibility of becoming a vampire
  • hand drawn images of enemies (thanks to Retta!)
and many other stuff!