Tuesday, August 26, 2008

Stats interface

Well, all is going steadily and slowly in implementing a new stats system. These changes will drastically affect everything from how players fight to move to cast spells, gain skills, mining and crafting, etc. There's still lots to be done, but we have some pics from the GUI side of things.

Sandopan and I have re-designed the stats window entirely, I'll show sandopan's concept idea for how it will be organized along with the actual GUI panel.
BUT FIRST, For comparison, here is the old/current plan: (which sux0rz)




And now for the new idea, first the actual background texture of the GUI, and Sando's concept of how we will roll the skillsets into the stats page aswell (mind you this is all chop-and-paste for design purposes so it will look much better in-game):

In game texture shown at right


This is a rough idea of how the skills list etc. will be displayed. Note there will probably be proper buttons or tabs at the bottom not just text as drawn in MS Paint xD
Well, I'll consider this official day one of re-vamping the stats system in vbGore to fit the needs of drasil. This has turned out to be a very large task (not so complicated as much as just being a ton of code to keep track of.)

The following functions all reference the stats system in some way or another (mind you some of them can remain unchanged depending on what stat in particular you are playing with) and need to be modified:

NPCs.bas -> NPC_MakeChar
NPC_MoveChar
NPC_UpdateModStats
NPC_AI
NPC_AttackNPC
NPC_AttackUser_ApplyDamage
NPC_AttackUser
NPC_ChangeMP
NPC_Heal
NPC_Damage
NPC_Kill


Users.bas -> User_Attack
User_AttackNPC
User_AttackUser
User_AttackUser_ApplyDamage
User_Kill
User_LookAtTile
User_MakeChar
User_MoveChar
User_RaiseExp
User_UpdateModStats
User_UseInvItem

Quests.bas -> Quest_CheckIfComplete
Group_EXPandGold

TradeTables -> TradeTable_Finish
TradeTable_UpdateSlot

FileIO -> Save_NPCs_Temp
Load_OBJs
Load_User
Save_User

General -> Server_WriteMail
User_UpdateFunction

Skills -> Skill_SummonBandit_PC
Skill_Bless_PCtoNPC
Skill_Protection_NPCtoNPC
Skill_Strengthen_NPCtoNPC
Skill_Bless_NPCtoNPC
Skill_Strengthen_PCtoNPC
Skill_Protection_PCtoNPC
Skill_Bless_PCtoPC
Skill_Strengthen_PCtoPC
Skill_Protection_PCtoPC
Skill_Heal_PCtoPC
Skill_Heal_NPCtoNPC
Skill_Heal_PCtoNPC
Skill_SpikeField
Skill_Warcry_PC

TCP.bas -> Data_GM_GiveGold
Data_User_BaseStat
Data_User_Bank_Withdraw
Data_User_Bank_Deposit
Data_User_Group_Info
Data_User_StartQuest
Data_User_Trade_SellToNPC
Data_User_Trade_BuyFromNPC
User_ConnectNew

UserStats.cls ->
BaseStat [PropertyLet]
BaseStat [PropertyGet]
ModStat [PropertyLet]
ModStat [PropertyGet]
SendUpdatedStats


Sometimes I REALLY hate working with other people's code. Esspecially vbGore.
For safe measure I've made a special backup of everything before digging into this code and ripping things out of the DB left right and center xD