It's been a while since I posted a roguelike and I've learned enough to make starting all over a good idea since my last attempt.
This is fortuitous, as my last attempt has apparently been lost in a disk shuffle.
So: I present to you, Wizard. A roguelike game of playing...a wizard. (May eventually be expanded to other spellcasting classes. May eventually *Have* classes)
I warn you, this is a hobby for me and was originally started so I could learn how to use events. That being said, it looks barer than it could be because I've spent the past nine days just working on engine upgrades.
The Alpha version has (limited) prefix/suffix spellcasting, four (very different) player races (It randomly selects one for the PC), one animal (Rat, because you have to have rats), three monsters (None of them standard, even the Skeleton), random map generation (Of course), ASCII graphics (A roguelikes' natural state) and experience gain with stat increase.
Narf the Mouse wrote: > It's been a while since I posted a roguelike and I've learned enough > to make starting all over a good idea since my last attempt.
> This is fortuitous, as my last attempt has apparently been lost in a > disk shuffle.
> So: I present to you, Wizard. A roguelike game of playing...a wizard. > (May eventually be expanded to other spellcasting classes. May > eventually *Have* classes)
> I warn you, this is a hobby for me and was originally started so I > could learn how to use events. That being said, it looks barer than it > could be because I've spent the past nine days just working on engine > upgrades.
> The Alpha version has (limited) prefix/suffix spellcasting, four (very > different) player races (It randomly selects one for the PC), one > animal (Rat, because you have to have rats), three monsters (None of > them standard, even the Skeleton), random map generation (Of course), > ASCII graphics (A roguelikes' natural state) and experience gain with > stat increase.
> (If the link doesn't work, try changing it to 1, 2, or 3. My webhost > is slow to update files, so I have to upload a new file to get a new > version up)
It's not a good idea to make each monster type a separate class. It's better to have one "monster" class, which would allow you to store the monster types in a file so you could edit them without recompiling the program.
It immediately crashes on startup, and prints out quite an unfriendly unhandled exception message. I tried to dump it to a file, but then it just prints out a different error and the dumped file ends up being empty. :/
Nate879 wrote: > It's not a good idea to make each monster type a separate class. It's > better to have one "monster" class, which would allow you to store the > monster types in a file so you could edit them without recompiling the > program.
That could work better, but I could use some more detail - Can you describe in brief how you would set up the monster/animal class(es)?
Thanks.
Nate879 wrote:
> I also found what looks like a bug: when I attacked with FireBreath, > the game said "You attack for -2147483648 damage!"
I just tested it and got the same result. Probably happening due to some change when I changed the stats from discrete values to dictionary lookup values.
Some computers just seem to refuce to run .Net I'm no expert, so all I can do is throw out the obvious questions.
Do you have the .Net 3.5 runtime? Are the fonts set to raster and 8x12? (One person had problems due to his font settings) Any chance you could compile it on your comp and see if it'll run then and if not, what error message(s) come up when trying to compile? (Visual C# Express)
Nick Beam wrote: > It immediately crashes on startup, and prints out quite an unfriendly > unhandled exception message. I tried to dump it to a file, but then it > just prints out a different error and the dumped file ends up being > empty. :/
>Nate879 wrote: >> It's not a good idea to make each monster type a separate class. It's >> better to have one "monster" class, which would allow you to store the >> monster types in a file so you could edit them without recompiling the >> program.
>That could work better, but I could use some more detail - Can you >describe in brief how you would set up the monster/animal class(es)?
In C, a monster struct would look like this:
struct monster { enum monster_num mnum; /* Tells you what kind of monster it is */ /* Followed by whatever stats - hit points, defence, etc. - are * specific to an instantiated monster rather than a fundamental * property of the kind of monster it is. You might even put in * some function-pointer variables for things like being able to * dynamically change which activity selection algorithm the monster * uses. */
};
The "permonst" (PERmanent MONSTer - the in-memory representation of a *kind* of monster) would look something like:
struct permonst { char *name; /* becomes a pointer to an in-memory copy of the name * string read in from the DB */ /* what follows is a bunch of stuff about the monster's default * properties that you read in from the DB. */
};
enum monsternum is an enumerated type providing unique tags for all the monsters. How you construct the definition of that type is left as an exercise for the reader. -- \_\/_/ some girls wander by mistake into the mess that scalpels make \ / are you the teachers of my heart? we teach old hearts to break \/ --- Leonard Cohen, "Teachers"
When I try to run it, it gives me a strange error message:
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or ass embly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c56193 4e089' or one of its dependencies. The system cannot find the file specified. File name: 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c 561934e089' at Wizard.Character.StartingDataModification() at Wizard.Drakon..ctor(CharacterControlTypes characterControlType, RaceTypes raceTypes, AnimalTypes animalTypes, MonsterTypes monsterTypes, Subtypes subtypes ) at Wizard.CharacterFactory.Generate(CharacterControlTypes characterControlTyp e, RaceTypes raceTypes, AnimalTypes animalTypes, MonsterTypes monsterTypes, Subt ypes subtypes) at Wizard.Program.Main(String[] args)
WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM \Software\M icrosoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure lo gging. To turn this feature off, remove the registry value [HKLM\Software \Microsoft\Fus ion!EnableLog].
I'm an amature at understanding stuff like that, but 'System.Core' is probably the namespace file for 'System', which sounds like you don't have .Net 3.5 installed.
If you already have it, then I got nothing.
Can anyone explain what the more esetoric stuff means? I've included an 'As far as I know' explaination interspersed. (Stuff pulled out of a hat :) )
andrew.air...@gmail.com wrote: > When I try to run it, it gives me a strange error message:
> Unhandled Exception: System.IO.FileNotFoundException: Could not load > file or ass > embly 'System.Core, Version=3.5.0.0, Culture=neutral, > PublicKeyToken=b77a5c56193 > 4e089' or one of its dependencies. The system cannot find the file > specified.
'System.IO' is the namespace that deals with file input-output. I guess it's used to load the rest of .Net. Since you do have System.IO, you probably have an earlier version of .Net. 'System' is one of the basic .Net namespaces. Sounds like it can't find version 3.5 of it. (Hence my explaination)
It errored out on the function that sets some of the starting data for a new character that can't be set in the base classes' constructor. (Wizard.Character.StartingDataModification)
This was done while generating a Drakon race player character, the first character generated, so if the error isn't missing .Net 3.5, it's probably either in the derived class Drakon or the base class Character.
The generation was done by the static method Generate in the class CharacterFactory, which does pretty much what it sounds like - Makes characters. The only input it has in the process of actually making the character is providing data. Main is the first thing run in the code.
> WRN: Assembly binding logging is turned OFF. > To enable assembly bind failure logging, set the registry value [HKLM > \Software\M > icrosoft\Fusion!EnableLog] (DWORD) to 1. > Note: There is some performance penalty associated with assembly bind > failure lo > gging. > To turn this feature off, remove the registry value [HKLM\Software > \Microsoft\Fus > ion!EnableLog].
This sounds like it would provide more data. Anyone know how to turn that on? The provided explaination of how isn't really comprehensive.
Martin Read wrote: > Narf the Mouse <largemo...@gmail.com> wrote: >> Nate879 wrote: >>> It's not a good idea to make each monster type a separate class. It's >>> better to have one "monster" class, which would allow you to store the >>> monster types in a file so you could edit them without recompiling the >>> program. >> That could work better, but I could use some more detail - Can you >> describe in brief how you would set up the monster/animal class(es)?
> In C, a monster struct would look like this:
> struct monster > { > enum monster_num mnum; /* Tells you what kind of monster it is */ > /* Followed by whatever stats - hit points, defence, etc. - are > * specific to an instantiated monster rather than a fundamental > * property of the