Sounds cool. Most medieval-themed roguelikes screw over archers with bad controls and weak weapons.
Well, the ranged attacks will be a single key to fire the weapon, and it'll probably check if there's more than one enemy in the view, and if there is it'll let you use the targeting function I wrote, otherwise it'll auto-fire at the one you can see.
The targeting is pretty decent if I may say so myself. Instead of trying to find a way to highlight the selected square that looks decent with any character, it draws an arrow to each side, pointing at the selected square. Looks nicer, and it's easier to use. My only issue with it is that you can't see things that are directly to the side of it, but that's not much of an issue, since the player's fingers are probably going to be on automatic by the time it's close enough to matter...
Anyways, I'm gonna try and add ranged weapons today. As far as balance, I'm planning on having ranged weapons deal similar damage (although likely based on dex instead of str...), but maybe take longer to fire than a normal weapon does to swing, so they aren't unbalanced... worst comes to worst I'll buff them up later.
[EDIT]: Taking a break for a bit, may come back to it later, depending on how quickly I can get my college app essay finished. It's pretty easy, 300-500 words, but it still has to be done, and I want it to be nearly perfect at least... anyways, ranged weapons are just about working. Just need to figure out the damage calculations, how much time passes, and removing ammo as it's used up. No actual ranged weapons or ammo in yet by default, but the framework for adding them to the "raws" is there, just haven't written them in yet. But targeting, ammo selection and everything is bug-free.
[EDIT2]: Ranged weapons fire properly, and ammo is used up properly. Damage is the same as melee weapons, but based on dexterity instead of strength, and at the moment they take the same amount of time to fire. Again, while they can be loaded from the raws, I'm just testing with hard-coded ones at the moment. Just need to make missed shots leave the ammo on the ground, and make ammo stack when picked up, dropped and purchased. I'll also need to allow the player to choose how many of an ammo item they want to buy... anyways, once that's done I can get another tech-demo up. After that all I have to do is magic, and I can start working on new stuff.
[EDIT3]: Ammo is purchased in stacks, just need to let it be sold, allow it to be dropped by enemies, and decide how to deal with shots that miss, and I'll be good to go.
[EDIT4]: A friend of my found a bug in the shops, so I've been set back a bit. I'm using pointers to objects for the shop and inventory, and I was copying the pointer from the shop to the inventory when items were purchased, so you weren't getting a unique copy of the item. I.E. If you bought a potion, used it once, and bought another, they would both have 2 uses left, and, theoretically, using one would zap the other one of one use as well. The arrows were actually how he found this, cause it was increasing the number of arrows in the stack as he bought them... Anyways, I'm going to have to hand-write copy functions for the items, since they're laid out a little weird, then I should be able to continue.
[EDIT5]: Done with the copy functions, and added a sort of error-reporting function, that basically just writes a line of text to an error log. Simple, but it'll be useful for future debugging. I'm going to work on launched ammo, and selling it soon, but before I do I'm going to write two more generic functions, one for displaying a sort of "pop-up" message, and another similar one for getting numerical input (I.E. How many items the player wants to sell.) Shouldn't take too long, since I can obviously write text pretty easily for the message, I already have a function for drawing the box, and a function for clearing the inside part of the box to draw the text in. I may look into PDCurses "window" stuff, but I'm not sure it's really necessary for this...
On a different note, I'm also working on a website for my games, both to have a place where the information can be found, and so that I have an excuse to learn Javascript, XML and XSL
I'll link to it once it doesn't look as horrible as it does now, need to figure out CSS too