Sunday, 5 June 2011

Equipment, Techniques, and a battle!

This post is all about equipment, techniques, and at the end, a few lines from a battle! First, we'll get ourselves some equipment, from the !shop. It carries all sorts of equipment suited for a new character. More advanced characters have different options available to them. The shop is split into four catagories. Weapons, Armor, Accessories, and Items.

There are 18 different types of weapons in the system, each with it's own benefits and disadvantages. For our purposes, we'll be using one handed swords. It is one of the few weapon types without a true disadvantage, other then it's benefit being slightly lackluster. Swords provide a accuracy boost, which can be useful during lower levels to overcome Block and Dodge rating. By default, Swords are a Physical weapon, however, on request, a player could request a Magic, Psionic, or Dexterity based one.

Lets see what types of swords are available...

<Prismbot> Welcome to the Sword store! Following is a list of available swords. Type !equip-info <Sword> for information on a specific sword. Type !buy <Sword> to buy a sword.
<Prismbot>  ¤Copper-Sword¤Bronze-Sword¤Iron-Sword¤Seraphrite-Sword¤

A selection of four possiblities. We only have 5,000 units of money to use for purchasing, however, ruling out that Seraphrite Sword by default. The Bronze Sword sounds good, but lets review its stats first.

<Prismbot> <Price: 1070> <Type: Sword> <Damage/Accuracy Type: phys><Attack Power: 50><Accuracy: 50><Critical Percent/Power: 10/1.5> <Elements: Metal>

Note to self: Change 'elements' to 'affinities' later. It's a pretty standard weapon overall. Lets compare it to the Iron Sword, however.

<Prismbot> <Price: 1900> <Type: Sword> <Damage/Accuracy Type: phys><Attack Power: 100><Accuracy: 50><Critical Percent/Power: 10/1.5> <Elements: Metal>

Given that we have the money, I think we'll get a Iron Sword, just for that extra bit of power. We now have 3,100 units of currency remaining.

Armor has six different types. Chainmail lessens the cost of adding a Status Effect to the armor, but has no defensive bonuses or penalities, Full-Body offers great defensive bonuses, both the defense stats and from status effects, at the cost of dodge, block, and parry rating. Vests offer additional dodge, block, parry and speed at the cost of physical defense. Breastplates offer greater physical defenses and resistance to status effects at the cost of psionic defenses. Robes and Cloaks offer defenses against status effects far cheaper then most other armor types, but are extremely vulnerable to physical attacks. We'll be using Chainmail, as we do not have the dodge, block, and parry to sacrifice to use it. You cannot use a piece of equipment if it would drop a stat under 1.

<AmatsuBot-Dev>  ¤Copper-Chain¤Bronze-Chain¤Iron-Chain¤Seraph-Chain¤

<AmatsuBot-Dev> <Price: 1890> <Type: Chainmail> <Phys. Def/TotalDef: 0/80> <Mag. Def/TotalDef: 0/80> <Psi. Def/TotalDef: 0/80>

This is the Iron Chain. It seems to be the best choice, but since I'd like to purchase a shield to go along with the Iron sword, I'd prefer the cheaper Bronze Chain. The additional defense the Iron Chain offers is not that much. We now have 1,970 money remaining, as the Bronze Chain cost 1,130. A Bronze Shield runs us 1,150, leaving us with 820 left. We'll use 300 of this to buy a few potions from the shop, in case we need them. However, I've noticed I do not have enough MP for techniques, so we will skip them for a level. A bad build can be quite costly as you can see...lets try a battle none the less. We'll fight against a equal level enemy, though the enemy will not be equally equipped.

Battles can consist of any number of combatants, and any number of 'teams', which are used to seperate the sides in the battle. Typically, there will be two teams. In this case, the enemy will be on team 2. The enemy we face is a single Goblin Fighter, which has been designed to be faster then my tanklike character. As such, it goes first. Lets see what happens when it attacks.

<Prismbot>  Goblin-Fighter has used Fire-Strike on Amatsu! Amatsu needs type !block, !dodge, !parry, or !nothing to decide his or her response to the attack!

Even though it's risky, I'll try to parry, to turn the attack against the enemy!

<Prismbot> Damage done to Amatsu: <178> TOTAL: <178>

Obviously it didn't go well. I took the technique head on, sustaining some major damage. Thankfully, the enemy is now out of MP, and thus, short of a critical hit, will have difficulty fighting me. The battle goes back and forth a bit, until I get my third turn and finish it off, granting me a small ammount of experience, money, and technique points, which are used to purchase techniques.

That's it for this subject. There's more to battle still, like status effects, but I'll go over those another time. Thanks for reading.

Friday, 3 June 2011

Prismbot Character Generation and Setup

Alright, welcome to my post about Character Generation in Prismbot! Also included will be how to set up your character, since I realized a post about just character generation wouldn't even take up a page at this point due to changes to it.

Character generation is a simple affair. You log into the IRC server the bot resides on (I should pick one sometime for a potental public demo of how it works, suggestions welcome) with whatever IRC client of your choice. Then you open a private message window with the bot (this varies client to client I believe, most use double click on their username), and type in the command !join. It'll send this message to you:

 <PrismBot> To join, please confirm that your current username is the one you would like to register with. To confirm, type !join yes, otherwise, use /nick newname to change to the desired username. Special characters are forbidden.

To complete registeration, just type in !join yes when you are ready. It'll proceed to welcome you, and provide some useful commands to use, as well as display your starting stats. Currently, there is no variance (that is, all players will start out the same), nor are there things like races or classes to worry about. However, you can customize your character stats however you wish. Once character generation is complete, you are provided 75 Ability Points (AP), which are spent on the eight stats shown to you, for a 1 to 5 ratio. If you spent 10 points on Strength, you would actually recieve 50 in Strength.

Your stat display will look something like this once generation is complete.

<PrismBot> Level-1 HP-40/40 MP-40/40
<PrismBot> Strength-10 Constitution-10 Psionics-10 Willpower-10
<PrismBot> Spirit-10 Intuition-10 Dexterity-10 Agility-10

Strength is mainly for Physical damage. Constitution is for Physical defense and Hitpoints. Psionics are used for the Psionics damage type. Willpower is for Magic damage, as well as minor HP and MP boosts. Spirit is for Magic defense, and Mana Points. Intuition. Dexterity, and Agility governs various parts of the Hit Rating, Block, Dodge, and Parry math. Dexterity is also used, when the feature is active, for the Dexterity damage type. You can spend your AP on these stats using !lvlup statname ammount.

With your basic stats configured, you can review them with !stats, as well as the effects they had by leveling them up with !bttlstats and !hitmiss respectively.

<Prismbot> HP-40/40 MP-40/40
<Prismbot> Attack Base/Total: Physical-10/10 Dexterity-10/10 Psionic-10/10 Magic-10/10
<Prismbot> Defense Base/Total: Physical-10/10 Psionic-10/10 Magic-10/10
<Prismbot> Speed Base/Total: 4/4

<Prismbot> Physical Base/Total: Hit-22/22 Dodge-7/7 Block-14/14 Parry-3/3
<Prismbot> Dexterity Base/Total: Hit-22/22 Dodge-7/7 Block-14/14 Parry-3/3
<Prismbot> Psionic Base/Total: Hit-24/24 Dodge-8/8 Block-16/16 Parry-4/4
<Prismbot> Magic Base/Total: Hit-22/22 Dodge-7/7 Block-14/14 Parry-3/3

You may notice that each item listed has two numbers. The first is the Total ammount, which is often incresed with equipment. The second is the base ammount, uneffected (usually) by equipment. Certain techniques can be set to use the base numbers only. Lets see what happens to these when I level up my stats.

<Prismbot> Level-1 HP-340/340 BP-140/140
<Prismbot> Strength-160 Constitution-110 Psionics-10 Willpower-35
<Prismbot> Spirit-10 Intuition-10 Dexterity-85 Agility-35

The first change might not be so obvious. When your stats excel in a nonmagic catagory, the MP display will change to Battle Points (BP) if you are physical based, Psion Points (PP) if you are Psionic based, and Energy Points (EP) if you are Dexterity based and that feature is active. Lets look at our Battle Stats and Hit Miss stats.

<Prismbot> HP-340/340 MP-140/140
<Prismbot> Attack Base/Total: Physical-122/122 Dexterity-55/55 Psionic-16/16 Magic-28/28
<Prismbot> Defense Base/Total: Physical-122/122 Psionic-10/10 Magic-16/16
<Prismbot> Speed Base/Total: 15/15

<Prismbot> Physical Base/Total: Hit-127/127 Dodge-40/40 Block-81/81 Parry-16/16
<Prismbot> Dexterity Base/Total: Hit-127/127 Dodge-40/40 Block-81/81 Parry-16/16
<Prismbot> Psionic Base/Total: Hit-69/69 Dodge-27/27 Block-54/54 Parry-9/9
<Prismbot> Magic Base/Total: Hit-67/67 Dodge-28/28 Block-56/56 Parry-9/9

As you can see, many have dramatically incresed. This build is semitypical of a physical 'tank' of sorts, but would not hold up well against magical or psionic foes. At this time, Dexterity shares alot of math with Physical, this will be changed in a coming update once proper balancing is complete. Now to explain the hit miss stats.

Hit is your chance to hit. The bot will roll two numbers internally when you attack. The first is the Hit roll. Then your target will select if they wish to Dodge (avoid damage completely), Block (take reduced damage), or Parry (avoid damage -and- counter attack for your Total Damage). You can also elect to do Nothing, which is useful for helpful techniques. Unless the target does nothing, it will roll the Dodge, Block, or Parry depending on their selection. If your Hit roll exceeds their roll, your attack goes though. However, should their roll exceed yours, their action occurs instead! Which can be very painful if they have a high Parry rating in the damage catagory you are attempting to use.

This wraps up the basics of character generation and setup. Tune in next post for infomation on equipment, techniques, and maybe even a battle!

Tuesday, 31 May 2011

First Post!

Greetings everyone. My name is Amatsu, and this blog will be about various projects I work on. My primary focus at the moment is a IRC roleplaying bot called 'Prismbot'. It was originally started in 2003 by a close friend of mine, however, around 2005-2006, she was unable to continue the project. It sat idle until 2009 or so, in a almost completely broken state. Files wouldn't load right, errors were abound everywhere. Then one day while I was going though old folders, I found it, and started going though the bot's programming, spotting errors and correcting what I could. Since at the time I was unfamilar with the details of the language the bot was programmed in, it was slow going, and mostly relied on a uncanny talent of mine to understand parts of the code dispite my unfamilarity. However, the old version of mIRC used that held the bot framework had a number of fatal flaws that impaired my work, namely, a limit of about 64KB per file. Taking a risk, I updated the version (which, had it gone wrongly, would have caused immense problems) to the latest available at the time, eliminating this flaw.

And now here we are, 2011. Work continues, and a array of new features, beyond the original specs for the system have been added. Each post will detail a different aspect of the bot, in what I hope is a entertaining format for everyone.

As for other projects I work on, I've also done a bit of level design work for the fangames Mushroom Kingdom Fusion, and Super Mario Fusion Revival. I'm the mastermind behind parts of Construction Tower (World 3-3 in MKF) and Final Outpost (1-20 I believe in SMFR). I've also begun a Lets Play of Summon Knight: Swordcraft Story, a enjoyable GBA title that is a load of fun.

I think that's it for this post. Thank you for reading, and I hope some of you come back for my next post, where I will go into the details of character generation with my system.