Pets Design
Functional Design
The Functional Design show the functionality of the Pet system.
States
This is the states that a pet can be in.
Dismissed resting
When dismissed the pet will be in a state where if resummoned the time lived will not be reset. After the DismissedLockoutTime the time lived is reset to 0. This penalty has to be taken either before logout or before summoning after login.
Physical Design
In the Physical Design the different parts of the functional design is allocated to different systems. Some are handled server side, other at the npcclient. Some in code and others in scripts.
Database
Classes
Activities
Create
Sequences
Create
Death
PSUnreal
Ideas for Pets
Specific new information needed, will be stored in character_variables table associated to the pet:
- Energy
- Happiness
- Last time fed
Other fields used, but already available in the current database structure:
- Exp (available)
- Inventory (available)
- Knowledge area to speak (available)
For the Pet evolution and associated abilities we need to add two new tables:
- Pet Evolution table: ID, Name, size_scale, mesh_name, exp_required
- Pet Abilities table: evo_stage_id, name, pet_command, storage
where pet_command will determine access from the player to the specific command in the list below:
/pet learn location forest /pet learn target Trepor /pet go location forest /pet go position 100 f /pet learn phrase Hello my name is... /pet learn answer "what is your name" "my name is xyz" /pet scout creatures <range?> /pet scout items <range> /pet grant yes/no <name> /pet scout traps <range?> /pet scout hidden <range?> /pet distract <target> /pet senses sight
To evolve your pet, you will give him food, which is providing energy, energy allows to execute tasks/abilities, this is increase the experience of the pet and the empathy of the owner, and at certain level of experience the pet evolves to a new stage.
Food -> Energy -> Abilities -> Exp/Empathy -> Evolution stage